手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:jquery

李明是谁?

李明是谁?不知道,但是ultraiso有个经典的序列号就是用户名是李明,序列号是509F-BA54-BBA6-73C5。所以,他应该也算是一个知明人物了吧。

其实我这个做个记录,因为我会用ULTRAISO相对较多,每次都要找它的注册码,还不如记录一下。。
对了,这是网络上搜到的。和我无关,如果你觉得影响了你的视觉或其他,请通知我删除。谢谢。

当然,李明再厉害,但他爸不是李刚,所以他也有失效的时候,这时候他们就派用场了:

UltraISO Premium 9.3 注册码

QUOTE:

    注册名:UW-Madison Executive Education
    注册码:1519-E287-A828-A24A

多国语言注册码:

QUOTE:

    注册名:UW-Madison Executive Education
    注册码:1519-E287-A828-A24A

简体中文注册码:

QUOTE:

    注册名:李明
    注册码:509F-BA54-BBA6-73C5

Tags: ultraiso, 李明

FlashCache

在看云风的BLOG的时候,他说游戏处理中IO的开销非常大,甚至一些IO会堵塞1~2秒。细想在WEB应用中,IO的开销就好象没有它那么高了,但一些应用了框架的系统还是会有很高的IO开销。
最早的时候,我是和同事们在考虑,是否系统在起动的时候,就把项目COPY到内存里,然后指定WEB目录为内存中的目录,当然涉及到写操作还是用管道引用到外面。这样的话,程序的IO就可以完全忽略掉了,只是,这个涉及到了,启动顺序和其他一些操作,还得写上不少的shell等,后来就完全搁浅了。这是在linux平台下。
后来,自己有了服务器,用的win平台。于是这时候我也尝试用ramdisk开辟了128M左右的空间用来做WEB应用。我当时的一些Cache的操作也是放在这128M空间里的。只是效果嘛,看不出,因为是自己的小应用,没有访问量。。。。但至少这是可行的(设置ramdisk的时候是关机时保存到磁盘,这样下次开机的时候它还会存在而不会被删除)
云风在博客中说他们用了RDB的结构来处理,即从B(backup)引到一部分数据到R(Ram)里面,然后写的时候,先写到R,然后用脚本増量到D(data)中,这样保证了B只读,D只写,内存R读写一起上。减少了大量的运行时IO开销。
该博客有很多评论,比如有建议用nosql的,有建议其他方法的,比如有个人就介绍了这个flashcache,看看觉得有意思就复制了下来。。。
关于flashcache的原文,在这里:http://www.orczhou.com/index.php/2010/09/flachcache-first-view/。。。

Flashcache是Facebook技术团队的又一力作,最初是为加速MySQL设计的。Flashcache是在Linux层面的,所以任何受磁盘IO困绕的软件或应用都可以方便的使用之。

1. Why Flashcache

随着时间的流逝,网站上的数据一直在不停的积累。如果你经营的只是一个博客的话,这不会是问题,因为10G的空间,大概就够你写一辈子了(如果放在硬盘上,其实一辈子很短)。如果你恰巧在一个快速增长的公司,数据会越来越多,从MB,到GB,再到TB。

如果将这些数据全部放在大容量的SATA、SAS盘上时,会发现性能(响应时间)不够;如果全放在SSD上时,又会发现成本很高。即使公司能够大气 到都放到SSD上,你会发现1TB的数据里面可能只有200G是经常被访问的,300G可能偶尔被访问到,最后剩下的500G可能已经成为历史数据了,几 乎不被访问到,如果全部都放在SSD上有略有浪费。于是就有了Flashcache

Flashcache一个非常不错的软件(准确的说是一个Linux的模块), 可以动态加载。Flashcache通过在文件系统(VFS)和设备驱动之间新增了一次缓存层,来实现对热门的缓存。Flashcache是另一种缓存, 一般用SSD作为介质的缓存(一般的缓存用的是内存),通过将传统硬盘上的热门数据缓存到SSD上,然后利用SSD优秀的读性能,来加速系统。这个方法较 之内存缓存,没有内存快,但是空间可以比内存大很多。

本文是一个关于Flashcache的初步介绍。

2. 谁适合用Flashcache

数据量很大(例如4TB),热门数据也很大(800GB),不必要或者不舍得全部买内存来缓存。

3. 谁适合用Flashcache

数据量不大的话,一般Flashcache就没什么用武之地了,内存就可以帮你解决问题了;

不差钱,买内存呗;

