タグ

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

  • 体系的な知識・技術を身につけるための学習法について - Kentaro Kuribayashi's blog

    体系的な知識や技術を身につけたいと思っています。たとえばプログラミングに関していえば、これまでたまたま興味を抱いたところをつまみいしていて、小手先の技術が少しは身についたものの、もうちょっとなにか深いことをやろうとしても、それだけではなかなか難しい。とはいえ、教育機関のようなところでやり直すわけにもいきませんし、かといって、なにかをただ作ったりしているうちにいつの間にか体系的な知識や技術が身につくというのも、そういうひともいるかもしれませんが、あまり考えられないことです。ではどうすればいいか……?と考えていたのですが、先日ちょっと思いついたので、とりあえずまずは実践してみたいと思いました。 というのはつまり、学習したいと考えている、なにかそれなりに大きな規模の分野について、自分でを書くつもりで、あるいは、こういうがあったら体系的な知識を得られるだろうなあというの目次を自分なりに書き

    体系的な知識・技術を身につけるための学習法について - Kentaro Kuribayashi's blog
  • 1975 年のプログラミング - steps to phantasien t(2007-06-17)

    少し前に Varnish という逆プロキシサーバが紹介されていた: 【レポート】高速化プログラミングの参照実装としても活用される「Varnish」 (2) vanishが採用している実装技術 : エンタープライズ : マイコミジャーナル. 気になったので資料を眺めてみる. プロジェクトの Wiki にある記事 Notes from the Architect, あとは 講演のスライド(PDF) などが概略には良さそうだ. 中味は仮想記憶やキャッシュ, SMP を有効活用して高速化しましょうという話. 仮想記憶の活用方法は二つ紹介されている. 一つ目は, "サイズに合わせて realloc() するかわりに最初からでかいサイズを malloc() しろ" というもの. 確保してもアクセスしなければ物理メモリにはコミットされないから, 拡張のたびにコピーの必要な realloc() より この

  • Windows プログラマなら読んでおきたい「Windowsデバッグの極意」 - てっく煮ブログ

    bookちょろちょろと色んなところで紹介されていた Windowsデバッグの極意 ツールを使いこなして、バグハント! を軽く読んでみたが、このWindows 開発をやってる人なら一読したほうがよさそうだ。Windowsデバッグの極意 ツールを使いこなして、バグハント!作者: Mario Hewardt, Daniel Pravat, 長尾高弘出版社/メーカー: アスキー・メディアワークス発売日: 2009/04/28メディア: 大型前書きの売り文句前書きには次のような逸話が紹介されている。MS のエンジニアが4〜5日に1回クラッシュする問題を数週間かかっても解決できなかったが、gflags の使い方に詳しい人に教えてもらってから再現させると、そこから1時間で原因が分かった。どこの通販番組だよ、と思ってしまったが、1章を読んでみて確かにこのはすごいと思った。オススメのデバッグツール

  • Cプログラミング診断室

    書は、発売から10年が経過した『Cプログラミング診断室』に加筆修正す るとともに、のサイズを小さく持ち運びやすく紙も軽いものを選び、どこで も読めるように工夫したものです。レイアウトやイラストも変更しております。 また、表紙デザインは一新しました。 表紙には特別な工夫がされております。詳しくは、書店店頭にてじっくりと表 紙を眺めてみてください。気付く人は気付くはずです

  • OpenGLの基礎

    OpenGLは,3次元グラフィクスプログラミングにつかわれる標準的なライブラリです. ライブラリとは,プログラムの部品セットであるといえます. ライブラリを利用することで,自分で0から書かなくても, ライブラリが提供する部品を組み合わせることでプログラムを作成することができます. ここでは,OpenGLの基礎を説明します. OpenGLの概要 Ruby/OpenGL OpenGLプログラムの基的な構造 イベント,コールバック,イベントループ 2次元図形の描画 図形プリミティブ 属性 2次元ビューの設定 ビューポート OpenGLの概要 OpenGLは,3次元グラフィクスプログラミングにつかわれる標準的なライブラリで,SGI(Silicon Graphics, Inc.)がGLという同社のコンピュータ専用のグラフィクスライブラリをもとに開発したものです. OpenGL以外でよく用いられる3

  • ソフトウェアテスト基本テクニック 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2025 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    ソフトウェアテスト基本テクニック 記事一覧 | gihyo.jp
  • きれいなソースコードを書くために必要な、たったひとつの単純な事 - よくわかりません

    「構造のきれいなプログラムを書けるようになるためにはどうすればいいのか?」という質問を受けたので、「はて?どうしているだろうか?」と考えてみました。あ、形式知にきちんとなっているようなテクニックみたいなもんじゃなくて、モノローグなので、あまり凝ったものは期待しないように。 http://blog.shibu.jp/article/28983162.html 自分なりにもっと凝縮版を。渋川さんが言っている事全体もその通りとは思うけど*1、もっと簡単で、しかも射程が広い、と自分が思っている事。 渋川さんはちょろっと触れてるだけだけど、自分はこれが最も基的で汎用的、かつ、ソースをきれいにする原動力となる上にバグをも減らしてコードの汎用性まであげる、コーディングのエンジンみたいなものと思ってる。それは、 「すべてに正しい名前を付けて、そして、正しい名前であることを維持する」という鉄の意志 クラス

    きれいなソースコードを書くために必要な、たったひとつの単純な事 - よくわかりません
  • Firefox3のメモリ使用の効率化について - FutureInsight.info

    この翻訳がとても面白かったので、簡単にまとめてみました。 http://www.hyuki.com/yukiwiki/wiki.cgi?Firefox3MemoryUsage メモリ断片化の対策としてjemallocを採用 mallocの実装としては、リアルタイム要求のある条件でもある程度確保時間が保証されているdlmallocなどが有名ですが、Firefox 3ではjemallocを採用しました。jemallocの特徴としては、以下のようなレポートがあります。 http://journal.mycom.co.jp/articles/2006/05/15/bsd4/ FreeBSDの従来のmalloc(3)実装は、マルチプロセッサシステムにおいてはコンテンション、キャッシュスライシング、キャッシュラインシェアリングといった点において性能がよくないことがある。これを改善するべくJason E

    Firefox3のメモリ使用の効率化について - FutureInsight.info
  • Firefox3MemoryUsage - Firefox 3 のメモリ使用量

    Firefox3MemoryUsage - Firefox 3 のメモリ使用量 目次 この文書について Firefox 3 のメモリ使用量 私たちのやったこと メモリ断片化の削減 循環コレクタによる循環の回避 キャッシュのチューニング 画像データの保存方法調整 リーク狩り メモリ使用量の測定 テスト方法 結果 まとめ 謝辞 Firefox 3 のメモリ使用量 この文書について Stuart Parmenter "Firefox 3 Memory Usage" の日語訳です. http://blog.pavlov.net/2008/03/11/firefox-3-memory-usage/ 推敲歓迎: 誤訳, タイポ, 訳語の不統一, そのほか... Web や Web ブラウザが成熟するにつれ, 人々はそこになかったものを期待するようになった. はじめて Firefox がリリースされ

  • jemallocを読んでみる(その1) - miura1729の日記

    結局、Cygwinでjemallocを動かす努力はなんか気が乗らないので、jemallocを読んでみようということにしました。色々勉強になりそうです。最初のコメントを訳してみます。英語は苦手なんで誤訳が一杯あると思います。指摘してくださると幸いです。 /* -*- Mode: C; tab-width: 4; c-basic-offset: 4 -*- */ /*- * Copyright (C) 2006-2008 Jason Evans <jasone@FreeBSD.org>. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following con

    jemallocを読んでみる(その1) - miura1729の日記
  • 感想: イベントVs.スレッドをhigh-conccurencyサーバを対象に して真面目に考え直してみた論文。

    Rob von Behren, Jeremy Condit and Eric Brewer (UCB) Why Events Are A Bad Idea (for high-concurrency servers) Proceedings of HotOS 03, May 2003. 感想: イベントVs.スレッドをhigh-conccurencyサーバを対象に して真面目に考え直してみた論文。 Abstract イベントモデルは high-concurrency システムでは良いとされて きたが、それは間違いだ! (筆者らの信じるところによれば) イベントの良い点(高い並列性、低いオーバヘッド、シンプルな 並列モデル)などはスレッドでも達成できる。さらに、スレッドの 方がよりシンプルで自然なモデルでプログラムを書ける。 スレッドの弱さは質的なものではなくスレッドパッケージの実装

  • http://www.takatan.net/hiki/hiki.cgi?SO_SNDTIMEO-SO_RCVTIMEO

    tzt
    tzt 2009/05/08
    SO_SNDTIMEO オプションはconnect()にも有効らしい。
  • 基盤系プログラマの実践的教育が必要だ - 未来のいつか/hyoshiokの日記

    ここで言う基盤系というのは、OSとかRDBMSとかプログラミング言語処理系とか、そーゆー奴ね。アプリケーションプログラムとかWebサービスとかを支える縁の下の力持ち。その基盤を作るプログラマをどのように育てるかというお話。 まあ、ハッカー予備軍をどのように育成するか。ハッカーって、育てるとか教育するとか、そーゆーものではなく勝手になるものだから、そもそも、そんなものはありえないという議論もある。確かに天才というのは、天才なので、教育がどうだこうだということはないのだけど、一般的なプログラマというのは、一般的な教育プログラムである程度底上げ的なことは出きると思う。 例えば、PostgreSQLの開発者を考えてみる。ちょっとRDBMSに興味がある、だけどどこからとっかりをつけていいのかよく分からないという初心者がいたとする。今ある、OSS利用者教育プログラムをいくらやったところで開発者にはなれ

    基盤系プログラマの実践的教育が必要だ - 未来のいつか/hyoshiokの日記
  • IBM Developer

  • naoyaのはてなダイアリー - sched_setaffinity(2) を使って任意のプログラムを任意のCPU上で動かす

    Linux 2.6 には sched_setaffinity(2) というシステムコールがあり、これを利用して任意のスレッドを(マルチCPU環境下で)特定の CPU で実行させることができます。http://www-06.ibm.com/jp/developerworks/linux/051028/j_l-affinity.shtml によるとリアルタイムプロセスでマネージャとなるスレッドをこのシステムコールで特定の CPU に固定する...といった応用が考えられるそうです。 へえ、と思ったのでちょっと遊んでみました。LD_PRELOAD を使って任意のプログラムを任意の CPU に固定して動かしてみます。GCC の __attribute__)((constructor))( で sched_setaffinitiy(2) を呼びます。(参考: http://0xcc.net/blog/

    naoyaのはてなダイアリー - sched_setaffinity(2) を使って任意のプログラムを任意のCPU上で動かす
  • マルチスレッドのコンテキスト切り替えに伴うコスト - naoyaのはてなダイアリー

    また Linux カーネルの話です。 Linux では fork によるマルチプロセスと、pthread によるマルチスレッドでの並行処理を比較した場合、後者の方がコストが低く高速と言われます。「スレッドはメモリ空間を共有するので、マルチプロセスとは異なりコンテキストスイッチ時にメモリ空間の切り替えを省略できる。切り替えに伴うオーバーヘッドが少ない。」というのが FAQ の答えかと思います。 が「オーバーヘッドが少ない」と一言にいわれても具体的にどういうことなのかがイメージできません。そこで Linux のスレッド周りの実装を見て見ようじゃないか、というのが今回のテーマです。 3分でわかる(?) マルチプロセスとマルチスレッド まずはうんちく。マルチプロセスとマルチスレッドの違いの図。以前に社内で勉強会をしたときに作った資料にちょうど良いのがあったので掲載します。Pthreadsプログラミ

    マルチスレッドのコンテキスト切り替えに伴うコスト - naoyaのはてなダイアリー
  • 仙石浩明の日記: Perl の非同期I/Oモジュール POE を使って VPN-Warp relayagent を書いてみました

    多数の TCP/IP セッションを同時に維持する必要性などから、 非同期I/O が最近流行りのようです。 何をいまさら、という気もするのですが、 いわゆる「最新技術」の多くが 30年前の技術の焼き直しに過ぎない今日このごろなので、 非同期I/O 技術が「再発見」されるのも、 「歴史は繰り返す」の一環なのでしょう。 スレッドが当たり前の時代になってからコンピュータ技術を学んだ人にとっては、 (古めかしい) 非同期I/O が新鮮に映るのかも知れず、 なんだか「ファッションのリバイバル」に似ていますね。 Perl で非同期I/O 処理を手軽に行なうための枠組みとして、 POE: Perl Object Environment というものが あるようです。 POE を使うと、 あたかもスレッドを使っているような手軽さでプログラミングできます。 試しに VPN-Warp の relayagent を

  • 仙石浩明の日記: オープンソース版 VPN-Warp リレー サーバ (Perl POE を使って実装)

    Perl の非同期I/Oモジュール POE を使って VPN-Warp relayagent を書いてみました」に 続いて、 同じく POE を使って VPN-Warp リレー サーバも書いてみました。 これで、オープンソースだけを使って VPN-Warp を実現することができます。 今までも、 BIGLOBE の VPN ワープのページから証明書を取得すれば、 月額 525円で VPN-Warp を試してみることはできたわけですが、 ちょっと試してみたい場合など、 有料であることがネックである感は否めませんでした。 特に、 常日頃からオープンソースを使いこなしている方々だと、 ちょっと使ってみたいだけなのにお金を払うのはねぇ、 と思ってしまうのではないでしょうか。 かくいう私も、 無料「お試し版」のサービスやソフトウェアに慣れきってしまっているので、 試しに使ってみようとする場合に、

  • DBサーバ向けLinuxチューニングを考える 〜 メモリオーバーコミット編 : DSAS開発者の部屋

    Cでプログラムを書いていて大量のメモリを確保したくなったとき、大抵は mallocを使うと思いますが、その際には戻り値がNULLかどうかを判断してエラー処理に飛ばすと思います。しかし、Linux のメモリ管理サブシステムには「メモリ・オーバーコミット」という機構があり、実装されているメモリ以上の領域を確保できてしまいます。 #include <stdio.h> #include <stdlib.h> int main() { int i; char *p; for(i=0;i<65536;i++){ p = (char *)malloc(65536); if(0 == (long)p){ break; } } printf("SIZE=%dMB\n",i*65536/1024/1024); return(0); } swapoff したメモリ 1G のマシンでこれを実行するとこんな感じにな

    DBサーバ向けLinuxチューニングを考える 〜 メモリオーバーコミット編 : DSAS開発者の部屋
  • Google製のGit用ソースコードレビューシステム·Gerrit MOONGIFT

    ソースコードのレビューはシステムの品質を高めるのに大切な作業だ。GoogleやVMWareでも使われており、ブラウザを使って差分を確認してコメントができるようになっている。社内向けには拙作のSubversionソースコードレビューシステムの宍道湖がある(Rails製)。 Git向けソースコードレビューシステム この手のツールはSubversion向けのものが多かったが、Gitでも使いたいならGerritに挑戦してみよう。 今回紹介するオープンソース・ソフトウェアはGerrit、Git向けソースコードレビューシステムだ。 GerritGoogleが大々的に発表している訳ではないが、Google社員が開発しておりAndroidのオープンソースプロジェクトにおけるソースコードレビューにも利用されている。他のシステム同様に差分を見て、そこにコメントすることが可能だ。 差分を見てコメントする 差分

    Google製のGit用ソースコードレビューシステム·Gerrit MOONGIFT