タグ

programmingとProgrammingに関するnharukiのブックマーク (90)

  • Cygwinでの共有オブジェクト (DLL) の作り方 | Netsphere Laboratories

    2003.11.29新規作成。 Cygwinでは、共有オブジェクト(動的リンクライブラリ;DLL)の拡張子は.dllとなる。ELFフォーマットを使うUNIXでは拡張子は.so であり、また、コンパイルオプションも若干変えないといけない。以下、UNIXと比較しつつ、Cygwinでライブラリを生成する方法を書く。 ファイル名の違い UNIXでは、次のようなファイル名となる。.so の後ろの .1.2.3 でライブラリのインターフェイスのバージョンを表すことになっている。インターフェイスに非互換な変更があった場合には、foo.so.2 として、foo.so.1 と区別できるようにする。 foo.so.1.2.3 Cygwin、というかWindowsでは、次のようなファイル名となる。ファイル名にインターフェイスのバージョンが含まれないため、トラブルが起こることが多い。拡張子が異なるため、UNIXと

  • 私がソフトウェア技術者でもありつづける理由 : 404 Blog Not Found

    2010年09月25日22:45 カテゴリLoveCode 私がソフトウェア技術者でもありつづける理由 一言でいえば、「自分に報い続けたいから」ということになる。 私がソフトウェア技術者をやめた理由 - Rails で行こう!私の職業生活でもっとも多くの時間を注いだのがソフトウェア作りだ。その作業に対して、実際のところ、好きとか嫌いとか一言で割り切れるはずがない。複雑な感情を持っているというのが正直なところだ。 以下に照らし合わせれば、その複雑な感情とやらそのものがお嫌いなのだろう。 私の職業プログラマのとしての最大の欠点は、ソースコードに対して強い美意識を持たずにいられなかったところだろう。生来の生真面目な性格が災いし、私の基準で美しいとはいえないソースコードを敵視しすぎた。 で、何をもって美醜を決めているかといえば、コルモゴロフ複雑性と、そこからの距離をお使いのようだ。 うるう年を計算

    私がソフトウェア技術者でもありつづける理由 : 404 Blog Not Found
  • Rubyコーディング規約

    はじめに 文書は、Rubyによりコーディングを行う際の規約について述べる。 実際のプロジェクトに適用する際には、このコーディング規約をカスタ マイズして用いることを推奨する。 ソースコードの整形 インデント プログラムを読みやすくするため、インデントを適宜行う。インデント 幅は2とする。また、インデントにはスペースのみを使用し、タブは使用 しない。(環境によりタブ幅が異なるため。) 例: if x > 0 if y > 0 puts "x > 0 && y > 0" end end 一行の桁数 一行の桁数は最大80桁までとする。 空行 複数のクラスの区切には空行を挿入する。 例: class Foo ... end class Bar ... end 誤った例: class Foo ... end class Bar ... end また、クラス内の各構成要素の区切にも空行を挿入する。

  • ソースコードで発見した奇妙なコメント集

    ソースコードで発見した奇妙なコメント集コーダー・デベロッパー・プログラマーさん達はそのソースコードにわかりやすい説明書きを「コメント」として残し、後から他の人が修正・編集しやすいようにコードを書いていきます。Stackoverflowの中でなんだそりゃー!というコメントがまとめられていたのでいくつか翻訳してみます! 「クライアントからのムチャぶり迷言集 」に続き久しぶりにネタ系記事です。 プログラマーさん達の名誉のため、先に言っておきますが、全てのプログラマーがこういったコメントを残しているわけではありませんよ!「こんなの書く人いるんだー世の中いろんな人がいるもんだー」くらいに軽く読んでみてください! 自信を失したプログラマー達自虐コメント多数! // ごめん。 /* お願い…動いてくれ… */ // このコードは最低だ。知ってるだろ?俺もわかってんだよ。 // 俺をバカだと呼んでくれ。

    ソースコードで発見した奇妙なコメント集
    nharuki
    nharuki 2010/09/27
    TODOがひどいwwそしてコメントに「あずにゃーん」と書かれていた話を思い出したw
  • lleval - run codes from your browser

    LLEval is now obsoleted by evalpark. As a matter of fact, lleval just calls evalpark in the background. #!/usr/local/bin/perl use strict; use warnings; use YAML; use Data::Dumper; my $n=1; print "DATA[",$n++,"]:$_" for <DATA>; print Dumper(\%ENV); print YAML::Dump(\%INC); use Test::More 'no_plan'; is(1,1); is(1,0); __DATA__ use this instead of STDIN like this. What is This? An AJAX service which r

  • MessagePack: It's like JSON. but fast and small.

    It's like JSON. but fast and small. MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it's faster and smaller. Small integers are encoded into a single byte, and typical short strings require only one extra byte in addition to the strings themselves. Next: MessagePack is supported by over 50 programming languages and environm

  • 呼出規約 - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "呼出規約" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2020年12月) 呼出規約(よびだしきやく)ないし呼出慣例(よびだしかんれい)(英: calling convention)は、コンピュータの命令セットアーキテクチャごとに取り決められるABIの一部で、サブルーチンが呼出される際に従わねばならない制限などの標準である。名前修飾について、データを渡す「実引数」、戻るべきアドレスである「リターンアドレス」、データを戻す「返戻値」などを、スタックなどに対してどのように格納するのか、また各レジスタを、呼び出し側とサブルーチンのどちらの

    nharuki
    nharuki 2010/09/11
    後で読む、SEXYHOOK絡みで #boostjp
  • 私がプログラミング言語に望むこと - Happiness is Mandatory!

    私もプログラミングに触れ始めてから5年ぐらい経ったので,今プログラミング言語について思うことをまとめておこう. 速度 速度は重要だ.とにかく言語を選ぶ段階でいきなり速度のボトルネックが発生するようでは困る.処理するデータが肥大化し続けている現在では,とにもかくにも早く無ければ困るのだ.速度が10倍になれば10時間かかるタスクも1時間で終わる.そうすれば世界は変わるのだ.速度の問題は大概ハードウェアが速くなったので問題は無くなったと言われるが,そんなことは無かったのだ. 文法はある程度どうでもいい プログラミングを始めた当初は「この言語の文法が美しい」だの「この言語の文法は糞」だのと思っていた.しかし,そんなものはどうでもいいのだと気づく年になってしまったのだ.中括弧だろうが,begin-endだろうが,どーでもいいよ…. スタイルの強制はある程度必要 pythonやhaskellのインデン

    私がプログラミング言語に望むこと - Happiness is Mandatory!
    nharuki
    nharuki 2010/08/25
    C++0xは「スタイルの強制」「強力なtypedef」以外は満たしている(…はず)
  • mixi大規模障害について 解明編 - mixi engineer blog

    こんにちは、システム技術部たんぽぽGの森です。 先日のmixi大規模障害の原因となったmemcachedの不具合の詳細な解明ができました。 再来週まで発表を見合わせようと思ったのですが、早くお伝えしたほうがいいと思いましたので公開発表致します。 memcachedとlibevent memcachedはlibeventというライブラリを使用してクライアントからの要求(接続、コマンド送信)を処理しています。 libeventを使用するにはevent_baseという構造体を用います。 main threadはmain_baseを使用します。 static struct event_base *main_base; ... int main (int argc, char **argv) { ... main_base = event_init(); ... /* enter the ev

    mixi大規模障害について 解明編 - mixi engineer blog
  • Meet Dan Benjamin

    Dan Benjamin Dan Benjamin is a technologist with a focus on leadership, public speaking, software development, and podcasting. He is also an inventor credited with multiple patents. In early 2009, Dan became a full-time podcaster with the launch of 5by5, a podcast network often called “NPR for Geeks” by its listeners. 5by5 quickly rose to become one of the top tech-focused pocast networks, drawing

  • 実践 デバッグ技法

    ソフトウェア開発で不可欠なデバッグですが、知識と経験が求められるため熟練プログラマのなかにもデバッグが苦手という開発者は少なくありません。洗練されたデバッガを利用できても、デバッガのどの機能がどの場面で有効かを見極めるのは簡単ではないからです。書では、Linux/Unixプラットフォームでもっとも広く使われているGDB、DDD、Eclipseという3つのツールを取り上げ、各ツールに独自のデバッグテクニックはもちろん、コードに含まれるエラーを見つけ出して修正するプロセスを改善するための総合的な戦略についても解説します。翻訳版ではVisual C++でのデバッグ手法についても加筆しました。 関連ファイル サンプルコード(.zip) 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。

    実践 デバッグ技法
  • mixi大規模障害について その2 - mixi engineer blog

    こんにちは。システム技術部たんぽぽGの森です 補足を追記しました (2010/08/20 15時) 先日のmixi大規模障害についての続報です 今回は小ネタはありません はじめに まず初めにtwitter/blogなどを通じて今回の問題の解析を行っていただいたみなさんに感謝の言葉を捧げたいと思います kzk_moverさん stanakaさん mala(bulkneets)さん llameradaさん (順不同) ありがとうございました 書き漏らした人ごめんなさい memcachedはすごい 今回の件でmemcachedに対して不安感を持たれた方もおられるとお聞きしました 説明不足だったせいで誤解を与えてしまい申し訳ありません きちんと設定および監視を行っていれば通常の使用にはまったく問題はありません 弊社にて -c 30万で起動したmemcachedに対して、先のテストスクリプトに

    mixi大規模障害について その2 - mixi engineer blog
    nharuki
    nharuki 2010/08/20
    大規模Webサイト構築時のmemcached運用のポイント
  • アルゴリズム再入門

    2012-07-16 14:25:12 WEB+DB PRESS総集編[Vol.1~36] | 技術評論社 WEB+DB Press 総集編[Vol.1〜36]に書いた記事『Webエンジニアのための基礎,徹底理解 3章:アルゴリズム再入門 C#編』を公開します。 ちなみにこの記事ではデータ構造についての話を最小限にしています。出てくるデータ構造は配列と二分木だけ。それは、データ構造については別のライターさんが記事を書くことになっていたからです。 ちなみに、書いてみたかった(というか、書いてみたけどやめた)アルゴリズムは、 ハッシュ法 (これはデータ構造の章にあります。すばらしいです) 木の探索 (traversal) 平衡木 (AVLとか) その他の有名なソート (バブルソート、シェルソート、ヒープソート、etc) Skip List (これはどちらかと言うとデータ構造メインな話なのでため

    アルゴリズム再入門
  • Apache Module を作る - C 言語, C++ - namespace kilrey;

    2020-09-01潢政办〔2020〕23号 开火车大满贯的水果机办公室 关于印发潢... 2020-09-01潢政办〔2020〕22号 开火车大满贯的水果机办公室关于印发潢... 2020-09-01潢政办〔2020〕21号 开火车大满贯的水果机办公室关于印发潢... 2020-09-01潢政办〔2020〕20号 开火车大满贯的水果机办公室关于印发潢... 2020-09-01潢政办〔2020〕19号 开火车大满贯的水果机办公室关于印发潢... 2020-09-01潢政办〔2020〕18号 开火车大满贯的水果机办公室关于加强公... 2020-07-162020年开火车大满贯的水果机资金分配情况公告公示(第三次) 2020-06-122020年开火车大满贯的水果机资金分配情况公告公示(第二次) 2020-04-072020年开火车大满贯的水果机资金分配情况公告公示(第一次) 2020-0

  • apache module 開発事始め : DSAS開発者の部屋

    先日は,必要に迫られて Apache 1.3 の mod_access を改造したという話を書きました.その時は単にあるものを改造しただけでしたが,ふと思い立って,一から Apache 2.0 用のモジュールを書いてみました.書く上で色々 Web サイトを探してみたのですが,あまり日語の入門向けの文章が見あたらなかったので,開発する上で分かったこと(と言うほど大したものじゃないですが)をまとめておこうと思います. フェーズには,例えばそのリクエストを受け付けるか拒否するかを決めるフェーズや,リクエストされた URI と実際のディスク上のファイルとの間の対応付けを解決するフェーズ,そしてもちろん実際のレスポンスを生成するフェーズ等があります.hook 関数を挿入するポイントはこれらのフェーズになりますが,もちろんその全てのフェーズのための関数を用意する必要はありません.また個別の設定を施す

    apache module 開発事始め : DSAS開発者の部屋
  • シャイな女性エンジニアが密かに愛の告白をする10の方法:Geekなぺーじ

    シャイで女性エンジニアな貴女! こんな方法を使った愛の告白はいかがでしょうか? 1. ICMP Echo Requestのボディ部分 ICMP Echo Requestのペイロード部分に愛の告白文を挿入して送信してみましょう。 長い文章は1パケットに収まらなくなってしまうので、文章は短く簡潔にまとめましょう。 例えば、「I love you」というメッセージをIPプロトコル番号1番で送信して、彼からのICMP Echo Replyが「I love you too」になっていれば告白成功です。 この方法には注意しなければならない点があります。 「I love you」と書いた文面がそのまま「I love you」と返って来たのを発見してぬか喜びしないようにしましょう。 多くのOSは、ICMPのペイロード部分をそのままコピーして返信します。 そのため、「I love you」と書いて「I lo

    nharuki
    nharuki 2010/08/18
    11. makeターゲットを書いて"make love"
  • ::memolet | programming/tool

    しばら くSourceMonitor を使っていて不満はなかった。最近ソースのエンコードをUTF-8に変えたこと により、SourceMonitorがUTF非対応と判明。 少くともUTF-8対応しているソースコード測定ツールはないか調べてみた。 さすがにLOCに加えて各種メトリクスも測定できるようなものはフリーではな いねぇ。 参考:2006.04.11 Source lines of code - Wikipedia, the free encyclopedia こういうのWikipedia強い。SLOCの説明。フリーなツールも紹介されて いる。 LOC Metrics - Alternative Tools LocMetrics - Source Code Line Counting Toolっていうツールのサイトに他のツールもかな り豊富に紹介されている。

  • 2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来

    PFI社内セミナー 2009年12月10日 20:00-21:00(予定) GPUコンピューティングの現状とスーパーコンピューティングの未来 発表者: 村主 崇行(プリファードインフラストラクチャー 研究開発部門・京都大学大学院 物理学第二教室) セミナー録画URL: http://www.ustream.tv/recorded/2837689 このスライドは、発表後にみなさまからいただいた貴重な意見をもとに改訂した版です。発表時点での版はこちら: http://www.slideshare.net/pfi/20091210-gpu-2735685

    2009/12/10 GPUコンピューティングの現状とスーパーコンピューティングの未来
  • 何を新しいソフトウェア開発者に教えるべきか?それはなぜか?

    (原題: What Should We Teach New Software Developers? Why? ) 産業界のニーズによりよく応えるために計算機科学教育に対して根的な変革が必要です。 Bjarne Stroustrup Communications of the ACM Vol. 53 No. 1, Pages 40-42 10.1145/1629175.1629192 日語訳: 里田 和敏 計算機科学(訳注: Computer Science = CS )はソフトウェアシステム開発の中心になければいけません。そうでなければ、私たちは各個人の感覚や経験則に頼らざるをえず、挙句に性能も劣り信頼性も劣るシステムを不必要に高いコストをかけて開発し保守することになってしまいます。私たちは産業界での実業務の改善を考慮に入れるよう、教育における変革を必要としています。 問題 多くのと

  • 404 Blog Not Found:プログラマーでなくても名前ぐらい覚えておきたいアルゴリズムx10

    2007年11月26日18:15 カテゴリMathLightweight Languages プログラマーでなくても名前ぐらい覚えておきたいアルゴリズムx10 ぎくっ あなたが一番好きなアルゴリズムを教えてください。 また、その理由やどんな点が好きなのかも教えてください。 - 人力検索はてな なぜぎくってしているかというと、実はすでにアルゴリズムの発注を受けているからなのだ。いつまでも伏せておくのもなんなので、ここにえいやっとdiscloseしてしまうことにする。 アルゴリズム大募集! C&R研究所 - トップページ その下書きもかねて、そこでも紹介しないわけに行かないメジャーなアルゴリズムをとりあえず10個紹介しておくことにする。 ユークリッドの互除法(Euclidean algorithm) その昔(数百年ほど前)は「アルゴリズム」といえば、「手順一般」を指すのではなく、この「互除法

    404 Blog Not Found:プログラマーでなくても名前ぐらい覚えておきたいアルゴリズムx10