PostgreSQL

介绍 PostgreSQL 是一个非常不错的替换 MySQL 的方案,和 MySQL 一样是一个通常的关系型数据库,以前我并没有使用过这个,所以对于这个我也是个新手,但是因为 Mojolicious 的作者超级喜欢这个,并且春哥也喜欢这个,还有近来的项目大量使用到 Minion 来做队列服务,这个服务原生的只支持 PostgreSQL(MySQL 的支持不太好用), 所以没法只能自己研究来安装和使用。实在因为使用不一样,所以特地记下这个笔记。 这个文章写的记录是基于

Mojolicious 的小经验和小技巧

本文用于介绍一下 Mojolicious 中的常用, 但可能文档没提到的东西, 或者一些因为版本兼容性而发生变化的(Mojolicous 版本更新比较快),但这个变化也是很常用的东西. 本书中所有的内容都是一条条小技巧, 有的可能是常识, 常用, 都不能叫做小技巧. 这些大多是我自己常用的一些东西. 在这给大家分享一下. 本文都假设各位都对 Mojolicious 这个现代化的框架非常了解, 所以并不介绍框架的一些常识. 另外各位如果有好的技巧和意见也可以在这个文章下面告诉我

Mojolicious 版本 HTTP 的代理

很久以前使用 Plack 写过一个很土但能工作的 HTTP 代理. 现在使用 Mojo 也实现了一个, 比原来那个先进一些的 HTTP 代理…其实这是一个 SOCK 的代理, 这是异步事件驱动的, 性能会比原来的好, 并且每次代码取到一部分数据就能转发给客户端, 不象以前那个需要给整个 body 取过来, 然后才返回, 这样节约内存多了. 这个程序, 其实大部分是抄了 Mojo 原作者的一个程序小修改过来, 原作者使用 HTTP 的 CONNECT 协议来代理的

rpmbuild 时自动索引包的依赖性

我在进行 Perl 6 的解释器来给源代码打包成 rpm 的时候. 总是打完装以后, 安装的时候提示一个奇怪的依赖, 但我从没有在 rpm 的 spec 文件中写入这个依赖. 我感觉他会自动去找所有的代码中 use xxoo; 然后给其中 xxoo 变成模块依赖写到 SPEC 最后形成的 rpm 包中.  最后经家豪指导 ^-^..需要 rpmbuild 的时候, disable  掉 自动的索引依赖查找. 只需要在原来的 SPEC 文件中加入 AutoR

GDB 进行程序调试笔记

这是 2011 年参加亚嵌的内核开发时,C 语言中 GDB 调试部分的笔记。因混于其它笔记一起, 特单独立放一文章, 并且照原来的笔记复习了一下。 使用 GDB 调试程序 打开 C 程序的调试功能 编译程序, 我们可以使用 gcc -S main.c 这样来打开调试并且这样也能见到二进制的汇编. 编译程序时使用 -g 更加方便不但有二进制汇编,还有代码本身 (注, 这时我们想看二进制结构,可以使用 objdump 加 -dS 参数). 测试样例代码 #include <

Plack 代码和结构分析-Plack::Builder[译]

Part 1 – An Overview Part 2 – plackup Architecture Part 3 – PSGI Application Architecture Part 4 – Plack::Builder Plack::Builder 为中间件的开发提供了特定领域语言 domain specific language (DSL) 的风格. 它看起来就象: use Plack::Builder; my $ap

Plack 代码和结构分析-plackup Architecture[译]

Part 1 – An Overview Part 2 – plackup Architecture Part 3 – PSGI Application Architecture Part 4 – Plack::Builder Plack::Runner 和 plackup plackup 通过执行 PSGI 的应用来开始 PSGI 的服务. 这个脚本只是非常简单的封闭了 Plack::Runner. 其它的所有都是通

Plack 代码和结构分析-Plack[译]

我有写大量的代码, 但我想要是能更快更好的读代码的能力也很重要. 我和 @ranguard 有一起共事的殊荣, 我发现他象一个读代码的猎豹, 非常让人羡慕. 所以我现在开始分析各种 CPAN 的模块源代码来进行练习. 先从 Plack 开始. Part 1 – An Overview Part 2 – plackup Architecture Part 3 – PSGI Application Architecture Part

Perl 中的 IPC::Semaphore 信号量的操作

什么是信号量? 信号量(semaphore)的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。 注意,信号量的值仅能由PV操作来改变。    一般来说,信号量S>=0时,S表示可用资源的数量。执行一次P操作意味着请求分配一个单位资源,因此S的值减1;当S<0时,表示已经没有可用资源,请求者必须等