タグ

Programmingとprogrammingに関するdlive1のブックマーク (126)

  • Peace Pipe: 効率的なテキスト編集の7つの習慣 [vim]

    去年から Google にジョインしている vim の作者,Bram Moolenaar が,先日 Google 社にて "Seven habits of effective text editing 2.0 (効率的なテキスト編集の7つの習慣)" と題してプレゼンを行った模様. プレゼンは約45分,質疑応答含めて80分. 7 Habits For Effective Text Editing 2.0 - Google Video プレゼンビデオをファイルとしてダウンロードしたい方はこちら (DivX 507MB). ftp://ftp.vim.org/pub/vim/stuff/7Habits20.avi プレゼン資料はこちら (PDF 640KB). http://www.moolenaar.net/habits_2007.pdf Vimmer にとってはヨダレもの.また,Emacs

    dlive1
    dlive1 2007/03/06
    Vimの作者は今Googleにいるらし。非効率的作業を認識、いい方法を見つけ、習慣にする。その習慣は、高速に移動、2回タイプしない、間違いはすぐ修正、関連ファイルを渡り歩く、他のアプリとの親和性、テキストを構造化
  • TopCoderで世界と渡り合う日本IBMの異才――夷藤勇人

    もしあなたが美しい(あるいはトリッキーな)コードが飛び交う世界を知りたいと願うならそれはTopCoderに参加することで容易に実現することができる。このTopCoderに参加している数少ない日人で、生涯プログラマーを宣言する人物にTopCoderの魅力を聞いた。 世にハッカーと呼ばれる人は数多く存在すれど、日常生活においてわたしたちがそうした人たちのコーディングを目の当たりにする機会はまれである。 しかし、美しい(あるいはトリッキーな)コードが飛び交う世界を知りたいと願うならそれは容易に実現することができる。そこには国籍、年齢、過去の栄光……そのいずれもが何の意味も持たない、コードのみが支配する世界が広がっている。 そんな世界の1つとしてTopCoderが挙げられる。世界中からトップレベルのプログラマーが参加するプログラミングコンテストとして知る人ぞ知るTopCoder。日ではいまひと

    TopCoderで世界と渡り合う日本IBMの異才――夷藤勇人
    dlive1
    dlive1 2007/03/06
    世界中のトップレベルが参加するプログラミングコンテストTopCoder。それに参加している日本人の紹介。「トレンドを追い求めて現代的なものを読みあさるよりは、古典、もしくは名著をじっくり読むのがよい」
  • CGI不可のサーバでもできるAjaxによるHTMLの動的な整形:CodeZine

    はじめに ここ最近、Web 2.0という言葉と共にクライアント側のプレゼンテーション技術としてAjaxが非常に注目されています。しかし、Ajaxという技術用語や概念の解説、または書籍が多く出版されているにもかかわらず、Ajaxを応用したコンテンツやアプリケーションは、キーワードとしてのAjaxの人気から考えれば、少ないと言えるでしょう。多くの人がGoogleなどの大手サイトでAjaxを体験しているにもかかわらず、Ajaxが使われているのは企業や大手ポータルサイトなど、限定されています。 では、Ajaxはそれほど敷居の高いものなのでしょうか。質の高い開発集団や、高額な開発環境、またはサーバーなどのインフラストラクチャが必要となるのでしょうか。確かに、Googleと同じレベルのものを作ろうと考えれば、相応の費用と技術が要求されます。しかし、Ajaxという技術要素だけを見れば、けっして大企業に独

  • はじめてのActionScript3.0プログラミング

    Flashで動くお絵かきで気になっていた「フリーのFlashコンパイラMTASCを使ってお絵かきツールを作る」の記事。 とある人から、現在ではMTASCではなく、Adobeから公式にフリーのコンパイラが配布されていることを教えてもらいました。 そこで、早速AdobeのActionScript3.0に触れてみることにしました。 (ActionScript3.0とは、Flash Player 9以降のプラグインで実行できるプログラムを作ることができるオブジェクト指向スクリプト言語のことです) はじめてのActionScript3.0プログラミングとして、以下の手順でFlashコンテンツを作ってみます。 Flex 2 SDKをダウンロードする手順 Flex 2 SDKのディレクトリ構成の確認 サンプルのコンパイル方法 Flexのドキュメント確認 はじめてのActionScript3.0プログラミ

    はじめてのActionScript3.0プログラミング
    dlive1
    dlive1 2007/03/06
    ActionScript3.0の紹介。
  • Geekなぺーじ:UNIX哲学の基本原則

    「Basics of the Unix Philosophy」でUNIX哲学の基原則がまとめられています。 UNIXの設計思想として紹介されていますが、多くは普通のソフトウェアを設計する場合にもあてはまると思われます。 1. Rule of Modularity(モジュール性): きれいなインターフェースで接続された、簡潔な部品を書きましょう。 2. Rule of Clarity(明瞭さ): 明瞭さは賢さよりも良いです。 3. Rule of Composition(構成): 他のプログラムと接続できるようにプログラムを設計しましょう。 4. Rule of Separation(分離): ポリシーとメカニズムを分離しましょう。エンジンとインターフェースを分離しましょう。 5. Rule of Simplicity(単純性): 単純化された設計をしましょう。複雑さは必要な時だけ追加しま

    dlive1
    dlive1 2007/03/06
    モジュール性、明瞭さ、構成、細分化分離、単純性、節約、透明性、頑健性、知識をデータに、LeastSurprise、沈黙、なるべく修理、時間をかけない、自動生成、最適化、多様性、拡張性。
  • ITmedia エンタープライズ:第4回 Webサービスって実はこんなに簡単 (1/2)

    第4回 Webサービスって実はこんなに簡単:作って学ぶ、今どきのWebサービス(1/2 ページ) 前回まで3回に渡って、PerlにおけるWebプログラミングの基礎を解説しました。今回は一歩進めて、より実用的なアプリケーションを作るため、その足がかりとなるであろうXML Webサービスの使い方について解説していきたいと思います。 前回まで3回に渡って、PerlプログラムからWeb上のコンテンツを取得するLWPと、LWPで取得したXML文書を料理するためのXMLモジュールの利用方法を学びました。いずれもPerlにおけるWebプログラミングの基礎となるものでした。今回は一歩進めて、より実用的なアプリケーションを作るため、その足がかりとなるであろうXML Webサービスの使い方について解説していきたいと思います。 XML Webサービスって? 前回も少し触れましたが、XML Webサービス(以下、

    ITmedia エンタープライズ:第4回 Webサービスって実はこんなに簡単 (1/2)
    dlive1
    dlive1 2007/03/06
    XMLで検索系APIの使い方。
  • Flex2,ActionScript3.0が優れている9の理由とAjaxとの差

    はじめてのActionScript3.0プログラミング、ニコニコ動画みたいなものを作ってみるテストと問題点を通じて、「Flex2,ActionScript3.0が優れている」と感じた部分をあげてみます。 今まで「Flash」と聞くと、 「重い」「遅い」「ウザい」と言った印象が拭えませんでしたが、Flex2,ActionScript3.0に進化したことにより、今までのFlashのイメージよりもはるかに良いものとなっていました。 Flash8に比べ、実行速度が10倍も早い 「今までより10倍早い!」と言われれば、プログラマーなら誰もが興味を持ってしまうすごさです。AS2からAS3に進化したことにより、10倍速が実現されました。 格的なオブジェクト指向言語である オブジェクト指向開発により、わかりやすく再利用可能な形で開発しやすくなっています。Javaとも似ているため、ケータイ向けJavaアプ

    Flex2,ActionScript3.0が優れている9の理由とAjaxとの差
    dlive1
    dlive1 2007/03/06
    最近流行のFlex2をAjaxと比較。実行速度が速い、ObjectOP、コンパイラ無料、ブラウザで実行可、OS非依存、XMLクラス有、動画ストリミング対応、綺麗な描画機能等。「コンパイラ無料」と「速い実行速度」が流行った理由だろ
  • 【コラム】そろそろきっちりJavaScript (2) 無名関数についてもう少し考える | エンタープライズ | マイコミジャーナル

    無名関数のメリット 前回の記事では、無名関数を関数リテラルに割り当てるという操作を紹介した。なぜ、このような記法により関数を定義するのだろうか。 まず、無名関数を採用するメリットには、「命名する必要の無い関数をシンプルに記述できる」「(複数ファイルのJavaScriptライブラリを読み込んでいるときなどにおいて)、既存の関数/変数名との衝突を回避できる」という点が挙げられる。 前回の冒頭で述べた通り、JavaScript関連ライブラリが数多く存在し、多くのシーンでそれを活用している今日、既存のライブラリやソースコードと名前が衝突しない事がどれだけ重要であるかは想像に難くないだろう。 それでは、命名する必要の無い関数とはどのようなものだろうか。また、無名関数だと変数名の有効範囲はどのように決まっているのだろうか。ここで、前回に引き続きFirebugで以下のコマンドを実行し、動作を確認してみよ

    dlive1
    dlive1 2007/03/06
    無名関数を採用するメリットには、「命名する必要の無い関数をシンプルに記述できる」「既存の関数/変数名との衝突を回避できる」
  • ITmedia エンタープライズ:第1回 Instant Railsで始めるWindows環境のRails (1/2)

    第1回 Instant Railsで始めるWindows環境のRailsRuby on Rails究極指南(1/2 ページ) 世界中でRubyの人気が急上昇しているが、このきっかけの1つとなったのがWebアプリケーションフレームワークRuby on RailsRails)である。連載では、このRailsの特徴や魅力を余すところなく伝えていく。 はじめに 世界中でRubyの人気が急上昇しているが、このきっかけの1つとなったのがWebアプリケーションフレームワークRuby on RailsRails)である。そこで連載では、Rails 1.0の特徴を紹介しながら、Windows/Mac OS X環境へ簡単に導入できるInstant RailsやLocomotiveによってRailsの魅力に迫っていきます。また、代表的なフレームワークCatalystとの比較、言語内DSLという概念など

    ITmedia エンタープライズ:第1回 Instant Railsで始めるWindows環境のRails (1/2)
  • ウノウラボ Unoh Labs: 日本語とPHP

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    ウノウラボ Unoh Labs: 日本語とPHP
    dlive1
    dlive1 2007/03/06
    PHPで日本語を使うとき、mbstringモジュールが色々付いてて便利だよ。しかし日本以外ではiconvモジュールが使われてるので対応表作ったよという話。
  • TheC10kProblem - 「C10K問題」(クライアント1万台問題)とは、ハードウェアの性能上は問題がなくても、あまりにもクライアントの数が多くなるとサーバがパンクする問題のこと

    TheC10kProblem - 「C10K問題」(クライアント1万台問題)とは、ハードウェアの性能上は問題がなくても、あまりにもクライアントの数が多くなるとサーバがパンクする問題のこと 目次 この文書について C10K 問題 関連サイト まず読むべき I/O フレームワーク I/O 戦略 1. 各スレッドが複数のクライアントを受け付ける. そしてノンブロッキング I/O と レベル・トリガ型の完了通知を利用する. 伝統的な select() 伝統的な poll() /dev/poll kqueue() 2. 各スレッドが複数のクライアントを受け付ける. そしてノンブロッキング I/O と 変更型の完了通知(readiness change notification)を利用する. kqueue() epoll リアルタイム・シグナル fd 単位のシグナル (Signal-per-fd)

    dlive1
    dlive1 2007/03/06
    ちょっと前から問題となっているクライアント10K問題のまとめ
  • perl - $@%&*のよしあし : 404 Blog Not Found

    2007年02月25日03:00 カテゴリLightweight Languages perl - $@%&*のよしあし Matzさんからお返事が。 Matzにっき(2007-02-19) Perl出身の弾さんゆえ、Perlに親しんでおられるのはわかるが、 近代的言語においてsigilを採用するのであれば、 その示すべきものは絶対にデータタイプではない。 データタイプを表現するsigilなんてのは ユーザ定義データタイプを持たない旧式言語の名残でしかない。 これ、実は半分同感。 Matzにっき(2007-02-19) Perlでさえ、Perl5以降はリファレンスの導入により ほとんどすべてのものをスカラで表現できるようになったので、 旧来のデータタイプsigilの役割はずいぶん下がっている。 これがさらにPerl6になると、Rubyみたくすべての変数がオブジェクトなので、@arrayと%h

    perl - $@%&*のよしあし : 404 Blog Not Found
  • 西尾泰和のブログ: GRINEditを使ってソースコードの可視化

    控えめな Brainfuck コードを色づけする GM を見て、唐突に思いついたので作ってみました。 可視化する対象のコードは、 竹迫さんのTAKESAKO @ Yet another Cybozu Labs: Brainf*ckで100までの素数を列挙してみるテストと、奥さんのKazuho@Cybozu Labs: brainf*ck でマジメに素数探索。 まず、竹迫さんのコードの全体像。 そして一部拡大した物がこれ。 各頂点が1つの命令で、太い辺が命令の隣接関係、 細い辺が括弧の対応関係です。+が赤、-が青、.が緑になっています。 竹迫さんのコードは実は数字を作って表示するだけのコードなので、 大局的な構造がありません。 大まかに見ると「小さなループが所々にある1の紐」です。 可視化する際も、頂点を徐々にy座標を増やしながら作るだけでこんな風に ほとんどもつれずに表示されました。 い

    dlive1
    dlive1 2007/02/26
    こういうのを見ると、AuthorAnalysisやPlagiarimの特定なんかに使えるかなと
  • わたしが知らないスゴ本は、きっとあなたが読んでいる: 日本のプログラマは、世界一優秀である

    じゃ、なぜ優秀なプログラマがいる日のソフトウェアビジネスがパッとしないの? 答:それは品質重視の工場型モデルを(相も変わらず)採用しているからにほかならない。「良いものを作れば売れる」主義を信奉するあまり、ビジネスの質から離れてしまっているから。 例えば、欧州企業にとってソフトウェアは「科学」として扱われる。コンピュータサイエンスとしての「ソフトウェア・ビジネス」であるがゆえに、形式的手法やオブジェクト指向分析・設計手法が重視される。また、米国企業にとってソフトウェアは「ビジネス」そのものとして扱われる。会社をつくって「まぁまぁ良質」の製品を作り、業界標準を打ち立て、その過程で大儲けしようとたくらむ。 しかし、日企業にとってソフトウェアとは「工場出荷製品」そのもの。文字通り「ソフトウェア・ファクトリー」を目指している。標準化された設計開発工程に則り、仕様からほとんどブレない製品を粛々

    わたしが知らないスゴ本は、きっとあなたが読んでいる: 日本のプログラマは、世界一優秀である
    dlive1
    dlive1 2007/02/26
    日本企業にとってソフトウェアとは「工場出荷製品」そのもの。文字通り「ソフトウェア・ファクトリー」を目指している。「何が欲しいのか分かっていない顧客に売る」ビジネス視点が抜けている という話。
  • Lazyと非同期処理 - snippets from shinichitomita’s journal

    やばい、おもしろいなあ。こういうのはできれば休日にしてほしいよ。 http://la.ma.la/blog/diary_200702210356.htm lazy化するところも汎用的に書いたらだめかしらん? Function.prototype.to_lazy = function() { var orig = this; var args = Array.prototype.slice.apply(arguments); var lazy_object = { isLazy: true, force: function(callback){ orig.receive_lazy().apply( null, args.concat(function(value){ lazy_object.isLazy = false; lazy_object.value = value; callback

    Lazyと非同期処理 - snippets from shinichitomita’s journal
  • ourの正確な定義 - web newbie

    社内でperlのmy,our,localについて盛り上がったのでそのあたりに関するポスト。 今回は、ourについて。 いろんなサイトでいろんな書き方されてて、よーわからん、、ということで ... perldoc きちっと追ってくと、ああ納得。 少しでも役に立つかなっと、記事としてまとめてみました。 少しでも役立ったときには、コメントいただけるとものすごく喜びますw ではまず、perldocから。 ここね Perldoc - our our associates a simple name with a package variable in the current package for use within the current scope. When use strict 'vars' is in effect, our lets you use declared global va

    ourの正確な定義 - web newbie
    dlive1
    dlive1 2007/02/24
    perlのourとmyの話。"our"はレキシカルな変数"を作成し、同名のパッケージ変数へのAliasを割り当てる。"my"は、変数( $a )のためにメモリに領域を確保し、変数がその領域を指し示すように割り当てる。
  • .NETアプリ互換開発環境「Mono」にVisual Basicコンパイラを追加

    米Novellは米国時間2月20日,.NET FrameworkアプリケーションをLinuxやその他OSに移植できるオープンソース・ソフトウエア開発プラットフォーム「Mono」で,「Visual Basic」による開発を可能にするためのコンパイラを発表した。 「Mono Visual Studio compiler」により,開発者はコードを変更することなく,WindowsLinuxMac OSなどさまざまなOSで実行可能なアプリケーションを,使い慣れたVisual Basic/Visual Studio環境で開発できる。 米Forrester Researchの調査によると,企業の37%が社内アプリケーションの開発や保守にVisual Basic.NETを使っている。また,.NETユーザーの59%がVisual Basic.NETのみでプログラミングを行っているという。「広く利用されて

    .NETアプリ互換開発環境「Mono」にVisual Basicコンパイラを追加
    dlive1
    dlive1 2007/02/23
    .netFrameworkのAppliをLinuxへ移植できる開発環境MonoでVBのコンパイラが!出来次第だが、期待大。Monoって使い勝手はどうなんでしょう?
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    dlive1
    dlive1 2007/02/23
    JE というのは、Pure Perl Javascript Engineを使う。αVerなので気をつける。Javascript.pm をつかえばSpiderMonkeyを呼び出せます。InterfaceはJEとほとんど同じ
  • googleの開発プロセス - 森崎修司の「どうやってはかるの?」 [ITmedia オルタナティブ・ブログ]

    昨日に続きますが、ディベロッパーサミットでgoogleの開発プロセスについて聴講してきました。Googleは一味異なるプロセスや組織をお持ちのようです。請負開発をされている方には新鮮なのではないでしょうか。工藤氏はGoogleのインフラ寄りの話、小松氏は開発プロセスの話で講演されていました。サービスインフラも開発プロセスも私にとっては身近な話ですが、ここでは、小松氏の講演について書こうと思います。講演では、極めて異例/エキセントリックというプロセスは話されていませんでしたが、以下は、特徴的と感じました。 異なる観点から複数のレビューを実施していること。いわゆるperspective-based readingを実施しているそうです。役割分担型レビュー(reviewというよりはおそらくinspection)で、セキュリティやユーザインタフェースの観点から見たデザイン/ソースコードの妥当性検証

    googleの開発プロセス - 森崎修司の「どうやってはかるの?」 [ITmedia オルタナティブ・ブログ]
    dlive1
    dlive1 2007/02/23
    Googleの開発プロセスはちと違うという話。異なる観点から複数のReviewを実施。単体テスト用のコードを書くことを必須。リリースに伴う作業全般をする担当がいる。プロトタイピングの4つが特徴的
  • UTF-8 エンコーディングの危険性 - WebOS Goodies

    的に、まともな国際化ライブラリを使っていれば、上記のような不正な文字コードはきちんと処理してくれるはずです。実際、 Opera, Firefox, IE ともに適切にエスケープしてくれました。また、 UCS に変換した後にエスケープ処理を行うことでも対処できるかもしれません。しかし、複数のモジュールで構成されるような規模の大きいアプリケーションでは、そのすべてが適切な処理を行っていると保証するのも、なかなか難しいかと思います。ここはやはり、すべての外部入力に含まれる不正なシーケンスを、水際で正規化するという処理を徹底するのが一番かと思います。 例えば Ruby の場合、不正な UTF-8 コードを検出する最も簡単な方法は、 String#unpack を使って UCS へ変換してみることです(昨日の記事への kazutanaka さんからのはてぶコメントにて、 iconv でも同様なこ

    dlive1
    dlive1 2007/02/23
    単純にデコードすると ASCII コードと同じ値になってしまうマルチバイトコードが存在するため、注意が必要。まともな国際Liblaryを使えば大丈夫。iconvを使ってUCFに変換してみることで確認できる。