另外Flashcache的加入也使得系统的复杂度增加了一层,如果你坚持KISS原则(Keep it simple, Stupid!),也可以弃用之。

4. 基本原理图
大小: 48.66 K
尺寸: 500 x 296
浏览: 1803 次
点击打开新窗口浏览全图

上图中,Flashcache将普通的SAS盘(/dev/sda)和一个高速的SSD(/dev/sdb)虚拟成一个带缓存的块设备(/dev/mapper/cachedev)。后续还将会有更多关于Flashcache相关的文章出现,敬请期待。

5. Flashcache是否只是一个过渡产品

对于当前,PCI接口的SSD价格还十分昂贵,而随着时间的推移,价格会降;另外,根据摩尔定律,未来会有更快的设备出现,所以Flashcache是一个“持久的”产品,还只是一个过渡软件,这并不好说。

关注未来新技术的发展吧:)

参考:

1. Facebook / Flashcache

2. Releasing Flashcache of Facebook

3. flashcache-doc.txt

PS:写完整篇文章,最大的收获是:发现人的一生其实很短、很短,可能连1GB都不到。

Tags: flashcache

backup

dd

图片附件:
大小: 6.89 K
尺寸: 353 x 81
浏览: 1732 次
点击打开新窗口浏览全图

jQuery inViewport

做前端的用户都会想过如何做lazyLoad,其实很多时候都有很多想法,比如占位图片,TEXTAREA后处理,根据滚动条的位置显示图片等。
介绍介绍上面的说法,因为这些名词是我自己想出来的。。。和一些标准的前端讲法可能是不一致的。
1、占位图片,这个用的比较多一点,即在页面还没有全部加载完的时候,涉及到图片的地方,先用占位图片(1X1大小的图片进行放大)占好,不影响整个DOM的加载,等全部加载完后,再慢慢加载图片。这样的方式优点在于,不影响DOM加载,代码修改量也最小,缺点是,其实还是加载了所有的图片。。。
2、teatarea后处理,这个,被用的比较明显的应该算是淘宝的trademark的页面上,当时在抢购活动的时候就用上了这个技巧,trademark这个页面全是图片,如果全部读出来并显示,很可能一下子就下载大约3M左右的图片,如果用第一种办法,那么占用的流量就非常夸张。于是淘宝当时的页面源码里就很明显的内容就是第一屏是正常的HTML代码,第二屏开始,把每一层的内容都放在textarea容器里。当滚动条滚动的时候,即当textarea开始出现在页面中时,就把textarea中的HTML代码转化成DOM,显示在页面上。它的优点是,textarea中的内容在初次加载时,不会被当成DOM被页面所加载。因此事实上首次加载的时候,只有第一屏的内容。缺点是需要写很多JS。(和第三点也有关)
3、根据滚动条的位置显示图片,这个其实是现在很多网站采用的技巧了,即滚动条滚动到哪里,图片就开始加载到哪里。和第二点其实有点象,只是处理的结构不一样而已。
介绍完这个,那就好好介绍一下第三点的技术了,原文从这里来:http://www.zhangjingwei.com/archives/jquery-inviewport/。

晚上在微博上“拔赤”写了个lazyload插件,发现其中用到一个很有意思的方法”div.inViewportRegion()”,字面意思就是在可视区域内。

在网上找了找,发现这是YUI提供的一个组件,觉得很有意思。
http://gillserver.com/yui/api/dom-region.js.html

如果jQ里面也包含类似的方法,可以做很多事,于是GG了一下,发现国外的同学写过这种选择器,代码表现上更直观。

代码如下:

