タグ

programmingとnetaに関するkenkitiiのブックマーク (13)

  • ソースコード履歴をifdefで管理してるとこもあったりする

    Aug 19, 2012 以前、こんな記事を読んでふと思い出したのでネタにします。 僕が昔携わってたプロジェクトでも興味深い管理がされていました。それはC/C++の#ifdefを用いたバージョン管理です。 正確には、全てのコミット単位で#ifdefを用いていたわけではなくて機能のリリース単位で#ifdefを使った管理をしていたのですが、ちょっと面白い話なので説明します。 #ifdef,#else,#endifってご存知でしょうか?C/C++を使ったことない人は知らないと思うので簡単に概要だけ説明すると #ifdef FLAG int func() { // ... } #endif こんな感じのコードが書かれていると#ifdefから#endifまでの間はFLAGが定義されている(#define FLAG)場合のみコンパイルされるコードになります。その他詳しい仕様はWEBで。 さて、僕が携わ

  • 竹内関数で音楽生成 - aike’s blog

    Lisperの人ならみんな知ってる竹内関数(たらいまわし関数)という関数があります。 定義としてはこんな感じ。 そのシンプルな定義からは想像もつかないほど複雑で膨大な再帰呼び出しがおこなわれるとても興味深い関数です。たとえば引数にTarai(10,5,0)を与えると343,073回も再帰呼び出しされたりします。 この関数呼び出しの引数がどのように変化するか知りたくてプログラムを書いて調べてみたところ、Tarai(10,5,0)の場合は3つの引数がそれぞれ0〜10(xは-1〜10)の間で少しずつ変化するなかで、2つの値を固定してひとつの値が下降していくような挙動があったりして、なんだか音楽の3和音のコード進行を思わせるような動き方です。 そういうことなら、ということで実際に音にして聴いてみました。Tarai関数が呼ばれるたびに引数のx、y、zを、0=ミ、1=ファ、2=ソ、……、のように音に割

    竹内関数で音楽生成 - aike’s blog
  • 顧客が本当に必要だったものリンク集 - 一分一秒真剣勝負!

    ITプロジェクトの実態とは!」のパロディが流行っているようですね。というわけでリンク集でも作ろうかと思いました。ここに掲載されていないものがあればコメントで教えていただけるとありがたいです。 ガンダムゲーム当に必要だったもの シンセサイザー編 アルファブロガー編 / 出会い系サイト編 連載マンガ編 Mozilla編 画像:顧客が当に必要だったもの:グラビアver

    kenkitii
    kenkitii 2010/02/26
    この画像を探しててみつかんなかったのでブクマ
  • アポロ11号のソースコード - Radium Software

    Google Code Blog - Apollo 11 mission's 40th Anniversary: One large step for open source code... アポロ11号の月面着陸から40周年ということで,最近やたらとアポロ計画関連の話題を見かける。そんな中,アポロ計画にちなんだ話題として Google Code Blog に投稿されたのが上のエントリー。 Google Code 上で公開されている Virtual AGC and AGS プロジェクトの中に, NASA のハードコピーから転記された物の AGC (アポロ誘導コンピュータ)のソースコードがありますよ……とのこと。 このソースコードには,オリジナルのアセンブリコードに記されていたラベルやコメントまでしっかり転記されている。それらの記述に目を通していると,そのコードを書いた人の考えや気持ちが伝

    アポロ11号のソースコード - Radium Software
  • yak shaving で人生の問題の80%が説明できる問題 - bkブログ

    yak shaving で人生の問題の80%が説明できる問題 つい最近、 yak shaving (ヤクの毛を刈る)、という言葉を知りました (原典)。これは「一見無関係に見えるけど、真の問題を解くのに必要な問題を解くのに必要な(これが何段階も続く)問題を解くのに必要な活動」という意味の言葉です。 yak shaving は、ようするに「ある問題を解こうと思ったら別の問題が出てきて、それを解こうと思ったらさらに別の問題が出てきて…」ということが延々と続く状況を表しています。ちなみに、ヤクとは毛が長い、牛の一種です。 yak shaving は、以前に覚えた bikeshed と同じくらい便利そうな表現です。というもの、プログラムを書いていると yak shaving 的な状況がすぐに発生するためです。 たとえば、「Amazon のほしい物リストを CSV 形式に変換して Excel で読み

  • ウノウラボ Unoh Labs: gdbの使い方

    今年の2月にマカーになったbokkoです。どうも僕の使っているフォントがほかの人には見づらいらしく、「そのフォントはねぇよw」と言われたり、外付けのキーボードを使っているせいか、「MacBookの意味なし!」と社内で言われてたりしています。 今日はgdbのお話です。gdbは非常に広く使われているデバッガで、特にC、C++のプログラムをデバッグするのによく使われています。 デバッガの使い方 プログラムをデバッグする際、例えば以下の方法が挙げられます。 1. ソースコードを読む 2. ソースコードに出力関数を仕込む(例えばprintf) 3. ソースコードを書き換えて実行してみる これで十分な場合もありますが、そうでない場合もあります。これらの方法ではプログラムを実行している最中にこちらからソースコードレベルでのアクションを起こすことが難しいので、例えば、プログラムをある時点で止めて変数の

    kenkitii
    kenkitii 2008/04/05
    そのフォントはないとおもった
  • プログラ魔法学に関する考察 - 西尾泰和のはてなダイアリー

    さっきの for i in range(1,101):print"FizzBuzz"[i*i%3*4:8--i**4%5]or iとか明らかに禍々しいオーラをまとっている。闇の眷属に間違いない。 こういう一見この世の物理法則に従っていないような生き物を生み出すのは「召還魔法」だと思う。 こういうのはネタとして魔界のものを召還して見せ物にするくらいなら問題ないのだけど、普段の作業や仕事のコード、特に他人とシェアするコードで必要もなく闇の力を利用すると「黒魔術使い」「ダークサイドに堕ちたな」と言われるので要注意。生半可な気持ちで禁呪を使うと高い代償を支払う羽目になる。 IEを華麗に撃墜する一行 - ぼくはまちちゃん!(Hatena)とかは攻撃魔法。たぶん赤魔術。対象に対する深い理解が必要なのでほんの一握りの人しか新しい呪文を開発することができないが、行使するのは作り出すより簡単なので多くのスク

    プログラ魔法学に関する考察 - 西尾泰和のはてなダイアリー
  • フィボナッチ数列を計算するデバイスドライバ - naoyaのはてなダイアリー

    Amazon から プログラミング言語Erlang入門 が届きました。 どんな構成だろうね、と会社で同僚数人とわいわいやっていたら、「フィボナッチ数列を計算するサーバー」という例があって、みんなのツボに入りました。Erlang の並列計算処理能力とネットワークプログラミングのしやすさを示すという上で良い例だと思うのですが、「フィボナッチ数列を計算する」というのと「ネットワークサーバーを書く」、という二つのテーマの不思議なギャップが面白いのでしょう。 そういえば関数型言語が得意な id:maoe は、はてなの採用面接の際に、はてなのボーナス計算を計算するシステムを作ってきたのですが、なぜかクライアント/サーバシステム、ネットワークサーバーを Haskell で、クライアントを Scheme で書き、プロトコルが S 式という実装をみんなの前で披露して、周囲の笑いを誘っていました。 ちょっとし

    フィボナッチ数列を計算するデバイスドライバ - naoyaのはてなダイアリー
  • The Hacker FAQ 日本語訳 管理職のためのハッカーFAQ

    以下の文章は、Peter Seebach による The Hacker FAQ の日語訳である(10月30日:バージョン 0.05 改版に追従)。 「Hacker FAQ」と題されているが、ハッカーワナビーのための FAQ ではなく、飽くまでハッカーの習性が理解できない管理職を想定されたものであり(その旨を邦題に付け加えた)、FAQ というよりも殆どお悩み相談的内容になっているところに、洋の東西を問わず管理職の悲哀を感じさせる。 また、同じ著者による文の続編となる The Manager FAQ(日語訳:ハッカーのための管理職 FAQ)や、長松昭氏による、文書のシニカルかつ非常に愉快なパロディである、ハッカーのための管理職 FAQ がありますのでそちらもご一読ください。 翻訳文書については、以下の方々にご教示を頂きました。ありがとうございました。 Shiro Kawai さん:全

  • コンピュータ関連名言(迷言)集:Geekなぺーじ

    コンピュータ関連名言(格言?)を集めてみました。 「computer quotes」や「IT quotes」などの単語で検索してみましたが、そこらじゅうに同じようなサイトがあり、どれがオリジナルだかわかりませんでした。。。 いくつか楽しいと思ったのをピックアップしてみました。 他にも色々あったので、興味のある方は検索をしてみて下さい。

  • Volt Brickman.com - Origin of Programming Language Names

  • LLXX - MoriMoin

    こんなLLはXXだ 高橋メソッド版 言語仕様 中括弧とインデント両方必須 for x in lst{ hoge(x) --> Syntax Error 全部の変数の型を明示 Integer x [Integer] lst Integer -> Integer hoge for x in lst: hoge(x) よめない(whitespace 全部大文字 FOR X IN LST: HOGE(X) 制御がgotoとifだけ max = len(lst) i = 0 loop: if i > max: goto eloop hoge(lst[i]) i += 1 goto loop eloop: ifが後置だけ hoge(x) if x; ASCIIにない記号が入ってる π=3.1415 ユーザーが俺だけ ( と { と [ が同じ意味だ dict_user{func_h

  • 「史上最悪のソフトウェアバグ」ワースト10を紹介(上) | WIRED VISION

    「史上最悪のソフトウェアバグ」ワースト10を紹介(上) 2005年11月15日 コメント: トラックバック (0) Simson Garfinkel 2005年11月15日 トヨタ自動車は先月、何もしないのに警告灯が点灯し、ガソリンエンジンが突然停止するとの報告を受け、ハイブリッド車『プリウス』約16万台を無償修理すると発表した。しかし、今回のプリウスの問題は、これまでの大規模な自動車のリコールと違い、ハードウェアが原因ではなかった――ハイテクを駆使したこのスマートカーに組み込まれたプログラムのバグが原因だった。 今回の問題により、プリウスはバグを抱えるコンピューターの仲間入りをした。史上初のコンピューター・バグは1945年、『ハーバード・マーク2』のFパネルの70番リレーに虫が挟まった時にまでさかのぼる。乗算器と加算器のテスト中、異常に気づいた技術者が、この部分に蛾が挟まっているのを見つ

    kenkitii
    kenkitii 2005/11/16
    1945年、『ハーバード・マーク2』のFパネルの70番リレーに虫が挟まった
  • 1