Pages: 18/282 First page Previous page 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Next page Final page [ View by Articles | List ]
Nov 30

2014 十月底在巴黎举行的ng-europe大会上,Angular团队为与会者介绍了即将到来的AngularJS 2.0版本的细节。新版本对1.x版本进行了重大的颠覆,当前还没有任何迁移指南,此外它还是基于一个名为AtScript的新语言进行开发的。

对于熟悉Angular 1.X版本的开发者来说,他们将看到一个完全不同的框架,并且必须学习一种新的架构。在一堂关于版本2.0的变更的讲座中,Igor Minar 和 Tobias Bosch介绍了新的模板语法:

http://cdn3.infoqstatic.com/styles/i/green_border.jpg) -29px 0px repeat-y rgb(244, 244, 244);"><input type="text" [value]="firstName"><button (click)="addPerson()">Add</button>

这种新语法将数据绑定到元素的属性(property)上,而不是特性(attribute)上。这就允许你使用以下语法:

http://cdn3.infoqstatic.com/styles/i/green_border.jpg) -29px 0px repeat-y rgb(244, 244, 244);"><input type="checkbox" [checked]="someProperty">

看上去类似于标准的HTML,但这个复选框元素不会暴露出checked特性。新的模板引擎将数据绑定到元素的属性上,即使这些属性并非由DOM所暴露出的特性。

与新架构引起的其它剧变相比,新的模板语法只是一个相对较小的改动。与会者之一的Michael Bromley描述了一些新版本的一些破坏性改动,版本2.0取消了1.X中的以下概念

        
  • 控制器(Controller)
  •     
  • (Directive定义对象)
  •     
  • $scope
  •     
  • angular.module
  •     
  • jqLite
Nov 30

 随着redis的发展,越来越多的架构用它取代了memcached作为缓存服务器的角色,它有几个很突出的特点:

1. 除了Hash,还提供了Sorted Set, List等数据结构
2. 可以持久化到磁盘
3. 支持cluster (3.0)

它的性能和memcached不相上下,再加上流行的其他组件(比如队列)也会用到redis,从架构简单出发,已经没有必要混用redis和memcached了。

写篇短文介绍一下用redis作为缓存服务器配置时候需要注意几个点。

Redis配置

作为缓存服务器,如果不加以限制内存的话,就很有可能出现将整台服务器内存都耗光的情况,可以在redis的配置文件里面设置:

# 限定最多使用1.5GB内存maxmemory 1536mb

如果内存到达了指定的上限,还要往redis里面添加更多的缓存内容,需要设置清理内容的策略:

# 设置策略为清理最少使用的key对应的数据maxmemory-policy allkeys-lru

清理策略有多种,redis的官方文档有一篇很详细的说明: http://redis.io/topics/lru-cache

Redis监控

redis提供了INFO这个命令,能够随时监控服务器的状态,只用telnet到对应服务器的端口,执行命令即可:

telnet localhost 6379info

在输出的信息里面有这几项和缓存的状态比较有关系:

keyspace_hits:14414110keyspace_misses:3228654used_memory:433264648expired_keys:1333536evicted_keys:1547380

通过计算hits和miss,我们可以得到缓存的命中率:14414110 / (14414110 + 3228654) = 81% ,一个缓存失效机制,和过期时间设计良好的系统,命中率可以做到95%以上,对于整体性能提升是很大的。
used_memory,expired_keys,evicted_keys这3个信息的具体含义,redis的官方也有一篇很详细的说明:http://redis.io/commands/info

有个ruby gem叫redis-stat,它利用INFO命令展现出更直观的信息报表,推荐:
https://github.com/junegunn/redis-stat

 

 

优化Rails的缓存配置

Rails在用redis作为缓存的时候,配置很简单,官方文档是用schema的方式来写的:

config.cache_store = :redis_store, "redis://localhost:6379/0/cache"

由于实在太简单了,很多人就直接用这个默认设置了,但实际上还有一些很有用的参数可以通过hash options的方式来写,比如压缩超过32K的数据压缩以后再放入缓存,再比如设置默认所有的key失效时间为8小时:

config.cache_store = :redis_store, {:host => 'redis.server', :port => 6379, :compress => true, :expires_in => 8.hours, :compress_threshold => 32.kilobytes}

