諸君 私はプログラミングが好きだ 諸君 私はプログラミングが好きだ 諸君 私はプログラミングが大好きだ 設計が好きだ 実装が好きだ デバッグが好きだ コンパイルが好きだ リファクタリングが好きだ パフォーマンスチューニングが好きだ ペアプログラミングが好きだ クラスの名前を考えるのが好きだ 自分が書いたソースを眺めるのが好きだ Java で C で C++ で C# で Perl で Ruby で PHP で Python で Lisp で VB で この地上で行われる ありとあらゆるプログラミング行為が大好きだ 轟音と共にバグを吹き飛ばしていくのが好きだ 空中高く放り上げられたバグが 効力射でばらばらになった時など心がおどる プログラマーの操る キーボードが コンパイルエラーを撃破するのが好きだ 悲鳴を上げて 燃えさかるソースコードから飛び出してきたエラーを テキストエディタで薙ぎ倒した
Ask any programmer what his favorite language is good for and he'll yell, "Everything!" At least until his next favorite language comes along, which is also good for everything. The truth is: Any language that's Turing Complete and supports enough language features can solve any problem. The difference between languages and their usefulness is a matter of degrees of "yak shaving." "Yak shaving" is
Sun, 02 Mar 2008 Subtypes and polymorphism [ Note: You are cautioned that this article is in the oops section of my blog, and so you should understand it as a description of a mistake that I have made. ] For more than a year now my day job has involved work on a large project written entirely in Java. I warned my employers that I didn't have any professional experience in Java, but they hired me a
With 2.7 of Scala on the way, people are being exposed to Java wildcards more and more, which translate to Scala existential types. Unfortunately no one seems to understand these (including me at first!) and had previously let them go largely ignored, and now everyone is getting confused. Here's a brief introduction. scala> def foo(x : Array[Any]) = println(x.length); foo: (Array[Any])Unit scala>
Tech-On!に掲載した記事「【MacBook Air分解その5】外は無駄なし,中身は無駄だらけ」は,我々の予想を超えて多くの読者に読んでいただいた。そのこと自体は記者にとって望外の喜びである。だだし記事のコメントなどを読んでいて,読者の一部に我々の意図がうまく伝わらなかった懸念を覚えた。Apple社の話題を取りあげると熱狂的なコメントがつくことが多いので,しばらく静観していたところ,米Wired誌のブログ(日本語訳はこちら)で取り上げられて話がややこしくなった。Wired誌の記者はとんでもない勘違いをしているように思える。我々記者や記事に登場する技術者がApple社に嫉妬したり,同社を侮辱しているととられたならば,大間違いである。 先の文章には確かに説明不足の嫌いがあり,それが生んだ勘違いは筆者の不徳の致すところである。協力していただいた技術者たちには何の非もない。だからこそ,恥を承知
You’re implementing a client-server application. The client is in JavaScript. It contains a model class, Person. The model is backed by a server-side Person model, and a REST controller at /person. Periodically, the client updates the server’s model, but there can be client-side instances that don’t yet exist on the server, such as when a model is first created and the server hasn’t yet gotten the
このURLのページは表示することが出来ませんでした。 IQサーバー
いつもlivedoor Blogをご利用いただきまことにありがとうございます。 「新サービス発表の予告と、それにともなう仕様変更のお知らせ 」で予告しておりました通り、本日15時に「livedoor プロフィール」を公開しましたのでお知らせいたします。 ■livedoor プロフィール http://profile.livedoor.com/ 「livedoor プロフィール」は、livedoor IDを持つすべてのユーザーが利用できるプロフィールサービスです。 名前や年齢、自己紹介などの基本情報をはじめ、自由に質問と答えを設定して、簡単に自分を表現するプロフィールづくりが可能です。 また、「livedoor Blog」と連携して自分のブログの最新記事を表示したり、フィードを利用して他ユーザーのブログ記事を取り込み、自分のプロフィール上で紹介できるなど、ブログとの連携機能が強いことが特長で
3日目の最初の講演は、「TOMOYO Linuxへの道」の講演を行ったLinux Kernel Conference 2005で、招待講演を行ったRustyだ。自分の資料をまとめる作業をしながら、彼の話を聞いた。「こっち(lguest)には機能(functionalities)がある。あっちは、puppiesしかない」というジョークが受けたのに気をよくして、後半やたら"puppies"だらけになった。とてもノリが軽い。 まだ途中ではあったが、これまでまとめたBoFの資料の内容について、熊猫さんと武田君に見せた。OLSに参加してそのイベントの空気を感じ、いくつかのセッションを聴講して参加者のポジションと傾向を把握し、それに応じてやっと資料をまとめることができた。不器用な自分はこうしなければ資料を作れない。
LISP has survived for 21 years because it is an approximate local optimum in the space of programming languages. However, it has accumulated some barnacles that should be scraped off, and some long-standing opportunities for improvement have been neglected. It would benefit from some co-operative maintenance especially in creating and maintaining program libraries. Computer checked proofs of progr
Today I’m releasing to you, the world, my Scheme interpreter in Flash. This is in no way a polished thing, so don’t expect a ton, but it is pretty cool in my opinion. In the past few months I’ve created a few flash prototypes with it because it lets me develop significantly faster than with just plain ActionScript. Please note while reading this that the company that I was once employed at is no l
前回書いた記事に、「RSSフィードの真価はSEO=検索エンジン対策=にある」というトラックバックをいただきました。 RSSがSEOにある程度の効果がありそうだという点は、折に議論のあるテーマですが、その効果範囲の明確なご説明がしにくいために前回の記事からはあえて省いていました。 しかし、せっかくの機会ですので現時点での私の理解を整理してみたいと思います。 RSSは、サイトの内外で検索エンジン最適化を促進 サイトを検索エンジンに最適化することを考える場合、現在では主にその要因を2つに分けて考えます。 ひとつめが、HTMLの書き方やサイト内のリンク構造などの「サイト内の要因」、ふたつめが、外部からどのようなリンクが張られているかという「サイト外の要因」です。 私は、RSSがSEOにもたらす効果は次のように整理できると考えています。 サイト内の要因に対する効果→検索エンジン上のインデックス状況の
A little more than three years ago there was a thread in comp.lang.lisp about what people were working on in Common Lisp. I found the replies, some summarized here, quite inspirational; they were from people doing practical stuff (even Real Work) with Common Lisp, beyond things like going through Project Euler or doing exercises from SICP. (Not that those aren't fine things to do, but.) Let's upda
『 The Ruby Programming Language 』を読んだ。こいつは良い本だ。副題の"Everything You Need To Know"っていうのは嘘じゃない。翻訳しようっていう話もちらほら聞こえる。当然、翻訳は出すべきだろう。 だが、この本は決して簡単ではない。こいつは 『プログラミングPerl』 と相似だ。その言語の創始者自身が書いた。そして、初心者が中級者になるために、最後に読むべき本はこれだ。けれども、その言語の流儀を全く知らない、チュートリアルすらやってない入門者は、この本では挫折する。 Ruby Inside も、こう書いてる。 The only downside, in terms of the thousands who might be browsing Amazon looking for a single Ruby book to start o
Electric な Ruby の end (2)で気付いたことを直しただけで、公開していませんでしたが、これが現在のバージョンです。コメントが付いたので、思い出しました。(_ _) (defvar ruby-elect-keyword '("def" "if" "class" "module" "unless" "case" "while" "do" "until" "for" "begin" "end")) (defvar ruby-elect-regex (mapconcat (lambda (x) (format "\\<%s\\>" x)) ruby-elect-keyword "\\|")) (defun ruby-elect-end () (interactive) (insert "d") (when (and (char-equal (char-before (1- (p
Download StopFold Version 0.4.1 (2009/9/11) Snow Leopard専用リリース(Mac OS X 10.6〜10.6.1に対応)。 Version 0.4 (2009/8/29) Snow Leopard専用リリース(Mac OS X 10.6に対応)。 Version 0.3 (2006/12/18) Tiger/Leopard用。 AppleScriptで作成したメッセージがquoted-printableとして送信される不具合を修正。 これは何? StopFold は Apple 純正の Mail 2.0(Tiger)、Mail 3.0(Leopard)、Mail 4.0(Snow Leopard)の行自動折り返しを無効にするプラグインです。 Mail は日本語のメッセージを(おおむね)全角35文字で自動的に折り返し,format=flo
Jettyのorg.mortbay.servlet.ProxyServletを使うと、リクエスト/レスポンスをそのまま中継するだけのプロキシサーバが簡単に動かせます。(Jetty 6.1.5で確認) 適当なWEBアプリケーションとして、 ProxyServletで全てのリクエストを受けるようにしておけばOKです。 ProxyServletでは、接続先に対してURLConnectionを使って接続し、リクエストの内容をコピー、そして受け取ったレスポンスをコピーして返却するような処理をしています。 ソースのコメントみると、「EXPERIMENTAL Proxy servlet.」となっているので、どこまでちゃんとプロキシとしての処理が実装されているのか不明ですが、私が使ってみた限りでは、特にエラーとなるようなことはありませんでした。 単に中継するだけのプロキシサーバでは使い道があまりなさそうで
LDR Full Feedが浸透して、はてなRSS版、Google Reader版といずれもLDR版のSITE_INFOに対応したスクリプトが公開されています。 LDR Full Feedもバージョンアップを重ねて、LDR Full Feed 0.0.7では相対リンクを絶対パス化できるようになって、より多くのサイトで画像も見られるようになりました。 なんですが、絶対パスになっているのにも関わらず見られないサイトが結構あります。例えばITmediaなんかがそうなんですが、この「史上最薄のThinkPadは光学ドライブを搭載:大和の技術を結集した“究極のThinkPad”――「ThinkPad X300」発表会」という記事のフィードから全文取得するとこんな風になって画像を見ることができません。 下の方に「og_x300_001.jpg」という文字が見えます。これが画像の代わりに表示されているわ
This article is about how to deal with null values. It follows up on this one. It’s intended for code stylists: people who care a lot about the difference between one line of code and two, or keeping control statements and temporary variables to a minimum. (A code stylist is kind of like the dual of a software architect, although one person can be both.) It’s not about code golf – although you mig
Three Dogmas of Scheme (Recursion, Single name space and Continuation) R6RS にざっと目を通して一番驚いたのはそれまでの表示意味論が捨てられてしまっていることでした。 しかし 表示意味論 を捨てるなら以下に並べる Scheme 三つのドグマも捨てられなきゃ嘘だろう、ということでコメントしてみます。 Recursion (再帰) Scheme は何でも再帰です。 後で示すように、一見 iteration のような格好をしている構文ですら、 一旦末尾再帰に置き換えられてから実行されます。 つまり Scheme はその仕様に iteration を持ちません。 これが関数型プログラミングと関係の深い表示意味論からの要請であったことは容易に想像がつきます。 しかし、表示意味論が捨てられた今、反復制御構造に recursion
またしょうこりもなく gauche night に出ることになってしまいました。 今年の頭ごろえんどうさんに出演依頼を受けてたんですが、「2度出る馬鹿」にはなりたくないな、 と思って「今回は客席からで勘弁してくれ」というふうに返事をしたまではいいんですが、 そういえば今週末だったよな、と Web を覗いたところ、当日券売り切れとあります。 「行ってもいいのか?」とえんどうさんに連絡とったら「出演するなら来い」との返事です。 条件つきつけられちゃ、しょうがない。出演快諾ってことになっちゃいました。 普段決まったサイト以外めったに行かない人間なんですが、 人気の gauche night、 みんなどんな話してるのかな、と検索かけて泳いでみました。 みなさん精力的に活動されているようで頭の下がる思いです。 ただ、ひとつ気になったことがあるのでコメントしておきます。 プログラミング言語につい
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く