Pages: 13/282 First page Previous page 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Next page Final page [ View by Articles | List ]
Jun 16
knockoutjs,简称ko,是一个轻量级的MVVM框架,通过简易的UI绑定语法,实现动态更新UI。
主页:http://knockoutjs.com/index.html
源码:http://github.com/SteveSanderson/knockout

ko的特点:
声明式绑定:通过简洁易读的data-bind语法,将DOM元素与ViewModel关联起来。
UI自动更新:当模型(ViewModel)状态更新时,自动更新UI界面。
依赖跟踪:在模型数据间建立隐式的关系链。
模板化:快速生成复杂,可嵌套UI模型数据的函数。

更多特性:
免费开源,基于MIT许可证。
纯javascript实现,可以与任何web框架共用。
小巧,压缩精简后只有42kb,开启g-zip后只剩15kb。
无其他依赖。
支持所有主流浏览器,IE 6+,Firefox 2+,Chrome,Opera,Safari (desktop/mobile)。
完善的文档,包括API文档,在线实例,交互教程。(在官网导航也可找到)

下载
访问该页面来获取最新的knockoutjs:http://knockoutjs.com/downloads/index.html
包括用于生产环境的版本和调试版本,调试版本仅在当你打算了解ko框架工作原理时使用,请不要在生产环境中使用,因为它对外暴露了额外的不被支持的API。

安装
使用ko很简单,只需要在html文件里通过script标签引入ko的js文件,比如

Jun 16
iptables -F 的时候是不能改变原来设置的默认规则的,如果原来设置的 iptables -P INPUT DROP ,现在在远程运行一下iptables -F 的话,远程连接就会立即中断,只能到那机子旁边本地登陆运行 iptables -P INPUT ACCEPT ,这样才能再从远端连接进来。原来听说过,但没长记性,今天体验了一次,这回长记性了。
Jun 15
Highslide JS

淘宝 NPM 镜像

这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。

使用说明

你可以使用我们定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:

$ npm install -g cnpm --registry=https://registry.npm.taobao.org

或者你直接通过添加 npm 参数 alias 一个新命令:

alias cnpm="npm --registry=https://registry.npm.taobao.org \ --cache=$HOME/.npm/.cache/cnpm \ --disturl=https://npm.taobao.org/dist \ --userconfig=$HOME/.cnpmrc"  # Or alias it in .bashrc or .zshrc $ echo '\n#alias for cnpm\nalias cnpm="npm --registry=https://registry.npm.taobao.org \   --cache=$HOME/.npm/.cache/cnpm \   --disturl=https://npm.taobao.org/dist \   --userconfig=$HOME/.cnpmrc"' >> ~/.zshrc && source ~/.zshrc

安装模块

registry.npm.taobao.org 安装所有模块. 当安装的时候发现安装的模块还没有同步过来, 淘宝 NPM 会自动在后台进行同步, 并且会让你从官方 NPMregistry.npmjs.org 进行安装. 下次你再安装这个模块的时候, 就会直接从 淘宝 NPM 安装了.

$ cnpm install [name]

同步模块

直接通过 sync 命令马上同步一个模块, 只有 cnpm 命令行才有此功能:

$ cnpm sync connect

当然, 你可以直接通过 web 方式来同步: /sync/connect

$ open https://npm.taobao.org/sync/connect

其它命令

支持 npm 除了 publish 之外的所有命令, 如:

$ cnpm info connect
Jun 15
Jun 15
环境:centos6.5.0
打开控制面板
/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management

重启mq生效
service rabbitmq-server stop
service rabbitmq-server start

维护账户
新增rabbitmqctl add_user 账户名 密码
设为超级管理员rabbitmqctl set_user_tags 账户名 administrator
查看账户rabbitmqctl list_users
查看账户rabbitmqctl delete_user guest
Jun 15
之前的node httpapi一直使用forever守护,但有时候forever也会莫名奇妙的挂掉,最近尝试使用python来做守护进程(暂定为littledog),通过查收pid,如果没有就启动,但是遇到个问题,在启动的时候直接运行
#node /Service/Api/app.js
显示正常
但是在littledog里执行这句命令的时候始终无法执行
最终找到解决方案
#/usr/local/node/bin/node /Service/Api/app.js
即讲node的地址写全
May 27

 1.用途说明

free命令用来显示内存使用情况。display information about free and used memory on the system。

free 命令相对于top 提供了更简洁的查看系统内存使用情况:

其中的相关说明:

Mem:表示物理内存统计

-/+ buffers/cached:表示物理内存的缓存统计

