タグ

programmingに関するyzxのブックマーク (115)

  • プログラミング活動の基本「作れないものを作ろうとしない」:アルファルファモザイク

    編集元:生活全般板「836 名前:おさかなくわえた名無しさん 投稿日:2009/06/13(土) 08:53:42 ID:l3oQNJBl」より 164 名前は開発中のものです。 :2009/06/12(金) 23:07:59 ID:6z890yI3 今月の日経ソフトウェアを買った奴はいるかい? なかなか良いことが書いてあったぞ。 以下引用。 プログラミング活動の基16  作れないものを作ろうとしない (前略) 「プログラムが書けないのだけれど、どうすればいいですか?」という人の多くは、 筆者にいわせると、作れないものを作ろうとしているから、ということになる。 何かを作ろうとするときは、ほとんどの場合、 「作りたいもの」と「作れるもの」の間にギャップが存在する。 (中略) もう一つ例を挙げると「3D三次元ゲームを作りたいというのも、 もし、一人でそれを作れると思

  • javascript - にはクラスはない : 404 Blog Not Found

    2009年06月13日22:00 カテゴリLightweight Languages javascript - にはクラスはない かえってわかりにくくなっている感じをかつてさんざん実感したので。 JavaScriptのオブジェクトについて考察してみた - あと味 JavaScriptにおけるほとんど全てのデータはオブジェクトである オブジェクトの定義にもいろいろありますが、ここでは「メソッドを持つ」という狭い意味においても事実だということです。実際に見てみましょう。 p(true.toString()); p("String".toString()); p((1).toString()); p((3.14159265).toString()); p([0,1,2,3].toString()); p({q:"answer to life, the universe, and everythi

    javascript - にはクラスはない : 404 Blog Not Found
  • JavaScriptのオブジェクトについて考察してみた - あと味

    JavaScriptを勉強しているとオブジェクトとはなんぞや?ということがわからなくなってきます。選択肢が増えれば増えるほど。 JavaScriptには、同じように見えて、実は同じではないデータがあります。それらのオブジェクトについて、区別して説明が付けられるように、自分なりに考察してみました。勉強中のアウトプットなので、ここで書いた内容は事実とは大きく外れているものかもしれません。とにかく不明瞭な部分を自分なりに理由づけしたかっただけです。 サンプルコードを試される場合は、FirefoxのFireBugにあるコンソールに貼りつけて実行するか、Safariの開発ツールにあるコンソールに貼りつけて実行してください。それがわからない方は console.log の部分を alert に置き換えて確認してください。 話がややこしくなるので、今回はプロパティしか扱っていません。 名称の定義について

    JavaScriptのオブジェクトについて考察してみた - あと味
  • perl - 現代的な Perl を再習得する方法は : 404 Blog Not Found

    2009年06月12日02:30 カテゴリLightweight LanguagesBlogosphere perl - 現代的な Perl を再習得する方法は TopHatenarでperl一位の私が来ましたよ。 現代的な Perl を再習得する方法は? - スラッシュドット・ジャパン 現代的な Perl を習得するためには、どのようなステップを踏むのが良いだろうか ? またお勧めの書籍などあったら教えて欲しい。 モダンPerlに限らず、プログラミングを再?習得するのに最適な方法、それは.... ブログに書きつづけること です。他のどんな手法もこれに勝ることはないと弾言しましょう。 以下、その三つの理由。 1. 自然にアウトプットが出来る プログラムは、言語で書きます。 書くものである以上、書かなければ覚えられません。 いくらいいソースコードを読んでも、書かなければ自分のものにはなりませ

    perl - 現代的な Perl を再習得する方法は : 404 Blog Not Found
  • オブジェクト指向っぽい話が分かるかもしれないJavaScript講座 その2 | Takazudo Clipping*

    自分なんぞがオブジェクト指向とはなんぞと語るなんておこがましく、「オブジェクトっぽい話」でいいかなーと思っていたのですが、ブックマークするときに「オブジェクト」でタグ付けてる人がいたので、これはいかんと思い、こっそりタイトルを直しました。 2回目の今回は、複数のインスタンスをまとめて操作する方法について書きます。 まんじゅうマネージャー 前回、クラス作ってインスタンスを作ると便利だというところで終わりましたが、便利な点としてはまず、「複数のインスタンスをまとめて操作したり、作ったりできることができる」という点があります。どういうことかというと、とりあえず、以下のサンプルを見てみてください。 まんじゅうマネージャーサンプル まんじゅうを一気に作ったり、隠したりすることができます。 これで賞味期限が切れたりしても大丈夫なはずです。 この機能を作れと言われたら、前回の知識だけは結構厳しいのではな

  • 軽量データクラスタリングツールbayon - mixi engineer blog

    逆転検事を先日クリアして、久しぶりに逆転裁判1〜3をやり直そうか迷い中のfujisawaです。シンプルなデータクラスタリングツールを作成しましたので、そのご紹介をさせていただきます。 クラスタリングとは クラスタリングとは、対象のデータ集合中で似ているもの同士をまとめて、いくつかのグループにデータ集合を分割することです。データマイニングや統計分析などでよく利用され、データ集合の傾向を調べたいときなどに役に立ちます。 例えば下図の例ですと、当初はデータがゴチャゴチャと混ざっていてよく分からなかったのですが、クラスタリングすることで、実際は3つのグループのデータのみから構成されていることが分かります。 様々なクラスタリング手法がこれまでに提案されていますが、有名なところではK-means法などが挙げられます。ここでは詳細については触れませんが、クラスタリングについてより詳しく知りたい方は以下の

    軽量データクラスタリングツールbayon - mixi engineer blog
  • ついに出た!最新Perlフレームワーク「Ark」徹底解剖:第1回 Arkって何だ? -Ark が生まれるまで|gihyo.jp ... 技術評論社

    はじめまして。面白法人カヤックの村瀬と申します。ArkというWebアプリケーション作成用のフレームワークを開発しました。今回から4回にわたって、このリリースしたばかりの「Ark」について紹介させていただきます。 Ark(アーク)とは Arkは、Perlで作られたWebアプリケーションフレームワーク(WAF)です。 Arkの特徴としては Catalystに似たインターフェース CGI/FCGI/mod_perlなどさまざまな環境で実用的に動作する CGI用モードの存在 日製であり、日語ドキュメントが充実している などが挙げられます。 Catalystに似たインターフェース Catalystは、Arkと同様にPerl製のWebアプリケーションフレームワークで、現在、Perlのフレームワークでは標準となりつつあるものです。 Arkは開発動機の1つが「CGIでも実用的に動作するCatalyst

    ついに出た!最新Perlフレームワーク「Ark」徹底解剖:第1回 Arkって何だ? -Ark が生まれるまで|gihyo.jp ... 技術評論社
  • String::Dictionary - naoyaのはてなダイアリー

    String::Dictionary という Perl のライブラリを作ってみました。 http://github.com/naoya/perl-String-Dictionary/tree/master String::Dictionary は検索エンジンその他を作る時に必要になる「辞書」のためのデータ構造 + API です。辞書は単語の集まりですが、これを配列やハッシュなどで持つのではなく、単語をすべて繋げた一つの大きな文字列として保持することでメモリ領域を節約したものです。単語は単に文字列連結で持つだけでなく、Front Coding で圧縮しています。以下簡単な解説です。 辞書は例えば [0] ・・・ jezebel [1] ・・・ jezer [2] ・・・ jezerit [3] ・・・ jeziah [4] ・・・ jeziel ...という風に単語を配列で持つことで実現でき

    String::Dictionary - naoyaのはてなダイアリー
  • Qt による GUI アプリケーションの作成

    Qt とは、クロスプラットフォームな C++ ツールキットです。Google Earth や Opera、KDE などで利用されています。このページでは、Qt Designer を用いた、GUI アプリケーションの作成方法について簡単にまとめてみました。 ここで扱っているのは、Qt 4.1 です。Qt 3 と Qt 4 とはソース互換性がないため、Qt 3 のコードはそのままでは使えません。qt3to4 や uic3 などのツールはあるものの制約があり、どうしても手動で Qt 4 用にコードを書き直す部分が出てきます。(参考:Porting to Qt 4) このページでは、背景色が黒い部分はコマンドラインからの入力を意味します。また、各入力に対する説明を下に書き、各段階で存在するファイルを列挙しました。 まず、Qt Designer で ui ファイルを作成します。ここでは、ウィンドウに

  • システム開発の入門者から中級者にステップアップするための10のティップス - builder by ZDNet Japan

    ある読者との電子メールのやり取りの中で出てきた話である。彼は、開発者向けのブログや記事、雑誌の内容が2種類に分類できるということを述べていた。その2種類とは入門者向けのもの("Hello World"に代表されるもの)とエキスパート向けのもの(MSDN Magazineのようなもの)である。 これはなかなか鋭いポイントを突いている。開発者が入門レベルから中級レベルにステップアップするうえで役立てることのできる情報がほとんどないのだ。以下は、こういったステップアップを実現するための10のティップスである。 #1:新たなプログラミング言語を学習する 新たなプログラミング言語を学習することは、それがどのような言語であったとしても、より優れた開発者になるための近道となるのである(このことは、あなたが既に多くのプログラミング言語を修得していたとしても成立することである)。言語を選択する際には、あなた

    システム開発の入門者から中級者にステップアップするための10のティップス - builder by ZDNet Japan
  • 実開発で分かったGoogle App Engine for Javaの“すごさ”

    ゴールデンウィークに特に予定のなかった筆者は,「ちまたで噂のGoogle App Engine for Java(GAE/J)とFlexでスケジュール共有ツールでも作ってみよう」と思い立ちました。およそ5日間かけて開発を進めたのち,2009年5月6日に「ご都合.com(画面1)」を公開しました。その後,はてなブックマークやニュースサイトなどでご紹介いただいたおかげで,公開後6日で約2000人の方にご利用いただいています。 そこで稿では,この「ご都合.com」の開発で実際に筆者が得た経験を通じて,GAE/JによるWebアプリケーション開発の実際とそのポテンシャルについて紹介します。 米Googleが2008年4月に発表したGoogle App Engine(画面2)は,「自分が開発したWebアプリケーションをGoogleのデータセンターで運用できるクラウドコンピューティング・サービス」です

    実開発で分かったGoogle App Engine for Javaの“すごさ”
  • OpenGLの基礎

    OpenGLは,3次元グラフィクスプログラミングにつかわれる標準的なライブラリです. ライブラリとは,プログラムの部品セットであるといえます. ライブラリを利用することで,自分で0から書かなくても, ライブラリが提供する部品を組み合わせることでプログラムを作成することができます. ここでは,OpenGLの基礎を説明します. OpenGLの概要 Ruby/OpenGL OpenGLプログラムの基的な構造 イベント,コールバック,イベントループ 2次元図形の描画 図形プリミティブ 属性 2次元ビューの設定 ビューポート OpenGLの概要 OpenGLは,3次元グラフィクスプログラミングにつかわれる標準的なライブラリで,SGI(Silicon Graphics, Inc.)がGLという同社のコンピュータ専用のグラフィクスライブラリをもとに開発したものです. OpenGL以外でよく用いられる3

  • プログラミング格言集

    psychopathより。 金言、格言は古今東西いろいろあるのだが、ここではプログラミングに関する格言がまとめられていたので、抜粋して翻訳してみる。翻訳に間違い等があった場合は、コメント等で指摘してください。 We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil 私たちは、時間の約97%を占めるわずかな効率に関しては忘れるべきである: 時期尚早な最適化は諸悪の根源だ。 - C. A. R. Hoare Walking on water and developing software from a specification are easy if both are frozen 水の上を歩くのと、仕様に基い

  • プログラミングに適したフォント10 | エンタープライズ | マイコミジャーナル

    SitePoint: New Articles, Fresh Thinking for Web Developers and Designers プログラマはエディタ選びに熱中することがある。またエディタで使うフォント選びに熱中することもある。大抵の場合は文字の判別がつけやすいかどうか、インデントがみやすいかどうかを重視するため等幅フォントが採用されることが多い。しかし一度に多くの文字を閲覧できるという理由でプロポーショナルなフォントを選択することもある。 どのフォントを選べばいいか迷ってしまうところだ。そこでCraig Buckler氏がSitePointに掲載した10 of the Best Programming Fontsに注目したい。プログラミングに採用できるフォントとして10個のフォントが紹介されている。フォントの表示例が画像で掲載されており、比較もしやすい。紹介されているフォ

  • 2ちゃんねるBOTの作り方 実装編2 - GIOの日記

    2ちゃんねるBOTの作り方 準備編 - GIOの日記 2ちゃんねるBOTの作り方 設計編 - GIOの日記 2ちゃんねるBOTの作り方 実装編1 - GIOの日記 同じファイルをダウンロードしないようにしよう この機能は実装方法に悩む 1.DATを前回読み込んだ分だけシークさせて、残りから画像を探す 2.ダウンロードした画像URLをDBにいれとく 3.前回ダウンロードした枚数回はダウンロードしない 2は無いとして、1がベストだと思うが、一番最初に思いついた3を実装します。 Appクラスを変更。yaml/storeでDAT番号をキーに枚数を永続化 class App def execute(board) root_dir = File.dirname(__FILE__) image_dir = "#{root_dir}/images" # db = YAML::Store.new("#{ro

    2ちゃんねるBOTの作り方 実装編2 - GIOの日記
  • 株式会社エス・スリー・フォー » STLport のハッシュ・コンテナ

    STLport のハッシュ・コンテナ 標準C++ライブラリが提供するコンテナは、vector, list, deque, set, multiset, map, multimap の7種です。 これらコンテナから特定の要素を検索するとき、その時間計算量は vector, list, deque では O(N), set, multiset, map, multimap では O(logN) となります。 これ以上に高速な検索が可能なコンテナとしてハッシュ表(hashtable)を利用すれば、適切なハッシュ関数を与えることによって検索に要する時間計算量をコンテナ内の要素数に関わらず O(1) に近づけることができますが、残念ながら標準C++ライブラリにはハッシュ表で実装されたコンテナ(ハッシュ・コンテナ)を提供していません。 SGI(Silicon Graphics社)のSTL実装をベースに

  • rubyのスタックオーバフローに対処する - 2008-11-16 - 未来のいつか/hyoshiokの日記

    rubyのバグ(d:id:hyoshiok:20081106#p1)でsigsegvでrubyが異常終了するという話を書いた。その続き。 BINARY HACKSのHACK #76(pp. 291-300)、"sigaltstackでスタックオーバフローに対処する"が参考になりそうだ。 ということでsigaltstack(2)を使うというところを写経してみた。BINARY HACKSによれば、スタックオバーフローでSEGVした場合、通常のsignal(2)やsigaction(2)で処理することはできない。というのはスタックオバーフローした場合シグナルハンドラーを動かすスタックすら確保できないかららしい。なるほどね。そのため、スタックオバーフローを捕捉するために代替シグナルスタックを設定する必要がある。それには、sigaltstack(2)を使う。 http://www.linux.or.

    rubyのスタックオーバフローに対処する - 2008-11-16 - 未来のいつか/hyoshiokの日記
  • 「プログラミング言語を理解するにはどうしたらいい?」という話を聞いて思うこと - 西尾泰和のはてなダイアリー

    「プログラミングとか特定のプログラミング言語とかを習得したくて色々勉強したけど、いまいち理解できた感じがしない、何がいけないのだろう、何を学べばいいんだろう」という話を聞いて思ったこと。 それって、目的が曖昧だから達成感が得られないというだけじゃないのか? 僕の今までの人生の中には「プログラミングを習得した!」と思える瞬間も「Pythonを理解した!」と思える瞬間もなかった。具体的な「Pythonで継続のある言語を実装できた!」とかならある。でも「継続の概念を完全にマスターしましたか」と言われるとそんな気はまったくしない。まだまだ先は長い。しかし僕よりはるかに継続に詳しい人たちが集まって継続に関する議論をしてたりするのを見ると、この道に明確なゴールはないことがわかる。どこまで行っても「まだ先がある」という感じが残るに違いない。 手段が間違っているのではなく、目的が間違っているんだ。「○○を

    「プログラミング言語を理解するにはどうしたらいい?」という話を聞いて思うこと - 西尾泰和のはてなダイアリー
  • C++ のプログラムのデバッグを楽にする方法

    メディア関係者向けお問い合わせ先 メールでのお問い合わせ: pr-jp@google.com メディア関係者以外からのお問い合わせにはお答えいたしかねます。 その他すべてのお問い合わせにつきましては、ヘルプセンターをご覧ください。

    C++ のプログラムのデバッグを楽にする方法
  • Linux上で稼働するオープンソースの開発ツール--見過ごせないもの10選

    文:Jack Wallen(Special to TechRepublic) 翻訳校正:村上雅章・野崎裕子 2009-03-31 08:00 Linux開発環境の利点を活かすには、適切なツールが必要となる。記事では、優れたツールを選び、その概要や機能を紹介する。 Linuxは素晴らしい開発環境である。しかし、適切な開発ツールが無ければ、そのような開発環境も宝の持ち腐れとなる。幸いなことに、Linux上で稼働するオープンソース開発ツールは数多くあるのだ。あなたがLinuxに不慣れである場合、どういったツールが利用可能であるのか判らないかもしれない。だが、心配は無用だ。以下に、あなたの開発をぐっとレベルアップさせる素晴らしいツールを10個紹介するので参考にしてもらいたい。 #1:Bluefish 「Bluefish」は、Web開発を行うための統合開発環境(IDE)として最も人気の高いものの1

    Linux上で稼働するオープンソースの開発ツール--見過ごせないもの10選