A few are written in 日本語.

Tue, 02 Apr

boolean 0.29

I had wrote a kind of rant about Perl in Japanese. In this article, I mentioned about an interoperability issue between Ingy’s boolean and JSON::XS.

However Dan fixed the issue and Ingy released boolean 0.29 with this fix. How awesome… Probably I had to mention more difficult issue like Stevan mentioned subroutine signatures in his slide.

Anyway, thank you Perl Mongers!


I read Fumi’s Japanese summary about How Samsung Became the World’s No. 1 Smartphone Maker. It is definitely insane but interesting story.



One way of modeling social network data is as a social graph, where entities or nodes such as people, posts, comments and pages are connected by links which model different relationships between the nodes. Different types of links can represent friendship between two users, a user liking another object, ownership of a post, or any relationship you like. These nodes and links carry metadata such as their type, timestamps and version numbers, along with arbitrary payload data.

In LinkBench, every link has

`data` varchar(255) NOT NULL DEFAULT '',

and every node has

`data` mediumtext NOT NULL,

I think there is no RDBMS textbook which recommends such a column but I know it’s useful in the OLTP world.

Thu, 04 Apr

Scala’s Pull Request Policy


Facebook Growth and Traction

Andy Johns’s answer is interesting to read.

I remember asking him, “So what kind of users am I going after? Any particular demographics or regions? Does it matter?” and he sternly responded “It’s fucking land-grab time so get all of the fucking land you can get.” In other words, don’t ask such a stupid question next time. Get the entire planet on Facebook. Clear enough, right!? I knew I liked him from the start.


Qiita is their Hatena

Once upon a time, a lot of Japanese web programmer used Hatena Diary and I think their keyword system was a killer feature. If you write something about JavaScript, people can find your article easily from http://d.hatena.ne.jp/keyword/JavaScript.

I remembered that when I start using Qiita. There are a lot of young (yonger than me) programmers, and they shareing tips, hacks, a process of learning, and something we shared in Hatena.

Sat, 06 Apr

Microsoft Stack

Stack Overflow’s original architecture was interesting for me because I was a kind of LAMP guy and their stack was full of Microsoft’s commercial products. Even they mix some of Linux on the stack today.

However Fog Creek’s latest product, Trello was somehow different.

TL;DR: Fog Creek Software develops an internet product using techniques that every Y-combinator startup has been using since spez was sleeping with his laptop so he could reboot Reddit when Lisp crashed in the middle of the night.

And Jeff Atwood started his new open source project, Discourse with Rails.

Like any pragmatic programmer, I pick the appropriate tool for the job at hand. And as much as I may love .NET, it would be an extraordinarily poor choice for an 100% open source project like Discourse.

It doesn’t mean the end of Microsoft. It just shows the goodness of two pragmatic programmers.

Mon, 08 Apr


I scored 455 on Listening, 415 on Reading.

[To see the graph, you need to have JavaScript enabled in your browser.]

Wed, 10 Apr

Rails Tutorial

I finished chapter 1 of Rails Tutorial (for 4.0). Even in the first chapter, this tutorial tought me RVM, Bundler, Git and Heroku. I’m not sure an entirely new Rails programmer should learn such a lot of things before “hello world” but this tutorial would be nice if you have a mentor, or you are a mentor and want to teach someone about Rails.

Why Git is so fast


For example most complete I think but still not fully complete Java implementation: JGit. I hope that JGit developers can tell us whether using higher level language affects performance, how much, and what features of higher-level language are causing decrease in performance. Of course we have to take into account the possibility that JGit isn’t simply as well optimized because of less manpower.


Java is definitely higher than C, but you can do some pretty low-level operations on bits and bytes and the like, not to mention the presence of a JIT.

My point: I don’t think that Java can tell us anything special in this regard.


Sure it can.

Peff I think made a good point here, that we rely on a lot of small tweaks in the C git code to get really good performance. 5% here, 10% there, and suddenly you are 60% faster than you were before. Nico, Linus, Junio, they have all spent some time over the past 3 or 4 years trying to tune various parts of Git to just flat out run fast.

Higher level languages hide enough of the machine that we can’t make all of these optimizations.


I saw the last email probably in Hacker News and just thought, “oh, C Git developers are crazy” but this entire thread was much more interesting than I thought.

Mon, 15 Apr

You can’t mix everything

Learning multiple programming languages is good. When you learn a new concept from a new language, you would be bring it to your old project. However sometimes it would be code smell because every language have own “taste”. You can’t mix coffee in green tea.

For me, Moose is a good (or bad?) example of this issue. If you really want to use Moose on your project, I think the project’s requirements aren’t suited for Perl.