タグ

programmingに関するkazuhookuのブックマーク (23)

  • きまぐれ日記: pubic static はコンピュータに伝える約束事ではない

    http://www.atmarkit.co.jp/news/200904/10/matz.html PerlRubyPythonといったスクリプト言語では、 記述が非常にストレートで端的になる。JavaC++といった言語では、 「public static void mainなど、コンピュータに伝える約束事が多くて、 やりたいことが頭の中から逃げてしまう。簡潔さは力なのです」(まつもと氏)。 これは書くときだけでなく、読むときにも同様だ。 まつもと氏の記事を読んで、仕事として大規模な共同開発の経験に基づいているのかなと思いました。 publicとかstaticとかconstというのは書く側からすると約束事で めんどいということには同意しますが、毎日のようにコードレビューを している経験からいうと、コードレビューをする側にとってこいうキーワードがあるかないかで全く意味が異なります。メ

  • Lispとゴキブリの共通点 - なつたん

    ・現代でも生き残っている数少ない古代種である ・ゴキブリは1匹見つけると20匹いる。Lispは1つのマクロが20倍のコードになる。[要出典] ・どちらも再帰的に増え続ける ・卵-幼虫-成虫、もしくは、Read-eval-printの成長段階を踏む ・全世界に約 4,000 種、うち日には50種余りが知られる。 ・その体構造が原始的・平均的であるため実験の対象として利用される事がある。アメリカ合衆国にはその手の業者/学者がいる。 ・見た目によって忌み嫌われることが多いが、一方で愛好家も多い。 ・特に主婦には人気がない。[要出典] 参考:http://ja.wikipedia.org/wiki/ゴキブリ

    Lispとゴキブリの共通点 - なつたん
  • Working Effectively with Legacy Code 読書会#3 - 木曜不足

    8/2 に Working Effectively with Legacy Code の第3回読書会が行われました。幹事のせとさん、参加者の皆さんお疲れ様でした。 今回は 9 章から 12 章の途中まで。 Chapter 9. I Can't Get This Class into a Test Harness xUnit とかでテストを書こうとしたら、コンストラクタの引数が複雑だったり、前提条件が必要だったりして、独立したテストコードの中では容易にはインスタンス化できないというシチュエーションで取り得る対策についてあれこれ紹介。担当は せとさん、id:htada さん、川澄さん。 個人的には9章で紹介されている手法は、他にやりようがないにしても、ちょっと採用するのに二の足を踏んでしまいそうなものばかりでなかなかしんどい。new と delete が空中アクロバットしているとか、生理的に拒

    Working Effectively with Legacy Code 読書会#3 - 木曜不足
    kazuhooku
    kazuhooku 2008/08/07
    「「 TDD はそれがないとコードが書けない(実装をコードに落とせない)人のためのもの」」w
  • はじめてのひき - DuckTyping

    こんな基準でどうか。用語には自信ありません クラス(or 型) X のインスタンスを Duck のように振る舞わせたいとき… intrusive:X を定義するときに一緒に "X は Duck っぽい" と明記する 例: class X implements Duck { ... } nonintrusive-explicit: 外付けで "XはDuckっぽい" と明記する 例: (ある場所で) data X = ... (別のところで) instance Duck X where ... nonintrusive-implicit: 明記しない。普通 duck typing と言うとこれ。特に dynamic なものを指す。 例: template<typename X> void foo(X x) { x.like_a_duck(); } dynamic: 特定のメソッドを持った異なる

  • 最低限学ぶべきパラダイム、そして最強とは。, 今日のつぶやき - 32nd Diary(2008-05-06)

    めーるあどれす ruby -rbase64 -e'puts Base64.decode64 %q(dGFrYW5vMzJAZ21haWwuY29t)' ■ [Work][Hack][Lisp][C/C++] 最低限学ぶべきパラダイム、そして最強とは。最近、というか、しばらく前から「初学者はアセンブリとLISPを学ぶべき」とか「LISPは最強、あとはC言語でもやればいい」みたいな記事をそこかしこで見ますが。 んなの、私に言わせてもらえばアセンブリでもC言語でもLISPでもなんでもいいから最低限、ノイマン型と関数型のパラダイムは脳に叩き込めと言いたい。欲を言えばオブジェクト指向もだ。 こっから私の愚痴です。 この間、仕事中に珍しく脳が冴えているのを感じ、漸化的な処理構造が脳内に浮かんだので、それをそのままECMA Scriptに起こしたら再帰はアカデミックの分野だけでしか使わないものだ。格好つ

    kazuhooku
    kazuhooku 2008/06/12
    同感
  • Studio MOYO

    Xvfb - 仮想フレームバッファ 仮想フレームバッファ Java で使用できるほとんどの画像操作用ライブラリは Java 標準の AWT を使用しています。しかし、Unix 上で AWT を使用するためには X が起動されていなければいけません。X が起動されていないのに強引に実行しようとすれば以下のようなエラーが出るでしょう。 torao@cobalt$ java Awt Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DI SPLAY variable. at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method) at sun.awt

  • 魔法言語 リリカル☆Lisp

    About ★「魔法言語 リリカル☆Lisp」はノベルゲーム風のLispチュートリアルです。 "アリサ"や"すずか"達と楽しくLispを学べます。 全12話構成で各話の最後には練習問題が用意されています。 Lisp処理系にはNScripter上で動作するLispインタプリタであるNScLisperを使用。 別の処理系をインストールする必要はありません!! Lispとは ★CやC++Java、BASIC、PerlRubyPHPPython、ML、Haskellなどと同じプログラミング言語の一つです。 マサチューセッツ工科大学のJohn McCarthy教授を中心とする研究グループによって開発され、1962年に発表されました。 LispとはList Processorの略で名前通りリストの処理を得意とします。 このことから人工知能の開発に多く用いられています。 NScLisperとは

    魔法言語 リリカル☆Lisp
  • 西尾泰和のブログ: Befunge日記

    Befunge - Wikipedia。 なるほど、これも「ループに特殊な命令を必要としない言語」だな。 存在は何となく知っていたけど詳しい言語仕様は今回初めて読んだ。 Brainf*ckより面白い。 5時間あればBefungeインタプリタとBefungeで書かれたKEMURIインタプリタを作れると思うけど、 3倍で見積もった上で、今15時間かけて作るべきかと考えると…。 …。 「やりたいことはいくらでも沸いてくるけども、やる時間は有限なので 何かを捨てなきゃいけない。」 でも「精神衛生を保つために息抜きが必要だと割り切って、 遊ぶときにはしっかり遊ぶ」 ううむ。 とりあえず昼間から遊ぶのはダメだと思う。 しっかり働いてから遊ぼう。 でも今日遊ぶならウダーの練習がしたいなー。 というわけでBefungeはなし。 = v @_ v >0"!dlroW"v v :# " ,olleH" v

    kazuhooku
    kazuhooku 2007/03/22
    なるほど>「#@_
  • 聞いてきました:Googleの大規模日本語データ公開に関する特別セッション - のほほん徒然

    第四十七回 写真はGigazineのマネです(笑) 3月に滋賀で行われる言語処理学会全国大会で、グーグルが 特別セッションをやるそうです。大規模日語データについて。 たつをさんのブログで知ったGoogleの特別セッション. グーグル株式会社では、日語の言語処理研究推進のため大規模日語データの公開を検討しています。つきましては仕様を決定するにあたり、実際にデータを御利用頂く研究者 / 技術者の皆様の「生の声」を是非お伺いしたく存じます。今回、言語処理学会様の御好意により、下記のとおりデータ仕様に関する特別セッションを設けて頂ける事になりました。 はてなブックマークでも話題になっているGoogleの大規模日語データ公開に関する特別セッション@NLP2007に,家が近いこともあり参加してきましたので,その詳細を書きます. セッション概要と要旨 Googleは日語の言語処理研究のためにW

    聞いてきました:Googleの大規模日本語データ公開に関する特別セッション - のほほん徒然
  • http://www.itakura.nuee.nagoya-u.ac.jp/~takeda/IPA/OHPs/Progress97/ppframe.htm

  • kmyacc - 多言語対応LALRパーサー生成系

    What is KMyacc? kmyaccはyaccやbisonと同じLALRパーサージェネレータです。 yaccと互換性があり、生成される表が小さく、ホスト言語としてC以外にJava, JavaScript,Perlでも使うことができます。 News 2006.02.28: きむらさんによるWindows VC++用のパッチ 2006.02.16: version 4.1.4: Java, Perl, JavaScript版のパーサードラ イバのバグを修正。このバグは、ある種の文法で構文解析に失敗し実行時エラー を起こすというもの。C版にはこのバグはない。 2005.10.07: version 4.1.3: Java版に yyparsererror (YYERROR) 及びスタックの自動伸張を実装 2005.07.10: Demonstration program 2005.07.0

  • 未踏ユースに採択されました - はこべにっき ♨

    おかげさまで、「ブロガーのためのソースコード管理システム」というネタで、2006年度下期未踏ユースに採択していただきました。 ブログにコードを貼付けてもいまいち使い勝手悪いよなー、と普段から気になっていたことを解決するためのシステムを提案してみました。ブログ上*1でソースコードを扱うためのフレームワークというかインフラみたいなものを目指します。というか、実はまだ、自分でもシステムの全体像が掴めていなかったりするので、早く構想を固めないと…。 ここにも、ちょくちょく作業内容を書いていくことになると思います。なまあたたかい目で見守ってやってください。 *1:Wikiとかブログ以外でも使えそうな気もしてきました

    未踏ユースに採択されました - はこべにっき ♨
  • AutoPagerize0.0.5リリース - SWDYH

    AutoPagerize0.0.5 http://swdyh.yu.to/autopagerize005.user.js サイト用データを外部から取得するようしました。 取得先は復活していたinfogamiです。 http://swdyh.infogami.com/autopagerize 毎回アクセスするのではなく、GM_setValue/GM_getValueを使ってキャッシュしてます。 Expireは1日なので、少なくとも1日はそのデータを使いつづけます。 メニューコマンドを追加しました。 ツール - Greasemonekey - User Script Commands以下からコマンドを実行できます。 clear cache 外部から取得したサイト用データのキャッシュをクリアします。 on/off AutoPagerのオンオフ、ダブルクリックと同じです。 残りの高さを計算するとこ

    AutoPagerize0.0.5リリース - SWDYH
  • Xbyak - x86 JIT assembler -

    Xbyak - x86, x64 JIT assembler - .frame(English) .frame(x86の究極の最適化手法?) Xbyak(カイビャック)はx86(IA32), x64(AMD64, x86-64)のマシン語命令を生成するC++のクラスライブラリです. プログラム実行時に動的にアセンブルすることが可能なため, 柔軟な最適化(動的コード生成)が可能となります(利用シーン:量子化の高速化, 式の計算). 暗号ライブラリに使って高速な実装をしてみた(very fast etaT pairing for Core 2 Duo) ヘッダファイルオンリー xbyak.hをインクルードするだけですぐ利用することができます(32bit, 64bit両対応). Windows Xp(32bit, 64bit), Vista/Linux(32bit, 64bit)/Intel

  • C++ for Haskeller

    http://haskell.g.hatena.ne.jp/mr_konn/20061006/1160138831 Haskellから入った人には、cinとかcoutとか微妙すぎてよくないだろ、と、思ったので、適当に。 対象読者は、Haskellわかるし、C++もわかる人(意味ねー)。ネタを理解できる人です。 C++とは C++とは、以下のような特徴を持ったプログラミング言語です 参照透明(!) 出現評価(occurrence evaluation) (などといういかがわしい単語をつくる) パターンマッチできる 全く直感的でない構文 IOモナドを書くための大量のsyntax sugarがある 説明していくと長くなるので、それぞれ、おいおい必要になったときに説明するようにします。 C++の型 C++には、次の型があります。 整数 真偽値 連想配列 まあ、おいおい説明。(はやくも飽きてきた)

    C++ for Haskeller
  • 西尾泰和のブログ: 言語融合の時代

    おととい寝るときに布団の中で思いついて、忘れないうちにメモした文章です。 プログラミングシンポジウムで「LLってなんなのよ」という話題になったのがきっかけです。 Jythonに入れるとしたらどこがいいでしょうね。第1章のJythonを使うメリットとかの所でしょうかね。に使うかどうかはさておき、実質的にはただのアジテーションなので、ブログで公開してみました(笑) 反論は大歓迎です。 __ かつてプログラミングとは 機械語を人間が直接書くことでした。 その後、いろいろなプログラミング言語が発明されました。 抽象化能力の高い言語を使うと、 「ハードウェアに密着した、ごちゃごちゃした細かいこと」 を気にせずに済むようになりました。 同じ機能が短いコードで実装できるようになり、 生産性が高まりました。 抽象化能力こそが言語のパワーでした。 こうして、プログラミング言語はどんどん抽象化能力を高めて

  • steps to phantasien t(2007-01-11) 最近みた TechTalks: Mondrian Code Review On The Web

    Python の親玉である Guido Van Rossum が, Google での初仕事(?) として Mondorian というコード・レビュー用ウェブアプリを 作ったよ, という話. ミーハー的に視聴. 前半はレビューとは何か, なぜそれが必要なのか, OSS でのレビューなどについて説明し, 後半から Mondrian 以前の Google 社内でのレビュー体制とその問題点を指摘, Mondrian の話と続く. Google では SCM に Perforce を使っており, レビューは patch + メールベース. Mondrian 以前は Perforce の CL クライアントをラップする g4 というスクリプトを使ってレビューを支援していた. これを使うと patch をメールでレビュアに飛ばしたりできる. その飛ばしたメールを起点にレビュアとレビュイが議論し, "l

  • [unsanity] Application Enhancer - Enhance the applications by loading modules

    Application Enhancer is compatible with the ICBMs (Intel-based Macs).Application Enhancer currently does work on Mac OS X 10.5.x. More Info. Application Enhancer (APE) is a system used in our and third-party products that helps them to enhance and redefine various applications behavior running on your system. What exactly is Application Enhancer? It is a combination of a Framework and a system da

    kazuhooku
    kazuhooku 2007/01/04
    この手のが流行りなんかね
  • http://www.nishiohirokazu.org/blog/2006/12/post_231.html

    kazuhooku
    kazuhooku 2006/12/17
    厨の比率に笑
  • Visualization of Ruby's Grammar

    Posted by Nick Sieger Fri, 27 Oct 2006 16:48:00 GMT As part of the momentum surrounding the Ruby implementer’s summit, I have decided to take on a pet project to understand Ruby’s grammar better, with the goal of contributing to an implementation-independent specification of the grammar. Matz mentioned during his keynote how parse.y was one of the uglier parts of Ruby, but just how ugly? Well, jud