一切福田,不離方寸,從心而覓,感無不通。

Erlang

Erlang是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。 Erlang问世于1987年,经过十年的发展,于1998年发布开源版本。 Erlang是运行于虚拟机的解释性语言,但是现在也包含有乌普萨拉大学高性能Erlang计划(HiPE)开发的本地代码编译器,自R11B-4版本开始,Erlang也开始支持脚本式解释器。在编程范型上,Erlang属于多重范型编程语言,涵盖函数式、并发式及分布式。顺序执行的Erlang是一个及早求值, 单次赋值和动态类型的函数式编程语言。 Erlang是一个结构化,动态类型编程语言,内建并行计算支持。最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此非常适 合于构建分布式,实时软并行计算系统。使用Erlang编写出的应用运行时通常由成千上万个轻量级进程组成,并通过消息传递相互通讯。进程间上下文切换对于Erlang来说仅仅 只是一两个环节,比起C程序的线程切换要高效得多得多了。 使用Erlang来编写分布式应用要简单的多,因为它的分布式机制是透明的:对于程序来说并不知道自己是在分布式运行。Erlang运行时环境是一个虚拟机,有点像Java虚拟机,这样代码一经编译,同样可以随处运行。它的运行时系统甚至允许代码在不被中断 的情况下更新。另外如果需要更高效的话,字节代码也可以编译成本地代码运行。

龙生   13 Jul 2016
View Details

史上最详细Windows版本搭建安装React Native环境配置

说在前面的话: 感谢同事金晓冰倾情奉献本环境搭建教程 之前我们已经讲解了React Native的OS X系统的环境搭建以及配置,鉴于各大群里有很多人反应在Windows环境搭建出现各种问题,今天就特意更新一贴来说明。关于os x环境搭建以及react native入门学习资料请移步:http://www.lcode.org/react-native/ 刚创建的React Native技术交流3群(496508742),欢迎各位大牛,React Native技术爱好者加入交流!同时博客右侧欢迎微信扫描关注订阅号,移动技术干货,精彩文章技术推送! 1、安装Java 这里需要注意对环境变量的设置,可以根据java -version来检测一下 2、安装SDK 这里需要注意设置环境变量ANDROID_HOME:Android SDK Manager的位置 例如:(ANDROID_HOME=> E:\Android\sdk)设置环境变量PATH:例如:(PATH=> %ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools) 3、设置SDK 打开Android SDK Manager。 选中以下项目: Android SDK Build-tools version 23.0.1 Android 6.0 (API 23) Android Support Repository Local Maven repository for Support Libraries 4、安装node 这货是基于js的,node.js轻量级的Web服务器,想要是React Native跑起来需要安装node, 如果没有安装node.js,先去官网安装node.js,最好是4.1以上版本 下载地址:https://nodejs.org/en/ 下载node.js,找好对应的版本,然后去安装就可以了。 大家可以通过node -v的命令来测试NodeJS是否安装成功 5、安装git 安装React-native需要用到git,如果没有配置git,需要先下载对应的客户端,然后将git加入path环境变量即可 下载地址:https://git-for-windows.github.io/ 安装: 6、安装react-native命令行工具react-native-cli git配置完成后可以clone React-native-cli了,建议大家到将react-native-cli克隆到某个盘,不要在c盘直接clone 1)   在命令行中进入你希望RN安装的目录 2)   输入git clone https://github.com/facebook/react-native.git,等待下载 clone成功后: 3)   进入刚刚目录下的react-native目录下的react-native-cli目录,输入npm install -g 安装好之后,可以命令行下就有react-native命令了 7、创建RN项目 进入你希望创建项目的目录后,输入react-native init AwesomeProject,等待一段时间(较慢) 成功后: 目录结构: 7、运行package 在命令行中进入项目目录,输入react-native start,等待一段时间: 这时候可以用浏览器访问http://localhost:8081/index.android.bundle?platform=android,如果可以访问表示服务器端已经可以了。   7、运行项目 刚刚运行package的命令行不要关闭,重新启动一个新的命令行, 进入项目目录,输入react-native run-android 等待运行(如果是第一次运行,首先会下载gradle,时间较长) 运行成功后出现下图 第一次手机肯定报错 […]

