`
qiezi
  • 浏览: 502154 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表

DMD 0.173发布

    博客分类:
  • D
这个版本发布有几天了,前几天比较忙,周末又被同学拉去苏州旅游,没时间测试它,今天回来,就简单测试一下咯。 这个版本中的亮点应该是变参模板了,变参模板在C++0x应该也有提到(未确认),实用性也很强,但一般是用在 ...
在firefox 2.0的介绍里看到了这家伙: http://developer.mozilla.org/en/docs/New_in_JavaScript_1.7 看样子从python语法上学了不少啊。
erlang比较先进的地方大概就是它的并行工作方式,我一直在想为什么别的语言没有实现类似的玩意?这几天简单想了想,移植到其它语言应该可以的。 erlang核心是一个消息系统,可以在进程之间发送消息,而进程则不限于同一台机器。 在不遇机器之间发送消息当然是通过socket,本机进程之间则有多种方式可选,可以通过共享内存来高效实现。本机的多个进程和其它机器的多个进程的通讯如何管理?要有一个管理程序负责网络部分的发送的接收。机器之间的消息传递先发给它,由它转发到另外机器上一个相同功能的管理程序上,再分发给目标进程。 然后就是每个进程各自维护消息队列,处理消息接收及发送,似乎也不是那么复杂。spa ...
发现Firefox/opera/safari这3个浏览器还比较一致,在Firefox上测试好了直接在另2个浏览器上观看基本上没什么问题,脚本和CSS表现都一致。唯独IE比较麻烦,从脚本到CSS都要改,真是麻烦。IE7发布了,赶紧测试了一下,这家伙还是兼容IE6,不过总算还好没再搞一套新的。
AppleScript是Mac平台上一个功能强大的脚本语言,功能类似windows上的JS和VBS,当然更加强大,除了可以调用一些程序开放的脚本接口以外,它还可以控制界面元素的动作,实现自动化GUI测试。Mac上相当多的软件都支持AppleScript,可以在一个脚本中控制多个程序协作完全自动化任务。 试着做了个小程序,rails生成一个web服务,在AppleScript中调用并取得数据显示在界面上,再把界面上操作的结果更新回去。 /Developer/Tools/WSMakeStubs -x applescript -file TestService.wsdl 这条命令可以从WSDL生成 ...
ActiveRecord出错信息是已经格式化过的英文字符串,这很不方便做本地化处理。要想做本地化,必须保留错误数据,在显示时再格式化为本地语言。不过ActiveRecord过早地把错误信息格式化为字符串,基本上已经断绝了本地化这条路 ...
import std.stdio; class Array(T){ private: T[] data; public: this(T[] data ...){ this.data = data.dup; } void each(void delegate(T) dg){ foreach(T value; data){ dg(value); } } T[] map(T delegate(T) dg){ ...
最近在一个项目中要渲染段落文本,找了很多文字渲染库,发现都不能满足我的要求,所以只能自己做。字体渲染还是找freetype完成吧,虽然小字号效果不好,不过可以生成大图再缩小来解决掉,自己写一个字体渲染引擎也是不可望也不可及的事。有了freetype实现底层字体渲染,我只需要处理一些布局方法即可,其中要实现的有以下几点:1、英、中字体很多中文字体中的英文字体都比较难看,所以在X的字体配置中设置了一个字体顺序。我也可以学学,传递一个字体列表,拿到一个字符时,按顺序从字体列表中查询,查询不到时就查下一个字体,这样就可以实现英、中使用不同字体了。2、分行段落分行要考虑到中、英文不同的分割方式,还有 ...
先看一段代码:void main(){    int[] c = [1,2,3];    foreach(inout int i; c){        writef(&i);        writef(", ");    }    writefln("");    c.length = 2;    foreach(inout int i; c){        writef(&i);        writef("
数组slicing操作并不复制数据。指针的slicing操作和数组slicing语意是相同的。通过slicing生成D数组,比原来直接使用指针的好处是可以有边界检查。最近刚好犯了这个错误,在使用freetype时,render出来的位图数据直接使用slicing生成数组保存起来。由于slicing并不复制数据,这样后面的render操作会覆盖前面的数据,所以我保存的数组其实都指向同一个缓冲区。当释放face对象时,缓冲区也没了,再访问恐怕要段错误了。这个是D文档中明确描述了的,我却花了点时间才排除这个错误,写下来记录之~
新特性:1、给委托增加ptr属性,指向委托所绑定的对象。这是一个语法糖,dg.ptr被转化为cast(void*)dg,它只能作右值,所以除了能读取它以外,在语法上禁止对它赋值。要想把委托绑定到不同的对象,你只能自己实现:class Foo{    int foo;public:    this(int foo){        this.foo = foo;    }    void bar(){        writefln(foo);    }}void main(){    alias void delegate() DG;    DG dg = &(new Foo(1
主要收集可以绘制文字的绘图库。一、imagemagick:http://www.cit.gu.edu.au/~anthony/graphics/imagick6/可以绘制文字,不过中文好像不能自动断行。二、vipshttp://vips.sourceforge.net使用pango绘制文字,中文可以断行,缺少2端对齐功能。自己修改代码增加了调整行距功能,做成ruby扩展库,amd64上使用失败,原因待查。三、freetypehttp://vips.sourceforge.net不依赖其它图形/窗口库,其它不熟悉,待查。四、Graphite跨平台的字体渲染库。待查。搜寻已有数月,目前看到的几 ...
6年前安装过linux,当时只是好玩而已,当时的linux对我来说可玩性太低,差不多都是装了耍几天酷就卸掉了。2年前被迫使用linux作开发平台,使用的是fedora core 2,感觉一般。后来去掉图形界面运行服务器程序,开发主要还是在wind ...
这个版本实现了计划已久的数组直接量。import std.stdio;void main(){  {    static int[] arr = [1,2,3,4,5];    writefln(typeid(typeof(arr[0])));    writefln(arr);  }  {    static float[] arr = [1f,1,3,4,5];    writefln(typeid(typeof(arr[0])));    writefln(arr);  }  {    static char[][] arr 
一、前言 出于数据安全性考虑,某些破坏性链接应该使用post请求,比如一个删除记录的请求。除了脚本确认以外,服务端还需要post验证,因为脚本是可以绕过的。想像你的页面上有一个删除链接,只作了客户端脚本确认(老的scaffold生成代码有这问题),被google找到了,它一个请求就会让你的数据丢失。rails对于这类请求的处理,是通过verify方法,默认的scaffold生成代码有如下内容:  # GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)  verify :method  ...
Global site tag (gtag.js) - Google Analytics