JavaScript代码
  1. (function($) {  
  2.    
  3.     $.belowthefold = function(element, settings) {  
  4.         var fold = $(window).height() + $(window).scrollTop();  
  5.         return fold < = $(element).offset().top - settings.threshold;  
  6.     };  
  7.    
  8.     $.abovethetop = function(element, settings) {  
  9.         var top = $(window).scrollTop();  
  10.         return top >= $(element).offset().top + $(element).height() - settings.threshold;  
  11.     };  
  12.    
  13.     $.rightofscreen = function(element, settings) {  
  14.         var fold = $(window).width() + $(window).scrollLeft();  
  15.         return fold < = $(element).offset().left - settings.threshold;  
  16.     };  
  17.    
  18.     $.leftofscreen = function(element, settings) {  
  19.         var left = $(window).scrollLeft();  
  20.         return left >= $(element).offset().left + $(element).width() - settings.threshold;  
  21.     };  
  22.    
  23.     $.inviewport = function(element, settings) {  
  24.         return !$.rightofscreen(element, settings) && !$.leftofscreen(element, settings) && !$.belowthefold(element, settings) && !$.abovethetop(element, settings);  
  25.     };  
  26.    
  27.     $.extend($.expr[':'], {  
  28.         "below-the-fold"function(a, i, m) {  
  29.             return $.belowthefold(a, {threshold : 0});  
  30.         },  
  31.         "above-the-top"function(a, i, m) {  
  32.             return $.abovethetop(a, {threshold : 0});  
  33.         },  
  34.         "left-of-screen"function(a, i, m) {  
  35.             return $.leftofscreen(a, {threshold : 0});  
  36.         },  
  37.         "right-of-screen"function(a, i, m) {  
  38.             return $.rightofscreen(a, {threshold : 0});  
  39.         },  
  40.         "in-viewport"function(a, i, m) {  
  41.             return $.inviewport(a, {threshold : 0});  
  42.         }  
  43.     });  
  44.    
  45. })(jQuery);  

来源:http://www.appelsiini.net/projects/viewport

简单测了下,不错,呵呵~

Demo:http://www.zhangjingwei.com/inviewport.zip

------EOF--
事后测试了一下,加载了这段的JS后,剩下对代码的处理就其实不多了,只需要BIND一个in-viewport就OK了,也算是比较方便。值得推荐,不知道啥时候类似功能可以直接进jQuery类库

Tags: jquery, inviewport, lazyload

年终总结

仿佛以前在写年终总结的时候,第一句都是什么 光阴似箭,时光如梭之类的。确实,时间乃穿肠毒药,不经意间,又悄悄的腐蚀了我一年。
今年其实是发生了不少事情的。当然我这里只提工作和学习的,生活中的,我就不提了,保留一点点的隐私。
1、工作换了一个,上半年的时候还在百思家,下半年已经在纭集网络了。转职是不得已的事情,主要是百思家经营不善,撑不下去了。如果从我们技术部门来说,从公司开到现在,大约花了公司不到100万左右的资金吧。这对于任何一家网络公司来说,都不算是一个大的开销(100万呀,扔在网络公司里,还真的是水漂都没有),当时的人员配置已经算是不多了,但也是五脏俱全(把领导啥的都去掉职位),一个UI,一个UED,两个开发,一个产品,一个运维,三个编辑(兼电话客服)。9个人,8万一个月都没满,12个月左右,差不多是100万了。网站上线四个多月,也吸引了不少的服务对象和客户来咨询,据了解,还是成交了一些订单的。可惜的是,老板的另外一家公司经营不善,连带我们也没有资金投入,然后就直接关门跑路了。到现在老板还差了部分工资没有给付,无奈。
     下半年就換到了这个纭集网络,怎么说呢,反正感觉挺有“意思”吧,不多作评价了,目前我也在看有没有一些新的职位,准备重新跳槽。当然原因是几个1、公司不交金,对于我这个准备长期留在上海的人来说,压力有点大;2、老板眼中的技术部门就应该是天天加班型的。所有的任务在老板眼中,仿佛都只要3、5天就能完成,而我们都是半个月、一个月的,老板非常不满意;3、只有惩没有奖,这让人很无奈。。。

2、自已的学习。上半年看了一阵scala,后来是因为没有地方用得上,抛掉了,下半年,几乎天天加班(一两小时,当然不算加班,但已经没时间看书了),抽空看了点python,目前也没用上,再不盯着,估计又要忘光了。只是目前就想盯着这两门语言了,其他暂时不管。其实也想过跳槽去家软件公司,想学习一下传统软件的开发,但已经不是年轻人,别人也不要一个老头子过来从头做起了。。。
     顺便,夜大终于毕业了,5年啊。。5年啊,终于结束了。

总结了工作和学习,怎么着也得展望一下未来了吧。
工作嘛,总希望有一个稳定一点的工作,谁也不喜欢三天两头跳来跳去的,这对学习和职业规划来说都不太好。
学习嘛,当然希望能够除PHP外,能够多掌握一点其他语言,不完全是为了职业规划,也是让自己可以有点其他的开发乐趣。
其他嘛,今年的苹果愿望没有实现,希望明年能够实现自己的苹果愿望。也希望自己做的网站能够成功的推出(这个推出当然不仅仅是简单的做的站,你懂的。。。),neatpic也会出个稳定版(目前的版本只能显示图片,上传、管理什么的都没有做的很好。)

Tags: 年终总结