龙生   12 Jul 2016
View Details

React Native专题

出处地址:http://www.lcode.org 本文出自:【江清清的技术专栏】 本React Native讲解专题:主要讲解了React Native开发,由基础环境搭建配置入门,基础,进阶相关讲解。 刚创建的React Native交流7群:131537844  欢迎各位大牛,React Native技术爱好者加入交流!同时博客右侧欢迎微信扫描关注订阅号,移动技术干货,精彩文章技术推送! 关于React Native各种疑难杂症,问题深坑总结方案请点击查看: Mac和Windows安装搭建React Native环境教程如下:  Mac OS X版本:Mac OS X安装React Native环境点击进入….  Windows版本:Windows系统安装React Native环境点击进入… 微信公众账号推送文章清单目录(每天推送React Native技术文章,右侧二维码扫描):https://github.com/jiangqqlmj/WeixinArticles/blob/master/README.md (一).基本介绍: React Native For Android是伟大的互联网公司Facebook与2015年9月15日发布的,该可以让我们广大开发者使用JavaScript和React开发我们的应用,该提倡组件化开发,也就是说React Native给我们提供一个个封装好的组件让开发者来进行使用,甚至我们可以相关嵌套形成新的组件。使用React Native我们可以维护多种平台(Web,Android和IOS)的同一份业务逻辑核心代码来创建原生应用。现阶段Web APP的的体验还是无法达到Native APP的体验,所以这边fackbook更加强调的是learn once,write everywhere,应用前端我们使用js和React来开发不同平台的UI,下层核心模块编写复用的业务逻辑代码,提供应用开发效率。 [特别注意]目前react native在ios上仅支持ios7以上,Android仅支持Android4.1以上。 React Native项目github地址:https://github.com/facebook/react-native React Native项目官网文档:http://facebook.github.io/react-native/docs/getting-started.html (二).基础入门: 1.React Native For Android环境配置以及第一个实例 2.React Native开发IDE安装及配置  3.React Native应用设备运行(Running)以及调试(Debugging) 4.React Native移植原生Android项目-已废弃 4.1.React Native移植原生Android项目-已更新版本-New 5.React Native进行签名打包成Apk 6.React Native库版本升级(Upgrading)与降级讲解 7.React Native VSCode IDE超强开发插件介绍(智能,代码提醒,运行调试…) 8.React Native特定平台代码说明 9.React Native基础之Linking Libraries链接库配置-适配iOS开发 10.React Native基础之真机设备运行调试应用-适配iOS开发 11.React Native基础之从源代码编译详解-适配Android开发 12.React Native进阶之原生UI组件封装详解-适配Android开发 13.React Native 移植原生iOS平台项目 13.1.React Native 移植原生iOS平台项目-更新最新版本 14.React Native基础之核心组件使用教程介绍-Core Components (三).组件学习: 1.React Native控件之View视图讲解 2.1.React Native配置运行官方例子-初学者的福音(Mac OS X版本) 2.2.React […]

龙生   12 Jul 2016
View Details

js判断全角半角的方法

function(str)//True 没有全角,False有全角 { for (var i = 0; i < str.length; i++) { strCode = str.charCodeAt(i); if ((strCode > 65248) || (strCode == 12288)) { return false; } } return true; } from:http://www.cnblogs.com/an-wl/archive/2011/05/26/2058109.html

龙生   11 Jul 2016
View Details

CSS3 transform-origin 属性

实例 设置旋转元素的基点位置:

