<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>何畏</title>
	<atom:link href="http://www.lzlu.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.lzlu.com/blog</link>
	<description>属于我的一片树叶,也是一片森林.不属于我的万木争春,也是别人的花园.</description>
	<lastBuildDate>Sun, 29 Apr 2012 14:49:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>KISSY scrollbar</title>
		<link>http://www.lzlu.com/blog/?p=818</link>
		<comments>http://www.lzlu.com/blog/?p=818#comments</comments>
		<pubDate>Sun, 29 Apr 2012 14:49:26 +0000</pubDate>
		<dc:creator>satans17</dc:creator>
				<category><![CDATA[Web开发]]></category>

		<guid isPermaLink="false">http://www.lzlu.com/blog/?p=818</guid>
		<description><![CDATA[KISSY kscroll是和承玉一起写的一个非正式KISSY组件 今天又更新了下，修复了大家在使用过程中遇到的小问题，增加了对键盘的操作，主要是 up down home end几个键 借这个机会宣传下 当时也是因为项目需要才决定要自己写一个，网上类似的组件不少，不过大概看了下，高质量的满足需求的几乎没有 KSCROLL的默认行为已经模拟得和原生scrollbar几乎一样 - 主要有以下几个特性 - 支持滚轮 - 拖拽 - 上下箭头加速滚动 - 皮肤定制 - 支持hover,active两种状态 - 自适应内容区大小调整 - 支持键盘操作 - 和原生scroll保持一致 demo：http://docs.kissyui.com/kissy-gallery/gallery/kscroll/1.0/demo.html 源码：https://github.com/kissyteam/kissy-gallery/blob/master/gallery/kscroll/1.0/index.js 欢迎试用]]></description>
		<wfw:commentRss>http://www.lzlu.com/blog/?feed=rss2&#038;p=818</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在网页中实现“截屏”上传图片功能</title>
		<link>http://www.lzlu.com/blog/?p=810</link>
		<comments>http://www.lzlu.com/blog/?p=810#comments</comments>
		<pubDate>Mon, 19 Dec 2011 13:37:15 +0000</pubDate>
		<dc:creator>satans17</dc:creator>
				<category><![CDATA[大千世界]]></category>

		<guid isPermaLink="false">http://www.lzlu.com/blog/?p=810</guid>
		<description><![CDATA[最近手上负责的一个web产品做了一个用户调研，用研那边反馈用户最期待的两个功能之一是“希望有与QQ聊天一样的截图功能”。 对于web来说，用户提到这个需求，我们起初的想法可能都是：除非开发嵌入式控件，不然根本无法实现。 不过随着webkit等内核的浏览器兴起，我们完全可以借助W3C的一些API，和一些变通的方式实现这个功能。 今天就讲讲如何在web页面中实现“截屏”并且上传。 这里“截屏”之所以要打引号，是因为确实无法实现“截屏”，但是我们可以通过变通方式实现，比如客户短聊天软件，QQ，旺旺等，这些软件截屏之后，数据都会在“剪切板”中保存一份副本，这里其实主要是讲如何获取”剪切板”中的图片上传，并且显示在网页上。 我们需要用到以下两个功能 Clipboard API and events This document describes APIs for clipboard operations such as copy, cut and paste in web applications. File API This specification provides an API for representing file objects in web applications, as well as programmatically selecting them and accessing their data. 有了这些资料，其实实现起来也是so easy!! 将下面的代码保存成html页面,然后使用QQ或者旺旺随便截一个图，回到该页面，ctrl+v，你会发现神奇的事情发生了 //因为安全原因，浏览器为我们提供了onpaste事件，读取剪贴板数据仅能在该事件发生时在事件处理程序中进行。 document.body.onpaste [...]]]></description>
		<wfw:commentRss>http://www.lzlu.com/blog/?feed=rss2&#038;p=810</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Node.js下实现LessCss多文件编译打包</title>
		<link>http://www.lzlu.com/blog/?p=803</link>
		<comments>http://www.lzlu.com/blog/?p=803#comments</comments>
		<pubDate>Thu, 15 Dec 2011 10:10:01 +0000</pubDate>
		<dc:creator>satans17</dc:creator>
				<category><![CDATA[大千世界]]></category>

		<guid isPermaLink="false">http://www.lzlu.com/blog/?p=803</guid>
		<description><![CDATA[LessCss的思路很不错，可以让我们像编程一些写css 但是lesscss源码包中只有“编译”less文件的示例，没有多文件combo的示例 实际应用中这个功能还是很有必要的，类似Bootstrap中的“Makefile”功能 但是我的需求比他这个更复杂，需要支持多文件夹深度遍历 其实用nodejs解决这个问题还是so easy的~ 直接上代码 var fs = require('fs'), util = require('util'), less = require('../lib/less'); combocss("./dpl/tabs","./dpl/test.css"); //两个参数，要打包的路径，希望生成的文件路径 function combocss(path,combofile){ fs.writeFile(combofile, "&#60;!--..--&#62;", function (err) {}); mkcss(path,combofile); } function mkcss(path,combofile){ fs.readdirSync(path).forEach(function (file) { //如果是文件夹，继续遍历 if(fs.lstatSync(path+"/"+file).isDirectory()){ //arguments.caller(path+"/"+file); mkcss(path+"/"+file); } //处理文件 else{ //不是less文件忽略 if (! /\.less/.test(file)) { return } //开始处理编译less文件 var str = fs.readFileSync(path+"/"+file, 'utf-8'); //less to [...]]]></description>
		<wfw:commentRss>http://www.lzlu.com/blog/?feed=rss2&#038;p=803</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Node.js学习系列笔记：Events 事件模块</title>
		<link>http://www.lzlu.com/blog/?p=796</link>
		<comments>http://www.lzlu.com/blog/?p=796#comments</comments>
		<pubDate>Wed, 07 Dec 2011 11:04:45 +0000</pubDate>
		<dc:creator>satans17</dc:creator>
				<category><![CDATA[大千世界]]></category>

		<guid isPermaLink="false">http://www.lzlu.com/blog/?p=796</guid>
		<description><![CDATA[官方文档中是这么解释Events事件模块的 Node引擎中很多对象都会触发事件：例如net.Server会在每一次有客户端连接到它时触发事件，又如fs.readStream会在文件打开时触发事件。所有能够触发事件的对象都是events.EventEmitter的实例。你可以通过require(“events”);访问这个模块。 起初看到“所有能够触发事件的对象都是events.EventEmitter的实例。”这句很迷茫，也许是翻译不好吧，按照估计，估计也是用KISSY一样，通过继承events.EventEmitter类来实现事件机制的，写了个例子实验下，果不其然，看下面的列子 var util = require("util"); var event = new require("events").EventEmitter; function Dog(name){ //event.call(this); //console.log(Dog.super_); this.name=name; } util.inherits(Dog, event); Dog.prototype.run = function(){ this.emit("run","10M/S"); } var mimi = new Dog("mimi"); mimi.on("run", function(speed){ console.log(this.name + "is running!!" + speed); }) mimi.run(); so easy!! 其实你也可以这么理解，当一个类继承了events.EventEmitter,相当于给这个类增加了addListener,removeListener等原型方法。 events.EventEmitter方法 下面简单介绍events.EventEmitter中的方法和属性 addListener(event, listener) or on(event, listener) 将一个监听器添加到指定事件的监听器数组的末尾。 mimi.on("run", function(speed){ console.log(speed); }) [...]]]></description>
		<wfw:commentRss>http://www.lzlu.com/blog/?feed=rss2&#038;p=796</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ubuntu下安装NodeJS,npm,express</title>
		<link>http://www.lzlu.com/blog/?p=792</link>
		<comments>http://www.lzlu.com/blog/?p=792#comments</comments>
		<pubDate>Wed, 07 Dec 2011 09:16:41 +0000</pubDate>
		<dc:creator>satans17</dc:creator>
				<category><![CDATA[NodeJS]]></category>

		<guid isPermaLink="false">http://www.lzlu.com/blog/?p=792</guid>
		<description><![CDATA[第一步，安装依赖包 //安装编译器和运行环境 sudo apt-get install g++ curl libssl-dev apache2-utils //安装git,如果直接下载源码，git也可以不装，下面会讲 sudo apt-get install git-core 第二步，获取node源码 1） 去官网直接下载：http://nodejs.org/#download node-v0.6.5.tar.gz //解压 tar -zxf node-v0.6.5.tar.gz //进入解压后的文件夹 cd node-v0.6.5 2） git clone git://github.com/joyent/node.git #指定迁出版本，如果不迁出安装的就是最新版本 git checkout v0.6.5 #进入node文件夹 cd node 第三步，编译，安装 1） 不指定安装路径，三步搞定 ./configure make （要持续几分钟） sudo make install 2） 指定安装路径,安装到/opt/node目录里，安装完后记得给opt/node加权限，不然运行不了 ./configure --prefix=/opt/node make sudo make install 第四步，设置环境变量 //如果不设置环境变量，你将只能在bin目录下运行node [...]]]></description>
		<wfw:commentRss>http://www.lzlu.com/blog/?feed=rss2&#038;p=792</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>IE内存泄漏检测工具JavaScript Memory Leak Detector</title>
		<link>http://www.lzlu.com/blog/?p=787</link>
		<comments>http://www.lzlu.com/blog/?p=787#comments</comments>
		<pubDate>Wed, 12 Oct 2011 06:03:03 +0000</pubDate>
		<dc:creator>satans17</dc:creator>
				<category><![CDATA[前端知识]]></category>

		<guid isPermaLink="false">http://www.lzlu.com/blog/?p=787</guid>
		<description><![CDATA[JavaScript Memory Leak Detector is a debugging tool to detect memory leaks and enforce best practices in JavaScript code when working with version of Internet Explorer older than IE8. 下载地址 下载后无需安装，可以直接使用。不过使用前要确保你安装了Script Debugger ，还需要在IE-&#62;工具-&#62;Internet选项-&#62;高级-&#62;浏览-&#62;去掉禁用脚本调试（其他）的勾选 具体用法自己看这里：http://blogs.msdn.com/b/gpde/archive/2009/08/03/javascript-memory-leak-detector-v2.aspx &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; 附另外一款名气比较大的IE内存泄漏工具：sIEve，这个作者还写过另外一款类似的工具 Drip，不过没什么功能，基本上有sIEve就够了。]]></description>
		<wfw:commentRss>http://www.lzlu.com/blog/?feed=rss2&#038;p=787</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我们为什么要使用NodeJS</title>
		<link>http://www.lzlu.com/blog/?p=782</link>
		<comments>http://www.lzlu.com/blog/?p=782#comments</comments>
		<pubDate>Mon, 01 Aug 2011 04:04:40 +0000</pubDate>
		<dc:creator>satans17</dc:creator>
				<category><![CDATA[前端知识]]></category>

		<guid isPermaLink="false">http://www.lzlu.com/blog/?p=782</guid>
		<description><![CDATA[记得前几个月有个PD同学问我：NodeJS有什么意义或者是商业价值？ 当时我对NodeJS也是一知半解，觉得它就是一个能在服务端运行javascript的环境，有Apache,IIS，有asp.net,jsp,php,ruby on rails,Nodejs不可能会有任何商业价值。 现在想想真是误人子弟 存在即合理，任何东西只要存在肯定会有他存在的价值，今天看到李牧写的“我们为什么要使用NodeJS”让我受益匪浅。 特意转一下：http://limu.iteye.com/blog/1013223 “Node.js 是服务器端的 JavaScript 运行环境，它具有无阻塞(non-blocking)和事件驱动(event-driven)等的特色，Node.js 采用 V8 引擎，同样，Node.js 实现了类似 Apache 和 nginx 的web服务，让你可以通过它来搭建基于 JavaScript 的 Web App。”]]></description>
		<wfw:commentRss>http://www.lzlu.com/blog/?feed=rss2&#038;p=782</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grids（D2开场视频）</title>
		<link>http://www.lzlu.com/blog/?p=778</link>
		<comments>http://www.lzlu.com/blog/?p=778#comments</comments>
		<pubDate>Sun, 17 Jul 2011 13:28:25 +0000</pubDate>
		<dc:creator>satans17</dc:creator>
				<category><![CDATA[大千世界]]></category>

		<guid isPermaLink="false">http://www.lzlu.com/blog/?p=778</guid>
		<description><![CDATA[本次视频收集了100多个UED同学的表情 文龙同学用canvas做了一个画图供大家涂鸦 涂鸦数据以50*30像素的形式保存，后端使用PHP将画图拼成一张大图 最后导入到视频中 很多人都参与进来了，虽然折腾，不过挺有意思]]></description>
		<wfw:commentRss>http://www.lzlu.com/blog/?feed=rss2&#038;p=778</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>有用的前端扩展</title>
		<link>http://www.lzlu.com/blog/?p=775</link>
		<comments>http://www.lzlu.com/blog/?p=775#comments</comments>
		<pubDate>Tue, 12 Jul 2011 07:19:10 +0000</pubDate>
		<dc:creator>satans17</dc:creator>
				<category><![CDATA[前端知识]]></category>

		<guid isPermaLink="false">http://www.lzlu.com/blog/?p=775</guid>
		<description><![CDATA[Blackbird: Open Source JavaScript Logging Utility Blackbird 是一款非常酷的 JavaScript 调试工具，带有一个漂亮的界面显示和过滤调试信息 http://www.gscottolson.com/blackbirdjs/ Highcharts – Interactive JavaScript charts Highcharts 是一个纯 JavaScript 编写，用于生产交互式图表的 JavaScript 库。 http://www.highcharts.com/ jStat: a JavaScript statistical library Stat是一个采用JavaScript开发的统计工具包，可以让你执行高级统计操作，而不需要专门的统计语言。 http://www.jstat.org/ highlight.js Highlight.js 是一个用于高亮显示程序代码的 JavaScript 库，简单易用。 http://softwaremaniacs.org/soft/highlight/en/ SlickGrid! SlickGrid 是一个用于构建简单的、快速、灵活的表格的库。 https://github.com/mleibman/SlickGrid/wiki/Examples]]></description>
		<wfw:commentRss>http://www.lzlu.com/blog/?feed=rss2&#038;p=775</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JsDoc Toolkit 自动化文档工具</title>
		<link>http://www.lzlu.com/blog/?p=767</link>
		<comments>http://www.lzlu.com/blog/?p=767#comments</comments>
		<pubDate>Thu, 30 Jun 2011 02:42:56 +0000</pubDate>
		<dc:creator>satans17</dc:creator>
				<category><![CDATA[大千世界]]></category>

		<guid isPermaLink="false">http://www.lzlu.com/blog/?p=767</guid>
		<description><![CDATA[JsDoc Toolkit 是一个Google code上的一个开源项目，可以自动从Javascript代码中提取注释生成格式化文档。 项目地址 http://code.google.com/p/jsdoc-toolkit/ 运行环境 JsDoc Toolkit是用Java开发的，运行时需要 Java 1.5+。 如何安装 1.安装JDK 2.设置环境变量 3.解压jsdoc_toolkit 如何使用 你可以在wiki里面看到一堆命令参数 比如在命令行中敲如下代码你可以执行jsdoc java -jar jsrun.jar app\run.js -a -t=templates\jsdoc mycode.js 但是如果每次都要敲这些实在太麻烦 把下面的代码复制到记事本中，另外为jsdoc.bat文件，放到你的项目中，然后按照注释改成你的设置 @echo off rem 关闭自动输出 echo ____ ______ ____ ____ ___ ____ echo /\ _`\ /\__ _\/\ _`\ /\ _`\ /'___`\ /\ _`\ echo \ \,\L\_\\/_/\ \/\ \,\L\_\ \ [...]]]></description>
		<wfw:commentRss>http://www.lzlu.com/blog/?feed=rss2&#038;p=767</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

