タグ

programmingに関するjapo99のブックマーク (63)

  • Cが最速なんてもう言わない - なつたん

    例によってHigher-order Perlから 昨日までは、同じ処理を同じアルゴリズムで書いたらC/C++が一番早いに決まっているという信念があったのですが、このを読んで考えが変わりました。2007年11月3日はそんな記念日。 相変わらずメモ化の話なんですが、 ・フィボナッチ書けたよ → 遅くね? ・メモ化したよ → 毎回メモ化の仕組み作るの面倒じゃね? ・closureがあるよ → 引数が一つの時しか使えなくね? ・joinでつなぐよ → f("x,", "y")と、f("x", ",y")でバグるよ ・正規表現でエスケープするよ → 遅くね? ・key generatorを引数で渡して、if文で切り替えたらどうよ → if文無駄じゃね? ・eval使うよ ← 今ここ という議論を経て、evalを使う話。上の議論は全部Perlのソース付きで説明されています。 で、問題のコードがこれ。

    Cが最速なんてもう言わない - なつたん
  • 業界最大級のライブチャットDXLIVE

    9月14日(水)午前5時~5時30分(日時間)に、サイトのメンテナンスを行ないます。その間は、一時的にチャットが中断される場合がございます。メンテナンス期間は、作業状況により多少前後することもございます。ご利用の皆様にはご迷惑をおかけ致しますが、ご理解ならびにご協力の程、何卒宜しくお願い申し上げます。 日時間午後10時30分頃から午前零時頃までの間、チャットに繋がりにくい状態がありましたが、現在は解決しています。ご利用されている皆様には大変ご迷惑おかけいたしましたことをお詫び致します。 9月6日(水)午前4時30分(日時間)より約1時間、サイトのメンテナンスを行ないます。その間は、一時的にチャットが中断される場合がございます。メンテナンス期間は、作業状況により多少前後することもございます。ご利用の皆様にはご迷惑をおかけ致しますが、ご理解ならびにご協力の程、何卒宜しくお願い申し上げます

    業界最大級のライブチャットDXLIVE
  • キーボードリマッパーから見る Mac OS X のカーネル拡張の作り方

    IOHIDSystem のソースコードは IOHIDFamily に含まれており、 _KeyboardEventAction にフックを仕込むには IOHIKeyboard.cpp、 IOHIKeyboard.h をあたります。 // IOHIKeyboard.h class IOHIKeyboard : public IOHIDevice { ... OSObject * _keyboardEventTarget; KeyboardEventAction _keyboardEventAction; OSObject * _keyboardSpecialEventTarget; KeyboardSpecialEventAction _keyboardSpecialEventAction; OSObject * _updateEventFlagsTarget; UpdateEventFlag

  • IT関係でこれは読んでおけという本 - カレーなる辛口Javaな転職日記

    http://q.hatena.ne.jp/1193169005 「そんなもん自分で探せ」と言ったらダメなのかな.他力願なだけの「教えて君」には未来はないぞ. 更に言えば,あまりにも漠然としすぎた質問だ.同じITでも何を専門とするかで必要とされる知識も千差万別. オブジェクト指向お勧めリスト: http://d.hatena.ne.jp/JavaBlack/20070522/p1 プログラミング作法 作者: ブライアンカーニハン,ロブパイク,Brian Kernighan,Rob Pike,福崎俊博出版社/メーカー: アスキー発売日: 2000/11メディア: 単行購入: 58人 クリック: 1,152回この商品を含むブログ (209件) を見る 入門 GNU Emacs 第3版 作者: Debra Cameron,James Elliott,Marc Loy,Eric Raymon

    IT関係でこれは読んでおけという本 - カレーなる辛口Javaな転職日記
  • わずか565バイトテトリスのプログラミング解説

    「往年の名作「スーパーマリオブラザーズ」、あの濃い内容でわずか40キロバイト」に載っていたわずか565バイトのテトリス。文字数にして551文字。79文字*7行のプログラミングで、テトリスが動きます。 以下のソースコードをメモ帳に貼り付けて、htmlで保存すればテトリスが動きます。 <body onKeyDown=K=event.keyCode><script>X=[Z=[B=A=12]];h=e=K=t=P=0;function Y() {C=[d=K-38];c=0;for(i=4;i--*K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/ A)*145)])p=B[i];!t|c+4?c-4?0:h+=d:B=C;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+B[i++]]=1 if(e=!e){if(f|B){fo

    わずか565バイトテトリスのプログラミング解説
  • Makefileの書き方:プログラミング言語Make - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「Makefileの書き方、その勘どころ」にて: まだ、関数を使ってソースやターゲットを生成する方法とかパターン規則の説明をしてないので、続きを書くと思います。調べているうちに、GNU Makeの構文(の一部)はある種のプログラミング言語だという気がしてきました;そのことも書きたい気がしてます。 というわけで続きを書きます。 実は、関数呼び出しを使うときは、代入に「=」を使うより「:=」のほうが適切かつ効率的なときが多いのですが、その話は次の機会にします。 これの説明が中心になります。 内容: 前置き 変数の種類と変数定義 ソースコードの後のほうを参照すること Makeは上から下へと実行していくのだ MakeとLispは似ている 実例 ●前置き 以下、Make一般ではなくてGNU Makeの話です。GNU Makeより古いMakeにも備わっていた伝統的機能の説明はしません。 GNU Mak

    Makefileの書き方:プログラミング言語Make - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • ユメのチカラ: プログラマの仕事はプログラムを読むことである

    ソフトウェア開発コストのほとんどは保守のコストだと言われている。各種統計がそれを示しているわけだけど、自分の実感とも合う。 古典的なウォータフォールモデルでは保守というのが意識されないか、あっても一番下流なので、その重要性に対する認識が非常に薄い。 保守という言葉は若干大げさな響きを持つが、プログラムの不具合の修正や、ちょっとした機能変更、機能追加などなど、運用していけば、つまりそのソフトウェアが利用されていれば必ず必要なものである。保守されていないソフトウェアは早晩利用されなくなるか、既に利用されていないかである。 Unixの哲学を持ち出すまでもなく、優れたプログラマはプログラムを書くのではなく、再利用する。いかにしてプログラムを書く機会を減らすか虎視眈々としている。可能な限り再利用して、どうしても書かざるを得ない場合はリサイクルをしちゃったりする。(プログラマにとってのReduce/R

  • OSX+Emacsで快適なRails開発ライフを送る

    Posted by masuidrive Tue, 23 May 2006 13:22:00 GMT Rails用エディタを放浪 した結果、やっと、OSX上のCarbonEmacs で、rails.el + ECB + psvn.el を使い、EmacsなのにEclipse以上の環境を作る事ができました。 この環境+Terminal上でscreenを立ち上げ、いくつかのログを tail -f LOGFILE で表示させて、殆どのソフトを作っています。 あとは、migrationをもう少し楽にできるツールが欲しいかな。そういえば、DB管理ツールのConductorとか、クラスタ管理のGaugeはどうなったんだろう? まず、OSXRailsを開発する上で気になっていたのが、subversion for OSX のパッケージを使うとメッセージ類が文字化けする件。これはロケールを正しく設定してや

  • Djangoへの片思い日記 - ■Struts脳の恐怖とRails

    Strutsは良いフレームワークであった。 登場時のStrutsは MVCを体現しWebフレームワークとしてプログラマ達に夢を見せた。 今見てしまえば冗長で可読性の低い設定ファイルに 糞のようなtaglibとゲロのようなjspであるが それでも当時はセンセーショナルだった。 しかし、その後、Strutsには悲劇が起きる。 あまりにもセンセーショナルなデビューのおかげで それを金に換えようとしている奴らに目を付けられてしまった。 人月計算とExcelスーツで出来ている奴らだ。 奴らは Strutsをいかに簡単であるか宣伝し 役に立たない講習会で金を取り sessionが何なのかすら知らない人間を大量に生み出した。 そうやって生み出されたStruts脳人間は 「動くコードが正義」の負の面を体現し スパゲティを更に絡ませたActionFormを書き 解読不能なActionを書いた。 勉強など一

    Djangoへの片思い日記 - ■Struts脳の恐怖とRails
  • Clearsilver

    What is Clearsilver? Clearsilver is a fast, powerful, and language-neutral HTML template system. In both static content sites and dynamic HTML applications, it provides a separation between presentation code and application logic which makes working with your project easier. The design of Clearsilver began in 1999, and evolved during its use at onelist.com, egroups.com, and Yahoo! Groups. Today ma

    japo99
    japo99 2007/09/11
    tracで使われてるテンプレートシステム。複数の言語に対応。
  • 生年月日から年齢を計算する簡単な計算式: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
  • mixi Engineers’ Blog » Linux Programming、epollの話

    お久しぶりです、初めての日の夏に圧倒されているトールマエサカです。 今日はLinuxにおけるネットワークプログラミング関連のネタです。分散データベースサーバの開発過程で最近よくLinuxのepollというイベントハンドリング機能を使っています。これがまた優秀な機能なので紹介します。 このContextでいうイベントハンドラーはサーバがクライエントのリクエストを処理するためのメカニズムです。イベントの感知と通知は大雑把にいうと以下の三つの処理で構成されています: 一つもしくは複数のディスクリプタを監視 ディスクリプタの準備が整うまでハチ公のごとくひたすら待ち続ける 準備が整ったディスクリプタの通知 アプリケーションでの実装は一昔までselect(2)、もしくはpoll(2)というシステムコールで行われていました。二つとも役目は同じですがselect(2)の場合、kernelをいじらない限り

    mixi Engineers’ Blog » Linux Programming、epollの話
  • 画像もDBに格納して管理する -扱いがめんどうなLOB(ラージオブジェクト)は使わない方法も含め

    Ywcafe.net This Page Is Under Construction - Coming Soon! Why am I seeing this 'Under Construction' page? Related Searches: Health Insurance High Speed Internet Work from Home Healthy Weight Loss Best Penny Stocks Trademark Free Notice Review our Privacy Policy Service Agreement Legal Notice Privacy Policy

  • デスクトップアプリケーションは死んだ - Kentaro Kuribayashi's blog

    "Ev's Rants: Desktop Applications are Dead"が面白かったので、翻訳してみた。というか、「超訳」だが。 原著者: Eugueny Kontsevoy 超訳者: kentaro a.k.a. id:antipop 原文のURL: http://kontsevoy.blogspot.com/2007/08/desktop-applications-are-dead.html いまさらその話かよ、って?そんなこといっても、「デスクトップアプリケーションは死んだ!」とか、いまもみんなそこらを叫んで回ってんじゃん。 その連中の多くは、いわゆる「ウェブアプリケーション」の開発者どもだ。誰があんな連中のいうことを聞くんだ?やつらは物の開発者なんかじゃない。だよね?全然ものがわかってないし。あいつらときたら、malloc()やfree()すらまともに使えないんだか

    デスクトップアプリケーションは死んだ - Kentaro Kuribayashi's blog
  • 第5回 おしゃべり程度のプログラミング「Smalltalk」(前編) | gihyo.jp

    今回から2回にわたりプログラミング言語「Smalltalk」についてお話しします。Smalltalkと言えば、オブジェクト指向プログラミング言語と、開発環境と実行環境を統合したようなプログラミング環境が大きな特徴です。そこで前編はSmalltalkの登場背景とオブジェクト指向プログラミング言語としての特徴的な構文、後編はプログラミング環境を取り上げます。 生まれはパロアルト研究所 Smalltalkは1970年代にXerox社のパロアルト研究所(以降はPARCと称す)で、アラン・ケイ率いる学習研究グループにより作成されました。PARCと言えば、レーザープリンタ、インターネットの基礎となるイーサネット(ethernet⁠)⁠、そしてSmalltalkが深く関係するパーソナルコンピュータのアルトを生み出した伝説的な研究所です[1]⁠。メインフレームやミニコンピュータが主流の時代に、机のキャビネ

    第5回 おしゃべり程度のプログラミング「Smalltalk」(前編) | gihyo.jp
  • Windchase - GUI のイベントスクリプティング

    http://subtech.g.hatena.ne.jp/secondlife/20070813/1186999047 より まずイベントドリブンなプログラミングに慣れてないのが一つで。Flex のイベントや自前イベントやをただ単に投げまくってると、とりあえずは動くけど後からメンテし辛いスパゲッティコードができあがる。このスパゲッティコードは goto 文が乱立するコードよりも酷く、goto だったら割と行き先は把握できるけど、イベントを投げまくってるだけだと、どこでどのオブジェクトがこのイベントを受け取るかが解らない。解りづらい。いちいちソースコード grep ですね、おめでたいですね。あのイベントが発生してから、そのイベントが終了したら発生するイベントが終了したらウィンドウ閉じて、その間は別のイベントはブロックして/発生しないようにして、とかもうわけわかんない。これも GUI プログ

    Windchase - GUI のイベントスクリプティング
  • やねうらお―よっちゃんイカを買いに行ったついでに保険料を支払う男 - ショートコード本裏話

    買われた人は、の赤い帯に「プログラムソースの短縮化にかけた職人たちの熱き想いをここに一挙公開。バイナリ埋め込みからmain再帰まで、伝説のショートコードが満載。あなたはいま、歴史の目撃者になる!すべてのプログラマに贈る、プログラミング熱を呼び覚ますこの一冊!」という文言が入っていることに気付いたと思う。これが何なのかをここに記しておきたい。 もともと、このは企画段階から「ショートコーダ伝説」というのタイトルにしようと思っていた。著者のOzyさんと私には、このタイトルにはかなりの思い入れがあった。私は最初冗談でそのタイトル(仮タイトルのつもりだった)をつけたのだが、次第に二人は気になって行った。それは友の死があったからである。 2007年が明けて格的に執筆活動に入った矢先、突然の訃報に接することになりました。namasuteこと木戸浩正さんが、大学卒業を目前に逝去されたのです。彼は

  • The Scala Programming Language

    val fruits = List("apple", "banana", "avocado", "papaya") val countsToFruits = // count how many 'a' in each fruit fruits.groupBy(fruit => fruit.count(_ == 'a')) for (count, fruits) <- countsToFruits do println(s"with 'a' × $count = $fruits") // prints: with 'a' × 1 = List(apple) // prints: with 'a' × 2 = List(avocado) // prints: with 'a' × 3 = List(banana, papaya)

    The Scala Programming Language
  • メモを書き込みながらコードリーディングする方法 - (ひ)メモ

    調べたいことがあってApacheやらlighttpdやらkeepalivedやらのソースコードを読むときはGNU GLOBALを使ってたんですが、常々、メモが書き込めたらいいのになーと思ってました。 フローのメモ 関数の動作、影響のメモ マクロのメモ とかとか その場では覚えてられるんですが、最近は性能劣化のため日をまたぐと脳内バッファがフラッシュされるようになってきたので、howmでメモったり紙に印刷して手書きでメモったりしてたんですが、なんかどうもいまいち。 GLOBALのページに直接付箋はれるといいのになぁと思ってちょっと探したところ、InternoteというステキなFirefoxのextensionがありました。 こんな感じです: みんなでメモをシェアするのには向きませんが、個人的なメモをとるのにはよさげです。

    メモを書き込みながらコードリーディングする方法 - (ひ)メモ
  • Javascriptでブロック崩しを作る手順が全公開

    via del.icio.us/popular Javascript Gamerで、BrickslayerというJavascriptで作ったブロック崩しゲームの作り方が公開されている。 開発環境は Firefox + Firebug + お好みのエディタ。 Javascript体は、prototype.jsベースで、スプライト表示、アニメーション処理、キーボード入力、当たり判定、(Flash経由で)効果音などについてそれぞれソースつきで解説されている。 また、ハイスコア記録のほうはPHPによるサーバ側のスクリプトがちゃんと用意されている。 まだアルファリリースということだけれど、ページ上ではブロック崩しゲームがちゃんと動いている。ソースを一括してダウンロードすることもできる。 この記事は移転前の古いURLで公開された時のものですブックマークが新旧で分散している場合があります。移転前は現在

    Javascriptでブロック崩しを作る手順が全公開