用一个实际案例来作为例子,一台redis缓存服务器在优化配置之前,占用4.2G左右的内存,缓存命中率在70%左右。
我们先在服务器上执行BGSAVE命令,将内存dump下来,然后用 https://github.com/sripathikrishnan/redis-rdb-tools 这个工具,将dump的数据,解析成csv文件:

rdb -c memory /var/redis/6379/dump.rdb > memory.csv

用excel打开分析,按key进行排序和统计,我们可以看到哪一些类型的缓存在服务器上最多,调整这个类型缓存的失效时间和失效机制,再通过redis-stat来观察进行微调,提高整体的命中率。
通过分析占用内存比较大的key,发现有30%左右的相同类型key,用了95%的内存,这些缓存大部分是html的片段缓存,通过设置compress_threshold和compress参数,让整体内存占用从4.2G,下降到了1.3G。

Nov 30
Ruby
Quotation

ruby  [英]'ru:bɪ
[美]ˈrubi
n.  红宝石,红玉;红宝石色,深红色;英细铅字;红葡萄酒
adj.  红宝石的;红宝石色的
vt.  使带红宝石色;把…弄红;把…涂染成红色

一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言,在20世纪90年代由日本人松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。
Highslide JS
Ruby 是开源的,在Web 上免费提供,但需要一个许可证。[1]
Ruby 是一种通用的、解释的编程语言。
Ruby 是一种真正的面向对象编程语言。
Ruby 是一种类似于 Python 和 Perl 的服务器端脚本语言。
Ruby 可以用来编写通用网关接口(CGI)脚本。
Ruby 可以被嵌入到超文本标记语言(HTML)。
Ruby 语法简单,这使得新的开发人员能够快速轻松地学习 Ruby。
Ruby 与 C++ 和 Perl 等许多编程语言有着类似的语法。
Ruby 可扩展性强,用 Ruby 编写的大程序易于维护。
Ruby 可用于开发的 Internet 和 Intranet 应用程序。
Ruby 可以安装在 Windows 和 POSIX 环境中。
Ruby 支持许多 GUI 工具,比如 Tcl/Tk、GTK 和 OpenGL。
Ruby 可以很容易地连接到 DB2、MySQL、Oracle 和 Sybase。
Ruby 有丰富的内置函数,可以直接在 Ruby 脚本中使用。
Quotation

完全面向对象
在Ruby语言中,任何东西都是对象,包括其他语言中的基本数据类型,比如整数
变量没有类型
Ruby的变量可以保存任何类型的数据。
任何东西都有值
不管是数学或者逻辑表达式还是一个语句,都会有值。
ruby语言很优雅,可以做到不需要注释就可以读懂。


Ruby的变量有一定的规则,以$开头的一定是全局变量,以@开头的都是实例变量,而以@@开头的是类变量。常数则以大写字母开头;这种方法,对文本编辑器的命令补全很有帮助,如在vim下先键入$及开头字母,再敲击Ctrl+p,则可专门补全本文件以及关联文件中的全局变量,perl与php亦有此优点。
已经定义的类可以在运行时修改
Ruby是动态语言,你可以在程序中修改先前定义过的类。 也可以在某个类的实例中定义该实例特有的方法,这叫做单例方法。

使用Ruby可以写出简短而又功能强大的代码
#下面的方法用来完成两个矩阵的乘积

注:ruby标准库中已包含矩阵库 Matrix
Quotation

语法简单
普通的面向对象功能(类,方法调用等)
特殊的面向对象功能(Mixin,特殊方法等)
操作符重载
错误处理功能
迭代器和闭包
垃圾回收
动态载入(取决于系统架构)
可移植性高.不仅可以运行在多数UNIX上,还可以运行在DOS,Windows,Mac,BeOS等平台上
适合于快速开发,一般开发效率是JAVA的5倍
Nov 26
Highslide JS
OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。oAuth是Open Authorization的简写。
阮一峰 在他的博文中对OAuth有很好的描述,下面的附件是他博文的网页存档,也可以直接访问他的页面查看http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
百度百科:http://baike.baidu.com/view/3948029.htm?fr=aladdin
Download ( 249 downloads)

先名词解释一下:

    OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。

    REST,即REST(Representational State Transfer表述性状态转移)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。


    OAUTH 场景说明:
