Pages: 9/282 First page Previous page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Next page Final page [ View by Articles | List ]
Dec 2
Highslide JS
Arduino是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。由一个欧洲开发团队于2005年冬季开发。其成员包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti。
它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个主要的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是利用 Arduino编程语言 (基于 Wiring)和Arduino开发环境(基于 Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。
Tags:
Dec 1
网站调优有很多种方法,js,css合并,减少连接数,减少并发,静态化,CDN,gzip,expire,存内存读取等等,而这里讲的是分块读取加载,让DOM完成加载优先部分,再一次加载其他部分,避免阻塞,这就是BigPipe,不是什么新技术,facebook和淘宝在使用,主要做的是一些PV大的页面的加载,对于一些请求少的,还是要避免过度优化!
Highslide JS
Quotation
BigPipe是一个重新设计的基础动态网页服务体系。大体思路是,分解网页成叫做Pagelets的小块,然后通过Web服务器和浏览器建立管道并管理他们在不同阶段的运行。这是类似于大多数现代微处理器的流水线执行过程:多重指令管线通过不同的处理器执行单元,以达到性能的最佳。虽然BigPipe是对现有的服务网络基础过程的重新设计,但它却不需要改变现有的网络浏览器或服务器,它完全使用PHP和JavaScript来实现。



工作原理
Highslide JS
要利用该Web服务器和浏览器之间的并行性,BigPipe首先分解网页成多个可调用的Pagelets。正如流水线微处理器划分一个指令的生命周期为(如“取指令”,“指令解码”,“执行”,“写回寄存器”等)多个阶段,BigPipe的页面生成过程分为以下几个阶段:
1. 请求解析:Web服务器解析和完整性检查的HTTP请求。
2. 数据获取:Web服务器从存储层获取数据。
3. 标记生成:Web服务器生成的响应的HTML标记。
4. 网络传输:响应从Web服务器传送到浏览器。
5. CSS的下载:浏览器下载网页的CSS的要求。
6. DOM树结构和CSS样式:浏览器构造的DOM文档树,然后应用它的CSS规则。
7. JavaScript中下载:浏览器下载网页中JavaScript引用的资源。
8. JavaScript执行:浏览器的网页执行JavaScript代码。[1]
前三个阶段执行,由Web服务器,最后四个阶段是由浏览器执行。每个Pagelet必须经过所有这些阶段顺序,但BigPipe在不同的阶段使几个Pagelets同时执行。
在BigPipe,一个用户请求的生命周期是这样的:在浏览器发送一个HTTP请求到Web服务器。在收到的HTTP请求,并在上面进行一些全面的检查,网站服务器立即发回一个未关闭的HTML文件,其中包括一个HTML 标签和标签的开始标签。标签包括BigPipe的JavaScript库来解析Pagelet以后收到的答复。在标签,有一个模板,它指定了页面的逻辑结构和Pagelets占位符。
在客户端在收到Pagelet通过“onPageletArrive”发出的指令,BigPipe的JavaScript库将首先下载它的CSS资源;在CSS资源被下载完成后,BigPipe将在Pagelet的标记HTML显示它的innerHTML。多个Pagelets的CSS可在同一时间下载,它们可以根据其各自CSS的下载完成情况来确认显示顺序。在BigPipe中,JavaScript资源的优先级低于CSS和页面内容。因此,BigPipe不会在所有Pagelets显示出来之前下载任何Pagelet中的JavaScript。然后,所有Pagelets的JavaScript异步下载。最后Pagelet的JavaScript初始化代码根据其各自的下载完成情况来确定执行顺序。
这种高度并行系统的最终结果是,多个Pageletsr的不同执行阶段同时进行。例如,浏览器可以正在下载三个Pagelets CSS的资源,同时已经显示另一Pagelet内容,与此同时,服务器也在生成新的Pagelet。从用户的角度来看,页面是逐步呈现的。最开始的网页内容会更快的显示,这大大减少了用户的对页面延时的感知。如果您要自己亲眼看到区别,你可以尝试以下连结: 传统模式和BigPipe。第一个链接是传统模式单一模式显示页面。第二个链接是BigPipe管道模式的页面。如果您的浏览器版本比较老,网速也很慢,浏览器缓存不佳,哪么两页之间的加载时间差别将更加明显。
Nov 25
underscore前端函数库
Grunt打包压缩工具
bluebird promise
Nov 20
Highslide JS
BIG-IP是f5公司的一系列硬件产品,它的主要职能就是对进出此设备的网络流量进行管理。
最适宜用在需要对ip流量和web访问进行管理的环境下,比如,web访问的负载均衡;ssl认证得统一管理(把ssl做到big-ip上来,解放服务器得一部分性能);

总体说,big-ip能对所有进出它的ip流量,进行管理和监控;
具体怎样实现呢?

     |----------------------------------|
     | ________ | ________
     |                              |-->node1| | |-->server1|
客户机  --> |real server-->|-->node2|-|->|-->server2|
     |                              |-->node3| | |-->server3|
     | -------------- | ---------   |  pool    |
     |-----------------------------------|
BIG-IP

在BIG-IP应用中,有几个对象:
1.Virtual Server:这是Big-ip对外的窗口,客户端能见到的服务器。
2.node:这是Big-ip对内的窗口,一个node对应一个真正的服务器。一个node可以提供多种服务,每一种服务器对应pool里的一个member。
3.pool:这是node的集合,一个virtual server对应一个或多个pool。virtual server把客户端的请求发到对应的pool里,pool根据负载算法,把请求发给node的一个服务(node可以提供多种服务)。

为了增强big-ip的管理功能,在整个过程中,都可以对ip流做一些动作,又有了下面2个名词。
1.profile:这是作用在real server上的过滤动作,也就是对进入real server的流量进行分类,然后采取特定的动作。
这个分类可以有好多种标准,按提供的服务分类,按协议分类等等。
默认情况下,big-ip已经分了好多类,可以在这个基础上,扩展profile,但是不建议修改。比如,把http流量都换一个标头。
2.rules:为了增强real server处理流量的动作,可以使用rule,进行脚本编程。使得自己控制real server对流量的处理。最常见的就是控制流量流向非缺省的pool。

学习big-ip的主要操作:
登陆:
添加、修改、删除real server;local traffic-->virtual server-->create。
添加、修改、删除pool;local traffic-->pool-->new。
添加、修改、删除node;local traffic-->node-->new。
修改负载平衡算法;
开启和关闭地址转换功能;
Nov 20
http://builtwith.com/网站域名
赶紧试试吧,
例如我看一个网站他的技术框架
Highslide JS
Nov 16
app开发讲就的是少请求,这样就需要更多的合并,通过一个url后面加带js或者css路径进而输入一个压缩合并的文件不失为一个好的idea,而Minify把CSS和JS压缩和削减给了我们一个思路,目前很多的公司的app都使用了这种手法,例如携程、同程的hybrid app,webapp等
Minify把CSS和JS压缩和削减(Minify:去掉空格回车符等),以及把多个CSS,JS文件整合到一个文件里。不要以为你的大带宽没有必要进行这类优化。使用它的理由更重要的是文件合并,而不是压缩,而是文件整合,这样可以减少浏览器端不断发出新的连接请求,就像FTP服务器一样,多个小文件和一个大文件耗时是不一样的。

Minify是用PHP写的,项目地址 http://code.google.com/p/minify/

安 装
   1. 下载最新的Minify然后解压缩到minify目录。
   2. 复制"min"目录到你的DOCUMENT_ROOT.

基本用法
假设你有http://localhost/a.js,http://localhost/b.js两个文件。那么现在,你可以使用http://localhost/min/?f=a.js,b.js,看看浏览器返回结果,是不是minify的两个js文件的内容?

附译min目录下的README.txt
引用

该目录中的文件包含默认Minify设置,旨在简化整合您的网站。Minify将合并削减JavaScript或CSS文件,并进行HTTP压缩和缓存头。

推 荐
建议修改config.php中设置$min_cachePath到一个PHP可写目录。这将提高性能。

GETTING STARTED
最快的开始Minify的方法是使用Minify Builder应用程序的URI
访问您的网站:http://example.com/min/builder/

压缩单个文件
比方说,你要服务于这个文件:
  http://example.com/wp-content/themes/default/default.css
下面是“Minify网址”该文件:
  http://example.com/min/?f=wp-content/themes/default/default.css

换句话说,“f”参数设置为从WEB根路径下的目标文件(不需要路径/)”。由于CSS文件可能包含相对URI,Minify会自动通过重写机制找到它们。

合并多个文件到一个文件下载
用','分隔f参数的每一个文件名。
比如,有如下CSS文件:
  http://example.com/scripts/jquery-1.2.6.js
  http://example.com/scripts/site.js
您可以通过Minify结合起来:
  http://example.com/min/?f=scripts/jquery-1.2.6.js,scripts/site.js

简化基本路径
如果你合并的文件共享同一父目录,你可以使用b参数设置的f参数的基本目录(同样不包括前导或者后缀/字符)。
例如,以下两种写法效果相同:
  http://example.com/min/?f=scripts/jquery-1.2.6.js,scripts/site.js,scripts/home.js
  http://example.com/min/?b=scripts&f=jquery-1.2.6.js,site.js,home.js

在Html中使用MINIFY
在(X)HTML文件,不要忘记将&替换为&

指定允许的目录
默认情况下,Minify不会有任何DOCUMENT_ROOT范围内的*.css/*.js文件。如果你希望限制Minify存取某些目录,在config.php中设置
$min_serveOptions ['minApp'] ['allowDirs']数组。例如:限制到/js和/themes/default目录,使用:
$min_serveOptions['minApp']['allowDirs'] = array('//js', '//themes/default');  


"组":更快的性能和更好的网址
为了获得最佳性能,编辑groupsConfig.php中的预指定文件组,下面是一个例子配置:
return array(  
    'js' => array('//js/Class.js', '//js/email.js')  
);  

以上预指定js将结果是合并了如下文件:
  http://example.com/js/Class.js
  http://example.com/js/email.js
现在,您可以如此简化URL:
  http://example.com/min/?g=js
  
组:指定document_root目录以外的文件
在groupsConfig.php阵中,//是指向DOCUMENT_ROOT,但你也可以指定从系统的绝对目录路径或相对于document_root的相对目录:
return array(  
  'js' => array(  
    '//js/file.js'            // file within DOC_ROOT  
    ,'//../file.js'           // file in parent directory of DOC_ROOT  
    ,'C:/Users/Steve/file.js' // file anywhere on filesystem  
  )  
);  

未来过期HTTP头
Minify可以发送未来(一年)过期HTTP头。要启用该功能,您必须添加一个数字到URIs(例如/min/?g=js&1234 or /min/f=file.js&1234),每当源文件修改时改变该数字。如果你使用SVN/CVS,你可以考虑使用修订版号作为该数字。

如果使用"组"来合并压缩你的文件,可以使用工具函数Minify_groupUri()来得到一个“版本”的URI。例如:
// 之前确保min/lib目录设置到include_path  
// add /min/lib to your include_path first!  
require $_SERVER['DOCUMENT_ROOT'] . '/min/utils.php';  
$jsUri = Minify_groupUri('js');    
echo "";  


调试模式
在调试模式下,Minify不压缩文件,而是发送合并后的带有行号的文件。要启用该模式,在config.php中设置为$min_allowDebugFlag为true,并增加"&debug=1" 到你的URIs.
例如:/min/?f=script1.js,script2.js&debug=1

注:对于该模式,注释风格的字符串正则表达式可能会导致问题。


把min目录上传根目录,根目录打开http://example.com/min/

Note: Please set $min_cachePath in /min/config.php to improve performance.

设置/min/config.php文件  ,$min_cachePath 有3个选择。

//$min_cachePath = ‘c://WINDOWS//Temp’;
//$min_cachePath = ‘/tmp’;
//$min_cachePath = preg_replace(‘/^//d+;/’, ”, session_save_path());

选择第2个,去除//  .设置tmp属性777

在显示的界面中加入你想合并压缩的 js/css 路径,点击 ‘Update’ 之后会为你生成一个 url,如:http://localhost/min/b=googletesting/js& f=mootools.js,iAction.js,iAjax.js,global.js

css和JS分别合并,2个地址。如果需要组合的文件很多,url 就会变得很长,Minify 支持 group,可以将这些文件分组,这样 url 中只需指定 g=group名字 就可以了。

安装完毕后删除min/builder/index.php  文件。防止其他人登陆!后期如需编辑再次上传!
Nov 16

Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。

Nov 15
项目已经进行到第三个版本了,这里总结下开发的一些想法
1、无论什么技术,适合自己的才是最好的,必须选择开发人员能短期接受的技术,这样在后续的项目中可以进行迭代;
2、在设计之初关注扩展,性能是非常有必要的事情;
3、与第三方耦合必须设计完善的协议把控风险;
4、作为产品经理前期要和项目负责人,业务人员充分沟通;
Pages: 9/282 First page Previous page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Next page Final page [ View by Articles | List ]