
杂七杂八
lova1ing
这个作者很懒,什么都没留下…
展开
-
AppleScript
AppleScript是Mac平台上一个功能强大的脚本语言,功能类似windows上的JS和VBS,当然更加强大,除了可以调用一些程序开放的脚本接口以外,它还可以控制界面元素的动作,实现自动化GUI测试。Mac上相当多的软件都支持AppleScript,可以在一个脚本中控制多个程序协作完全自动化任务。试着做了个小程序,rails生成一个web服务,在AppleScript中调用并取得数据显...2006-10-19 18:41:19 · 202 阅读 · 0 评论 -
2006中国博客调查
2006-07-12 13:36:00 · 110 阅读 · 0 评论 -
夜不能寐
前几天睡不着时写的,发在公司博客上,转过来留作纪念。推动一个这么大的设想直接立项还是很困难的,不过可以先把一些重要模块立项开发,时间成熟以后剩下的平台工作工作量就相对较少了。所以最要紧的是要把握住,不要留下很多历史问题。-------------------------------------------------------------好久没这么兴奋过了。最近每天都是快一点时睡...原创 2008-08-08 08:34:01 · 205 阅读 · 0 评论 -
学习备忘
发现不写备忘真是个坏习惯,很多准备好要学的东西有时就忘了。。语言:haskell, lisp 函数式编程语言,受cookoo鼓舞开始学习haskell,加上haskell是实现pugs的语言,看来学一下也是应该的。lisp有时间也要看看,就当是折磨自己罢。。erlang 分布式编程语言,已有应用OpenPoker,作者神宗冥浩,简介 http://blog.mylkcn.net/senzun...2006-09-07 14:24:00 · 102 阅读 · 0 评论 -
[private] 文字绘图库资料收集
主要收集可以绘制文字的绘图库。一、imagemagick:http://www.cit.gu.edu.au/~anthony/graphics/imagick6/可以绘制文字,不过中文好像不能自动断行。二、vipshttp://vips.sourceforge.net使用pango绘制文字,中文可以断行,缺少2端对齐功能。自己修改代码增加了调整行距功能,做成ruby扩展库,amd64上使用失...2006-09-28 20:03:00 · 209 阅读 · 0 评论 -
段落文本渲染引擎
最近在一个项目中要渲染段落文本,找了很多文字渲染库,发现都不能满足我的要求,所以只能自己做。字体渲染还是找freetype完成吧,虽然小字号效果不好,不过可以生成大图再缩小来解决掉,自己写一个字体渲染引擎也是不可望也不可及的事。有了freetype实现底层字体渲染,我只需要处理一些布局方法即可,其中要实现的有以下几点:1、英、中字体很多中文字体中的英文字体都比较难看,所以在X的字体配置中设置...2006-10-09 11:44:00 · 177 阅读 · 0 评论 -
并行/分布式集群的一点想法
最近在构思一个并行/分布式集群的平台架构,用来解决目前很多服务器无法动态扩容的问题,在过去的一些分布式项目中积累了一些经验,这些架构都是对这些项目共同点的抽象。给它定义了一些特性,先记下来:* 集群由多台服务器组成,每台服务器安装最基本的运行时平台;* 平台负责集群内节点间通讯、应用实例的管理;* 平台是多进程架构,任何应用都是独立的用户进程,使用IPC来通讯;* 平台...原创 2008-08-13 21:35:52 · 130 阅读 · 0 评论 -
平台架构
上次构思了并行/分布式平台的架构,后来觉得还是有些小问题,没有解决:* 底层组件更新问题(Erlang可以热代码升级,但没办法动态更新VM)* 通讯底层依赖问题(Erlang也要依赖底层的稳定性)所以对架构作了调整:* 通讯层作为一个应用组件来提供,而不是底层平台;* 通讯层组件作为分布式服务的发布者和远程调用代理,对它进行重启升级只是瞬时的分布式服务暂停,各服务组件不用重...原创 2008-08-27 08:56:00 · 189 阅读 · 0 评论 -
C和Erlang轻量级线程性能
简单比较了一下ucontext和Erlang的进程切换效率,在我的机器上ucontext每秒可以完成90万次切换,Erlang则要快得多,每秒可以完成412万次切换,这个性能比较和之前shootout上的测试相近。效率差这么多是可以预见的,C的轻量级线程实现都是栈切换的,要完成寄存器保存和加载,只是不需要经过系统调度。相比之下其它语言的轻量级线程切换通常不是C栈切换,开销要小得多。...2008-03-13 23:42:35 · 368 阅读 · 0 评论 -
结合Coroutine和Callback
Coroutine切换成本相对还是比较高的,把一个并发程序改成Coroutine实现性能上可能有比较大的损失。Coroutine切换主要是大量寄存器压栈和弹栈,栈切换也会影响到cache。目前C/C++大量使用的是回调方式,比如win32窗口编程、libevent等,优点是高效,函数调用成本是很低的,也没有栈切换,缺点是不如Coroutine这样连贯。有没有方法让它具有两者的优点呢?有Corout...2008-03-31 12:00:39 · 223 阅读 · 0 评论 -
并发编程模型:Thread, Coroutine, Callback ...
先总结一下。线程是最容易编写的并发方式,操作系统也提供了最好的支持;协程可以做到更强的并发能力,但需要实现调度器;回调是开销最小的,它本来不是特别为并发来设计的,它是通用的异步化操作的实现模型。注意线程和协程本身也是使用异步来模拟同步,线程由操作系统来模拟,协程由用户级调度器模拟。模拟的过程是:发起事件请求、挂起当前执行过程(线程或协程)、响应事件请求、恢复挂起的执行过程。回调没有...2008-04-07 00:41:25 · 162 阅读 · 0 评论 -
云计算的架构
一直没搞清云计算和网格计算的差别,为什么就提出个新词了呢?通过对Amazon的Google的观察,发现这两家公司产品方向的一些共同点。1、软件即服务Google App Engine和Amazon SimpleDB/S3都是提供服务的,类似的例子还有最近比较火的各种开放接口。2、应用容器,自动部署,超强的扩展能力Google App Engine更能体现这点。由于开...2008-04-12 11:41:56 · 128 阅读 · 0 评论 -
使用C#的Generator编写并发程序
前面说地Generator编写并发程序的优势,当然它本身没有这种能力,需要为它编写调度程序。今天抽点时间写了个简单的,还是满好玩的,它可以调度多个“友好”的并发任务,包括:1、用户自己编写的适时交出控制权的过程2、网络IO由于对C#不是很熟,所以写的可能比较难看,而且IO也只支持网络,有兴趣的可以研究改进一下,比如把它改成SMP版本,增加Actor模型,处理更多的IO模式等...2008-04-18 23:17:44 · 409 阅读 · 0 评论 -
标准库的效率--适时选择自己实现
最近在测试简单的轻量级线程调度器。从fiber转换到generator,性能是提升了不少,但却在意想不到的地方出现了瓶颈。在generator本身切换性能测试时,发现它性能非常高,大概单线程里面每秒切换有2亿次以上,比fiber的200-400万次有了质的提高。但是在实现了一个简单的调度器以后,发现性能急骤下降,到了每秒千万次,实现方式是使用标准库提供的list容器。在测试了c++...2008-04-27 22:31:44 · 158 阅读 · 0 评论 -
中国的网络监控还是很到位的
刚才收到个法X功邮件,正准备回骂一番,邮箱也打不开了,郁闷。这些法X功真是害死人,实际上邮件内容一看就知道不可信,谁吃饱了撑的要这么来整你。不知道要多久才能恢复,在这里劝这些法X功的家伙们一句,你们自己生活在梦里就行了,别骚扰别人,你这样只会让人越来越讨厌你们。 ...2006-07-12 11:31:00 · 241 阅读 · 0 评论 -
关于“rails大容量网站部署的性能讨论”的一些想法
Java视线论坛的一篇“[url=http://forum.iteye.com/viewtopic.php?t=20298&start=45&postdays=0&postorder=asc&highlight=]关于rails大容量网站部署的性能讨论[/url]”,讨论了多个服务器的Session共享,其中提到了memcache、session server等词汇。由于注册时间不到30天...2006-06-22 22:07:09 · 89 阅读 · 0 评论 -
Groovy on Rails 0.1发布
简单测试了一下,语法比ruby稍罗嗦一点,不过也算是很简洁了。在WINDOWS下执行,遇到个小BUG,grails.bat第4行:if "%GRAILS_HOME"=="" goto grailsHomeNotSet是错误的,改成if "%GRAILS_HOME%"=="" goto grailsHomeNotSet就可以了。后面也有点小问题,干脆在LINUX下测试。照着Quick Star...2006-04-07 16:59:00 · 81 阅读 · 0 评论 -
为了兼容IE。。。
发现Firefox/opera/safari这3个浏览器还比较一致,在Firefox上测试好了直接在另2个浏览器上观看基本上没什么问题,脚本和CSS表现都一致。唯独IE比较麻烦,从脚本到CSS都要改,真是麻烦。IE7发布了,赶紧测试了一下,这家伙还是兼容IE6,不过总算还好没再搞一套新的。...2006-10-26 19:56:19 · 90 阅读 · 0 评论 -
erlang的设计思想能不能移植到ruby里面来?
erlang比较先进的地方大概就是它的并行工作方式,我一直在想为什么别的语言没有实现类似的玩意?这几天简单想了想,移植到其它语言应该可以的。erlang核心是一个消息系统,可以在进程之间发送消息,而进程则不限于同一台机器。在不遇机器之间发送消息当然是通过socket,本机进程之间则有多种方式可选,可以通过共享内存来高效实现。本机的多个进程和其它机器的多个进程的通讯如何管理?要有一个...2006-10-26 20:11:15 · 162 阅读 · 0 评论 -
Javascript 1.7
在firefox 2.0的介绍里看到了这家伙:http://developer.mozilla.org/en/docs/New_in_JavaScript_1.7看样子从python语法上学了不少啊。2006-10-27 16:02:46 · 169 阅读 · 0 评论 -
IE/FireFox/Opera/Safari中border/outline/background的差异
做了一个图片编辑窗口,用来做裁剪、旋转、镜像操作。[img]http://www.iteye.com/topics/download/910bff76-f4a5-4700-84fa-c27a6215da12[/img]原来是想用一个黑色半透明的mask遮住图片,再用一个div设置背景图和正一样,拖动时设置背景图偏移即可。后来发现backgroundPosition在IE和FF中不一致。...2006-11-13 14:09:34 · 202 阅读 · 0 评论 -
网页界面的一点心得
这几天在折腾网页界面,其中有些要求位置、大小控制得比较精细,而且要在4个主流浏览器(IE, FF, Safari, Opera)上都一致。经过测试,发现主要是border在IE和其它3个之间表现不一致。IE的border是往里面画的,这样就没有增加宽度,其它浏览器的border是往外画的。如果直接在一个图片上加border,结果大小就有偏差,最好的做法是不在图片上加,而在它外面套一个DIV...2006-11-14 11:07:26 · 105 阅读 · 0 评论 -
Google Picasa Linux版
看样子是运行在wine上,不过竟然和windows上一样流畅。2006-12-01 11:21:52 · 289 阅读 · 0 评论 -
动静结合的语言?
静态类型和动态类型各有长短,为何不让这2者兼得呢?比如一段代码:[code]String str = "Hello, World";dynamic str1 = str.substring(7);dynamic str2 = str1.toLowerCase();dynamic str3 = str2.toUpperCase();[/code]只需要一个关键字表...2006-12-06 09:47:26 · 110 阅读 · 0 评论 -
突发奇想
看到D语言的opAssign即赋值操作符,突然想是不是能实现下面这个功能呢?以D语法写出:[code]auto x = new Variable;auto y = new Variable;// x = 10; y = 5;x + 5 = y * 3;x / y = 2;[/code]简单的方程组,是否可以自动求出x和y值?从我学习过的几种语言来考察...2006-12-11 21:31:30 · 214 阅读 · 0 评论 -
Mac OS X 10.5(Leopard)
跑去听了苹果Leopard技术研讨会,主要是讲Leopard的新特性,终于知道了在Mac上编写程序是多么有趣和轻松,做出来的东西看起来也很专业。听得多忘得也多,瞎写点。感觉Apple是把自己使用的反响比较好的东西都开放出来了,所以都比较实用。在Windows上可没这么享受,微软的开发工具开发界面还是比较痛苦的,不知道它们是怎么开发VS,Office这些软件的,界面组件也不开放(可以调用...2007-01-24 14:46:00 · 1439 阅读 · 0 评论 -
网络服务器架构模式
前段时间做了个简单的dtwisted项目,只有个雏形,高层点的东西就没有了。以前用ACE做过小型游戏服务器、视频转发服务器,比较熟悉点的是reactor模式。其间也尝试过proactor,一知半解不得要领,于是放弃了。今天工作闲暇尝试用D语言实现目前工作中用到的文件上传服务器,有了一些思考。下面还是先为D语言做点广告。稍后回来。。。自从用了D语言以后,我可以更加方便...2007-04-20 20:01:34 · 174 阅读 · 0 评论 -
最近比较忙
工作忙,学习也忙。1、Ruby on Rails前阵子看了一下Ruby on Rails,不禁为其深深折服,为Ruby,也为Rails。照着Four Days on Rails做了一遍,虽然对Ruby不甚熟悉,不过一路下来感觉非常轻松,在搞明白:xxx和"xxx"是同一个意思以后,终于能看懂大部分代码了,也为这种语法叫好,要知道很多时候引号并不好用,当出现嵌套的时候。(注:在Ruby里,"hell...2005-10-08 23:15:00 · 99 阅读 · 0 评论 -
奔腾指令速查手册(转载自用)
不知道原作者是谁,我是从http://1000y.jx520.net/看到的,那里标注的作者是ddcrack,文章里面没标明作者。奔腾指令速查手册指令首字母快速索引:ABC</c>DEFHIJLMNOPRSTUVWX指令名称指令形式机器码标志位(设置/测试)说 明应用举例ES:ES:26 ...2006-02-18 20:57:00 · 250 阅读 · 0 评论 -
C++/D/python性能一比
实际上不是全面测试性能。应该这么说:使用一个你熟悉的语言,用它写出一个高效的版本(做下面那件事)。不小心读到一个帖子:http://blog.vckbase.com/jzhang/archive/2006/03/28/18807.html看到C++竟然被比下去了,自然不是很舒服,毕竟C++对于C并没有太大的性能上的降低,而python是C写的(指Cpython实现),自然不会高过C。(废话,...2006-03-31 11:06:00 · 389 阅读 · 0 评论 -
C++/D/Python性能比较续
周末抽空做了点小测试,根据http://blog.vckbase.com/jzhang/archive/2006/03/28/18807.html中m网友修改的算法,python版本中读取所有行以后就做一个排序,再去除重复项。这个算法在我的机器上执行时间是1735ms左右,属于python版本中最快的一个。D版本暂还没想到有更优化的做法,D在处理以char[]作key的关联数组时,判断方法是...2006-04-03 11:00:00 · 433 阅读 · 0 评论 -
XL Programming Language
在wikipedia上瞎逛,看一些[url=http://en.wikipedia.org/wiki/Coroutine]Coroutine[/url]相关资料,找到[url=http://en.wikipedia.org/wiki/Generator_(computer_science)]Generator[/url],其中的[url=http://en.wikipedia.org/wiki/G...原创 2009-07-24 08:21:10 · 172 阅读 · 0 评论