タグ

programmingに関するfimbulのブックマーク (43)

  • mainを一度も呼ばないばかりか蹂躙する - memologue

    shinhさんの「ふとイヤなコードを思いつきました」にインスパイヤされてみました。 % cat iyana.c #include <stdio.h> #include <stdlib.h> int main; __attribute__((constructor, destructor)) static void x() { if (main) puts("world!"); else exit(main = puts("hello")); } % gcc -Wall iyana.c iyana.c:4: warning: ‘main’ is usually a function % ./a.out hello world!意味はありません。っていうかこの警告ははじめて見たわ。教えてくれなくても存じていましてよ。 (追記) shinhさんの8/29の日記にさらに凄いのが。 トラックバックし

    mainを一度も呼ばないばかりか蹂躙する - memologue
  • 2006-08-09

    今言えない子は、後で先生にこっそり打ち明けなさい。 http://d.hatena.ne.jp/w_o/20060808#p2 を見てて、うわーすばらしーと思いつつも、疑問点が1つ。なんで heap に置いたコードが実行できるんだろうなー、と。まず、トランポリンが入った場合に、スタックに実行属性つけてるのはきっと GCC だろうと思ってました。きっと自動的にスタック全部なり一部にきっと実行属性つけるんだ。 i@u ~/test> cat inner_func.c #include <stdio.h> __attribute__((constructor)) void dump_maps() { FILE* fp; int c; fp = fopen("/proc/self/maps", "rb"); while ((c = fgetc(fp)) != EOF) { putchar(c);

    2006-08-09
  • J (2006-08-08)堕落したCプログラマのレベル10

    「偽札対応済み」って書いてある両替機。 川口市立中央図書館屋の上にある図書館。に行ってきた。特に何もないけど。あと、マイコンショップ川口つぶれてた。 ある程度能力を持ってるなら、成果を残せるか残せないかは自信を持ってるか持ってないかの違いだけかもしれないというような話。 最近思うのだけど、使えない奴(例えば、僕のような)の特徴として、「どうせ自分が何をどうやっても、何もどうにもならない」的な思考があると思う。 例えば、上の一行で言うと、「使えない奴(例えば僕」とか、そういったような思考。 こういった思考は、いったん根付いてしまうと、循環するので、なかなかやめられない。「どうせ自分は何もできないんだ→何もできないから何もやらない→何も成果を残せない→どうせ自分は何もできないんだ」とかいった感じで。 矯正しようと思っても、「いや、こういう性格だから、矯正は無理だし。」と、いう思考になってし

    J (2006-08-08)堕落したCプログラマのレベル10
  • 分割コンパイルとリンケージ

    | 分割コンパイルと翻訳単位 | extern記憶クラス指定子 | リンケージ | オブジェクトモジュールとライブラリ | 演習問題 | [付録]nmコマンド | 分割コンパイルと翻訳単位 だんだん複雑なプログラムを開発するようになると ソーステキストが長くなり,一つのソースファイルで作成していると 全体を見通すのが難しくなってきます. またほんの一部だけを修正をしたときにも 全体をコンパイルし直さなければならないので, コンパイルに時間がかかるようになります. よって,プログラムをいくつかの部分に分けて 別々に開発したいという要求が自然に起こってきます. このような考えからプログラミング言語には 一つのプログラムを複数に分割できる機能が提供されることが多く, そのような各部分のことを一般にはモジュールと呼びます. C言語ではモジュールは翻訳単位と呼ばれ, おおまかには一つのソースファイル

  • 専門知識の仕入れ方 - Preferred Networks Research & Development

    今日は,普段どのようにして専門知識を仕入れているかについて書いてみようと思います.特に自分が得意でない分野を知りたいと思った時に,どうするかに注目したいと思います.自分の専門の場合は,いくらでも時間を注ぐことが出来るので,世界中のリソースを全て探し当てて勉強すれば良いのですが,ちょっと興味が有るぐらいではそこまでやる時間は取れません.なので出来るだけ効率的に分かった気になるのが目標です. まず,論文を直接読むのはあまり効率的では無いと思います.論文は広い分野の中の或る問題に対して一つの解決方法を書いているだけで,分野全体を俯瞰することは目指していません.論文だけ読んで分野全体を理解するには,最低50ぐらい読む必要が有ると思います.

    専門知識の仕入れ方 - Preferred Networks Research & Development
  • Entangled Space

    説明 私の活動の内電子化されているもので、 人様の役にひょっとしたらたてそうなものを やみくもに陳列している場所です。 適当にくっつけていっているのでもう何が何やら。 更新情報 更新履歴兼雑記 (はてな) / 更新情報だけ / 古い更新履歴兼雑記 作ったもの 私の作っているものについて 弾避け系 弾除けゲーム「白い弾幕くん」 シンプルな弾避け練習ゲームです。 BulletML を弾幕記述言語として採用しているので、 そこそこ手軽に自分の避けたい弾幕を記述できます。 以下のシューティングはこの技術を利用しています。 psyno 妙に気合いの入ったジャンル不明ゲー。 Bullet Philharmonic Orchestra mp3 とかいろんなフォーマットの音楽ファイルに合わせて弾幕を 生成する弾避けです。 斑鳩シミュレーター「業平」 (ネイティブ版) 斑鳩シミュレーターです。 ABAさん

  • What's Wrong with the For Loop

    Closures in Java are a hot topic of late. A few really smart people are drafting a proposal to add closures to a future version of the language. However, the proposed syntax and the linguistic addition are getting a lot of push back from many Java programmers. Today, Elliotte Rusty Harold posted his doubts about the merits of closures in Java. Specifically, he asks "Why Hate the for Loop?": I don’

  • カスタムメモリマネージャと高速なメモリアロケータについて

    2. 自己紹介 ハンドルネーム alwei Twitter ID @aizen76 alweiもしくはaizenのどちらかを使っています 流浪のゲームプログラマ Wii、DS、PSP、PS3、3DSゲームとか作ってた 2Dゲーム好きなのに、実は3Dゲームしか作ったことがない 最近触手軍団に仲間入りして、オンラインゲームを作り始めました アジャイルとかTDDとか勉強中

    カスタムメモリマネージャと高速なメモリアロケータについて
  • 本の虫: 邪悪なC形式のキャストにしかできないこと

    注意:邪悪で汚らわしいC形式のキャストは、いやしくもC++プログラマたる者は、使うべからず C++では、玉虫色のC形式のキャストの機能を、三つに分割した。static_cast、reinterpret_cast、const_castである。しかし、この三種のキャストでは、C形式のキャストを完全に代替できないという声をよく聞く。曰く、「どうしても書けないキャストがある」と。 それはよく聞く話だが、では実際にどのようなキャストなのかということは、誰も審らかにしない。誰も知らないキャストであれば、特に使えなくても問題ないはずだ。ただし、「C形式のキャストならばできるキャストが、新しいキャストを組み合わせてもできない。どんなキャストかは知らないが、とにかくできないと聞いている。故に新しいキャストはクソだ」などという論調で、C++の改良されたキャストを使わぬC畑の外道がしゃしゃり出てくるのも困る。そ

  • ソフトウェアの基礎(beta) — ソフトウェアの基礎 1.0.2 documentation

    ソフトウェアの基礎(beta)¶ ドキュメントは実験中のものです。 安定板は http://proofcafe.org/sf/ を参照してください。 epub版: http://proofcafe.org/sf-beta/software_foundation_1.0.2.epub mobi版: http://proofcafe.org/sf-beta/software_foundation_1.0.2.mobi Contents:

  • MAYAH - MAYAH

    先日、某VC投資先の方々に対して、「ソフトウェアエンジニアの採用時にコーディングテストをやりたいがどうしたら良いか?」ということについて語ってきたので、こちらにもエッセンスをまとめたいと思います。 コーディングテストの目的 なぜ我々はコーディングテストをやるのでしょうか? もちろん、第一目的はソフトウェアエンジニアの採用候補者のスキルを見極めるためです。 過去に、経歴も良さそう、技術的な議論もスムーズにできる、なのにコードが書けない候補者に、私は何度か出会っています。「コードが書けない」のレベルは、(ある程度易しい)論理をプログラムに翻訳できず、まともな if 文が書けないというレベルを言っています。熟練者でもド・モルガンの法則をうっかり間違えるぐらいはあると思いますが、そういう話ではありません。コードが書けない候補者は、そもそも条件が書き下せません。このような候補者を雇ってはいけません。

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • http://www.amazon.co.jp/%E7%8F%A0%E7%8E%89%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E2%80%95%E6%9C%AC%E8%B3%AA%E3%82%92%E8%A6%8B%E6%8A%9C%E3%81%84%E3%81%9F%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%81%A8%E3%83

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • uguu...

    o m o i k a n e s e r i k a g a l l e r y 2023-03-07 omoikane@uguu.org

  • ダイクストラ法(最短経路問題)

    ダイクストラ法 (Dijkstra's Algorithm) は最短経路問題を効率的に解くグラフ理論におけるアルゴリズムです。 スタートノードからゴールノードまでの最短距離とその経路を求めることができます。 アルゴリズム 以下のグラフを例にダイクストラのアルゴリズムを解説します。 円がノード,線がエッジで,sがスタートノード,gがゴールノードを表しています。 エッジの近くに書かれている数字はそのエッジを通るのに必要なコスト(たいてい距離または時間)です。 ここではエッジに向きが存在しない(=どちらからでも通れる)無向グラフだとして扱っていますが, ダイクストラ法の場合はそれほど無向グラフと有向グラフを区別して考える必要はありません。 ダイクストラ法はDP(動的計画法)的なアルゴリズムです。 つまり,「手近で明らかなことから順次確定していき,その確定した情報をもとにさらに遠くまで確定していく

  • そろそろvolatileについて一言いっておくか - yamasaのネタ帳

    先月、CBUGとわんくまの勉強会にて、アトミック変数とかメモリバリアとかvolatileとかについて話をしてきました。 ちょっと遅くなりましたが、そのときの講演資料を一つにまとめたので、ここで公開しておきます。あと、補足記事も追加していってます。 volatileの実装の詳細について C++0xのメモリバリアについて(その1) C++0xのメモリバリアについて(その2) Double-Checked Lockingについて そろそろvolatileについて一言いっておくかView more presentations or Upload your own.

    そろそろvolatileについて一言いっておくか - yamasaのネタ帳
  • Google Sites: Sign-in

    Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode

  • naoyaのはてなダイアリー

    ときどき、たまたま自分がそのとき考えていたことについてそれを補強するような材料が偶然たくさん集まってくる、なんてことがあります。そんな出来事があったので、ちょっとブログを書いてみようかなと。 以前に HBFav を作ったときこんなことを書きました。 Mark Zuckerberg は、いずれみんな、ニュースは友人知人経由で知ることになるだろうと言っていました。自分もそうなるだろうと思います。 4年ぐらいが経ちましたが、その思いは以前よりも増して確信めいたものになってきています。 ところで先日、Twitter の iOS アプリに「ニュース」という機能が追加されました。人によっては出てないそうなのでまだテスト中か、もしくは既に削除されているのかもしれないですが。 この機能についての自分の感想は以下のようなものでした。 もうすこし補足します*1。 Facebook や Twitter のような

    naoyaのはてなダイアリー
  • ラムダ計算基礎文法最速マスター - 貳佰伍拾陸夜日記

    ラムダ計算は, 多くのプログラミング言語, とくに関数型言語の原形になっています. ラムダ計算について理解しておくことは, 多くのプログラミング言語の習得に役立つでしょう. ラムダ計算はチューリング完全で, 計算能力としてはふつうのプログラミング言語と同じです. ラムダ計算で計算を書く訓練をしておくことは, 任意の計算を関数のみを使って(他の制御構文を用いずに)書くときに役立ちます. ふつうに書いたら煩雑な処理を, 関数型言語のやり方で書くとすっきりすることが多々あり, コードを自由自在に書くためには必須の考え方と言えるでしょう. 項 ラムダ計算の式を項(term)と言います. 項は変数, 抽象, 適用のいずれかです. 変数 変数(variable)はふつう1文字で書きます. 変数には関数内の束縛変数(bound variable)か自由変数(free variable)かという区別があり

    ラムダ計算基礎文法最速マスター - 貳佰伍拾陸夜日記