タグ

programmingに関するnettaboのブックマーク (18)

  • Bonanzaのソースが公開された! - やねうらおブログ(移転しました)

    ■ Bonanzaのソースが公開された ついにBonanzaのソースが公開された。パラメータを学習させる部分は無いが、思考部はまるごと公開されている。 19回コンピュータ将棋選手権使用可能ライブラリ http://www.computer-shogi.org/library/ ■ Bonanzaのソースの内容は? 1時間ほどかけてざっとソースを読んでみたが、ソースはCで書かれており(C++ではなく)、C++templateを駆使したGPS将棋のソースとは対照的。GPS将棋のソースに比べれば格段に読みやすく、かつ、素人くさい。率直かつ正直に言わせてもらえれば、GPS将棋のソースのほうが何倍も参考になる。 ただ、Bonanzaのソースの ・どんな評価因子を採用しているのか ・ビット演算のテクニック は注目に値すると思う。あとは、GPS将棋に比べてソースが簡素なので将棋プログラムの思考部の書き

    Bonanzaのソースが公開された! - やねうらおブログ(移転しました)
    nettabo
    nettabo 2009/02/11
    Bonanzaのソース興味あるな。
  • 連載:良いコ―ドへの道―普通のプログラマのためのステップアップガイド|gihyo.jp … 技術評論社

    最終回 配列/コレクションを利用した抽象化―その5 Step4:配列/コレクション化して抽象化する 縣俊貴 2009-05-18

    連載:良いコ―ドへの道―普通のプログラマのためのステップアップガイド|gihyo.jp … 技術評論社
    nettabo
    nettabo 2008/11/05
    新人教育に使いたい。
  • オブジェクト指向の考え方

    UML、Java、デザインパターンなどの言葉をソフトウェア業界の人で聞いたことがないという人はいないでしょう。また、これらはすべてオブジェクト指向と深い関係があるということも、もはや常識です。しかし、あらためてオブジェクト指向とは何かと問われると、一部の人を除いてはよく分からないというのが現状ではないでしょうか。 オブジェクト指向に基づく応用技術が徐々に普及してきていますが、オブジェクト指向の基概念をきちんと理解しておかないとこれらを使いこなすことはできません。せっかくJavaC++などのオブジェクト指向言語を活用しても、その特徴を十分生かすことができず、Cと同じプログラミングを行ってしまうことになります。UML入門書を読んだだけでは、モデリングはできないのです。 オブジェクト指向の基的な考え方をあらためて学ぶことは、結果としてオブジェクト指向の応用技術を使いこなすための近道です。形

    オブジェクト指向の考え方
    nettabo
    nettabo 2008/04/16
    オブジェクト指向連載。
  • 5分で絶対に分かるオブジェクト指向 ― @IT情報マネジメント

    object という単語を辞書で調べると「(1)もの、(2)対象、(3)目的」の3つの意味があります。オブジェクト指向では物理的なものでも抽象的なものでも、それが認識の対象として具体的に識別できるものなら何でもオブジェクトとして扱うことができます。 例えば、人はオブジェクトです。自分自身、自分の両親や兄弟、会社の同僚など具体的な1人1人がオブジェクトです。自分が勤務しているO株式会社もオブジェクトです。あるいは自分が所有している具体的な車もオブジェクトです。 個性を持ったオブジェクトが集まって1つの世界を作ります。例えば自分を取り巻く世界を考えてみましょう。父Pさん、母Qさんとは親子関係があります。妹Aさんとは兄妹関係です。会社で同じ部署で働くBさんとは同僚という関係です。勤務先のO株式会社とは働くという関係、自分が購入した車とは所有するという関係があります。

    5分で絶対に分かるオブジェクト指向 ― @IT情報マネジメント
    nettabo
    nettabo 2008/04/16
    『クラスに属するオブジェクトをインスタンスと呼びます。』正直知らんかった。
  • 新しくプログラミング言語を覚えたいときに行うべき10の練習問題 | IDEA*IDEA

    ドットインストール代表のライフハックブログ

    nettabo
    nettabo 2008/02/08
    WEB APIとか、いまどきっぽくて良問。
  • 最もタメになる「初心者用言語」は Brainf*ck! - TAKESAKOのはてな出張所

    まず、世界中のプログラマが誰でも一番最初に作るであろう「Hello, world!」を標準出力に表示するプログラムを書いてみましょう。 C言語 2006-12-19 char main[]= "QVWUZ%@@@@% P^JJJJJJJJJJJJJJJJJJJJJJJJ3B PVXH, PTXHHHH!0Z_18R_)8)8)8)8" ")8)8)8)8WV_38WX_)8)8)8@)8@@@@)8)8)8T_VXOOOOOOOOOOOOOOOOOOOOOOOOWYVX!75Hel" "lVP^17^GGGGVX!75o, wVP^17^GGGGVX!75orldVP^17^GGGGVX!75aJ@@5@@@@VP^17^VXP[" "PZBBBBBBBBBBBBBBC@@@@AHI@AHI@AHI@AHI@AHI@AHI@j__^Y`"; このプログラムを hello.c という名前で保

    最もタメになる「初心者用言語」は Brainf*ck! - TAKESAKOのはてな出張所
    nettabo
    nettabo 2008/02/06
    これはすごい。
  • 試訳 - コードをセキュアにする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
    nettabo
    nettabo 2008/01/09
    ごもっともなまとめ。
  • 404 Blog Not Found:アルゴリズム百選 - 二分探索(binary search)

    2007年12月04日08:30 カテゴリアルゴリズム百選Math アルゴリズム百選 - 二分探索(binary search) 今回は二分探索を取り上げます。 検索:コンピューターの最もよくある利用法 「二分探索って何?」「ググレカス」と言われないためにこの記事は存在するのですが、Webの検索に限らず、「目的のデータを見つけて取り出す」というのは、およそコンピューターの利用法で最もポピュラーなものです。 配列:コンピューターがデータを扱う根的な方法 そのデータはコンピューターのなかでどう置かれているかというと、非常に単純です。デジタル化されたデータ=数値が一定間隔で並んでいるだけです。こういうデータ構造を、配列(array)といい、この数値一個一個のことを要素(element)と言います。 現代のコンピューターでは、最小要素はバイト(byte)と呼ばれています。このバイトの中には0と1

    404 Blog Not Found:アルゴリズム百選 - 二分探索(binary search)
    nettabo
    nettabo 2007/12/04
    『Suffix Arrayは無秩序に並んだデータ、例えば一般的なテキストファイルに対応する秩序だったデータ構造を用意し、それに対して二分探索をかけることで、O(log n)で検索するアルゴリズムです。』こっちのほうが興味深い。
  • http://ja.doukaku.org/

    nettabo
    nettabo 2007/09/03
    「出されたお題をいかに解くか競い合う、プログラマのためのコロシアム」アルゴリズムカタログとしても使えそう。
  • 社内ライブラリやフレームワークを浸透させるには、「チュートリアル」「小さなサンプル」「レビュー」が必要 | gihyo.jp

    濃縮還元オレンジニュース 社内ライブラリやフレームワークを浸透させるには、「チュートリアル」「小さなサンプル」「レビュー」が必要 数年前に書いた社内ライブラリの文書が今でも改訂され参照されている、という経験をもとに社内用文書や教育のあり方について語ったブログ記事です。 書籍『Building Application Frameworks』(⁠John Wiley & Sons Inc)では、フレームワークの文書を「サンプル」「⁠レシピとクックブック」「⁠契約」「⁠デザインパターン」「⁠概要」「⁠リファレンス」「⁠設計ノート」に分類しているようで、ブログ筆者はその中で最も欲しいものはサンプルである、という結論に達したようです。また、過去に作られたアプリケーションからコピー&ペーストされることが多く、質の悪いコードのまま利用されることがあるという事実により、正しいコピペ素材を提供するためライブ

    社内ライブラリやフレームワークを浸透させるには、「チュートリアル」「小さなサンプル」「レビュー」が必要 | gihyo.jp
    nettabo
    nettabo 2007/08/29
    「正しいコピペ素材を提供するためライブラリの最頻イディオムをサンプルつきクックブックとしてまとめることが最善である」には激同。
  • 生年月日から年齢を計算する簡単な計算式:ITpro

    私の個人ブログに掲載したら好評でしたので、こちらでもご紹介してみます。 最近知ったんですが、生年月日から年齢を計算する簡単な計算式というのがあるそうです。 (今日の日付-誕生日)/10000の小数点以下切捨て。 PHPで書くと echo (int)((20070823 - 19850101)/10000); Perlで書くと print int ((20070823 - 19850101)/10000); JAVAで書くと System.out.println( (int)((20070823 - 19850101)/10000) ); という感じになります。 日の法律を確認してみました。誕生日の前日が終了する瞬間(すなわち誕生日をむかえる午前0時00分の直前)に1歳を加えることになる。ただしうるう年など、年によって期間を定めた場合において最後の月に応当する日がないときは、その月の末日を

    生年月日から年齢を計算する簡単な計算式:ITpro
    nettabo
    nettabo 2007/08/27
    当たり前といえば当たり前だけど面白い。
  • codeなにがし

    世界最高峰のブックメーカーでベットしましょう。オンラインベッティングでお気に入りのスポーツをお楽しみください。

    nettabo
    nettabo 2007/08/02
    ソーシャルなコード共有サイト。質問したり、コードを公開したり。snipplrみたいなエディタ連携もあると良さげ。
  • 富豪的プログラミング

    ちょっと貧しいGUI ユーザインタフェースのプログラムといえばすっかり グラフィカルユーザインタフェース(GUI)があたりまえになりました。 ところが最近の計算機はメモリもディスクも大量に装備しているし CPUパワーも従来とは比べものにならないのに、 意外と貧乏臭いインタフェースが生き残っているようです。 よく見られる以下のようなインタフェースはちょっと貧しい と思われます。 ウィンドウ枠のドラッグ マウスでウィンドウを動かそうとするとき、 ウィンドウの枠だけマウスに追随し、中身はドラッグ終了後に 再描画されるというシステムがあります。 画面描画が遅かった時代はこういう工夫も仕方がなかったかもしれませんが、 今でもこういうインタフェースを使っているのは貧しいでしょう。 排他的論理和で枠を書いたりもとに戻したりしていれば貧しさ度アップです。 でも調べてみたら同僚のほとんどが 枠だけドラッグの

    nettabo
    nettabo 2007/06/01
    ハードウェアリソースは贅沢に使うのが富豪的。そんかわりUI重視。
  • どうしてプログラマに・・・プログラムが書けないのか?

    Jeff Atwood / 青木靖 訳 2007年2月26日 レジナルド・ブレイスウェイトが書いていることを読んだとき、私はそんなわけないだろうと思っていた。 私と同様、この著者は、プログラミングの仕事への応募者200人中199人はコードがまったく書けないということで苦労している。繰り返すが、彼らはどんなコードも書けないのだ。 彼が引用している著者というのはイムランのことで、彼は単純なプログラムも書けないプログラマをたくさん追い払っているということだ。 かなりの試行錯誤の末に、コードを書こうともがいている人たちというのは、単に大きな問題に対して苦労しているのではないことがわかった。やや小さな問題(連結リストを実装するというような)に対して苦労するということでさえない。彼らはまったくちっぽけな問題に苦労しているのだ。 それで、そういった類の開発者を見分けるための質問を作り始め、私が「Fizz

    nettabo
    nettabo 2007/05/08
    Fizz-Buzz問題はなかなか良くできてるなぁ。リファクタリング入れて15分かかった…orz
  • Geekなぺーじ:Google Code Searchの危険な使われ方

    「Fun With Google Code Search」によると、 Google Code Searchを使って脆弱なソフトウェアを見つけられてしまうそうです。 実際に、Google Code Search経由で発見されてサーバを乗っ取られた事例が「How Hackers Are Using Google To Pwn Your Site」という記事で紹介されています。 ShoeMoneyが乗っ取られた事例では、恐らくWebサーバの設定ミスで.phpファイルの関連付けを行わない状態で、Google Sitemapsに登録してしまったため、Google Code Searchに自作コードが載ってしまい、それを見たクラッカーがサイトを乗っ取ったのであろうと思われます。 バッファオーバーフロー strcpy : strcpy\((\w+,\w+) lang:c sprintf : (sprin

    nettabo
    nettabo 2007/01/24
    確かに危険だ。自分のコードはこの観点でgrepチェックすべき…と思ったけどこんなミスしないなぁ。
  • Haskell で Bowling Score:An Agile Way:オルタナティブ・ブログ

    ボーリングのスコアを計算するプログラムを設計、実装、テストせよ。 この問題は、Robert C. Martin の『アジャイルの奥義』の中でも、TDD(テスト駆動開発)的なアプローチがしばしば直感とは異なったクラス設計に行き着くことを示す例としても取り上げられている。 また、実はJUDEチームの定番の教育練習問題となっていて、新メンバーが来ると必ずこの問題を解き、良い設計とは何か、という議論をすることになっている。受け入れテストのみを示して、それを通るコードを書いてもらう。 ぼくは、この問題の回答として、かなり普通のクラス構造と名前(たとえば、FrameとかGameとか)が現れくるオブジェクト指向的な設計構造を含んだものを好む。特に第10フレームの扱い(他のFrameとの汎化関係)や、GameとFrameの集約関係に目が行く。もう1つのポイントは、ボーリングのスコア計算ルール(スペアやスト

    Haskell で Bowling Score:An Agile Way:オルタナティブ・ブログ
    nettabo
    nettabo 2006/11/05
    新人研修でやってみると面白そう。
  • Life is beautiful: ソフトウェアの仕様書は料理のレシピに似ている

    先日、経済産業省向けの仕事をしている知り合いと事をしたのだが、彼によると経済産業省の今の悩みは、「IT産業の階層化の弊害によっておこる下流のプログラマーの収入の低下」だそうである。「プライムベンダー」と呼ばれる「上流コンサルタント」たちがインドや中国にも仕事を発注できることを理由に、激しく値切り始めたために、今やわずか一人月30万円というケースもあるという。 こんな話を聞くと当に悲しくなる。まず第一に「プログラムを書く」という仕事は簡単な仕事ではない。数学的な頭を持っていないとかなり辛いし、基礎がしっかりと出来ていないとろくなソフトウェアは作れない。物価の安いインドや中国なら許せるが、米国よりも生活費の高い日で一人月30万円とはあまりにも低すぎる。 「彼らは下流のエンジニアで、詳細仕様書に従った通りのプログラムを書くだけの簡単な仕事をしているから給料が安い」という説明を聞いたことがあ

    nettabo
    nettabo 2006/03/28
    最近の「実はプログラマーが一番重要」という流れを、うまくまとめているカンジ。すばらしい!
  • CodeZine:プログラミングに役立つソースコードが満載な開発者のための実装系Webマガジン

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    CodeZine:プログラミングに役立つソースコードが満載な開発者のための実装系Webマガジン
    nettabo
    nettabo 2006/01/14
    Web上のコード雑誌。一般投稿もできる。
  • 1