页面底部有更多实例。 Internet Explorer 9 支持替代的 -ms-transform-origin 属性(仅适用于 2D 转换)。Internet Explorer 10、Firefox、Opera 支持 transform-origin 属性。 Safari 和 Chrome 支持替代的 -webkit-transform-origin 属性(3D 和 2D 转换)。 Opera 只支持 2D 转换。 定义和用法 transform-origin 属性允许您改变被转换元素的位置。 2D 转换元素能够改变元素 x 和 y 轴。3D 转换元素还能改变其 Z 轴。 为了更好地理解 transform-origin 属性,请查看这个演示。 Safari/Chrome 用户:为了更好地理解 transform-origin 属性用于 3D 转换的情况,请查看这个演示。 注释:该属性必须与 transform 属性一同使用。 为了更好地理解 transform 属性,请查看这个演示。 默认值: 50% 50% 0 继承性: no 版本: CSS3 JavaScript 语法: object.style.transformOrigin="20% 40%" 语法

值 描述 x-axis 定义视图被置于 X 轴的何处。可能的值: left center right length % y-axis 定义视图被置于 Y 轴的何处。可能的值: top center […]

龙生   08 Jul 2016
View Details

开源公司黄页之 Google 开源软件推荐

在企业使用开源和贡献开源方面,Google一直是行业的典范。一直以来,Google都在极力推广和倡导开源,并发布了一系列开源项目。如果没有开源软件,Google也难以达到今日的成功。开源中国社区目前收录了Google 259 款开源软件,详见:http://www.oschina.net/project/google Android SDK——Android SDK logoAndroid开发工具包 Android SDK 是 Android 的开发工具包。 Android是谷歌(Google)公司推出的手机开发平台。与iPhone相似,Android采用WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、搜索网址和观看视频节目等,比iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部Web应用的单一平台,下图是 Android 手机平台开发工具包说提供的模拟器界面截图: 但其最震撼人心之处在于Android手机系统的开放性和服务免费。Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时 拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁;同时与Windows Mobile、Symbian等厂商不同,Android操作系统免费向开发人员提供,这样可节省近三成成本。 Android项目目前正在从手机运营商、手机厂商、开发者和消费者那里获得大力支持。谷歌移动平台主管安迪·鲁宾(Andy Rubin)表示,与软件开发合作伙伴的密切接触正在进行中。从去年11月开始,谷歌开始向服务提供商、芯片厂商和手机销售商提供Android平台,并 组建“开放手机联盟”,其成员超过30家。     Android Studio——Android Studio logoAndroid 开发环境 Android Studio 是一个全新的 Android 开发环境,基于 IntelliJ IDEA。类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试,在 IDEA 的基础上,Android Studio 提供: 基于 Gradle 的构建支持 Android 专属的重构和快速修复 提示工具以捕获性能、可用性、版本兼容性等问题 支持 ProGuard 和应用签名 基于模板的向导来生成常用的 Android 应用设计和组件 功能强大的布局编辑器,可以让你拖拉 UI 控件并进行效果预览 Chrome——Google浏览器 Google Chrome,又称谷歌浏览器,是一个由Google(谷歌)公司开发的开放源代码网页浏览器。本软件的程式码是基于其他开放源代码软件所撰写,包括WebKit和Mozilla,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。软件的名称是来自于又称作“Chrome”的网络浏览器图形使用者界面(GUI)。 软件的beta测试版本在2008年9月2日释出,提供43种语言版本,目前仅适用于Microsoft Windows的XP及Vista平台,并不支援Windows 2000或更早期的版本。Mac OS X和Linux版本正在研发中,并将于日后推出。 Android NDK Android NDK 是在 SDK 前面又加上了原生二字,即 Native Development Kit,因此又被 Google 称为 NDK。 在此之前,Android平台的第三方应用程序均是依靠基于Java的Dalvik特制虚拟机进行开发的。原生SDK的公布可以让开发者更加直接的接触Android系统资源,并使用传统的C或C++语言编写程序,并在程序封包文件(.apks)中直接嵌入原生库文件。 不过,Google也表示,使用原生SDK编程相比Dalvik虚拟机也有一些劣势,比如程序更加复杂,兼容性难以保障,无法访问Framework API,Debug难度更大等。开发者需要自行斟酌使用。 众所周知,Android程序运行在Dalvik虚拟机中,NDK允许用户使用类似C / C++之类的原生代码语言执行部分程序。 NDK包括了: 从C / C++生成原生代码库所需要的工具和build […]

