タグ

programmingに関するhiroki23のブックマーク (30)

  • プログラミング地獄への道は“ベストプラクティス”で敷き詰められている:Rails Hub情報局:エンジニアライフ

    Ruby on RailsのメジャーバージョンアップとなるRails4のリリースが近づいて来ました。先日、日人(あるいはアジア人)として初めてRailsコアチームのコミッタとして迎え入れられた松田明氏によると、Railsの生みの親であるDavid Heinemeier Hansson氏(以下、通称のDHHを使います)は、プロジェクトをリードするという意味で活動が活発になっているそうです。 そして最近のDHHは、ブログもよく書いています。彼は歯に衣着せぬ発言でも知られています。強い主張を持った(opinionated)なフレームワークの作者らしく、DHH自身もきわめてハッキリと物を言います。攻撃的とまでは言いませんが、IT業界技術動向などでは割と何かをクソミソにけなしたりということをします。 DHHが何かをけなすときは、だいたい何らかの鋭い洞察とパンチの効いた皮肉が含まれていて、Twit

    プログラミング地獄への道は“ベストプラクティス”で敷き詰められている:Rails Hub情報局:エンジニアライフ
  • 簡単なWebサーチエンジンの作り方 - Imagine with 加藤和彦

    筑波大学は3学期制で,12月1日から3学期が始まりました.3学期には私が担当している学類生(普通の大学の学部生)3年生向けの実験があります.約3ヶ月を掛けて,ほどほどの規模のプログラム作成を行います.私が作り,担当しているプログラム実験は「Webサーチエンジン」といいまして,テキストはこちらに公開しています. この実験,結構,自信作なんです.Javaの基的なプログラミングができることだけを仮定して,漏れのない全文検索を行うWebサーエンジンを作ります.Webデータ収集を自動的に行うクローラー付き.Googleのようなページランキング機能はありませんが,一応,サーチエンジンの基機能を備えます.自慢は,このテキストが実質A4で印刷して2ページくらいであること.数学の小問を解いていくように,順番に小問を解いていくと,最後にはWebサーチエンジンができます. ミソはサフィックス・アレイ(suf

    簡単なWebサーチエンジンの作り方 - Imagine with 加藤和彦
  • プロ・アマ・プログラミング言語を問わずに今までの4倍のスピードで学習する方法 - Craftworks Tech Blog - Branch

    私が実践して、とても効果が上がった学習方法を紹介します。 どんなプログラミング言語でも関係なく通用するやり方だと思います。 この学習方法に切り替えてからの 1 年の学習量は、それ以前の 4 年分に匹敵すると感じています。 以下にその方法を紹介します。 ソーシャルブックマークのホッテントリのフィードを購読する 特に気になったサイトの人気エントリにざっと目を通す 特に気になったブログを個別に購読する 流行のライブラリ、フレームワーク、アプリケーションのソースコードを読む カンファレンスなどのスライドに目を通す 特に気になった人のブックマークをお気に入り登録する 得た情報を元に実際にコードを書いてみる 評判の書籍を読む ソーシャルブックマークのホッテントリのフィードを購読する ホッテントリとは人気の記事のことを言います。沢山ブックマークされ、それだけ注目度が高いということです。 特定分野の人気記

    プロ・アマ・プログラミング言語を問わずに今までの4倍のスピードで学習する方法 - Craftworks Tech Blog - Branch
  • 新人プログラマーがプロのプログラマーとして独り立ちするための7つの条件 - ハックルベリーに会いに行く

    ぼくは以前にIT関連の仕事をしたことがあって、ぼく自身はプログラムを組めるわけではないのだけれど、何人かのプログラマーさんと一緒にお仕事をさせて頂く機会があった。その中で生まれて初めてプログラマーという職業の方と交流させて頂いたのだけれど、彼らはなかなかにユニークで特異な個性の持ち主たちであった。もちろんプログラマーと一口に言っても色々なタイプがいて、必ずしもひとくくりにできるわけではないのだが、共通していたのは好奇心が旺盛で新しい物好きだということだった。そして少々気難しい面がありつつも、基的にはポジティブで、明日に向かって色々なことを前向きに、精力的に取り組んでいる人が多かった。 そんな中で、特に親しくお話しさせて頂いたTさんというプログラマーがいて、この方もなかなかに個性的で、ご自分の意見や主張というものをはっきりと持っており、ITのみならず世の中に対しても一家言お持ちであった。そ

  • タブのスペース化はタブ幅よりも重要である : 404 Blog Not Found

    2006年04月30日03:46 カテゴリOpen Source タブのスペース化はタブ幅よりも重要である あえて断言します。君たちは半分しかわかっていないと。 Charsbar::Note - タブとスペースの話 あえて断言しときます。こんなモンはバッドノウハウなんであって、ベストプラクティスでもなんでもない、と。 最速インターフェース研究会 :: タブとスペースと萌ディタの話なんかそもそもタブを使わずにスペース4で統一せよってのはフォントサイズをピクセル単位で指定したがるデザイナの言い分みたいで気にわない。君たちは、patchのことをきれいさぱーり忘れている。 人のコードを直したり、人にコードを直してもらったりしなくてもいいというのであれば、君たちのいい分ももっともだ。しかし、人とコードをやりとりする時にpatchをやりとりする場合、tabは頭が痛い以外の何者でもない。 以下に二つの

    タブのスペース化はタブ幅よりも重要である : 404 Blog Not Found
  • プログラマの教育のための本 - きしだのHatena

    Seasarカンファレンスで「プログラムが組めるようになるためには何を教えればいいですか?」と聞かれて、「創るJava」も絶版だし、どうしようかと思いつつ、「教える」というときに考えないといけないことが書いてあるを紹介しますね、と言ったので、そのの紹介。 あと、そのときに言ったこと。 教育するときに大切なことは、「情報を与える」という観点でカリキュラムを構築してはダメで、「脳みそを構築する」という観点でカリキュラムを作らないといけない、というようなことをまずは伝えた。 つまり、たとえばJavaでWebアプリを作れるようにするというときに、必要な情報を分解してHTMLとデータベースとサーブレットとJavaの文法が必要だとなって、その情報の依存関係を洗い出して、最初にJavaの文法をからとか順番を決めて、依存部分の少ないものから提示していくという、そういう単なる情報の提示だけでは教育にはな

    プログラマの教育のための本 - きしだのHatena
  • まつもとゆきひろ氏が語る「ビューティフルコード」セミナーに行って来た - LukeSilvia’s diary

    まつもとゆきひろが語る「ビューティフルコード」×「プログラマ35歳定年説」に行ってきました〜。今年初めて行ったイベントなのですが、とてもいいお話を聞くことができました。美しいコードとはどのようなものか、またそのようなコードを書けるようになるためにはどうすればいいのかというお話でした。 以下、まとめになります。僕のメモを元にしたので、まつもとさんが話された内容と多少ズレがあるかもしれません。 そもそもコードとは何か 「コードの美しさとは」という前に、そもそも「コード」とは何か。 ソフトウェアの作成はものづくりではない コードは工業製品ではない。コードは、車とかと同じ工業製品だと思われることが多く、例えば次のような勘違いがある。 日は「ものづくり」が得意だ。だからソフトウェアも「ものづくり」として取り組めばいい 車のように、ソフトウェアも部品をどんどんコピーして組み合わせばできる 違うよ!全

    まつもとゆきひろ氏が語る「ビューティフルコード」セミナーに行って来た - LukeSilvia’s diary
  • AJAX APIs Playground

    Google APIs Explorer Stay organized with collections Save and categorize content based on your preferences. The Google APIs Explorer is a tool available on most REST API reference documentation pages that lets you try Google API methods without writing code. The APIs Explorer acts on real data, so use caution when trying methods that create, modify, or delete data. For more details, read the APIs

    AJAX APIs Playground
  • 最近もらった本: インターフェイス指向設計 - steps to phantasien t(2008-07-21)

    最近でもないですが頂きました. ありがとうございます > 関係者の方. 多忙にかまけて感想を書くのが遅れてしまいました. 遅れた理由はもう一つあって, 私はこのの主張があまりピンとこなかった. でも貰ったのことを単にイマイチだったと書くのも社会人としてどうかなー, などとよたよたするうちに月日は流れ... 嘘や間違いはない. けれどアジャイルなオブジェクト指向設計という視点でみると, いまいち relevance を欠く気がする. このを読んでまずい設計が良くなるのを期待できない自分がいる. 何でピンとこないのか, しばらく考えていた. どうも "インターフェイス" を中心に据えるのがまずいんじゃなかろうか. オブジェクト指向の設計を議論する上で, インターフェイスはツールの一つに過ぎない. "インターフェイス指向設計" という切り口は, 極端に言えば "クッキー指向ウェブアプリケー

  • 1日で作る全文検索エンジン - Building a full-text search engine in "ONE" day - - とあるはてな社員の日記

    最近、「Introduction to Information Retrieval」というStanfordの大学院向け教科書のドラフトを読んでいます。id:naoyaあたりが勉強会で読んでいる教科書です。この教科書には、効率のいい全文検索システムを作るにはどうすればいいか、という(まさに)教科書的手法が網羅的に書いてあり、そのあたりに興味がある人には、非常に興味深く読めるお勧めのです。 ただ、面白い面白いと言っているだけでは、エンジニアとしては価値半減ですので、GW中にrubyで一日かけて実装してみました。 さすがに実装は、一日で作ったものですから、非常に素朴です。マルチバイト文字はbi-gramで、シングルバイトはスペースなどの区切り記号で認識しています。インデックスは、rubyの処理系のHashやArrayで保持しており、外部にMarshallで書き出す、というものです。検索エンジン

  • 本棚演算

    「増井の棚」と「svslabの棚」は似ているにもかかわらず 「アカギ」「掌の中の小鳥」は「svslabの棚」に含まれていないため、 これらのは「svslab」への推薦候補と考えることができる。 このような計算を棚行列の行や列に対して行なうことにより、 様々な有用な情報を取得することができる。 棚演算のプログラミング 棚データを扱うRubyライブラリを使って様々な棚演算を実行できる。 増井への推薦を計算 「増井の棚」に含まれるの傾向を判断して推薦を行なう演算を考える。 「増井の棚」に内容が近い棚の中には、 私が興味を持ちそうなが含まれている可能性が高いと思われるので、 まず「増井の棚」に近い棚のリストを計算してみる。 require 'enzan' # 「増井の棚」に近いを持つ棚のリストを取得 BookList.new('増井').similar.dum

  • へ〜たのめも:Google のソフトウェア・エンジニアリング - livedoor Blog(ブログ)

    2007年06月07日 Google のソフトウェア・エンジニアリング Google Developer Day Tokyo の鵜飼さんのプレゼンより、「Googleエンジニアはどうやって開発しているのか?」 Google の研修 入社して最初の 3ヶ月は社(Mountain View)で研修 研修中は、メンターがついて「Google での開発の仕方」を学ぶ 内部ウェブ・サイトで社内共有ライブラリの使い方などを説明する動画があるので、それで自習 Googleプロジェクト・チーム 開発拠点は米国、スイス、オーストラリア、インド、日など 場所とプロジェクト・チームは関係なく、プロジェクト・チームが拠点をまたがることは普通。世界中の拠点全部合わせて、一つの Google エンジニアリング・チーム 開発はデザイン、コーディング、テスト、改善、デモの運用まで上流から下流まで同じチーム(同

  • New Generation Chronicle:小飼弾--35歳からのプログラミングこそ無上の至悦 (1/9) - ITmedia エンタープライズ

    小飼弾――35歳からのプログラミングこそ無上の至悦:New Generation Chronicle(1/9 ページ) 豊富な実績で多くの開発者を先導する存在になりつつある人物を取り上げる「New Generation Chronicle」マエストロスレッド。こちらの第1回は、ブログ「404 Blog Not Found」などでも知られる小飼弾氏だ。 次代の開発者の素顔と、その交友関係をソーシャルグラフ化する目的ではじまった「New Generation Chronicle」。斉藤のり子さんにはじまった「Web2.0系スレッド」、井上恭輔さんにはじまった「バイナリアンスレッド」に引き続き、すでに豊富な実績で多くの開発者を先導する存在になりつつある人物を「マエストロスレッド」として紹介していきたい。現在、大いに名が知られる彼らがたどってきた道と、経験によって養われた見識からは、次世代の開発者

    New Generation Chronicle:小飼弾--35歳からのプログラミングこそ無上の至悦 (1/9) - ITmedia エンタープライズ
  • 試訳 - コードをセキュアにする10の作法 : 404 Blog Not Found

    2008年01月05日02:45 カテゴリ翻訳/紹介Code 試訳 - コードをセキュアにする10の作法 全コーダー必読。プログラマーだけではなく法を作る人も全員。 Top 10 Secure Coding Practices - CERT Secure Coding Standards 突っ込み希望なので、いつもの「惰訳」ではなく「試訳」としました。 Enjoy -- with Care! Dan the Coder to Err -- and Fix コードをセキュアにする10の作法 (Top 10 Secure Coding Practices) 入力を検証せよ(Validate input) - 信頼なきデータソースからの入力は、全て検証するようにしましょう。適切な入力検証は、大部分のソフトウェア脆弱性を取り除きます。外部データは疑って掛かりましょう。これらにはコマンドライン引数、

    試訳 - コードをセキュアにする10の作法 : 404 Blog Not Found
  • mixi Engineers’ Blog » 言語バインディングを書こう

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

    mixi Engineers’ Blog » 言語バインディングを書こう
  • 404 Blog Not Found:アルゴリズム百選 - ハッシュを再発明する

    2007年12月03日11:15 カテゴリアルゴリズム百選 アルゴリズム百選 - ハッシュを再発明する (実はハッシュを使って)配列を再発明したところで、今度は配列を使ってハッシュを再発明してみます。 現代におけるプログラミングでは、連想配列(associative array)というものを非常によく使います。通常の配列では、データを取り出すのに整数の番号を使いますが、連想配列ではその代わりに文字列を使います。これは非常に便利で、多くの言語ではオブジェクトの実装にこの連想配列を用いています。JavaScriptのオブジェクトも実は連想配列です。 しかし、これを実装するには、少し工夫が必要です。単なる配列であれば、ただ等間隔に並べておけば、「何番目を出してくれ」で事足りますが、連想配列で「'dankogai'番目」といっても人間にもコンピューターにもなんのことかさっぱりわかりません。 誰でも

    404 Blog Not Found:アルゴリズム百選 - ハッシュを再発明する
  • 404 Blog Not Found:惰訳 - 建築士がプログラマーのごとく働かねばならぬとしたら

    2007年10月26日01:45 カテゴリ翻訳/紹介Art 惰訳 - 建築士がプログラマーのごとく働かねばならぬとしたら 全プログラマーが泣いた。 If architects had to work like programmers... 実は一つだけ「ローカライズ」にあたって変えた前提があります。日ではこちらの方が実情に沿っているでしょう:) 建築士様、 家を一つ設計施行してくださいな。まだ何が必要か具体的なことはわからないので、そこはよきに計らう方向で。 寝室の数は、2から45までの間。寝室の追加と削除は簡単に出来るようにしといて下さいね。青写真が出来次第あたしが何が気に入ったかを最終判断します。それぞれの青写真について明細書を付けるのをお忘れなく。後で気に入ったのをピックアップできるように。 完成後の家の費用は、今住んでいる家よりも安上がりでないと駄目なことを留意してくださいな。そ

    404 Blog Not Found:惰訳 - 建築士がプログラマーのごとく働かねばならぬとしたら
  • Getting Real by 37signals

    Heads up! This page uses features your browser doesn’t support. Try a modern browser like Firefox or Chrome for the best experience. sidebar#close mouseup->tweet#update input->tweet#update keydown->tweet#update scroll@window->tweet#update" data-bookmark-id="/gettingreal"> 0��]�U P7�]�U Getting Real The smarter, faster, easier way to build a successful web application Start reading →

    Getting Real by 37signals
  • あなたのコードをリファクタリングしてくれる?!『Refactor My Code』 | 100SHIKI

    3ヶ月前の自分は別人、がコーディングの世界である。 なんでこんなコード書いたのだろう?と思うようなコードがいっぱいあると泣きたくなる(そして実際たくさんある)。 そうしたことにならないようにRefactor My Codeが生まれたようだ。 このサイトでは自分のコードをアップして、リファクタリングをコミュニティに依頼することができるようだ。 現在はどうやらホスティングの関係でうまく動いていないが、アイディアとしてはなかなか素敵だ。 プログラマがこうして少しずつステップアップしていけるコミュニティは他にも出てきてほしいですね。

    あなたのコードをリファクタリングしてくれる?!『Refactor My Code』 | 100SHIKI
  • まつもと直伝 プログラミングのオキテ 第13回 プログラムを高速化する:ITpro

    プログラムの高速化はプログラマにとって永遠の課題です。しかし,そこには知られざる暗黒面が隠れています。そもそも高速化に意味があるのかを調べなければなりません。次に,どの部分をどの程度高速化するのかが重要です。アルゴリズムの効率にも目配りが必要です。 コンピュータの処理速度は驚くべき勢いで向上しています。現在私たちが使っているパソコンは一昔前のスーパーコンピュータをしのぐ性能を備えていますし,半世紀前に登場したばかりの計算機と比較すると数十万倍の性能に相当します。 このように高速なコンピュータを持っているにもかかわらず,人間の欲望は限りがないものです。プログラムの実行速度はプログラマにとっての永遠の課題のようです。プログラムを高速化していると,「そんなに急いでどこに行く」という気になることもあります。 今回は,プログラムの高速化にまつわるさまざまな「秘密」と「限界」,そして「戦略」について解

    まつもと直伝 プログラミングのオキテ 第13回 プログラムを高速化する:ITpro