Swap:表示硬盘上交换分区的使用情况(这里我们不去关心

系统的总物理内存:255268Kb(256M),但系统当前真正可用的内存并不是第一行free 标记的 16936Kb,它仅代表未被分配的内存。

我们使用total1、used1、free1、used2、free2 等名称来代表上面统计数据的各值,1、2 分别代表第一行和第二行的数据。

total1: 表示物理内存总量。

used1: 表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。

free1: 未被分配的内存。

shared1: 共享内存,一般系统不会用到,这里也不讨论。

buffers1: 系统分配但未被使用的buffers 数量。

cached1: 系统分配但未被使用的cache 数量。buffer 与cache 的区别见后面。

used2: 实际使用的buffers 与cache 总量,也是实际使用的内存总量。

free2: 未被使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。

2.常用参数

b 以字节为单位显示。

-k 以K字节为单位显示。默认显示。

-m 以兆字节为单位显示。

-s 每隔多少秒重复执行。可编写一个脚本用于监控。

3.数值的单位是m。

Mem开头的行:total是指内存总数。比如这台机器4G内存,实际上已经扣除掉了作为显存的部分。

used是指操作系统已经使用的内存数。这部分既包括操作系统本身使用的部分,也包括应用程序已经使用的部分,还包括缓存的部分。

free是指操作系统还没有使用的内存数。我们通常看到这部分比较小。

shared已经废弃不用,总是显示0。

buffers和cached是指作为缓存的内存数。
-/+ buffers/cache开头的行:(重点看这行)

used列是指应用程序总共使用的内存数。等于Mem.used-Mem.buffers-Mem.cached。

free列是指应用程序还未使用的内存数。这个数据才是我们需要关注的空闲可用内存数。等于Mem.free+Mem.buffers+Mem.cached。如果此行中free列的数据太小,那么就需要优化程序或者增加物理内存了。

May 19

/**
* 观察者模式应用场景实例
*
* 免责声明:本文只是以哈票网举例,示例中并未涉及哈票网任何业务代码,全部原创,如有雷同,纯属巧合。
*
* 场景描述:
* 哈票以购票为核心业务(此模式不限于该业务),但围绕购票会产生不同的其他逻辑,如:
* 1、购票后记录文本日志
* 2、购票后记录数据库日志
* 3、购票后发送短信
* 4、购票送抵扣卷、兑换卷、积分
* 5、其他各类活动等
*
* 传统解决方案:
* 在购票逻辑等类内部增加相关代码,完成各种逻辑。
*
* 存在问题:
* 1、一旦某个业务逻辑发生改变,如购票业务中增加其他业务逻辑,需要修改购票核心文件、甚至购票流程。
* 2、日积月累后,文件冗长,导致后续维护困难。
*
* 存在问题原因主要是程序的"紧密耦合",使用观察模式将目前的业务逻辑优化成"松耦合",达到易维护、易修改的目的,
* 同时也符合面向接口编程的思想。
*
* 观察者模式典型实现方式:
* 1、定义2个接口:观察者(通知)接口、被观察者(主题)接口
* 2、定义2个类,观察者对象实现观察者接口、主题类实现被观者接口
* 3、主题类注册自己需要通知的观察者
* 4、主题类某个业务逻辑发生时通知观察者对象,每个观察者执行自己的业务逻辑。
*
* 示例:如以下代码
*
*/
#===================定义观察者、被观察者接口============
/**
*
* 观察者接口(通知接口)
*
*/
interface ITicketObserver //观察者接口
{
    function onBuyTicketOver($sender, $args); //得到通知后调用的方法
}

/**
*
* 主题接口
*
*/
interface ITicketObservable //被观察对象接口
{
    function addObserver($observer); //提供注册观察者方法
}
#====================主题类实现========================
/**
*
* 主题类(购票)
*
*/
class HipiaoBuy implements ITicketObservable { //实现主题接口(被观察者)
    private $_observers = array (); //通知数组(观察者)
  

    public function buyTicket($ticket) //购票核心类,处理购票流程
{
       // TODO 购票逻辑
      

       //循环通知,调用其onBuyTicketOver实现不同业务逻辑
       foreach ( $this->_observers as $obs )
           $obs->onBuyTicketOver ( $this, $ticket ); //$this 可用来获取主题类句柄,在通知中使用
    }
  
    //添加通知
    public function addObserver($observer) //添加N个通知
{
       $this->_observers [] = $observer;
    }
}

#=========================定义多个通知====================
//短信日志通知
class HipiaoMSM implements ITicketObserver {
    public function onBuyTicketOver($sender, $ticket) {
       echo (date ( 'Y-m-d H:i:s' ) . " 短信日志记录:购票成功:$ticket
");
    }
}
//文本日志通知
class HipiaoTxt implements ITicketObserver {
    public function onBuyTicketOver($sender, $ticket) {
       echo (date ( 'Y-m-d H:i:s' ) . " 文本日志记录:购票成功:$ticket
");
    }
}
//抵扣卷赠送通知
class HipiaoDiKou implements ITicketObserver {
    public function onBuyTicketOver($sender, $ticket) {
       echo (date ( 'Y-m-d H:i:s' ) . " 赠送抵扣卷:购票成功:$ticket 赠送10元抵扣卷1张。
");
    }
}
#============================用户购票====================
$buy = new HipiaoBuy ();
$buy->addObserver ( new HipiaoMSM () ); //根据不同业务逻辑加入各种通知
$buy->addObserver ( new HipiaoTxt () );
$buy->addObserver ( new HipiaoDiKou () );
//购票
$buy->buyTicket ( "一排一号" );

?>
Pages: 13/282 First page Previous page 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Next page Final page [ View by Articles | List ]