龙生   08 Jul 2016
View Details

说说C#的async和await

C# 5.0中引入了async 和 await。这两个关键字可以让你更方便的写出异步代码。 看个例子: public class MyClass {     public MyClass()     {         DisplayValue(); //这里不会阻塞         System.Diagnostics.Debug.WriteLine("MyClass() End.");     }     public Task<double> GetValueAsync(double num1, double num2)     {         return Task.Run(() =>         {             for (int i = 0; i < 1000000; i++)             {                 num1 = num1 / num2;             }             return num1;         });     }     public async void DisplayValue()     {         double result = await GetValueAsync(1234.5, 1.01);//此处会开新线程处理GetValueAsync任务,然后方法马上返回         //这之后的所有代码都会被封装成委托,在GetValueAsync任务完成时调用         System.Diagnostics.Debug.WriteLine("Value is : " + result);     } } 上面在MyClass的构造函数里调用了async关键字标记的异步方法DisplayValue(),DisplayValue()方法里执行了一个await关键字标记的异步任务GetValueAsync(),这个异步任务必须是以Task或者Task<TResult>作为返回值的,而我们也看到,异步任务执行完成时实际返回的类型是void或者TResult,DisplayValue()方法里await GetValueAsync()之后的所有代码都会在异步任务完成时才会执行。 DisplayValue()方法实际执行的代码如下: public void DisplayValue() {     System.Runtime.CompilerServices.TaskAwaiter<double> awaiter = GetValueAsync(1234.5, 1.01).GetAwaiter();     awaiter.OnCompleted(() =>         {             double result = awaiter.GetResult();             System.Diagnostics.Debug.WriteLine("Value is : " + result);         }); } 可以看到,async和await关键字只是把上面的代码变得更简单易懂而已。 程序的输出如下: MyClass() End. Value is : 2.47032822920623E-322 以下是我写的一个静态类,可以方便将一个普通Function执行异步调用: public static class TaskAsyncHelper {     /// <summary>     /// 将一个方法function异步运行,在执行完毕时执行回调callback     /// </summary>     /// <param name="function">异步方法,该方法没有参数,返回类型必须是void</param>     /// <param name="callback">异步方法执行完毕时执行的回调方法,该方法没有参数,返回类型必须是void</param>     public static async void RunAsync(Action function, Action callback)     {         Func<System.Threading.Tasks.Task> taskFunc = () =>         {             return System.Threading.Tasks.Task.Run(() =>             {                 function();             });         };         await taskFunc();         if (callback != null)             callback();     }     /// <summary>     /// 将一个方法function异步运行,在执行完毕时执行回调callback     /// </summary>     /// <typeparam name="TResult">异步方法的返回类型</typeparam>     /// <param name="function">异步方法,该方法没有参数,返回类型必须是TResult</param>     /// <param name="callback">异步方法执行完毕时执行的回调方法,该方法参数为TResult,返回类型必须是void</param>     public static async void RunAsync<TResult>(Func<TResult> function, Action<TResult> callback)     {         Func<System.Threading.Tasks.Task<TResult>> taskFunc = ()=>             {                 return System.Threading.Tasks.Task.Run(()=>                     {                         return function();                     });             };         TResult rlt = await taskFunc();         if(callback != null)             callback(rlt); […]

龙生   07 Jul 2016
View Details

Facebook 发布基站开源平台 OpenCellular

