タグ

programmingとProgrammingに関するtztのブックマーク (522)

  • のんびりHaskell - @IT

    プログラムの実行はどのようにして行われるのか、Linuxカーネルのコードから探る (2017/7/20) C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。最終回は、Linuxカーネルの中では、プログラムの起動時にはどのような処理が行われているのかを探る エンジニアならC言語プログラムの終わりに呼び出されるexit()の中身分かってますよね? (2017/7/13) C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。今回は、プログラムの終わりに呼び出されるexit()の中身を探る VBAにおけるFileDial

  • 各種チートシートまとめ - goinger的日記

    なんとなく便利そうなのを探してまとめてみた。 リンク切れおそろしい プログラミング関連 C, CPP, C# Cheat Sheets C, CPP, C#のチートシートがたくさんある 249 Prototype Dissected prototype.js チートシート 347 Haskell Cheatsheet Haskell 130 command line ruby cheat sheet ruby commandline チートシート 680 ruby-on-rails-cheat-sheet/ Railsのチートシート 701 google関連 google guide 検索オプションの説明とか 1358 Google Guide Quick Reference Google検索ガイド 9657 google help: cheat sheet google家から提供 40

    各種チートシートまとめ - goinger的日記
  • (use gauche); 書評 - プログラミングGauche : 404 Blog Not Found

    2008年03月14日00:00 カテゴリ書評/画評/品評Lightweight Languages (use gauche); 書評 - プログラミングGauche ピンポーン。ベッドから飛び出してインターフォンへ「はい?」 プログラミングGauche Kahuaプロジェクト / 川合史朗監 初出2008.03.13; 販売開始まで更新予定 「SWQ便です」「むぁ、ふぁーい」 ピンポンピンポーン。およ、もう玄関だ。「今行きまーす」 「お荷物こちらになりまーす」ん、また献か、え、オライリー?オライリー!もしや! ベリベリ「あ、やっぱり!!」「すみません、先にサインを」 失礼しました。というわけでオライリー矢野様より献御礼。 書「プログラミングGauche」は、文字通りGaucheプログラミングの、でGaucheとは何かというと、Practical、つまり実践的なschemeの実装。

    (use gauche); 書評 - プログラミングGauche : 404 Blog Not Found
  • LLからCL? - 書評 - 実践Common Lisp : 404 Blog Not Found

    2008年07月28日10:00 カテゴリ書評/画評/品評Lightweight Languages LLからCL? - 書評 - 実践Common Lisp 共訳者の佐野様より献御礼。 実践Common Lisp Peter Seibel 佐野匡俊 / 水丸淳 / 園城雅之 / 金子祐介訳 [原著:Practical Common Lisp] なんでこういう Common Lisp がなかったかという、さまざまな意味で21世紀的な Lisp。LL、特に「P言語」の読者は必読。CLに走るせよ、LLに留まるにせよ。 書「実践Common Lisp」は、英文学科(と便宜的に訳すが、ずばりEnglish)を卒業してジャーナリストとなった後、PerlプログラマーJavaプログラマーを経てCommon Lispプログラマーとなった異色の「第二世代 Common Lisper」である著者が、

    LLからCL? - 書評 - 実践Common Lisp : 404 Blog Not Found
  • 聖書降臨 - 書評 - プログラミング言語Ruby : 404 Blog Not Found

    2009年01月25日00:00 カテゴリ書評/画評/品評Lightweight Languages 聖書降臨 - 書評 - プログラミング言語Ruby オライリー矢野様より献御礼。 プログラミング言語Ruby まつもとゆきひろ / David Flanagan 卜部昌平監訳 / 長尾高弘訳 [原著:The Ruby Programming Language] 初出:2009.01.22; 販売開始まで更新 やっとキタ━━━━(゜∀゜)━━━━ッ!! 長らくバイブル不在だったRubyに。 ただし、ちょっとした注意点がある。ヒント: ラクダは「Programming Perl」 ヘビは「Programming Python」 で、おそらく今後「ハチドリ」と呼ばれるであろう書は「The Ruby Programming Language」 書「プログラミング言語Ruby」は、プログ

    聖書降臨 - 書評 - プログラミング言語Ruby : 404 Blog Not Found
  • Haskell for C Programmers

    Haskell Tutorial for C Programmers - Introduction Written by Eric Etheridge last updated January 3, 2007 Table of Contents Each major section has its own page. Introduction Abstract Downloads Purpose and Other Online References Relationship to Our Other Tutorials Preface and Style Notes Section I: What the Heck is Going On? Part I: Haskell's Oddity Part II: Input and Output Part III: Very Bas

  • はやいTCPサーバを書く際に忘れがちなこと - kazuhoのメモ置き場

    はやいTCPサーバの書き方 - nyaxtのPC作業ログ で id:nyaxt さんが書いてらっしゃるように、 epoll や kqueue を使う TCP_NODELAY, TCP_DEFER_ACCEPT *1 等を活用する TCP パケットを意識する I/O システムコールの回数を最小にする sendfile といったあたりは、確実にやるべきことだと思います。一方で、TCP 関連以外のオーバーヘッドが実は結構あって、 接続のタイムアウト処理 ログの出力 メモリの確保や解放をやらない あたりにも気を配る必要がある、と思います。 接続のタイムアウト処理については、以前 Kazuho@Cybozu Labs: 高速なCometサーバを書いてみた件 に書いたように、ビットアレイのリングバッファを使うのがベストだと思います。 ログの出力について、複数行を1回のシステムコールにまとめてもいいかど

    はやいTCPサーバを書く際に忘れがちなこと - kazuhoのメモ置き場
  • はやいTCPサーバの書き方 - nyaxtのPC作業ログ

    cagra高速化にあたってのノウハウを一部公開してみます。また明日校正/更新します。つっこみ待ちです。 select(2)の代わりにepoll_wait(2), kqueue, /dev/epoll等を使う 他に山ほど解説ページがあるので略 大量のディスクリプタを処理するようなサーバの場合、多少効果があるかもしれません。しかし、クライアント数が少ない場合、劇的な性能の向上は見込めないとおもいます。クライアント数が多い場合は、1セッション1スレッドなモデルではOS側のタスクスイッチングのオーバーヘッドが効いてくることも多いです。クライアント数を増やすには複数のセッションを1スレッドで処理できるようにすると良いです。実装にあたっては、non-blocking ioを活用すると効果的です。 TCP_NODELAYを設定する Nagleアルゴリズムをオフにします。多少応答性が良くなります。 これっ

    はやいTCPサーバの書き方 - nyaxtのPC作業ログ
  • Super Technique 講座~longjmpと例外

    プログラムの流れを制御する手段として、いわゆる「構造化構文(for とか if とか)」、悪名高い「goto 文」などがあるのは周知のことだが、かなり特殊なものとして、「setjmp, longjmp」による「非ローカル分岐」と呼ばれるものがある。この「非ローカル分岐」は「非ローカル」と言うだけあって、ある関数の中から、別な関数に制御を移すことができたりする。まあ、そのために乱用すべきではなく、注意して使わなくてはならないライブラリ関数なのだが、実はこれは JavaC++ で言語の上で実装されている「例外」の基礎となるものである。だから、まずこの標準ライブラリ関数「setjmp, longjmp」について解説しよう。 → Java 講座の「例外」 setjmp, longjmp とは どうやって実現してるの? setjmp/longjmp の利用例~インタプリタ 補追1:setjmp

    tzt
    tzt 2008/12/19
    setjmp/longjmpで例外チックなことをやる方法。
  • Super Technique 講座~ungetcってどう使う?

    ungetc ってどう使う? stdio.h には、あまり使わない関数も多いが、特にこの ungetc(3) は、特別なテクニックと共に使われるものなので、知らないプログラマは絶対知らないが、使い方を知っているプログラマにとっては、非常に汎用的に使える関数(というかアイデア)なのである。筆者はインタプリタが得意なので、この ungetc(3) は必須アイテムの一つなのである。というわけで、ungetc(3) の使い方を解説しよう。 とはいえ、この ungetch.htm は結構気合いを入れて書いたにも関わらず、アクセスが少ない! 重要なテクニックなんだけど、一般認知が低いな! これがクヤシイので、ここにBNFのちゃんとした解説を入れることにする。前半もちゃんと読むのだぞ! 字句の先読み 単純な数式処理 自然数式処理 lex と yacc 字句の先読み ungetc(3) は文字列をトークン

  • Native Clientの仕組みはどうなっているのか? - やねうらお−よっちゃんイカはしばらく買わずにiPhoneだけに注力する男

    Googleが、Webブラウザ上でネイティブバイナリコードを実行する「Native Client」を公開した。 Native Client http://code.google.com/p/nativeclient/ Google Earth,Quakeなどがすでに動いているようだ。 これはすごい!ブラウザ上でX86バイナリを動かす「Native Client」 http://www.moongift.jp/2008/12/native_client/ サンドボックスで安全性確保、オーバーヘッド5% ブラウザでx86バイナリ実行、グーグルが新技術 http://www.atmarkit.co.jp/news/200812/09/nacl.html あと、サンプルのlife.ccにSDL_surfaceと書いてあるのでSDLの描画まわりが既に動いているのだろうから、今後、たくさんのアプリがN

    Native Clientの仕組みはどうなっているのか? - やねうらお−よっちゃんイカはしばらく買わずにiPhoneだけに注力する男
  • GC - GCアルゴリズム詳細解説 - livedoor Wiki(ウィキ)

    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)

    GC - GCアルゴリズム詳細解説 - livedoor Wiki(ウィキ)
  • ブラウザで X86 のマシン語を動かす! Google 謹製 Native Client をさっそく試してみる - IT戦記

    はじめに Google から、非常に面白そうなソフトウェアがリリースされました! その名も Native Client なんとブラウザ上で X86 のバイナリを動かしてしまうそうです。 これはすごい! さっそく試してみたいと思います。その過程を逐次更新していきます。 自分が試したときの環境 自分が試す環境は、以下の通りです。 Mac OS X Xcode の gcc (version 4.0.1 (Apple Inc. build 5465)) python 2.5.1 準備 では、さっそく準備をしましょう。 http://nativeclient.googlecode.com/svn/trunk/nacl/googleclient/native_client/documentation/getting_started.html を参考にやってみます。 環境一式をダウンロード まずは、以下

    ブラウザで X86 のマシン語を動かす! Google 謹製 Native Client をさっそく試してみる - IT戦記
  • DejaVuフォントで日本語を使いたい! / LiosK-free Blog

    2008-12-02 カテゴリ: その他のプログラミング タグ: Tips Vim フォント FontForge Linux プログラミングに使える良いフォントを探していたら、DejaVuフォントというものを見つけた。確かにすごくきれいだし見やすい。 で、VimでDejaVu Sans Monoを使おうと思ったんだけど、Vimでは欧文フォントと和文フォントを別々に指定することができないから、DejaVu Sans Monoを指定してしまうと日語が表示できなくなってしまう。だから、いろいろと試行錯誤してみた。まだ途中だけどとりあえずメモ。 方法1 Font Linkingを使う 方法2 FontForgeで合成する 方法1 Font Linkingを使う Font LinkingっていうのはWindowsの機能で、任意のフォントを組み合わせて使えるようになる機能らしい。これを使ってDeja

  • OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん

    OMakeすごい。OMakeはマジですごい。 OMakeはGNU makeの代替品みたいなものなんだけど、正直なところこのツールの強力さはGNU makeと比べると失礼なくらいすごい。これのおかげで、「コード修正→ビルド→デバッグ→コード修正→・・・」のループの、ビルドにあたる作業がほぼ消え去った。 ファイルの依存関係の解析がとにかくすごい。よくあるユースケースなんかの場合、最小限の手間でほぼ完璧に依存関係を網羅して、よしなにビルドしてくれる。 とりあえず、はやみずが実際に使ってみたケースを例にとってそのすごさの一端を紹介しようと思う。 case study 論より証拠ということで、自分が OMake を試しにつかってみたケースを紹介する。C言語でスタティックライブラリを作っていて、それに加えて簡単なテストプログラムを書いている。 /include/ 以下にヘッダファイルが全部ある /sr

    OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん
  • TCP/IP エラー処理 connect 編

    connect(2) のエラー TCP において connect(2) 呼出し時に発生する可能性のあるエラーは以下の通りです。 タイムアウト RST 受信 EHOSTUNREACH また ENETUNREACH シグナル受信 その他 まず、connect(2) 時の正常な流れをしっかり覚えておいてください。 (connect(2) を呼んで) SYN を送る SYN+ACK が返ってくる (ここで connect(2) から戻る) ACK を送る タイムアウト もし仮に、SYN を送ったものの、相手側から SYN+ACK が返ってこない場合は、 (ローカルの TCP スタックが) しつこく SYN を再送します。何度 SYN を送っても SYN+ACK が返ってこない場合はあきらめてタイムアウトします。 「SYN+ACK が返ってこない」というのは、例えば以下のようなケースが考えられます。

  • Program Library HOWTO

    語訳:2004 年 9 月 17 日 (原文:2003 年 4 月 28 日、バージョン 1.20) この HOWTO はプログラマ向けであり、Linux におけるプログラムライブラリの作成方法と使用方法を説明するものです。 「静的ライブラリ (static library)」、「共有ライブラリ (shared library)」、「動的ライブラリ (dynamically loaded library)」を対象とします。 (訳注:この訳文では、「dynamically loaded library」のことを「動的ライブラリ」と呼ぶことにします。 世の中では、shared library のことを指して動的ライブラリと表現する例もありますが、それとは異なりますので注意してください。) Table of Contents1. はじめに2. 静的ライブラリ3. 共有ライブラリ3.1. 約

  • プログラミング向けフォント32選 [K'conf]

    Monaco のリンク先を、フォントファイルから http://www.gringod.com/2006/11/01/new-version-of-monaco-font/ に変えられたようですが… リンク先に “I’m not sure how the new version differs but I’m told its from a new Mac Book Pro.” と書かれているとおり、そこで配布されているフォントMac から取り出したものです。 フォントファイルはプログラムとみすことができ、その場合これは著作権による保護の対象となります。また、Mac から取りだしたフォントファイルを配布するという行為は、Mac OS X のソフトウェア使用許諾契約に違反しています。 というわけで、Monaco の配布記事にリンクするのはいろいろとマズイんではないかと思うわけですが、いか

    プログラミング向けフォント32選 [K'conf]
  • Dehydra - Backnumbers: Steps to Phantasien

    Mozilla を大書き換えする Mozilla2 プロジェクトの目標設定はえらく野心的で, 2004 年から話があるのに当分終わりそうにない. 傍目にそりゃ無理だろという目標も多い. XPCOMGC なんていかにも無謀だ. 参照カウントをやめて JavaScript と同じ GC を使おうぜという話. JS と C++ のオブジェクトが混ざっても平気だよ...と言われても困る. 数百万行ある Mozilla 相手にそんな書き換えを敢行するとは, ロケット科学を通りこして魔術的だと言っていい. それが無理だからこそ C++ は呪われた言語で, Microsoft も逃げだしたんじゃなかったの? そんな外野の心配を他所に, Mozilla のプログラマ Benjamin Smedberg は Boehn GC と jemalloc くっつけたいんだけど良いアイデアない? なんて話をしている.

  • Latest topics > メソッド名は三人称単数形にするべきかどうか - outsider reflex

    Latest topics > メソッド名は三人称単数形にするべきかどうか 宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行まんがでわかるLinux シス管系女子の試し読みが可能! « 絵を描くことへのスタンスの変化 Main Thunderbirdにルーラーを表示する「ルーラーバー」を作ったよ » メソッド名は三人称単数形にするべきかどうか - Oct 08, 2008 例えばW3C DOMでは、子ノードがあるかどうかを調べるメソッドの名前はhasChildNodes()(三人称単数形)だけど、子ノードを追加するメソッドはappendChild()(不定形、原形)となっている。どうしてこのようにバラバラなのか? どっちかに統一しないのか? という話。 Matz氏はRubyのメソッド名から三人称単数形を廃し

    tzt
    tzt 2008/10/10
    『メソッド名とかで英語を使うんだったらそれを母語としている人達の発想に一番しっくりくる命名規則を使うのが筋なんじゃないかと思う。』