Quotation
    M是一个电子商务网站,类型于京东,提供商品在线购物服务。

    W是一个SNS网站,也类型于Weibo。

    U是一个普通的购物者,C有在W网注册用户。
    U想去M网站看上了几样东西,打算购买,发现只能注册用户才能购买,但是U不想注册太多帐号;但是U发现M网站上面支持W的帐号直接登录。点击了带有W网站标示的链接,跳到了W网站,输入了帐号信息,返回到M网站上面,然后M网站自动给U登录(注册)了。在此过程中M一直不知道U的帐号信息,除M网站认为可以公开的信息,然后U完成了余下的购物流程。



    REST场景说明:
Quotation

    M是一个电子商务网站,类型于京东,提供商品在线购物服务。

    B是一个移动设备或者其他的电子商务网站(渠道)。

    B想为M拓展市场,M也同意,于是M为B向其开放数据API,有些是公开API,有些则需要安全登录信息。最终合作成功,B开发了各种移动APP,网站及其他应用。



   OAUTH和REST的区别:

   OAUTH过程中需要U同意后才能M获得W提示信息。REST场景过程中的角色没有U,只需要M同意开放权限即可。



    附上两个php的开源项目

     OAUTH : http://code.google.com/p/oauth-php/

     REST:https://github.com/philsturgeon/codeigniter-restserver
Nov 23
Anthem.net是一种新的AJAX技术,它主要是提供了一个新控件库,库中包含了大量常用控件,如Button、Calendar、CheckBox等等,到目前为止为ASP.NET提供了24种新控件,实用于ASP.NET 1.0 和 ASP.NET 2.0 。
Anthem.net的所有技术都是开源的,源代码下载地址为http://nchc.dl.sourceforge.net/sourceforge/anthem-dot-net/anthem-1.1.0.zip
Anthem.net技术的原理简单介绍:
让每个控件都有独立的信息提交能力,
比如在一个Button的Click事件中
private void Button1_Click(object sender, System.EventArgs e)
{
TextBox1.Text = "OK";
TextBox1.UpdateAfterCallBack = true;
}
运行的页面上,你看不到刷新,TextBox1就改变了。
其实在编译的过程中,由于我们使用的是Anthem.net控件,它会自动产生大量的javascript脚本,来实现异步交互。
那么我们只需要和往常一样在后台中写每个事件下的操作,至于是不是异步交互,我们都不用管了。
不足的是,这个开源技术目前只是1.0版本,目前只有24种可用控件,自定义控件不能直接实现独立提交的接口。
和传统的ajax技术相比,它有以下优点:
1、不需要任何技术升级,以前不会使用ajax技术的人员,按照以往的编程方式就可实现异步交互
2、支持ASP.NET 1.0 和 ASP.NET 2.0
3、开源技术,如果深入研究,也能开发出自己的控件
Anthem.NET的Callback方式。
Nov 16

 http://blog.csdn.net/yanghua_kobe/article/details/17199417

 

 

项目简介

 

这是一个资产管理项目,主要的目的就是实现对资产的无纸化管理。通过为每个资产生成二维码,来联合移动终端完成对资产的审核等。这个项目既提供了Web端的管理界面也提供移动端(Andorid)的资产审核、派发等相关功能。
我们用Node.js构建该项目的Web端以及移动端的Serveice API。

项目主框架:Express 简介

 

 

Express 是一个非常流行的node.js的web框架。基于connect(node中间件框架)。提供了很多便于处理http请求等web开发相关的扩展。
Express简单的结构图:

 

Express的特性:

        
  • 基于Connect构建
  •     
  • 健壮的路由
  •     
  • 提供丰富的HTTP处理方法
  •     
  • 支持众多视图模板引擎(14+)
  •     
  • 内容协商
  •     
  • 专注于提供高性能
  •     
  • 环境基于配置
  •     
  • 快速构建可执行的应用程序
  •     
  • 高测试覆盖率

前端框架简介

Bootstrap