Facebook周三发布OpenCellular开源新平台,旨在通过向偏远地区提供连接移动蜂窝网所必须的设备和开源软件,以帮助居住于这些社区的人们实现连接互联网。此举是Facebook在推进全球互联网连接战略的又一新尝试。Facebook和扎克伯格当前的优先战略是帮助全球没有互联网覆盖的40亿人及没有手机服务覆盖的10%人口实现联网。 为此,公司推出了各种计划,包括热气球和无人机等,以辅助实现对这些偏远地区的互联网接入。然而不同于此前其它计划,OpenCellular的推广会依赖合作伙伴的加入,Facebook于周三公布了该计划的正式蓝图。 OpenCellular 在设计上主要针对环境条件极恶劣的偏远地区。Facebook将会为这些地区提供指导及必要的基础材料,以建造一座不受天气影响、能够在强风和高温下持续 使用的基站。OpenCellular只需要一个人就能完成安装,基站可以置于树上或距离地面几尺高的电杆上。 Facebook并不会亲自 部署和管理OpenCellular。该公司的计划是引导电信运营商、软件开发商以及研究人员等来尝试和安装设备。在设备完成安装后,技术人员将可以通过 监控方式远程操作。为减少需实际前往基站地点进行维护的情况,OpenCellular能够在出现严重问题并无法自我修复时,通知远程控制中心并自我重 设。OpenCellular支持使用太阳能供电,或者电池和PoE。 稿源:网易科技 from:http://www.oschina.net/news/74978/facebook-opencellular

龙生   07 Jul 2016
View Details

MIT 工程师开发出可编程 RNA 疫苗

MIT工程师开发出一种容易定制的疫苗, 能在一周内生产,能对疫情爆发快速做出反应。对小鼠的实验显示,可编程性使RNA疫苗对埃博拉、H1N1和刚地弓形虫具有100%效力。信使RNA能将携 带的遗传信息转译给蛋白质,它能针对病毒、细菌或寄生虫蛋白质进行编码,将信息转译给蛋白质去激发宿主的免疫反应。除了针对传染病外,研究人员正使用这种 方法去创造癌症疫苗,训练免疫系统识别和摧毁癌细胞。研究报告发表在本周出版的PNAS期刊上。 稿源:solidot奇客 from:http://www.oschina.net/news/74971/mit-engineers-developed-rna-vaccine

龙生   07 Jul 2016
View Details

docker详细的基础用法

1、docker安装 debian7安装docker 参考地址:http://www.webmaster.me/server/installing-docker-on-debian- wheezy-in-60-seconds.html echo deb http://get.docker.io/ubuntu docker main | sudo tee/etc/apt/sources.list.d/docker.list sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 sudo apt-get update sudo apt-get install -y lxc-docker #四行命令,Docker就安装好了。下面创建一个ubuntu虚拟系统: docker pull ubuntu #此处是从官网拉取名为ubuntu的image,也可手动在 https://index.docker.io上搜索想要的镜像。 docker run -i -t ubuntu /bin/bash #创建一个容器,-t是临时终端。 ubuntu12.04、windows、macOS安装docker 参考docker中文文档http://www.widuu.com/docker/ 2、docker使用过程实践 2.1 在测试机启动容器,安装ssh docker run -i -t ubuntu /bin/bash #此方式运行的容器,退出后容器就会 关闭。 apt-get install openssh-server #安装ssh #需要修改/etc/sshd/sshd_config文件中内容 PermitRootLogin yes UsePAM no 2.2 启动ssh,容器以后台方式运行 docker run -d -p 50001:22 <容器id> /usr/sbin/sshd-D #容器id可通过 docker ps-a查看,最上面的为最新的。 2.3 通过ssh连接到容器安装软件 ssh root@127.0.0.1-p 50001 #连上后想装什么就装什么,可使用exit退出容器,但后台还会运行。 2.4 服务安装完成后,停止容器。 docker stop <容器id> #停止运行的容器 2.5 把容器提交生成最新的镜像 […]

龙生   06 Jul 2016
View Details