タグ

プログラミングに関するlockcoleのブックマーク (140)

  • まつもとゆきひろのハッカーズライフ:第1回 ハッカーとの遭遇 (1/2) - ITmedia エンタープライズ

    知られざる「ハッカー」の生態や心理についてまつもとゆきひろ氏が紹介する人気連載がITmediaに登場。ハッカーの生き方を知ることは、あなたがより良いプログラマーになるのに役立つかもしれません。もちろん保証はできませんが。 こんにちは、はじめまして。まつもとゆきひろと申します。世間ではRubyというプログラミング言語の作者として知られ、職業はプログラマーで自称ハッカーでもあります。この連載ではわたしたち「ハッカー」の生態や心理について紹介できればと考えています。 ハッカーとは 「ハッカー」といってもネットワーク経由でシステム侵入を行ったり、パスワードを破ったりするような悪者ではありません。そういえば、最近そういう誤用をあまり耳にしなくなりましたね。 ハッカー(Hacker)とは文字どおり「Hackする人」という意味です。「Hack」というのはもともとは「(斧などで)たたき切る」という意味です

    まつもとゆきひろのハッカーズライフ:第1回 ハッカーとの遭遇 (1/2) - ITmedia エンタープライズ
    lockcole
    lockcole 2007/04/01
    まつもとゆきひろ氏による,ハッカーの定義と三大美徳(無精,短期,傲慢)の解説。ハッカーの2つの条件,それは「クリエイター」であること,それから「ブレーキが壊れていること」としてる。
  • ソフトウェア開発者のための推薦図書

    Code Complete 2 [ Code Complete第2版―完全なプログラミングを目指して (上・下) ] スティーブ・マコネルのCode Completeはソフトウェア開発者のための「楽しい料理だ。このを読むということは、自分の仕事を楽しんでいるということであり、自分のすることに真剣であるということであり、もっと向上したいと思っているということなのだ。Code Completeの中で、スティーブは平均的なプログラマが読む 技術書は年に1冊に満たないと指摘している。このを読んでいるという時点で、あなたはおそらく周りにいる開発者たちの90%と違う行動を取っていることになる。それもいい方向にだ。 私はこのがすごく好きで、ここから自分のWebサイトの名前(Coding Horror)を取ったくらいだ。このではやるべきでない悪い例には"coding horror"アイコンで印

    lockcole
    lockcole 2007/03/30
    以前に原文の記事をブックマークしてたけど,こっちも。日本語訳。紹介されてる本の中で,日本語版があるものはそれも紹介してる。記事の訳者は青木靖さん。
  • 世界大会 - 純粋関数型雑記帳

    http://icpc.baylor.edu/icpc/ ちょっとこの間まで世界大会のお手伝いに行ってきました。 ディズニーランドとかはあんまり興味なかったのですが、 世界中からスーパープログラマが集結する機会というのは やはり貴重なので、今年もその場に立ち会えてよかったです。 会場にいる間はもうずっと自分がもう出られないことが ひたすら残念で残念で、現役の選手がうらやましくて たまらなかったです。ことさら、問題がやさしかったなら。 オープン参加でもいいからあの時間を共有したかった。 終わったあとにコンテスタントと感想戦をしたのですが、 やはりそれが面白かったです。 全問題の結論がでるまで検討したかった。 表彰式は今年もすごかったです。 ワルシャワ大は神といわざるを得ない。 残り時間一時間でスコアボードが凍結されていて、 表彰式の時にサブミットしてた問題が通っていたかどうか 公表されていっ

    世界大会 - 純粋関数型雑記帳
    lockcole
    lockcole 2007/03/28
    難解すぎる・・・。ワルシャワ大学のチームが神だったとのこと。
  • プログラミング言語の進化を追え:第1回 サルでも分かるプログラミング言語の新潮流【前篇】 (1/2) - ITmedia エンタープライズ

    近ごろプログラマーかいわいで、「関数型プログラミング言語」という言葉をよく耳にするようになった。連載では、プログラミング言語を取り巻く状況をあらためて俯瞰し、プログラミング言語開発の現場で何が起こっているのかを解説する。 はじめに 「ガーベジコレクション」、「リフレクション」、「アスペクト指向」、「クロージャ」、「イテレータ」、「型推論」など、近年、プログラミング言語の世界に新しい概念が続々となだれ込んでいるように見えます。しかし、これら「プログラミング言語の新潮流」の背景には、実はあまり知られていない歴史が隠されているのです。 プログラミング言語のメインストリーム プログラミング言語はお互いに影響を与えながら成長しています。プログラミング言語の歴史において、主要な言語がどのように影響を与えたかを、概略図に示しましょう(図1)。スペースの関係上この図では非常に簡略化しています*が、実際に

    プログラミング言語の進化を追え:第1回 サルでも分かるプログラミング言語の新潮流【前篇】 (1/2) - ITmedia エンタープライズ
    lockcole
    lockcole 2007/03/27
    LispとHaskellあたりが詳しい。
  • 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(単純性): 単純化された設計をしましょう。複雑さは必要な時だけ追加しま

    lockcole
    lockcole 2007/03/20
    出典はThe art of unix programming。単純性,節約,透明性,頑健性,表現,驚きの少なさ,沈黙,修理,経済,生成,最適化,多様性,拡張性。
  • 進化する“Webスクレイピング”技術の世界 ― @IT

    2007/02/20 WebサービスAPIRSSフィードを使って複数サイトのサービスや情報をマッシュアップ――。これはWeb2.0が包含するいくつかの概念のうち、最も重要なものの1つだ。Amazon.comやGoogleYahoo!楽天といった大手Webサイトは、RESTやSOAPを用いたAPIを公開しており、さまざまなサービス提供者や個人がAPIを通して各種サービスを利用している。その一方、世の中のWebサイトの大多数はWeb1.0的なHTMLCGIフォームしか提供していないのが現実だ。こうした背景からWeb1.0サイトから構造化されたデータを引っ張り出す“Webスクレイピング技術が急速に発展してきているようだ。 HTMLをXML化し、XPathで関連データだけを抽出 例えば価格情報サイトでは製品名から価格が簡単に調べられるが、Webサーバから提供されるのは、製品名や価格にレ

    lockcole
    lockcole 2007/03/12
    整形式のHTMLでも、できる限り整合的な形でXML化するRuby向けライブラリとして「HTree」や「Hpricot」というものが存在する。
  • 作って学ぶ、今どきのWebサービス:第5回 Amazon Webサービスを料理してみる (1/3) - ITmedia エンタープライズ

    第5回 Amazon Webサービス料理してみる:作って学ぶ、今どきのWebサービス(1/3 ページ) Webサービスを使いこなすといっても、Web検索の機能をアプリケーションに統合するだけでは、いまいち面白みがありません。今回は、Amazon.comが提供するAmazon Webサービス料理してみましょう。 Amazon Webサービスをロックオン! 前回はGoogleYahoo!の検索機能に関するWebサービスを題材に解説してきました。しかしながら、実用的なアプリケーションを作ると言いつつも、Web検索の機能をアプリケーションに統合するだけでは、いまいち面白みがありません。工夫次第でいろいろ面白いものが作れるとは思いますが、より実用的なデータをWebサービスで扱いたいところですね。 そこでやはり思いつくのは、Amazon.comが提供するAmazon Webサービス*です。Ama

    作って学ぶ、今どきのWebサービス:第5回 Amazon Webサービスを料理してみる (1/3) - ITmedia エンタープライズ
    lockcole
    lockcole 2007/03/11
    naoyaさんの記事。Net::Amazon活用。初版は2005年8月なので,API改訂に合わせて一部ソースコードを変えて掲載した感じかな。
  • 見つけて得するソースコード専用の検索エンジン - @IT

    Java News.jp(Javaに関する最新ニュース)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします。(編集部) プログラミングと検索エンジンは切っても切れない プログラミングと検索エンジンの関係は切っても切り離せないものです。プログラミングに役立つドキュメントやノウハウを探したり、参考になるサンプルプログラムを見つけ出せます。 さらにバグの回避方法を見つけたり、エラーメッセージを検索エンジンで探して、解決方法が見つかることも多いでしょう。良質のソースコードから、的確なアルゴリズムや、思いもしなかったようなコード例を見いだすのも新たな楽しみです。 さて、ここではプログラミングの際に便利に利用できるソースコード専用の検索エンジンをいくつか紹介しましょう。ソースコード専用の検索エンジンを利用した検索

    見つけて得するソースコード専用の検索エンジン - @IT
    lockcole
    lockcole 2007/03/11
    こんなに沢山存在したソースコード検索エンジン。Google Code Searchをはじめ,Koders,CodeFetch,krugle,byteMyCodeなどなど,盛りだくさん。それぞれ機能が異なったりするので,賢く使い分けたいところ。
  • PHPの文字化けを本気で解決する - ぎじゅっやさん

    lockcole
    lockcole 2007/02/22
    文字コード・文字化け問題に突っ込んで調査していったらなんとまぁ複雑奇怪な設定項目の多いこと・・・。落とし穴がたくさんあって皆さん注意。この記事はかなり参考になる。ただまぁ,もう全てUTF-8で良いと思うが。
  • Shibuya.js パネルDISカッション brazil x mala with 江渡浩一郎 - koyachiの日記

    昨年行われたlivedoorテクノロジーセミナーでmalaさんが発表した「Techonology for UI」について、id:brazilさんが感じたこと・疑問にmalaさんが答える、という感じ進められました。 インターフェースにおける速さ エレベータ待ち時間を短くするための対策として鏡の設置。実時間ではなく体感、心理的時間を短くした。こういう観点から、どう?(brazil) 大半のWebアプリケーションがデスクトップアプリケーションより遅いのは事実だが、デスクトップアプリケーションがローカルにデータを持っているから必ず早いというわけではない。設計次第でWebアプリケーションはデスクトップアプリケーションより高速動作可能だ。ldrはそれを実現している。 速読の限界は1秒間に1600文字と言われている。それを再現するデモ実演。1秒毎に1600文字が表示される。 道具を変えることでできること

    Shibuya.js パネルDISカッション brazil x mala with 江渡浩一郎 - koyachiの日記
    lockcole
    lockcole 2007/02/20
    malaさんって本当に純粋な人なのね。これからも突き進んでほしい。
  • ユビキタスの街角 データ圧縮手法の応用

    PPM (Prediction by Partial Matching)というデータ圧縮アルゴリズムがある。 一般に、あるデータ列が与えられているとき、次に来るデータを予測することができればデータ圧縮を行なうことができる。 データ列から判断して次に来るデータが「a」だと確実に判断できるときは「a」を記述する必要が無いからである。 PPM法では、既存のデータ列中の文字列出現頻度を計算することによってこのような予測を行なう。 たとえば「abracadab」というデータの次にどの文字が来るか予測する場合、 「a」は4回、「b」は2回出現している 「b」の後に「r」が続いたことがある 「ab」の後に「r」が続いたことがある ... といった情報を累積して確率を推定する。 この場合、 (3)から考えて次の文字は「r」である確率が高いが、 (1)も考慮すると「a」の確率もある、という風に計算を行なう。

    lockcole
    lockcole 2007/02/18
    次にくる文字列の確率予測を用いて,効率のよい圧縮を可能にするPPMアルゴリズムを予測学習に適用する。じゃんけんゲームでは確かに有効な働きをしてるみたい。Communication of the ACMのSPAM判定手法を特集した記事も。
  • キミのコードが汚い理由 ― @IT情報マネジメント

    リスト1は、同じ処理を繰り返すようなコードで初心者プログラマーがよく使う幼稚なスタイルで書かれている。必ずしも複雑ではないが、筆者には散らかっていて効率が悪く見える。リスト2の方が複雑な条件になっているが、Javaを理解していれば、かなり読みやすい。唯一疑問を抱くかもしれないとしたら、最後の「else if」の中にある条件の最初の部分だけだ。このクローズに来るということは、どちらかのプレーヤーが勝ったことを意味する。 いずれのインプリメンテーションも間違ってはいない。実際、これらはどちらも非常に小さく、つまらない例にすぎないので、これらのリストでコードがいかにクリーンか論ずるのはあまり有益ではない。ただ、何をもってインプリメンテーションがクリーンなのかについて読者の興味を深めることはできるだろう。 クリーンなコードについて扱った記事、Webサイト、書籍は多数存在する。何をもってコードをクリ

    lockcole
    lockcole 2007/01/19
    コードが汚いことがいかに問題であるかの説明が若干弱いが,方向性には納得。サンプルはあまりいいとは思わないが,少なくとも変数名をちゃんとしたものにする程度の改善はあって当然。大学では教えてくれない。
  • 【ハウツー】これはすごい! Web案件必須 Selenium - 人気急上昇中自動テストツール (1) 最近人気のSelenium | エンタープライズ | マイコミジャーナル

    Webアプリケーションのテストツールに「Selenium」がある。SeleniumはJavaScriptHTMLを使って、Webブラウザに自動でテストをさせようというもので、アジャイル開発におけるテストツールとして注目されている。 Seleniumとは SeleniumはWebアプリケーション用テストツール。JavaScript/DHTML/iframesをベースに構築されたテストツールで、Webブラウザから直接実行できるという特徴がある。要するに、目の前でWebブラウザが勝手にテスト工程を実施するわけである。見ていてなかなか気持ちがいい。対応しているプラットフォームやWebブラウザは多岐にわたる。代表的なプラットフォームは次のとおり。 Windows Internet Explorer 6.0 Mozilla Suite 1.6以上 Firefox 0.8?1.5 Seamonkey

    lockcole
    lockcole 2006/12/18
    WebアプリケーションテストツールSeleniumの紹介。
  • Efficient data transfer through zero copy

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Efficient data transfer through zero copy
    lockcole
    lockcole 2006/12/18
    PHPでユニットテストを。
  • 公開APIを利用したサンプルサイトを作っていくよブログ

    2008/2/12:「公開APIを利用したサンプルサイトを作っていくよ」は、書籍発売に伴い、新サイトに移転しました。 →公開APIを利用したサンプルサイトを作っていくよ 新サイトでは、サンプルサイトの他に、サンプルソースコードの掲載もしていく予定です。 旧サイト(このページは)、削除せずにこのまま残しておきますので、新旧サイトともに今後ともご利用ください。 (旧)公開APIを利用したサンプルサイトを作っていくよ TOP ABOUT BOOK LINK MAIL BLOG 館 ZAPAnet総合情報局管理人ZAPAが公開APIWebサービス)を利用して、サンプルサイトを作って紹介しています。 Web2.0、マッシュアップの流行によってせっかくWeb上でAPIが公開されていても、利用する前に規約に同意して、開発用ドキュメント(HTMLからPDF、EXECL、WORDなどドキュメントのフォー

    lockcole
    lockcole 2006/12/18
    公開APIを使ってどんどんサンプルを作ってるサイト。こうして一覧できることも非常にありがたい。たくさんありすぎて目移りしちゃう。
  • ウノウラボ Unoh Labs: VMwareとCentOSでウェブ開発の環境をさっさと整える手順書(前編)

    最近オイルヒーター,ガスファンヒーター,石油ファンヒーターのどれを買おうか悩みつつPHPのフレームワークはSymfonyにかなり転がりそうなjokagiです. 私が遅いので気を遣ってkomagataさんが先に書いてくださいました. ナイスフォローありがとうございます. さて今回は,先日参加した開発合宿をはじめ最近何度かLinux環境を用意する必要性が連続したので,その辺りの作業を手短にする手順を紹介します. 慣れれば最低限の環境は10分程度,全部で30分あれば十分ウェブ開発に必要な環境を用意できるようになります. とりあえずLinuxはCentOSでバージョン4.4用にServerCDというのがあるので,それとVMware Serverを使います. まずVMware ServerのインストールとCentOSのisoイメージを下記リンクあたりからダウンロードしてください. VMware Se

    lockcole
    lockcole 2006/12/17
    VMWAREにCentOSの開発環境を整える手順書。だいたい慣れれば10分程度でできてしまうとのこと。ネットワークインタフェースはNATにしておく。
  • CNET Japan Blog - 江島健太郎 / Kenn's Clairvoyance:Lingr and Comet - 技術解説編

    さて、お待たせしました。いよいよCometとLingrについての技術解説です。 ■Comet解説 さて、まずはCometとは何で、どういう背景によって生まれたのか、についての解説から始めます。 まず前提として、Webアプリケーションにおいては、通信開始のトリガーは常にクライアント側が握っています。つまりURLを入力したりボタンをクリックしたときなどに通信が発生することになるわけですが、このようなアーキテクチャは、サーバ側で発生した変化をリアルタイムにクライアント側に通知することが原理的にできないことを意味します。 チャット・アプリケーションでは、複数のユーザから不定期にメッセージが送信され、それが他の参加者に一斉に配信されなければなりません。しかし、メッセージを受け取ったサーバ側では、それをクライアントに即座にプッシュで通知する方法がないのです。 そのため、一定期間ごとにブラウザがサーバに

    lockcole
    lockcole 2006/12/17
    Cometd, Perlbal, POE, Twistedなどから,Javaで書かれたJetty 6を採用。JSONPの仕組みでクライアントにデータを送る。Cometをレンタル鯖で実現するのは難儀だな。ポーリングを使ってる37signalsのチャット「Campfire」より1/5のCPU負荷。
  • いまどきのデスクトップ処理系 steps to phantasien t(2006-09-22)

    いまどきのデスクトップは色々モダンになっている. ただモダン化は API の裏側で進んでいるため, あまり興味を持たれていないらしい. 一見いろいろウォッチしていそうな知り合いと話していてわかった. 利用者視点の話題では, いまどきのデスクトップというとたとえばウィンドウが ヘナヘナ揺れるといったアイ・キャンディばかりが連想される. でもそのアイ・キャンディに至るにはきっと山ほど苦労があったはず. そのへんをちょっとねぎらってみたい. 念頭にあるのは Windows Vista, Mac OSX, XGL あたり. まず共通の階層化されたアーキテクチャを想定し, ケーススタディを交えつつその層を下から上へ順にたどっていきます. 復習: デスクトップ処理系の階層構造 そもそもデスクトップの中味はどんな構成をとっているのか. ざっと眺めておこう. 典型的なデスクトップ処理系のアーキテクチャはだ

    lockcole
    lockcole 2006/12/16
    密度の濃い記事。デスクトップ処理系の仕組みがよく分かる。VRAM仮想化の話とかオフスクリーンレンダリングのこととか。GUIの処理ってこういう風にレイヤーになってたのかぁ。
  • 12のPHP最適化テクニック:phpspot開発日誌

    12 PHP optimization tips Ilia Alshanetsky’s PHP performance talk given last week at the Zend conference is pretty useful as far as getting small tips for tweaking PHP code. PHP最適化テクニックが紹介されていましたので以下にまとめてみました。 staticメソッドが使えるなら使おう。速度は4倍になる __get, __set, __autoload は使わない require_once は重い include, requireで読み込むファイルはフルパスにしよう スクリプト開始時のUNIXタイムを $_SERVER['REQUEST_TIME'] で取れる strncasecmp関数やstrpbrk関数を使えるケースは

    lockcole
    lockcole 2006/12/05
    require_onceが遅いとはいっても,かわりにrequireを使えるようなもんでもないし・・。ただし,include, requireで読み込むファイルはフルパスにするなどのTipsは有益か。staticメソッドを活用っていうのも。
  • ウノウラボ Unoh Labs: JavaScriptのバグを退治する3つの手法

    こんにちは、さかとくです。今日は、世界中のプログラマーを悩ませているバグを退治する方法について考えてみたいと思います。今回は、特に、JavaScriptのバグを退治する方法にスポットを当ててみたいと思います。 そもそも、バグ(Bug)とは、正しくプログラムが動かない状態、不具合のある状態です。 書き間違いや、なんらかの勘違いが原因であることが多いです。簡単なつづりミスならば、構文エラー(Syntax Error)によって、すぐに間違いが見つかります。しかし、簡単にバグの原因が特定できないことも多くあります。そんなときはどうしたら良いでしょうか? 以下の3点から考えてみます。 ・具体的なデバッグ方法 ・バグを予防する ・精神論 具体的なデバッグの方法 どんな天才的なプログラマーでも、間違いの1つや2つは犯してしまうものです。一度もバグに遭遇せずプログラムを完成させることはできません。「

    lockcole
    lockcole 2006/11/28
    FireBugとかバグ予防の話だけではなくて,精神論も展開しているのが面白い。バグを生むのは人間だからね。広い意味でこれはLifehacksでもある。