Bootstrap是Twitter推出的一个用于前端开发的开源工具包。它由Twitter的设计师MarkOtto和JacobThornton合作开发,是一个CSS/HTML框架。Bootstrap是简洁、直观、强悍的前端开发框架,让web开发更迅速、简单。
同时,很多基于Bootstrap的开源插件也让Bootstrap社区更加活跃。
最新的Bootstrap3提供了非常强的定制化特性。包括Less,jQuery插件等。
Bootstrap 为您提供了所有这些基本的模块- Grid、Typography、Tables、Forms、Buttons和Responsiveness。
此外,还有大量其他有用的前端组件,比如Dropdowns、Navigation、Modals、Typehead、Pagination、Carousal、Breadcrumb、Tab、Thumbnails、Headers等等。
有了这些,你可以搭建一个Web 项目,并让它运行地更快速更轻松。
此外,由于整个框架是基于模块的,你可以通过定制你自己的CSS来使得它满足你的特殊需求。
它是基于几种最佳实践,我们认为这是一个很好的开始学习现代Web 开发的时机,一旦你掌握了HTML 和JavaScript/jQuery 的基本知识,你就可以在Web 开发中运用这些知识。

Nov 16
程序的人,往往需要分析所写的SQL语句是否已经优化过了,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了。

通过设置STATISTICS我们可以查看执行SQL时的系统情况。选项有PROFILE,IO ,TIME。介绍如下:

效果如图所示:
Highslide JS

另外,也可以通过手工添加语句,计算执行时间来查看执行语句花费了的时间,以判断该条SQL语句的效率如何:
Nov 12
岁月,带走了纯真;时光,苍老了容颜;阅历,成熟了心智,沉淀下来的,是一份淡泊的心境。云有云的漂泊;风有风的流浪,人生之旅,各有各的方向。不要求于人,不苛求于己。那些繁华喧嚣,那些功利伪善,那些沽名钓誉,本就不是人生应有的颜色。敢于面对,才是心的强大;勇于放下,既是心的豁达。
  
  生命不在年龄,贵在心理年轻;生活不在金钱,贵在怡乐心情;装扮不在时尚,贵在秀外慧中;膳食不在多寡,贵在营养均衡;居室不在大小,贵在宽阔心胸;养生不在冬夏,贵在理肌防病;情趣不在雅俗,贵在心灵提升;朋友不在多少,贵在真情相拥;锻炼不在朝暮,贵在持之以恒。
  
  走好脚下的路,要对得起自己,要善待你身边的人。人生的目标,在于向前,也在于拐弯。人生的成长,在于学习,也在于经历。人生的修养,在于顿悟,也在于静修。人生的态度,在于进取,也在于知足。人生的幸福,在于得到,也在于放下。人生的质量,在于内容,也在于积淀。人生的秘诀,在别人身上也在于你。
  
  慢慢的才知道:人这一辈子,要经得起谎言,受得了敷衍,忍得住欺骗,忘得了诺言。慢慢的才知道:坚持未必是胜利,放弃未必是认输,与其华丽撞墙,不如优雅转身。给自己一个迂回的空间,学会思索,学会等待,学会调整。人生,有很多时候,需要的不仅仅是执着,更是回眸一笑的洒脱。
  
  人生三重境界:敢于承认、敢于面对、敢于担当。人生三乐:知足常乐、自得其乐、助人为乐。人生三错:追求完美、责备求全、苛求圆满。人生三为:和为贵、善为本、诚为先。人生三变:乐极生悲、无事生非、绝处逢生。人生三幸:衣食无忧、身心健康、亲情无限。人生三有:真心爱人、知心朋友、自已。
  
  有些事,笑笑就能过去。有些事,过一阵就能让你笑笑。匆匆,是光阴,忙忙,是人生。经年后,渐渐明白,那些可以遗忘的,都是对人生无关紧要的,不想回忆或再现的。从不怨恨,也不抱怨。过去的,就让它过去吧,无论怎样美好,怎样伤感,我们,始终回不到过去,走不进曾经。重要的是今天,明天。
  
  人生1条路:走自己的路,也要留路给别人。
  
  人生2件宝:身体好、心不老。
  
  人生3种朋友:肯借钱给你、参加你的婚礼、参加你的葬礼。
  
  人生有4苦:看不透、舍不得、输不起、放不下。
  
  人生5句话:再难也要坚持,再好也要淡泊,再差也要自信,再多也要节省,再冷也要热情。
  
  人生6财富:身体、知识、梦想、信念、自信、骨气。
Pages: 18/282 First page Previous page 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Next page Final page [ View by Articles | List ]