排版引擎和JS引擎

排版引擎(Layout Engine)

主要是是用来让网页里浏览器绘制网页。目前流行的排版引擎如下:

WebKit 

  - Apple Safari

  - Google Chrome

Trident

  - Internet Explorer

Gecko

  - Firefox

 

JS引擎(JS Engine)

顾名思义,JS engine是专门用来处理JS脚本的程序。

主流的浏览器的JS engine如下:

Mozilla

  SpiderMonkey - Firefox 1.0~3.0

  Rhino - 由Mozilla基金会管理,open source,完全以java编写的。

  TraceMonkey Firefox 3.5~3.6

  JaegerMonkey  Firefox 4.0 + 

  IonMonkey Firefox 18.0+

Google

简单描述位,字节和字在计算机中的表示

博客分类: 

比特:

位或者比特(Bit)也简称小b(b)。

字节:

Byte简称大B(B)。

1个字节(B) = 8个比特(b)

所以:

常说的16位电脑,它是以: 16b/8 = 2个字节 为一个存储单元存储的。

常说的32位电脑,它是以: 32b/8 = 4个字节 为一个存储单元存储的。

常说的64位电脑,它是以: 64b/8 = 8个字节 为一个存储单元存储的。

字:

字是由一个或多个字节组成的。

因为计算机里最小的处理单位是:字节(B),所以字肯定是字节的整数倍。一般来说,英文状态下,键盘上能敲出来的字都是一个字节的。但是如果是中文或者日文,一般是2个字节的。

但是,如果你是UTF8编码格式的话,字节数是1-6范围内的。因为UTF8是由1-6字节编码UNICODE字符。

 

面向对象编程的基本原则

博客分类: 

1、单一职责原则(Single-Resposibility Principle):

对一个类而言,应该仅有一个引起它变化的原因。本原则是我们非常熟悉地"高内聚性原则"的引申,但是通过将"职责"极具创意地定义为"变化的原因",使得本原则极具操作性,尽显大师风范。同时,本原则还揭示了内聚性和耦合生,基本途径就是提高内聚性;如果一个类承担的职责过多,那么这些职责就会相互依赖,一个职责的变化可能会影响另一个职责的履行。其实OOD的实质,就是合理地进行类的职责分配。

2、开放封闭原则(Open-Closed principle):

"软件实体应该是可以扩展的,但是不可修改。"本原则紧紧围绕变化展开,变化来临时,如果不必改动软件实体裁的源代码,就能扩充它的行为,那么这个软件实体设计就是满足开放封闭原则的。如果说我们预测到某种变化,或者某种变化发生了,我们应当创建抽象类来隔离以后发生的同类变化。在Java中,这种抽象是指抽象基类或接口;在C++中,这各抽象是指抽象基类或纯抽象基类。当然,没有对所有情况都贴切的模型,我们必须对软件实体应该面对的变化做出选择。

3、Liskov替换原则(Liskov-Substituion Principle):

每天看上几遍

博客分类: 

 

一、钱是给内行人赚的——世界上没有卖不出的货,只有卖不出的货的人。

二、想干的人永远在找方法,不想干的人永远在找理由;世界上没有走不通的路,只有想不通的人。

三、销售者不要与顾客争论价格,要与顾客讨论价值。

四、带着目标出去,带着结果回来,成功不是因为快,而是因为有方法。

五、没有不对的客户,只有不够的服务。

六、营销人的职业信念:要把接受别人拒绝作为一种职业生活方式。

七、客户会走到我们店里来,我们要走进客户心里去;老客户要坦诚,新客户要热情,急客户要速度,大客户要品味,小客户要利益。

八、客户需要的不是产品,而是一套解决方案,卖什么不重要,重要的是怎么卖。

九、客户不会关心你卖什么,而只会关心自己要什么。没有最好的产品,只有最合适的产品。

 

活着,人越成长越孤单

博客分类: 

一个人坐在空荡荡的办公室,思绪在儿时,中学,大学和现在来回的穿梭。

儿时的童真,无拘无束的嬉戏打闹,总是有那么多天真灿烂的笑脸;

青春期的叛逆,冲动,骄傲,悔恨编织了青春期一幕幕往事;

