A few are written in 日本語.

Wed, 21 Aug

Why Japanese people use umbrellas so often?

This question came up at lunch today and I didn’t have a clear anwser. That what I surprised when I was in UK because most people don’t use umbrellas not so often.

There is an article about this question in the NTT DATA Blog. The article compared Cologne and Tokyo, and it mentioned three points.

  • In Germany (Cologne) the amount of rainfall is less than in Japan (Tokyo).
  • Japanese don’t like to get their clothes (including even hoods) wet – which makes umbrellas very practical to them.
  • In Europe, umbrellas were originally very expensive symbols of wealth and power. But in Japan, they have been widely used since around 14th or 15th century.

Well, I will mention the third one next time because it means we were advanced. Woo hoo!


Huxley is Instagram’s screenshots-based testing tool.

Sat, 28 Sep

Hack - Facebook’s type-annotated PHP dialect

At CUFP and Strange Loop, Facebook unveiled their type-annotated PHP dialect – Hack. I haven’t see the video because I’m not a Strange Loop atendee and CUFP’s video section doesn’t have 2013’s talks.

However even with thier slides and Liveblogging CUFP 2013, I can say their approach is interesting. Like AltJS languages, Hack’s type system is designed for developer’s productivity. Hack’s implementation is just a standalone type checker for PHP, and it doesn’t relate with thier famous HipHip Virtual Machine.

Several days ago, I saw slides about Livedoor Blog’s PSGI/Starlet migration and started thinking about “the depreciation of the project’s first language”. Should I invest more on the language? I initally wanted to write Twitter as a “the 21st century’s example”. Now we have JVM and Thrift. Why don’t you use your favorite instead of the language someone chose before you join?

However Hack blowed my mind a little. Anyway, as usual, I wrote about Twitter’s JVM migration and Facebook’s love against PHP in Japanese. So what do you think?

Thu, 03 Oct

300+ bookmarks

I wrote a Japanese article about Twitter’s JVM migration and Facebook’s improvements on PHP. This article got 300+ bookmarks on Hatena!

Then I started reading HHVM’s code. However now I’m not sure HHVM ignores Hack’s type annotation or not. So I’ve wrote a note on the Japanese one.

Tue, 10 Dec
Planet Tempura

I started Planet Tempura last week. This is a blog aggregation site (a planet) for Japanese who blog about software develoment in English.

Why? I’m just scratching my own itch. Compared to blogging in Japanese, blogging in English is hard to continue because it’s hard to write and usually there is no reaction from readers. If you really want a reaction, what you have to do is translation (like I did before).

I don’t say it’s bad. I just want to try something else.

So instead of enforcing my friends to click Like, I’d like to have a support group, something like Tokyo Imperial Place (Kokyo) for runners or Starbucks for people who study at the cafe. If someone blog in English just next to me, it might motivate me.

Too selfish? Well, but it will work for you also.

Wed, 11 Dec
On Go (or stop dreaming! People will hate the new operator you've invented)

Sorry for the confusion.

In this article, I’d explain what I thought about Go without mentioning “dream” (because it will confuse others), “pragmatic” (because most language is designed to be pragmatic) and “industrial” (because I’m not Martin Odersky).

As a language, Go is small. There is no generics, no operator overloading, no Maybe or Option. However Go has operators (unlike Lisp) and Go’s “append” can treat []int and []string in a type safe way because lex.c and typecheck.c know “append”.

There is a gap between language designers and language users. There is a valid use case to define operators and generic functions. And the designers can use them but the users can’t (or compared to the cons it introduces in the language, it doesn’t seem a valid use case from the designers).

Having such a gap makes Go different from C++ and Scala. These languages have a lot of features and it allows users to behave like designers. Since integers and std::string can be concatenated by “+”, your classes can be concatenated by “+”. STL containers are type safe and you can build your type safe containers over same building blocks STL uses. Moreover Scala allows users to define new operators and actually Scalaz defines them with Unicode characters. And of course, Scala has macros!

Then you can show your awesomeness by defining things like designers. The languages don’t treat yours like a second-class citizen. How dreamy! But well… you are not so awesome in fact. Your dream might be a nightmare for others.

Let me recap without mentioning “dream”. Maybe what I miss is extensibility. Go is simple but as a result of simplification, it enforces us to define rational numbers like math.big.Rat. Go’s map is implemented as a hash map. If you need to have a tree map instead, you have to define a type specific container like IntTreeMap. You can implement Rope, but you can’t treat it like Go’s strings.

It’s not a big deal maybe and I would use Go in somewhere. I’m just missing what I had before.

Tue, 31 Dec
See you!

As usual, I will start my new blog in http://2014.8-p.info/