Friday, March 1, 2013

退職しました

4年と数ヶ月働いたピープパポを退職しました。2月28日が最終出社日でした。

思えば4年前無職で引きこもってたときに、 無駄に元気なtks氏らに出くわしたのが入社のきっかけでした。

ラボでのしごと

名前は聞いたことがあるぐらいの知識で入ったところ、かなり刺激的な世界でした。

入社早々、僕が少々Lispを書くと聞きつけたtks氏が、todesking氏と引き合わせてくれ、 結果として現在まで続く「todesking枠」として社内各位に白い目で見られるきっかけになったりしました。

また、仕事の面でも以下のような様々な経験をさせて頂きました:

  • 研究開発プロジェクトのドキュメントの翻訳マネジメント
  • 世界的にヤバい日本企業のサイトの検索の機能改善
  • 某メディア向けTwitterクローンの機能改善
  • 同上のOAuth認証機能付きRESTful APIの開発
  • 自然言語処理を応用した投資家向けニュース解析の機能改善

簡単な理由

前職と、そしてラボでの4年間を通して、 受託開発という形でプログラミングを仕事としてきましたが、 次第に「プログラミングを仕事にする」ということに対して、 もう少し違ったアプローチをしてみたいと思うようになりました。

今後

明日、(というかもう今日)3月1日から次の職場です。

詳細については落ち着いてから。。

Sunday, January 13, 2013

たった20行のコードでひたすらアイドル水着画像を集める(OCamlだよ)

ちょっと古いネタだけど、「たったn行のコードでひたすらアイドル水着画像を集める」のをOCamlで書いた。

ocamlscriptで実行させる設計にしたため、ヘッダーが付いてるのと、 現行のBatteriesではBatStrモジュールが削除されていて、正規表現が扱い辛いのでこの長さ。

参考:
たった3行のコードでひたすらアイドル水着画像をあつめる(Rubyだよ)

Friday, January 6, 2012

XOR texture in Common Lisp

Use the Right Tools for the Right Problems. (I mean C)

Tuesday, January 3, 2012

IBNIZ -- a VM for generative art

This demo IBNIZ - a hardcore audiovisual virtual machine and an esoteric programming language blowed my mind. It's a generative audio/visual environment and very awesome. I want one like this dedicated to me.. this year.

Sunday, November 13, 2011

How to know if CEOs are really dead

Say you read about a CEO's death on Twitter and you want to know if it's real or false rumor. It's a bad choice to go check Wikipedia since it can be edited by random people.

Here's a simple BASH one-liner you can use in this situation:

[ $(curl -s --head http://${host}/${first_name}${last_name}/ | grep HTTP | cut -d' ' -f2) -eq 200 ] && echo 'RIP' || echo 'still alive'

Try these:

[ $(curl -s --head http://www.apple.com/stevejobs/ | grep HTTP | cut -d' ' -f2) -eq 200 ] && echo 'RIP' || echo 'still alive'
[ $(curl -s --head http://www.microsoft.com/billgates/ | grep HTTP | cut -d' ' -f2) -eq 200 ] && echo 'RIP' || echo 'still alive'

Friday, November 11, 2011

How I listen to Internet

These days, I'm listening to Internet while at work.

At the beginning, it was just like tcpdump | sox -traw -r64k -c1 -eunsigned -b8 - -d.

# For those who doesn't know sox, it's a command that you can install from Homebrew.
# It's same as > /dev/audio in Linux.

Then I found that it could be mixed with Experimental music from very short C prog.

Now I'm listening to this:

EDIT: And this is how it sounds while i'm watching reddit.com/r/pics:

Internet by Yutaka Ichibangase

Enjoy!!

links:

Saturday, September 17, 2011

URLs are not just Strings. Respect types.

Recently, I've just joined a terrible project that former members (most of them are now at other projects or packing things to leave the company) should shame on them.

Everything is messy at the project. Spec? No one knows the spec. What the client feels right at the moment is the spec. Schedule? Changes easily and never shared. Budget? I don't even want to know that.

Nothing seems right here but the stupidest thing was found at everywhere in the code.

return awesomeUrl + "?foo=bar";

This is it. I found almost 100 of this. I don't know why they think it's good enough but I have 3 things to say to them.

1. URLs are not Strings

First of all, URLs are not Strings. Your abstraction is totally wrong.

Are you trying to say that each member of awesomeUrl.split("/"), that type is String[], is a URL? http://example.com/awesome/resources/1?foo=bar?foo=bar?foo=bar is a valid URL? Use java.net.URI instead.

2. It doesn't work

You won't believe it, but it's IMPORTANT to make your code work right.

Since we're using Seasar2 framework that consumes redirect=true from redirect URL, Some of the code work right. Browsers won't understand such stupid strings.

3. Burn in Hell

Long live so-called web developers! You are too cool to learn even the basic things.