曾经的兄弟朋友是那么的贴心纯朴,一个电话,一句问候就可以心领神会。

可是,人慢慢长大了,童年的玩伴,曾经的兄弟们渐渐淡出视线,为了各自的理想和追求默默打拼着。无奈,生活面前再强的人都要学会低头。

可如今的同事,真正能做兄弟的有多少?谁真的是在用心说话?还是只是客套罢了?

慢慢的习惯一个人挣扎,一个人肩负一切。习惯躲在自己的世界里,慢慢就会散失一些基础的交际能力。

 


 

笔记

——周笔畅

我看见天空很蓝 就像你在我身边的温暖

生命有太多遗憾 人越成长越觉得孤单

我很想飞 多远都不会累 才明白爱的越深心就会越痛

我只想飞 在我的天空飞 我知道你会在我身边

回忆的画面 记录的语言 爱始终是你手中长长的线

Chrome Opera 中 for-in 语句遍历出对象属性的顺序与定义的不同

博客分类: 

问题描述

Chrome & Opera 中使用 for-in 语句遍历对象的属性时,遍历出的属性顺序与对象定义时不同。所以在使用 for-in 来处理属性顺序依赖的问题时常常会出错。

问题分析

Chrome Opera 中使用 for-in 语句遍历对象属性时会遵循一个规律,它们会先提取所有 key 的 parseFloat 值为非负整数的属性, 然后根据数字顺序对属性排序首先遍历出来,然后按照对象定义的顺序遍历余下的所有属性。其它浏览器则完全按照对象定义的顺序遍历属性。

示例:

页面中实现无刷新上传文件

博客分类: 

在web中实现无刷新上传文件有几种方式:

 

1. 使用HTML5中的FormData和fileReader实现。但是这种方式受限于浏览器。如:IE只适用于IE10。

可参考:http://net.tutsplus.com/tutorials/javascript-ajax/uploading-files-with-ajax/

2. 使用隐藏的iframe提交。

可参考:http://confi.blog.51cto.com/5271328/1174071

 

最近,在Drupal 7里发现内容类型(content type)为image的字段都可以实现无刷新上传。所以很想知道它是怎么实现的。经过研究发现,其实Drupal7内引入了一个js lib——jquery.form.js。

使用挺简单的:

index.html 

Ubuntu 中sendmail 的安装、配置与发送邮件的具体实现

博客分类: 

一、安装      

ubuntu中sendmail函数可以很方便的发送邮件,ubuntu sendmail先要安装两个包。

必需安装的两个包:

sudo apt-get install sendmail
sudo apt-get install sendmail-cf

下面几个包是可选的:

squirrelmail //提供webmail
spamassassin //提供邮件过滤
mailman //提供邮件列表支持
dovecot // 提供IMAP和POP接收邮件服务器守护进程

注意:

Ubuntu下使用最常用的mail功能,需要安装mailutils,

安装命令:sudo apt-get install mailutils  

使用带附件的功能,则还需要安装sharutils,

安装命令:sudo apt-get install sharutils;(yum install sharutils )

 

宝宝吃零食的安全等级必修

博客分类: 

家长们对零食的态度是无奈:不给吃,孩子馋得慌;给吃,又怕影响他的食欲,还怕吃出个肥胖、营养不良。那么究竟该如何正确地给孩子们吃零食呢……

     零食的3个推荐级别

    这里所说的零食是非正餐时间食用的各种少量的食物和饮料(不包括水)。我们可以把宝宝吃的零食分为10大类,根据每一类零食的营养特点和制作方式,又划分为三个推荐级,即“可经常食用”、“适当食用”、“限量食用”。

    “可经常食用”的零食

    这些零食营养素含量丰富,同时多为含有或添加低油、低盐、低糖的食品和饮料。这些食物既可提供一定的能量、膳食纤维、钙、铁、锌、维生素C、维生素E、维生素A 等人体必需的营养素,又可避免摄取过量的油、糖和盐,这些零食属于有益于健康的零食。

    “适当食用”的零食

    这些零食营养素含量相对丰富,但是却含有或添加中等量油、糖、盐等的食品和饮料。

MySQL导入/备份数据库时乱码问题

博客分类: 

前言:

MySQL的备份/恢复(导入)命令一般使用如下:

备份:

