Today, I released ChromeRepl on the Extensions Gallery.
ChromeRepl is is heavily inspired from MozRepl. However Google Chrome can’t speak the telnet protocol. So I released google-chrome-client library (in Ruby) too. The library includes “chrome-repl” command.
I think the installation process is complicated. However, ChromeRepl brings the power of UNIX to Google Chrome. Please try!
Hatena released “Hatena Bookmark for iPhone”. Great!
However, the URI of the page is http://b.hatena.ne.jp/touch and I found id:touch. So he (or she?) probably can’t use Hatena Bookmark.
Hatena made same mistake on Hatena Bookmark News and Ashika. I like their short URI better than “foobar.php?id=baz”. But this namespace collision is not good.
Tim Bray wrote on his article Concur.next that:
No longer; Next year’s system will do more computing all right, but by giving you more CPUs, running at this year’s speed, to work with.
Perl’s multi-core support is good old-fashioned fork(2). It’s not sexy, but it works. So recently I began to use “prove -j9″. But some of our project’s tests are not works correctly under the “prove” command.
For example, our cron script has tests that create and remove a log file.
- foo.t open and create a log file.
- foo.t write something to the file.
- foo.t remove the file.
- bar.t open and create a new log file.
- bar.t write something to the file.
- bar.t remove the file.
And it’s not works at the same time.
- foo.t open and create a log file.
- bar.t open the log file.
- foo.t write something to the file.
- bar.t write something to the file, too.
- foo.t remove the file.
- bar.t can’t remove the file.
I can modify the code to fix it. However, I’m lazy and impatient. So I wrote a simple lock system named Test::Synchronized.
Test::Synchronized provides a giant lock to your tests. When you add “use Test::Synchronized;” on both foo.t and bar.t.
- foo.t create a lock directory.
- foo.t open and create a log file.
- bar.t can’t create the lock directory. So bar.t wait the end of foo.t.
- foo.t write something to the file.
- foo.t remove the file.
- foo.t remove the lock directory.
- bar.t create a new lock directory.
- bar.t open and create a new log file.
- …
It’s not sexy, but it works :)
I released 0.01 on Bitbucket and CPAN already. Enjoy!
0.02
Tokuhiro-san (aka tokuhirom) blogged about some bugs and problems of Test::Synchronized. So I fixed and released 0.02 now. Thanks a lot.