タグ

programmingとProgrammingに関するkmachuのブックマーク (155)

  • 思ったことを形にできる喜びを - GoTheDistance

    この辺を読んで。 Hello, world から始まらないプログラミング教育 最初のプログラムとして "Hello, world." は適切か? 私は就職してからプログラミングをやり始めた新卒デビューですが、DOS窓Welcomeでしたよ。Hello,Worldでも何でもよかった。とにかく、プログラムというものを通じて自分の求めているものを出力することができ、段々とその幅が増えていくことが楽しかった。 でも多分こういう人間は少数派。 コンソールでの練習プログラムは「コンピュータの基礎理論を学ぶことでロジックの幅を広げること」がメイン。アプリケーションを作っている感というか、結局コレは何のためにどういったシステムを作る時に使われるべきものなのかっていうのがイメージしにくいのは確かだと思う。電卓であったり、絵であったり、音楽であったり、表であったり・・・、そういう「視覚的にも楽しめるアウトプッ

    思ったことを形にできる喜びを - GoTheDistance
    kmachu
    kmachu 2007/11/11
    「自分自身がそういう師にめぐり合いたい」←どう書く.orgのプログラミングを公開するのがいいと思います(期待を込めて)。
  • mixi Engineers’ Blog » 言語バインディングを書こう

    世田谷の某所から原宿まで自転車通勤しているのですが、そろそろ寒くなってきたので電車に切り替えようかと悩み中のmikioです。今回はTokyo Cabinetのスクリプト言語バインディングについて述べます。 スクリプト言語バインディングとは TCはC言語で実装されたライブラリで、C言語(C89、C99)およびC++言語のプログラムから利用することができます。CやC++は各種の計算処理やシステムコールの呼び出しを直接的に記述できるので高速に動作するプログラムを作ることができる反面、ポインタ演算やメモリ管理などで致命的なバグを潜ませやすいので非常に注意深くコーディングを進めなければいけません。つまり、プログラムの実行速度は速いが、開発速度は遅いということです。 それに対して、PerlRubyをはじめとするいわゆるスクリプト言語は、実行速度はCやC++に劣るものの、高水準かつ直感的な文法と強力な

    mixi Engineers’ Blog » 言語バインディングを書こう
    kmachu
    kmachu 2007/11/09
    質量ともに素晴らしい。
  • for 文を setTimeout に変換する - IT戦記

    for 文で 100 項目とか 1000 項目とかあるテストケースを処理するとブラウザが固まる。 こんなダイアログが表示されます。 ということで for 文を setTimeout や setInterval に変換する事で定期的にブラウザに処理を戻すことができる。 // ここでは console.log のところでログを取ってますが // 通常は処理が入ります。 for (var i = 0; i < 3; i ++) { console.log('a' + i); } /* * 結果 * a0 * a1 * a2 */ これをまず while 文に変換 var i = 0; while (true) { if (!(i < 3)) break; console.log('a' + i); i ++; } /* * 結果 * a0 * a1 * a2 */ で、 setTimeout に

    for 文を setTimeout に変換する - IT戦記
    kmachu
    kmachu 2007/11/09
    なんかもう発想自体がすごい。
  • 長文日記

    kmachu
    kmachu 2007/10/17
    「クラスとオブジェクトの区別」←この違いは難しい。クラスはソースコードで見えるけどオブジェクトは見えない。オブジェクトは実行時に見えるけど、クラスは見えない。JavaScriptやRubyをやって少し分かった。
  • 加齢臭付きの正論 - 書評 - プログラマー現役続行 : 404 Blog Not Found

    2007年10月15日01:30 カテゴリ書評/画評/品評Art 加齢臭付きの正論 - 書評 - プログラマー現役続行 吉岡さんのおかげで書評在庫が少しずつ片付いて行く。ありがとうございます。 プログラマー現役続行 柴田芳樹 ユメのチカラ: 職業としてのプログラマそして、そのような若い人たちを発見、発掘するのもわたしたちの責任だと思う。 その期待に答えてくれると思って買ってみた。 書「プログラマー現役続行」は、47歳、現役29年目のプログラマーが、その秘訣を一冊にまとめたもの。 目次 まえがき 35年定年説は当か 第01章 ソフトウェアは「人」が作る 第02章 プログラマー現役続行 第03章 論理思考力 第04章 読みやすいコードを書く力 第05章 継続学習力 第06章 コンピューターサイエンスの基礎力 第07章 朝型力 第08章 コミュニケーション力 第09章 英語力 第10章 コー

    加齢臭付きの正論 - 書評 - プログラマー現役続行 : 404 Blog Not Found
    kmachu
    kmachu 2007/10/15
    「実は匠ほど巧みに弟子から盗む
  • ピアニストはプレイヤー・ピアノじゃない : 404 Blog Not Found

    2007年10月12日10:15 カテゴリArt ピアニストはプレイヤー・ピアノじゃない 仕様書をプログラムに翻訳するのがプログラマーなら、ピアニストはプレイヤー・ピアノでいいということになる。 Life is beautiful: 「渡された仕様書を実装するサラリーマンプログラマ」の悲哀 彼が「私の仕事なんて所詮、人が書いた『仕様書』をマシンが理解できる『プログラム』に翻訳するだけの仕事。クリエーティビティなんてこれっぽっちも必要ない」と嘆く姿を見て、どう慰めて良いものか分からなくなってしまった。 もちろんヴォーカリストは初音ミクに全員ミクミクにされるはずである、と。 当だろうか。 新しい道具が登場することによって、玄人にしか出来なかった仕事が素人にも出来るようになるということはそれほど稀なわけではない。ソフトウェアの世界では特にそう。C言語が言語実装の敷居を下げ、そうして生まれたLL

    ピアニストはプレイヤー・ピアノじゃない : 404 Blog Not Found
  • 教えながら学ぶRuby: それでも僕は君をイテレータと呼ぶ

    前回の「イテレータに片思い」、たくさんのフィードバックをいただき、とても良い勉強になっている。一人でこつこつと勉強するよりも、励みになるしずっと楽しい。 ちなみに、1問目の問題だが、 def hello(to, *mesg) print "Hello, ", to, ".\n" print "-- message -- \n" for m in mesg print m, "\n" end end これに関しては、予想した通り、ほとんどの人が私と同じく、 def hello(to, *mesg) print "Hello, ", to, ".\n" print "-- message -- \n" mesg.each { |m| print m, "\n" } end という答えにたどりついた({..} のかわりに do..end でも良い)。圧倒的に読みやすいし、とにかく美しい。「プログ

    kmachu
    kmachu 2007/10/11
    イテレータ(ブロック)の良さについて。
  • 「渡された仕様書を実装するサラリーマンプログラマ」の悲哀

    @ITの「業務用途でRubyを使う上での課題 」を読んでなんだか悲しくなった。 チーム開発でRubyを使ったときに今後起こりえる問題として、サン・マイクロシステムズ システム技術統括部 チーフテクノロジストの下道高志氏は、こう指摘する。「他人の書いたPHPコードのメンテナンスはできない。Rubyはどうかといえば、現状はいい。しかし今後“職業プログラマ”ではなく、渡された仕様書を実装する“サラリーマンプログラマ”が増えてくると、コードのスパゲッティ化は避けられないだろう」。 【業務用途でRubyを使う上での課題 − @ITより引用】 これは言語の問題ではなく、日のソフトウェア産業全体が抱える問題。以前にも「ソフトウェアの仕様書は料理レシピに似ている」というエントリーで書いたが、来のソフトウェア作りとは、絵を描いたり、音楽を作ったり、建物をデザインするのと同じ「創作活動」である。ドラッ

    kmachu
    kmachu 2007/10/11
    似た問題意識を持っている気がする。LDRに登録。
  • ユメのチカラ: プロのプログラマ

    プログラマという職業。プログラムを作って給与を得る。が、定義かと思うけど、オープンソースを趣味で作っていてそれで所得を得ていない人は、じゃあ、プロのプログラマと言えないのか。 日IT産業のしょぼさは、ソフトウェア開発を人月単価でやりとりするところにあるというのが多くの人の指摘するところである。SIベンダーのエライ人が、学生の「大学では何を勉強すればいいですか」という質問に対して、「弊社では教育システムが完備していますから、大丈夫です」というような頓珍漢な答えをする。大学での専門的な勉強を期待しないということは、単に人を頭数で見ていることに他ならない。 「求人、プログラマ、未経験」を試しにぐーぐるしてみるとぞろぞろある。(求人 プログラマ 未経験 の検索結果 約 1,160,000 件中 1 - 10 件目 (0.08 秒) ) 誰でもできることをやっているとしたら、それはもう単価勝負に

    kmachu
    kmachu 2007/10/05
    「大学での専門的な勉強を期待しないということは、単に人を頭数で見ていることに他ならない。」
  • システム開発生産性が最も高い言語:ITpro

    10年くらい前、システム開発の生産性をいかにして上げるか、というテーマで取材をした時、CASE(コンピュータ支援によるソフトウエア・エンジニアリング)やシステム開発方法論に詳しいコンサルタントに会った。一通りの話が終わった頃、「ところで開発生産性が一番高い言語は何でしょうか」と聞いてみた。彼が挙げた言語は筆者にとって意外なものであった。 「それは間違いなく、えくせるでしょう」。 間抜けな話だが、「えくせる」と聞いて筆者はまったく新しい言語が登場したのかと思った。すぐにExcelだと気付いたが、「表計算のあれですか」と寝ぼけたことを言ってしまった。そのコンサルタントは「お前は何も知らないなあ」という表情をしながら、それを口に出すことはせず、「まあ、表計算ソフトと言えばそうですが、相当なことができますよ。Excelのマクロでさっと実現できる処理を通常の言語で記述しようとすると、桁違いのステップ

    システム開発生産性が最も高い言語:ITpro
    kmachu
    kmachu 2007/09/18
    Excelは「言語」じゃなくて「ツール」もしくは「処理系」だよなぁ。Excel+XMLRPCには可能性があると思うけど。
  • 今の子供達にどうやってプログラミングの楽しさを教えたらいいのか?

    うちはとても貧乏だったというのに、なぜか俺が小学三年生のときに、親父がパソコンを買ってきた。 親父は電気工事屋をやっていたから電気製品が好きだったんだろう。 当時小学六年生だった兄貴も機械いじりが好きだった。 電子ブロックなんてのが家にあった。 とはいえ、二十万円もするパソコンをコンビニでウーロン茶を買うかのように買ってきた親父が、あとでオカンになんて言われたのか、いまとなっては知るよしもない (いや、親父もオカンもまだ生きてるので、聞こうと思えば聞けるが) 。 ともかく、俺が小学三年生の時には家に MZ-2000 というパソコンがあった。 三年生のときはそもそもパソコンとはなにかも知らなかったし、親父も兄貴も壊れものを扱うかのように大事に触るので (実際壊れものだ) 、俺には触らせてもらえなかった。 親父や兄貴の背中越しに見ているだけだった。 当時はパソコン用のソフトなんてのがそこらに売

    今の子供達にどうやってプログラミングの楽しさを教えたらいいのか?
    kmachu
    kmachu 2007/09/14
    Rubyは21世紀のBasic。というわけでtry rubyはどうでしょ?ゲーム世代の僕でもプログラムに興味を持てたから、今の子でも興味を持てると思うよ。
  • IT戦記 - マシン語やりたい!

    マシン語やりたいよおお! だって、普段パソコン使ってるけどパソコンのこと全然分かってないもん。 WindowsMacLinux も同じ CPU で動かせるのに、なんでバイナリが違うの?マシン語 = バイナリじゃない? ハードディスクを管理してるのは、OS なのに(これが間違い?) OS のプログラムはどうやってハードディスクから起動されるの? とかとか、僕正直パソコンのこと全然分かってないよ。恥ずかしいけど。 もっといっぱい知りたいよ>< もっと勉強しよう>< できれば、今年中に理解したい。 バイナリアン0.1くらいになりたい。 まとめ 僕には、自分がイメージできない世界をイメージできる人がかっこいい。 なんとなくだけど、量子力学をイメージしてニュートン力学を語れる人になりたい。 マシン語と Lisp と Haskell が僕の中では最高にかっこいい。

    IT戦記 - マシン語やりたい!
    kmachu
    kmachu 2007/09/14
    「マシン語と Lisp と Haskell が僕の中では最高にかっこいい。」
  • そりゃLL使いでも低レベルを知っているに越したことはないに決まっている - あーありがち (2007-09-12)

    えーと、最近の一連の話はほとんど読んでませんが、C もアセンブラもかじった程度にだけ経験はあるけど BINARY HACKS はほとんど分からなかった1 LL な人間として思うことは 絶対に知っとけとは言わないけど、知ってると勘は働くよ ってことかなぁ。勘て書くと誤解を生みそうだけど。 C やマシン語をきちんとやらなきゃいけないって意味じゃーないんだけど、低レベルの動作がある程度想像できるようになっていると、例えばあまりに非効率な方法は実際に書いて動かしてみる前におかしいと気づきます。(なんつーか、これを詳細設計と呼ぶのかもしれない。知らんけど。) 例えば DB からデータを取得するときに、まるでテキストファイルを相手にするかのごとくシーケンシャルに一つずつ取ってくる2とか、テキストファイルからデータを取得する際に OS のバッファリングなどに丸投げせずに自分で妙な技を開発しちゃうとか、そ

  • オシロスコープを知らない子供たち - 針の上でprocessは幾つ踊れるか?

    あまりも当たり前過ぎて21世紀に入ってから言葉にだしたことはあまりないのですが、当然のことながら、プログラムというのは、パルス波を理解して初めて「書ける」と言うのです。 プログラムが書ける、という状態は「パルス波を理解する」という状態の延長線上にあるべきで、パルス波を理解していないということは電子の挙動を理解していない、つまりプログラムを理解していないのとほぼ同じだと思います。 最近はLLと呼ばれる、いわゆる軽量スクリプト言語がメインになってきていますが、それでも依然として、コンピュータというのは電位差で動くもので、プログラムというものは全て電子の振る舞いの延長上にあると思っています。 その意識がないと、たとえPHPJavaScriptのコードを書いていても、高周波ノイズをうけたり、 バスの同期が取れなくなってしまったときに「なぜだろう?」ということがピンとこないことになります。 まだ大

    オシロスコープを知らない子供たち - 針の上でprocessは幾つ踊れるか?
    kmachu
    kmachu 2007/09/14
    程度問題だということをうまく表現してる。
  • ○○を知らない子ども達 - 神様なんて信じない僕らのために

    まぁ、多くの場合○○に入るのは、 何らかの技術的な用語で、 語られるのは、 「○○を知らないプログラマは駄目だ」 ないしは、 「○○を知らないプログラマは質的にプログラマではない」 みたいな論旨なのだけれど、 僕がみた限りWebでもゲームでも、みんな 「どんな面白いサービスをつくるか?」 「どんな面白いゲームをつくるか?」 に必死で 「○○? なにそれ」 みたいな感じだろうと思う。 例えばWebのプログラマだったら、 JavaScriptRubyを書いたことがあります、 ほらこういう風に格好いいUIなんかも書けます、 という方が評価に直結するだろうし、 ゲームのプログラマだったら、 3Dの小粋なデモでも書けたら「おおすげえ」と言われると思う。 実際、 論理回路、マシン語、Cは見せるところがほとんど無く、 アピールできる層は限られていて、 「そういう意味では」 言語層やハードウェア層は地

    ○○を知らない子ども達 - 神様なんて信じない僕らのために
    kmachu
    kmachu 2007/09/14
    趣味と仕事の境界がここにある気がする。仕事だと役に立つ/立たないは重要だし、好きじゃなくてもトラブル解析で下の層に降りる必要もあったり。
  • 情報処理技術者試験合格者はCASLやってるからいいんじゃないのか? : ひろ式めもちょう

    なんかえらく熱くなってるなあ。 shi3zの日記 - マシン語ってどんな感じか知りたくなった方へ http://d.hatena.ne.jp/shi3z/20070913 弊社CTOの水野拓宏が8分で8080のマシン語プログラムをざっくりと解説しています もはや題外れて 「ケッケー、 おいらTK-80もってるんだぜー」 って自慢にしか見えない…(ほしいわけだが)。ニコニコ動画にはアクセスしないことにしているので見てないけど、マシン語を解説するならコーディングシートに手書きでニーモニック並べてあげたほうが理解しやすいんじゃないかな。 それはともかく思ったのは、第二種情報処理技術者試験(現基情報技術者試験)の受験者・合格者は、仮想マシン語であるところのCAP-XやCASLをやってるハズなのだから、 「最近の若いヤツはマシン語をしらん!プンプン!」 とかいう批判はあたらないのではないか。 な

    情報処理技術者試験合格者はCASLやってるからいいんじゃないのか? : ひろ式めもちょう
    kmachu
    kmachu 2007/09/13
    (残念ながら)今の情報処理技術者試験ではCASLは必須ではないのです。Cなどとの選択式です。(僕も選択しなかった><)
  • マシン語ってどんな感じか知りたくなった方へ - shi3zの日記

    kmachu
    kmachu 2007/09/13
    すばらしいです。ありがとうございます。
  • 長文日記

    kmachu
    kmachu 2007/09/11
    「レーシングドライバー=エンドユーザ、メカニック=プログラマー」→「観客=エンドユーザ、レーシングドライバー=プログラマ、メカニック=もっとすごいプログラマ」かな。主張したいことは分かります。
  • マシン語を知らない子ども達 - shi3zの日記

    kmachu
    kmachu 2007/09/11
    「プログラムが書ける」と「プログラムを(CPUレベルで)理解する」のは別。理解していた方がいいけど、理解しなくても書ける。/論理回路の下にもシリコンのレイヤーがあるので、どこまで理解するかは程度問題。
  • 404 Blog Not Found:再発明車輪のリリースと普及は北伐

    2007年09月11日14:00 カテゴリOpen SourceLightweight Languages 再発明車輪のリリースと普及は北伐 半分同意。 きしだのはてな - 2007-09-10 「車輪の再発明はするな」という言葉で車輪の再実装を阻む行為は、「車輪を実装した」という経験をもたせないようにして、先行者利益を確保するという、孔明の罠なのです。同意するのは、車輪の再発明のところまで。これは多いに結構。これほど短期間にスキルを上げる方法はそうはない。 ただし、リリースと普及は別。既存の車輪より少なくとも3倍良くないと、薦められない。 車輪には、「あると便利」「あると面白い」という側面がある一方、「ないと困る」の側面もある。「ないと困る」ものをリリース、というよりサポートし続けるのは、実は車輪を(再)発明する以上の手間暇がかかる。その過程で、車輪の多くは淘汰され、ごくわずかが業界標準

    404 Blog Not Found:再発明車輪のリリースと普及は北伐
    kmachu
    kmachu 2007/09/11
    「リリースと普及は別。既存の車輪より少なくとも3倍良くないと、薦められない。」