第一次参加Shanghai on rails,不过因为搬家事宜,听完了三个演讲之后就立刻闪人了。 高举旗帜 伙食很重要 领导的指示也很重要 PPT分享: PPT of Role based Permission 给你点新思路 code_refactoring_javaeye_rails1.x_2.x 都是干货 open social 其实题目是‘shaking-the-money-tree’ 感谢Vibram,我们有了视频http://www.tudou.com/playlist/id/4072842/ 特别感谢: 演讲嘉宾,包括Javaeye,chinaonrails在内的所有rails社区. 还有,最重要的 我们的赞助商 易空海 http://www.ekohe.com/ ShellShadow http://www.shellshadow.com 结构数据公司 http://www.structuredcommons.com/ ELC Technologies http://elctech.com
http://mail-index.netbsd.org/tech-kern/2003/08/11/0001.html Subject: Aliasing, pointer casts and gcc 3.3. To: None <tech-kern@netbsd.org> From: Krister Walfridsson <cato@df.lth.se> List: tech-kern Date: 08/11/2003 23:16:48 我见过一些用来“修复”gcc 3.3 别名警告的提交,这些并没有给我貌似温存的感觉,同时我总是在不同的邮件列表看到很多关于别名(一般来说是ISO C)概念的混淆,所以我尝试解释一些已经/将要困扰我们的一些问题。 如果本文太浅显,请包涵。 重叠(ALIASING) 什么是重叠? 从硬件的角度来看指针的话,指针可以指向任何内存地址,所以通过指针写入可以更改程序中的任何变量: int i = 23; *f = 5; /* 这时候我们不能确定i是什么值。 */ 我们无法得知i的值,因为指针&i和f可能指向同一个地址(这就是当ISO C说&i与f可能重叠时所表达的意思)。 这样就使很多类型的优化无法进行,同时它也确实造成了实实在在的区别,因为现实情况中多数指针是不会指向同一个位置的。ISO C通过(大致)说“不同类型的指针不能指向同一个地址”来(针对编译器)改进了这个情况。 int foo(float *f) { int i = 23; *f = 5.0; [...]
最近复习C/C++,今日用APR编写了一个生产/消费模型的小程序。结果出现了这样一个奇怪的警告:“提领类型双关的指针将破坏强重叠规则”,让我大惑不解,特此和大家讨论一下。 我用的是gcc 版本 4.2.3 (Ubuntu 4.2.3-2ubuntu7) 线程模型:posix。出现警告的这段是这样的: apr_queue_t *queue = (apr_queue_t *) data; int *d = NULL; while(1){ apr_queue_pop(queue, (void **)(&d)); // -- 此处为出现警告的地方。 printf(“Consumed: %d\n”, *d); } 虽然可以运行无误,但该警告还是让我比较无奈,最后我改成了如下: apr_queue_t *queue = (apr_queue_t *) data; int *d = NULL; void *c = NULL; while(1){ apr_queue_pop(queue, &c); d = (int *)c; printf(“Consumed: %d\n”, *d); } 因为很久没有写C,在这里,我的问题是: [...]
我之前写的文章《浅析Ruby on Rails部署方案》受到不少同学的关注,在此首先感谢大家。 但是也有同学对此提出了一些疑问,我经过检查,发现文章确实存在很多漏洞和不足: Lighttpd作为负载均衡反向代理时,无论是链接FastCGI还是HTTP后端,KeepAlive链接默认都是关闭的 Nginx的FastCGI模式,默认也是关闭持久链接的 缺少了一些重要的前后端搭配的方式 对于Rails应用的内存占用也应该考虑在内 我会针对这一些问题,重新设计测试案例,并重写该文章。再次感谢大家的关注。
本文要讲的php shell并非是使用php来写shell脚本,而是讲一个php的REPL的交互式shell。所谓REPL,也就是read-eval-print-loop,也就是说,shell读入一个指令,计算,然后输出结果,常见的有Python、Ruby的IRB等。 对于PHP,我们常常会写一个test.php,然后放入一些自己的代码,再打开浏览器检验一下,如果不对,又要重新修改代码,非常麻烦。交互式shell的好处就可以体现出来了,输入指令之后可以立刻看到执行代码的结果,所以非常适合用来检验代码片段(snippets)的正确性以及进行一些试验。 PHP本身自带一个交互式的shell,在命令行中输入php -i,便可以交互式运行,但要先输入一个php脚本的起始标签,但是该shell遇到异常的时候会直接退出,非常不方便。那么我找到一个非常接近于REPL的交互式shell便是php-shell 1. 安装 php-shell要求php 5.0以上版本 下载PHP_Shell-0.3.1.tgz 运行pear install PHP_Shell-0.3.1.tgz 如果确保pear已经安装,并在你的PATH路径中 2. 使用方法 在命令行下输入php-shell(Linux为php-shell.sh)进入交互式命令行: PHP-Shell – Version 0.3.1, with readline() support (c) 2006, Jan Kneschke <jan@kneschke.de> >> use ‘?’ to open the inline help >> 这时候我们可以输入我们所需的表达式了,在php-shell中直接输入变量名,它也可以将内容直接打印出来: >> $a = new ArrayObject( ) ArrayObject::__set_state(array( )) >> $a-> __construct( append( count( exchangeArray( getArrayCopy( getFlags( [...]