編集元:ガイドライン板「638 名前:水先案名無い人 投稿日:2009/04/17(金) 15:33:16 ID:tiYVFzCJ0」より 226 ウンナンオウバイ(静岡県) :2009/04/15(水) 18:40:47.19 ID:feyVAFxN 4キロバイト部門の優勝作品 容量制限なし部門の優勝作品 とくに上のほうはマジキチレベル。音楽もグラフィックもプログラムも全部まとめて たった4KBのプログラムにしてる。
OMakeすごい。OMakeはマジですごい。 OMakeはGNU makeの代替品みたいなものなんだけど、正直なところこのツールの強力さはGNU makeと比べると失礼なくらいすごい。これのおかげで、「コード修正→ビルド→デバッグ→コード修正→・・・」のループの、ビルドにあたる作業がほぼ消え去った。 ファイルの依存関係の解析がとにかくすごい。よくあるユースケースなんかの場合、最小限の手間でほぼ完璧に依存関係を網羅して、よしなにビルドしてくれる。 とりあえず、はやみずが実際に使ってみたケースを例にとってそのすごさの一端を紹介しようと思う。 case study 論より証拠ということで、自分が OMake を試しにつかってみたケースを紹介する。C言語でスタティックライブラリを作っていて、それに加えて簡単なテストプログラムを書いている。 /include/ 以下にヘッダファイルが全部ある /sr
数々の3Dゲームで利用されるゲームエンジン ゲーム開発の世界では、他のプログラミング分野に比べて、ごく初期の段階からプラットフォームを正しく特定しておくことが特に重要です。Windows、Linux、およびOS Xをすべてサポートしたいとお考えですか? 実際、ゲームプラットフォームの草分けとして、1996年にOpenGL向けに開発された革命的なゲーム「Quake」を引き合いに出す人も多いでしょう。しかし、Quake並みのゲームプレイ水準に達するためには、第一級のオーディオサポート、ネットワーク接続、ユーザー入力デバイスサポート、リアルタイム管理機能なども必要になります。 この2つの課題、つまりクロスプラットフォームサポートとゲームの面白さの両方を追及するために役立つソリューションがSimple DirectMedia Layer(SDL)です。これは、オーディオ、キーボード、マウス、ジョ
前回までのおさらいと今回のあらすじ 前回は、thisキーワードについて深く解説しました。関数内で使用する「this」は、状況に応じて様々に変化する可能性がある、というお話でしたね。 これでやっと、JavaScriptの関数が持つ様々な機能を説明するための前提知識が整いました! JavaScriptの関数については、当連載でも一度取り上げています。JavaScriptの関数は、単なる手続きの単位ではなくオブジェクトの一種なのだ、と言うことを取り上げたトピックでした。 そう、JavaScript関数の実体は、Functionクラスのオブジェクトです。Functionクラスには、関数を操るための様々なメソッドやプロパティが存在します。今回は、それらを網羅的に解説するとともに、関数内でのみ使用可能な「arguments」オブジェクトについてもお話ししたいと思います。 Functionクラスのメンバ
これまでミラクル・リナックス社が解決してきた実際のLinuxのトラブルについて対処方法から解決に至るまでを具体的に解説します。簡単なトラブルから高度な技術が必要なソースコードレベルの修正までをご紹介します。また、トラブルシューティングに必須なソースコードの読み方のコツをOSSの伝道師でミラクルCTO吉岡がこっそり教えます。~ソースコードの読み方教えます~ その一http://www.nicovideo.jp/watch/sm1568162~ソースコードの読み方教えます~ その二http://www.nicovideo.jp/watch/sm1568231~ソースコードの読み方教えます~ その三http://www.nicovideo.jp/watch/sm1568273
GCアルゴリズム詳細解説 日本語の資料がすくないGCアルゴリズムについて詳細に解説します トップページページ一覧メンバー編集 GC 最終更新: author_nari 2010年03月14日(日) 20:47:11履歴 Tweet このWikiが目指す所 GCとは? GCを学ぶ前に知っておく事 実行時メモリ構造 基本アルゴリズム編 Reference Counter Mark&Sweep Copying 応用アルゴリズム編 IncrementalGC 世代別GC スナップショット型GC LazySweep TwoFinger Lisp2 Partial Mark and Sweep -Cycle Collection- Mostly Parallel GC train gc MostlyCopyingGC(Bartlett 1989) TreadmillGC(Barker 1992) 補足
2007年11月28日18:00 カテゴリアルゴリズム百選Math アルゴリズム百選 - フィボナッチ数列にO()を学ぶ 404 Blog Not Found:プログラマーでなくても名前ぐらい覚えておきたいアルゴリズムx10、これほどの反響になるとは。200ブクマぐらいは予想していたが、もいくとは。 とりあえず、本の仮題を「アルゴリズム百選」として、「アマグラマーのすすめ」と同じように本blogに草稿を書いていくことにする。「メインページ」の「アルゴリズム大募集! C&R研究所 - トップページ」の方も適宜更新していくが、「その場で動かせるコードサンプル」はここでないと書けないので。 ただし、「アマグラマーのすすめ」よりは書き方は順不同になるはず。それでも序文相当のことは「チラ見」ならぬ「チラ書き」しておいた方がいいだろう。というわけで、序文に変えて紹介するのが、本Entry。 ヒントとな
高校生の時、数学の先生がこう言いました。 ゲームなんて、開発者が作ったルールの上で遊ばれるだけだ。 と。 その時、ゲーマーな自分はこう思いました。 ゲーマーは、開発者が作ったルールの上で遊ばれたい。 と。 というわけで、普段何気なくプレイしているゲームには、どのようなルール(アルゴリズム)があるのか。それを知るために、いろいろなゲームのアルゴリズムなどを解析しているページへのリンク集を作りました。 ほとんどのゲームのアルゴリズムは正式に発表されていないので、ユーザーの手による逆解析だったり、大学の研究による真面目な考察だったりします。(リンク先には、一部アルゴリズムと呼べないものも含まれています) 各種ゲームのプログラム解析 ドラクエ、FF、ロマサガのプログラム解析 DQ調査報告書(リンク切れ) ドラクエの物理ダメージ計算式は本質的にどれも同じだが、細かい部分で微妙に違う RPG INST
「往年の名作「スーパーマリオブラザーズ」、あの濃い内容でわずか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
とりあえず開発を始めるにあたっては特殊なハードウェアなどは必要なくて、 コンパイルは gcc テストはエミュレータの VisualBoyAdvance といった流れで開発を進めます。 最後の最後に実機確認をする段階になったら、ロムイメージを書き込んで GBA の実機で実行させるためのマジコンが必要になりますが 当面は必要ありません。 まず VisualBoyAdvance で動けば実機で動きますし、その逆も真です。 ちなみに「Linuxから目覚めるぼくらのゲームボーイ!」などで用いられている ブートケーブル経由での開発はハードウェア資源の制限がキツくなるのでオススメできません。 コンパイルについては gcc で OK で、これは devkitPro r18 (buildscripts 20060412) をインストールすれば一式入ります。 Windows, MacOSX, Linux など
サーバーを人為的ミスにより壊したときに、バックアップの必要性を感じたので、スクリプトを作りました。よろしかったらどうぞ。以下のプログラムを dar-backup.js と保存して、ご利用ください。実行するには、darとRhinoとjre(Java実行環境)が必要です。 (使用される際は、プログラムの内容を理解して使ってね) 2007/10/28追記、darを使うより、rdiff-backupを使った方がいいことを知りました。 /* 本ソースコードのライセンスはBSDライセンスです。 darを使って、バックアップを行う、Rhino(JavaScript)のプログラムです。 darを使って、特定のフォルダのバックアップを行うので、 rsyncなどで、別のメディアやサーバーにコピーしてください。 人為的ミスから守るためにも、RAID以外に、毎時および毎日のバックアップは必須です。 (Javaのフ
今月で今やってる仕事の契約が切れるので,ここで培ったノウハウなどをメモしておこうと思う。 しかし,今後この手の開発系の仕事ができるとは限らないってのが悲しいところ。 プロジェクトポータルまわり とりあえず,Subversion(SCM), Trac(ITS/Wiki), Hudson(CI)は必須。この3セットがないプロジェクトなんてうんこ。 とにかくTrac-Subversionの連携が強力なので,Subversion以外のSCMは無視していい。HudsonはCIつうよりプロジェクトダッシュボードとして使うのが吉(数あるプラグインを有効利用しよう)。 marsのメモ - Trac marsのメモ - MacroBazaar - The Trac Project marsのメモ - 角谷HTML化計画(2006-04-25) marsのメモ - trac-post-commit-hookが
Java, プログラミングノリノリで書いてみる。 人月というのは「人月の神話」以来、現場の技術者にとっては「お金の計算にしか使えない単位」なのですが、発注者側に分かりやすいということでいまでも大はやりしています。というか受注者側もまじめにこの単位で計算しています。 そしてJavaの世界というのは、私のようにJavaが大好きだからやってる、という人間はすごく少数派で、「そろそろJavaでもやっとくか」「Strutsの使い方覚えたからもういいか」「できればJavaなんかいじりたくないなー。俺も早くプログラマに『これやっといて』って言えるようになりたい」という人のほうが多いのが実情なんですね。その点Rubyの世界は、今は「好きだからやってる」人が圧倒的でしょう。プログラム能力の高いJavaプログラマを探すのは、プログラム能力の高いRubyプログラマを探すよりずっと大変だろうと思う。 Javaの世
知人のmark-wadaさんのBlogからTB。 親子丼的ビジネス奮闘記(4) IT業界構造 SIerなんてものは無い 米国と日本との大きな違いは、米国の企業は基本的に内製なのだ。すなわち、社内のIT部門に開発エンジニアを抱え、そこでシステムの開発から運用を行なう。 ですから、米国のベンダーはそこに製品を供給する役割であり、日本でいうSIerというのはほとんどなく、あっても企業でリソースが不足したらそれを補う役割でしかない。契約にしてもはっきりしますよね。提供されるプロダクトやサービスに対する対価を払えばよいわけで、かかった人月で支払ういう出来高払いのような形態は少ない。日本のようにベンダーやSIerに丸投げして、できてからこんなはずではなかったなんて事態にははじめからならない構造なのだ。 親子丼的ビジネス奮闘記(4) IT業界構造 言われてみれば・・・、っていう感じですが改めて目が鱗です
ちょいと前にちっちゃなSIerにプログラマが入社しました。 その会社はあまり技術力が無かったので、2年も過ぎた頃にはプログラマは周りからエースと目されるようになってました。 会社で一番偉い人からも信頼を勝ち取ったプログラマは、次のプロジェクトで責任者に任命されることになりました。 大きい仕事を任され、喜びもあったのですが、不安なこともありました。 一つは開発環境を一新して、新しい言語で開発することが決定してることでした。 その新しい言語での開発実績が無かったのです。 もう一つは、今までプログラマの上にいた人が、今度は下につくということでした。 しかも残念なことに、上にいた人の技術力が嘆かわしいレベルなのです。 プログラマは困りました。 自分ひとりなら納期内に満足のいく品質で仕上げられる。 しかし、それだと社内にノウハウが蓄積しない上、中途半端に人材を遊ばせることになってしまう。 悩んだ末、
俺の住む世界はアイティーとやらに支えられているらしい。 アイティーに関われば、俺の住む世界をさらに素敵なものにしていけるに違いない。していきたい。 そう願って、何も知らなかった文系新卒の俺が金融系のシステム会社に入って、もう一年以上が経つのだ。 昔、お遊びでゲームを作ったことはあった。RPGツクールなんかが好きだった。 だから自分はシステム会社に向いていると思った。 実際、資格取得を勧められて始めた勉強は楽しかった。 浮動小数点数、オートマトン、SQL、スタック、木、論理式。 パズルみたいで楽しかった。コンピュータの中身が理解できて、わくわくした。 楽々と基本情報技術者の資格を手にし、半年後にはほとんど勉強もせずにソフ開も取得した。 研修の課題では同期の誰よりも速く、短く効率のいいソースを仕上げた。 現場に出て、本番機に触った。 30年間親会社を支え続ける偉大なシステムの中身を、わくわくし
なんとなく「釣り」か「地雷」のように思えてならないですが おもいきって釣られてみる。 東大卒がプログラマになんてならない理由 東大を卒業した人がプログラマにならない理由は2つある。 理由1: プログラミングなんてつまらない 理由2: プログラミングは儲からない それで行くと、私のような高卒DQNがプログラマーになる理由は2つある。 理由1: プログラミングができると賢いと誤解してもらえる 理由2: プログラミングは儲かる なんのかんの言ってもコの業界って、まったく未経験でも学歴がなくても 平気で雇ってくれ、おまけにそこそこは給料はいい。ただし高卒DQNが選べる 範囲においては、だ。東大出ていて、わざわざコの業界の最下層プログラマー を選ぶのは私の目から見ても、どこか頭がおかしいヤツとしか思えない。 人間はみな手持ちのカードが決まっていて、その中からベストを選ばざる
彼女にドングルを取り付けろ。 ここで重要なのは、リモコンで遠隔操作可能なドングルを取り付ける事だ。 彼女が心配になったらリモコンでドングルを遠隔操作しろ。
いろいろな本からメモってきたメモのメモ。出典を書いておくのを忘れた。思い出し次第補完するかも。 deleteのコストは高いので、無効化を示すフィールドを作ってupdateすべき slow query logに要注意 多くのエントリでほとんどのフィールドが同じ値を持つ場合はインデックスの効果が小さい →複合インデックスの効果が大きい 複合インデックスは指定の順番が大切。AとBという指定の場合、A単独でもインデックスの効果がある。逆は真でない。 インデックスが使われる場面は フィールド値を定数と比較するとき (where name = 'hogehoge') フィールド値でJOINするとき (where a.name = b.name) フィールド値の範囲を求めるとき (<,>,between) LIKE句が文字列から始まるとき (where name like 'hoge%') min(),
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く