見ていて楽しい感じだったのでご紹介。マニアックだが。 Algomationはさまざまなアルゴリズムをアニメーションで解説してくれるサイトだ。 よくあるソート系のアルゴリズムや、オセロを題材にした人工知能のアルゴリズムまで網羅している。 また自分でアルゴリズムを作って投稿することも可能だ。これ系の思考実験が好きな人は覗いてみるといいですね。
私は夏休みの宿題のやり方を教えてもらったことがありません。約2ヶ月という限られた時間で、どういう風に消化していくと良いのかを学習したことがなかったのです。 夏の終わりに24時間テレビが放送されますが、あれを見ながら、答えをチラ見し、綺麗なドリル(*1)を1冊消化するのは忘れられない子供の頃の思い出です。 この経験はソフトウェア開発にも似ていて、開発の手法を知らなければ、良い結果を生むのは難しいのです。不幸なことに、夏休みの宿題のように明確に何をやるべきなのか、明確では無いのです。 夏休みの苦い思い出と、ウォーターフォールっぽい大失敗プロジェクトの経験をいくつか得た上で、アジャイルソフトウェア開発を学ぶことによって、ソフトウェアのつくりかたを学びました。 これは、中小のSIerでも、イケてるWEBサービスを提供している会社でも教えてくれたことではありませんでした。そう、夏休みの宿題のやり方を
LinuxのようなUNIX系OSでは,ファイルに対する操作と同様にネットワーク通信を行うために,「ソケット」と呼ばれる仕組みを使います。今回はソケットについて学びましょう。 コンピュータは「電子計算機」という和名が示す通り,本来は高速に計算するための機械でした。しかし,現在のコンピュータは,Webブラウジングや電子メールのやり取りなどに使われることが多く,ネットワークと切り離すことができません。最近は「コンピュータを使う」ことと「ネットワークを使うこと」がかなり同義になっているのではないでしょうか。 今回は,ネットワークを介した通信の基礎になっている「ソケット」という概念を紹介します。 ディスクリプタでアクセスが単純に ソケットはネットワーク通信に用いるファイル・ディスクリプタ(file descriptor)です。そこで,ソケットの説明に入る前に,より一般的なファイル・ディスクリプタにつ
第0回 あらためてRuby入門 まつもとゆきひろ氏自身による「Ruby入門」をお届けします。日経Linuxの連載開始前の特別企画(2005年4月号)として,Rubyが他のスクリプト言語やオブジェクト指向言語とどこが違うのか,なぜ便利なのかを中心に解説してもらったものです。 ● 基本と他言語との違い ● 実装とRuby誕生の秘密 第1回 プログラミングとオブジェクト指向の関係 プログラマを目指す人々の中にも,「オブジェクト指向は難しい」とか,「なかなか分からない」という印象を持つ方が多いようです。そこで,Rubyを題材にオブジェクト指向という考え方について説明していきます。 ● その1 ● その2 ● その3 第2回 抽象データと継承 オブジェクト指向プログラミングを構成する3原則のうち,前回は「ポリモーフィズム」を学びました。今回はオブジェクト指向の歴史を復習した後,残りの「データ抽象」と
JavaScript sucks because Note some of this is not JavaScript itself, but web APIs (https://developer.mozilla.org/en/docs/Web/API) Poor Design Every script is executed in a single global namespace that is accessible in browsers with the window object. Camel case sucks: XMLHttpRequest HTMLHRElement Automatic type conversion between strings and numbers, combined with '+' overloaded to mean concatenat
2011年11月08日10:22 カテゴリ 自分の周りに居る凄腕プログラマーが実際に読んでいる本 こんにちわ、VOYAGE GROUPでエンジニアをしている伊織といいます。 RubyKaigi2010/2011でスタッフをさせて貰ったりしています。 他にも渋谷rbランチなどに顔を出させて貰っています。 弊社の先輩エンジニアは勿論の事、RubyKaigiのスタッフをやらせてもらったりShibuyarblunchやLispコミュニティでうろちょろしているお陰で僕の周りには凄いプログラマーが沢山います。そこで、周りの凄腕プログラマーが実際に読んで「良かった」と言っていた技術書を幾つか挙げてみたいと思います。自分で手を動かしてやった本は僕の感想も添えます。 計算機プログラムの構造と解釈 クチコミを見る 有名な魔術師本。MITで長年教科書として使われてきた本です。今はPythonなので違う筈。今やっ
はじめに JavaScriptでは関数もオブジェクトです。このことはよく理解されていると思います。関数とメソッドとの明確な違いはなく、どちらも関数オブジェクトである、というところまではよいのですが、関数コールとメソッドコールの違い、あるいはその仕組みは正確に理解されているでしょうか。先日、職場の後輩に問題を出したところ正確に答えられえなかったので、いまさら?と思われるかも知れませんが、関数コールの仕組みを解説します。 関数とメソッド JavaScriptでは関数とメソッドには本質的な違いはありません。オブジェクトのプロパティとして定義される関数を便宜的にメソッドと呼んでいるだけです。parseInt()などのグローバル関数もグローバルオブジェクトのプロパティであり、関数の中でローカルに定義した関数も概念的にはActivation Objectのプロパティなので基本的には全ての関数はメソッド
コンピュータ科学の分野における 「参照型」 (reference type) というのは、「何らかの値を参照するデータ型」 のことだと思っていたのですが、実際の意味は 「参照によってのみアクセス可能なデータ型」 のようです。 そんなわけで前者が正しい定義だと思って書いたこの記事は間違っています、ごめんなさい。 JavaScript のオブジェクト型が参照型 (コンピュータサイエンス用語) である、ということはさておきこの記事内容は間違っているのでご注意ください。 もうちょっとちゃんとまとめてから書き直したいと思います。 cf: Reference type - Wikipedia 「JavaScript の型は、大別するとプリミティブ型と参照型に分けられる。 そしてオブジェクト型は参照型である」 と言われることが多々あります (そしてその説明は Java 経験者などにとってわかりやすいと思
私が実践して、とても効果が上がった学習方法を紹介します。 どんなプログラミング言語でも関係なく通用するやり方だと思います。 この学習方法に切り替えてからの 1 年の学習量は、それ以前の 4 年分に匹敵すると感じています。 以下にその方法を紹介します。 ソーシャルブックマークのホッテントリのフィードを購読する 特に気になったサイトの人気エントリにざっと目を通す 特に気になったブログを個別に購読する 流行のライブラリ、フレームワーク、アプリケーションのソースコードを読む カンファレンスなどのスライドに目を通す 特に気になった人のブックマークをお気に入り登録する 得た情報を元に実際にコードを書いてみる 評判の書籍を読む ソーシャルブックマークのホッテントリのフィードを購読する ホッテントリとは人気の記事のことを言います。沢山ブックマークされ、それだけ注目度が高いということです。 特定分野の人気記
今日は、kanazawa.js v1.2です。 もうちょっとしたらしゃべることになるんですけど、大変申し訳ないことに、下書きはなんとか出来上がりつつあるものの、文章を要約して、スライドにまとめる時間はなさそうなので、この記事をプレゼン資料にしちゃうことにします。(あと味的には、今までに書いた記事と被る箇所があります。) 自己紹介 大部分省略。 JavaScriptが好きです。 ブラウザを開きながら、Firebugでその場で弄って遊んでみたりできるし、関数がとても強力なところが好きです。堅苦しくない仕様がとても肌に合ってると思ってます。 最近は、プログラミングが好きというよりも、プログラミング言語が好きなんだと気付き始めてます。 オブジェクトという言葉の定義を確認する オブジェクト (プログラミング) - Wikipedia 関連するデータを束ね、代入、演算、手続き(関数やメソッドなど)を介
はじめまして、5月から入社した久保田と申します。 九州からはるばる上京してエンジニアとして働いています。 普段はanatooというIDでブログ書いたりしています。 また、BlankaというPHP5.3で動くフレームワークを開発していたり、はてな記法パーサなどに利用されているパーサコンビネータなどを公開しています。 今後、勉強会などにも積極的に参加していこうと思いますのでお会いしたときはよろしくお願いします。 さて、この記事ではPHPでのバイナリの扱い方について説明します。 バイナリとは、ざっくりと言えばテキスト以外のバイト列のことです。 バイト列とは1バイトで構成される任意の長さを持つ列の事で、1バイトとは256通りの値を表現できる8ビットのデータのことです。 画像や音楽、映像などのバイナリは全て、テキストエンコーディングに沿わないバイト列によって表現されています。 これらのバイナリを扱う
(2011/12/18, 2012/10/15, 2013/03/07, 2016/09/12 追記あり) 現在、オライリー・ジャパンが、Ebook Storeの商品を期間限定(2011年3月26日の午前0時まで)ですべて半額セール中。どれを買おうかと色々探しているうちに、いくつかの本の原書はフリーで公開されていることに気づいたので、それをまとめておく。 O'Reilly Japan - ソフトウェアアーキテクトが知るべき97のこと →97 Things Every Software Architect Should Know - The Book - Softarch 97Things ただし、日本語版には11編が追加 O'Reilly Japan - プログラマが知るべき97のこと →http://programmer.97things.oreilly.com/wiki/index.p
1.一般的なコーディング規約に目を通し、エレガントなコードを知るエレガントなコードを書くためには、エレガントなコードを知らなければならい。その土台を築いているコーディング規約について、オープンソースではどのようなものが使われているのか理解しておこう。入社する予定の会社が採用している言語については必ず目を通しておこう。 PHPPEAR 標準コーディング規約symfony CodingStandards Perlperlstyle Ruby クックパッド株式会社のRubyコーディング規準 Matzスタイル NaClで採用している規約 Python PEP 8そして、あなたの身近にあるオープンソースのコードを実際に読んでみよう。この時点でコードの仕組みや設計が理解できなくても良い。コードがエレガントかどうか?を感じ取って欲しい。こう書いた方が、良いのではないか?など、考えてみよう。
『プログラミング言語人気TOP10の簡易解説』という記事が人気を呼んでいたのだが、軽快な語り口で面白い読み物だが、語弊がありそうな部分がある。その中で特に、「(Javaは)実行速度はCに及ばないもののスクリプト言語よりは数十倍速い」とある部分が気になったので、簡単な例で検証してみた。 1. Python、PHP、Java、Cで不適切な速度比較を行う 最初にコーディングが不適切な場合にプログラミング言語の速度比較を行うと、通説と異なる結果になる事を示したい。 Ubuntu Linuxで、オブジェクトをなるべく使わずに、順列の整数を100万個生成し、ランダムにシャッフルし、クイックソートを行ったときの経過時間を、timeコマンドで計測したものだ。ソート前、ソート後に配列の内容を、", "で連結して標準出力に書き出している。また、PythonはAPIをなるべく使ったもの(*無し)と、なるべく使わ
[この記事を読む前に] タイトルに騙されて来た方はごめんなさい。 恐らく、知っていることばかりが書いてあると思います。 “3冊の本”もベストセレクションではありません。 “たまたま”選んだ3冊の本です。 それでも読んでくれる心優しい方はどうぞ、先にお進みください。 技術的負債は日々、返済していますか。 技術的負債って何?という方はこちらへ。 技術的負債 – Wikipedia えー、正直、私は技術的負債が溜まっています。 お知らせメールを本格的に初めて1年が経とうとしています。 何も無い状態から、手探りで始めて今の状態までなんとか持って行きました。 この計画が立ち上がった当時(2年ぐらい前かな)、自分ができたのは、 PHPが書ける(書けるだけ) サーバが少しわかる(cdとlsが打てるだけ) これぐらいです。 ちょっと大げさですが、あながち嘘じゃない。 そんなこんなで、試行
http://blog.usagee.co.jp/2010/11/23/level-up-programmer id:lizy javablackさんが来そうな内容だw http://b.hatena.ne.jp/entry/blog.usagee.co.jp/2010/11/23/level-up-programmer いやまったく.毒と分かっていても食らうしかないのは不幸だ. http://d.hatena.ne.jp/JavaBlack/20080401/p1 http://d.hatena.ne.jp/JavaBlack/20070522/p1 悪書 憂鬱なプログラマのためのオブジェクト指向開発講座 (DDJ Selection) 作者: Tucker出版社/メーカー: 翔泳社発売日: 1998/05/31メディア: 大型本購入: 10人 クリック: 508回この商品を含むブログ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く