mysqldump -uUSERNAME -pPASSWORD DBNAME > FILE_BACKUP.sql

恢复(导入):

mysql -uUSERNAME -pPASSWORD DBNAME < FILE_BACKUP.sql

注:

  • USERNAME  - 数据库用户名。如:root.
  • PASSWORD - 数据库密码。如果为空空格即可,或者不写 "-p" 参数。
  • DBNAME - 数据库名。
  • FILE_BACKUP - 备份到文件的文件名。

这样就实现了备份和恢复。

 

乱码问题:

但是,如果你拿到一份别人或者从网上download下来的sql备份文件,导入之后发现有乱码,怎么办?

一般出现乱码是跟导入时的编码相关。其实很简单,导入或者备份时加一个参数(--default-character-set)就可以避免编码问题的发生。

如:

备份:

安装Eclipse PHP 插件,让已有Eclipse支持PHP

博客分类: 

想拥有支持PHP的eclipse有几种方式,其中一种就是去下载Eclipse IDE for PHP。但是假如你正在用Eclipse For Java的版本做项目呢,你不希望因为要支持PHP而去使用第二个Eclipse,怎么办呢?

 

这里有个方便的方法: 

打开Eclipse -> Help -> Install New Software,在“Work with”后面输入:http://download.eclipse.org/releases/indigo , 然后点”Add” button。然后eclipse去获取可以安装的插件列表(时间可能会有点长)。

列表显示出来时可能比较多,你可以在列表上方输入“ph”过滤下列表。

PHP 手册不能查阅的解决办法

博客分类: 

最近在PHP官网上下载了PHP中英文chm格式手册各一份 (http://www.php.net/download-docs.php),但是下完发现打开只能看到导航,内容却是看不到的。一直以为是下载的chm文件有问题,重复下载,重复出现这样的状况。

后来,我在下载页面看到了这样的提示:

几种流行的客户端MVC框架

博客分类: 

 

转自:http://www.ibm.com/developerworks/cn/web/wa-clientmvc/

简介

15 年前,许多人都使用 Perl 和 ColdFusion 之类的工具构建网站。我们经常编写可以在页面顶部查询数据库的脚本,对数据应用必要的转换,以及在同一个脚本底部显示数据。这类架构适合于向网站添加简单的 “Contact us” 表单。然而,随着应用程序变得更加复杂,这种方法无法进行相应的扩展来处理更大的复杂问题。大部分 Web 应用程序现在已经对模型-视图-控制器 (MVC) 架构进行了标准化,使用单独的代码实现业务逻辑、显示逻辑和用户交互(路由)逻辑。涌现出从 Spring MVC 到 Rails 的各种框架可以帮助您快速实现基于 MVC 的 Web 应用程序。

妈妈,我是从哪里来的?

博客分类: 

今天看到央视在采访路人“妈妈,我是从哪里来的”这个问题。

看到如下答案:

妈妈说,从肚子里来的。

路边捡到的。

石头堆里捡到的。

床底下翻出来的……

胳肢窝里掉出来的……

 

上次看到微博,有个搞笑图片也有个回答说:

冲手机话费送的~

 

 

我记得小时候,我妈说,我是从渔船上抱过来的……

 

你们有其他回答不?

建站会用到的Drupal modules大全

博客分类: 

转自:http://www.yciydong.com/thread-900-1-1.html

1.为Drupal增加视频播放功能

使用video和flowplayer

http://drupal.org/project/video

http://drupal.org/project/flowplayer

 

2.为Drupal增加邮件服务器 SMTP和PHPMailer

使用SMTP和phpmailer

http://drupal.org/project/phpmailer

http://drupal.org/project/smtp

 

3.为Drupal增加高级论坛功能

先启用7.0核心自带的Forum功能,然后安装以下模块(如果没有安装的话)

http://drupal.org/project/advanced_forum

http://drupal.org/project/ctools

亲爱的,我们可以不吵架

今天逛当当网,看到有本书叫:《亲爱的,我们可以不吵架》。重要的是它有在线试读版:

http://e.dangdang.com/html/reader.html;jsessionid=5AC4416C8E39519D5949B676A877C379?productId=1900060483&bookUid=br.132391206845118037

 

收藏下先。

页面