タグ

programmingとProgrammingに関するHolyGrailのブックマーク (147)

  • マルチスレッドのコンテキスト切り替えに伴うコスト - naoyaのはてなダイアリー

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

    マルチスレッドのコンテキスト切り替えに伴うコスト - naoyaのはてなダイアリー
    HolyGrail
    HolyGrail 2007/10/12
    マルチプロセスとマルチスレッドの話
  • ソースコードを読むための技術

    $Id: readingcode.html,v 1.13 2003/12/06 00:01:08 aamine Exp $ 2006-05-02 gonzui 追加。thanks: 冨山さん 2003-12-03 ltrace と sotrace を追加 2003-12-03 ツールのところに DDD を追加。thanks: 和田さん 2003-05-27 VCG, SXT などについて追加。thanks: 梅沢さん 2003-05-27 これもすっかり忘れていた strace, ktrace, truss, etags などについて追加 2002-08-30 すっかり忘れていた ctags を追加 2002-07-07 匿名希望さんからメールでいただいた情報を追加 (動的コールグラフ) 2002-06-13 日記経由でいただいた意見をもとに文章を追加。thanks: 柳川さん、まつもとさ

  • 初めてのプログラミング体験まとめ(Ruby on Rails編):小鳥ピヨピヨ(a cheeping little bird)

    startmac 生まれてはじめて、プログラミングなるものしてみんとて。 いやー、Webディレクターをしていると、ちょっとでいいから自分でプログラミングができるといいなと思いはじめるんですよねー。 でもあまりにも敷居が高くて、なかなか手を出せず、そしてどんどん月日は流れていくばかり。 で、このたびStart Macに当選してMacBookをもらったとき、これを機に、 「今度こそ、絶対に、何が何でもプログラミングを学ぼう」 と思ったんですよね。ほら、MacってベースがUNIXだから、なんとなくプログラミングとかもやりやすそうな気もするし。 なので、今回はちょっと気合を入れて、先生を見つけて、時間をとって、とうとうやってしまいました。 プログラミング童貞を捧げる相手は、「Ruby on Rails」。とても簡単にプログラミングができると話題のフレームワークです。 Rubyというプログラミング言

    初めてのプログラミング体験まとめ(Ruby on Rails編):小鳥ピヨピヨ(a cheeping little bird)
  • 第4回 JavaScriptでオブジェクト指向プログラミング ― @IT

    JavaScriptが、いま注目を浴びている。 JavaScriptがこれだけの注目を浴びた理由の1つとして、Ajax技術の登場とも相まって、JavaScriptに対する確かな理解の必要性が高まったという事情は否定できない。しかし、それだけでは説明できない急速な注目の理由として、もう1つ、JavaScriptという言語そのものが持つユニークさが開発者の目を引いたという点は看過できないだろう。 もっとも、このユニークさは同時に、多くの開発者が感じているJavaScriptに対する苦手意識と同義でもある。これまでVisual BasicやC#、Javaといった言語でオブジェクト指向構文になじんできた開発者にとって、JavaScriptのオブジェクト指向構文はいかにも奇異なものに映るのだ。ようやくクラスという概念を理解した開発者が、JavaScriptという言語の背後にたびたび見え隠れする「プロ

    第4回 JavaScriptでオブジェクト指向プログラミング ― @IT
  • LiveCodingに学ぶプログラミングの三原則 : 404 Blog Not Found

    2007年09月16日04:30 カテゴリArt LiveCodingに学ぶプログラミングの三原則 Mozilla24のLiveCodingの解説をやってきました。参加された方、お疲れさまでした。ほんと楽しかった。 言語もC++ありJavaありJavaScriptありActionScriptありPerlありとまちまちで、Editorもemacsありvimあり秀丸ありとまちまちでしたが、それでも全LiveCoderの共通項がはっきり見えたので、それを書き留めておきます。これらの共通項には私も含まれます。 コピペを恐れるな(don't be afraid to be a copycat) 参加者の一人として、100%フルスクラッチで書いていた人はいませんでした。たいていは関数単位でコピーし、それを適宜書き換えるというやり方をしていました。学校のテストでは反則もいいところですが、大人の世界ではこ

    LiveCodingに学ぶプログラミングの三原則 : 404 Blog Not Found
  • ソフトを一人で作るということ:ITpro

    最近,WebアプリケーションやWindowsソフトの取材で,“このソフトは担当者が一人で作っています”という事例に続けて遭遇する機会があった。フリーソフト趣味のソフトではなく,会社が商品として提供し,不特定多数のユーザーが使っているアプリケーションを一人で作って,一人でメンテナンスしているという点に興味を覚えた。 先週都内で開催された開発者向けイベント「ITpro Challenge!」でも,ドワンゴの戀塚昭彦氏がニコニコ動画を一人で(しかも3日間で)作ったと語っていた(関連記事)。よく考えてみれば,ITpro Challenge!に登壇したようなハッカーとかアルファギークなどと呼ばれる優れた開発者でなくても,企業内で一人でソフトを作っているケースは思いのほか多いのではないだろうか。 アプリケーションの規模や内容,また開発者のスキルにもよるだろうが,おおむね一人で開発するほうが, ・低コ

    ソフトを一人で作るということ:ITpro
  • プログラミングのノウハウ

    プログラミングに関するノウハウは大きく 3つにわかれると思う。 (またもや強引な分類) 1. 普遍的なノウハウ アルゴリズム, データ構造, オブジェクト指向, ツールボックスアプローチ, λ計算, etc. 2. システムのノウハウ 言語処理系, 計算機アーキテクチャ, OS, ネットワーク, etc. 3. 雑多なノウハウ 恣意的なAPI, 恣意的な言語仕様, 各種ソフトウェアの設定, 各種コマンドラインオプション, ソフトウェアのインストール作業, 各種システムの仕様の違い, 「最新技術」, etc. プログラミングをする上では 3種類のノウハウすべてが多かれ少な かれ必要なのだけど、僕のような人は、ついつい 3番目の雑多なノ ウハウばかりが増えていってしまう。日々のネットサーフィンで得 られるノウハウは大抵これである。 雑多なノウハウというのは、「たまたまそうなっている」だけであっ

  • TAKESAKO @ Yet another Cybozu Labs: core dumpするコードの短さを競う「Core Golf」

    まめめもさんの core golf のエントリー(6/27)より さて、core dump するコードの短さで競う core golf はゲームとして成立するでしょうか。明らかに環境や処理系に依存するのでルールの決め方が難しいです。とりあえずうちでは core dump した C のコード (15B) 。もっと短くなる? core dumpの定義はいろいろあると思いますが、とりあえず手元の環境 CentOS Linux x64_64 で segmentation fault が起きるコードで。 (1) C言語で core dump 早速、core dumpした5byteのCのコード。 (via. λx.x K S K @ はてな - core golf) main; 実行結果 $ echo -n "main;" > a.c && cc a.c && ./a.out a.c:1: 警告: デ

  • Pythonを始めよう:CodeZine

    はじめに こんにちわ、hirataraです。 稿では、オブジェクト指向のスクリプト言語であるPythonの紹介をしたいと思います。と言っても、実は私がPythonを勉強し始めたのは数ヶ月前のことで、まだPythonに関してさほど詳しいとは言えません。それでもこの記事を書こうと思い立ったのは、ある言語が他の言語に比べて面白い部分と言うのは、その言語にどっぷり漬かってその言語を使うことが当たり前になっている人間よりも、その言語を好きになり始めたくらいの人間の方が見つけやすいのではないかという思いからです。 そのような事情で、もしかすると当のPythonistaからお叱りを受けるような内容も含まれるかもしれませんが、その点はTBやコメントでご教授頂けると幸いです。この記事で、少しでもPythonに興味を持ってくれる方が増えることを願っています。対象読者他言語でのプログラミング経験者Pytho

  • マシン語ってどんな感じか知りたくなった方へ - shi3zの日記

  • 「車輪の再発明をするな」の流行は孔明の罠 - きしだのHatena

    なんかの実装がオープンソースで公開されているときに、同じ機能の実装を行うのは「車輪の再発明」で無駄な行為だといわれた時期がありました。 でも、それは「再発明」ではなく「再実装」であって、とても大切な行為です。 車輪にしたって、ブリヂストンも横浜ゴムもタイヤの開発をいまもって続けてるわけです。タイヤだけでなく、ホイールからベアリングからドライブシャフトから、「車輪」の部品については、いまだにいろいろな会社が切磋琢磨して再実装を続けているのです。 世の中に出ているライブラリを自分で実装してみるとわかることは、自分の実装を持っているという強さです。 たとえ世の中のライブラリに機能的に性能的に負けていたとしても、自分の実装というのは自分のニーズに合わせるという点でとてもいい。特に、処理の途中の値を使えるというのがいいのです。ライブラリでは、入力したら出力が返ってくるまで中身が見れないですからね。

    「車輪の再発明をするな」の流行は孔明の罠 - きしだのHatena
  • マシン語を知らない子ども達 - shi3zの日記

    HolyGrail
    HolyGrail 2007/09/11
    いい記事。(追記も含めて)全面的に同意。
  • 100日プログラミング

    100日かければなんとかプログラムが勉強できるのではないか、 という仮説から、100日間だけ がんばって勉強を続けられるようにする企画です。 基的には5人1組でやっていき、 お互いに進捗を報告することで、モチベーションを高めていきます。 詳しくはこちらをご覧ください。 100日プログラミングが終わりました。当はもっと早くまとめエントリーを書きたかったのですが年末で時間がなくてすいませんすいません。年明けになってしまいましたね・・・。 さて、100日プログラミングですが、いろいろな気づきがありました。まとめてみます。 よかった点 やってよかったと思う点を書いてみます。 ・毎週、順番が来るのでプレッシャーになった →これは狙い通りですね。やっていないと恥ずかしいのでなんとかやろうとしました。やり始めてしまえば意外とすらすら出来るものですが、なかなかやらないのが問題なので。やるきっかけがある

  • shellscript games from a book in Japan

    On Sep. 6th, "Mastering shell script super technic by game" (ISBN: 978-4774132020) is published in Japan. This is demonstration in FreeBSD environment remote-connected from Windows. NOTE: I'm NOT an author of the book, just a reader.

    shellscript games from a book in Japan
  • ユメのチカラ: デバッグ方法論

    実践的なデバッグ方法論(デバッグの仕方、事例研究)も強く求められている。デバッガーというツール依存のTipsではなく、ソフトウェアのデバッグというプロセスそのものの形式化である。 人々は誰に教わるでもなく自分のデバッグのスタイルを持っている。自分なりな定石を獲得している。しかしそれを明示化して人に伝えようと試みる人は少ない。伝承がまったく不可能なような議論も少なくない。 わたしはオープンソースの時代こそデバッグの方法論を広く共有できるチャンスに満ちた時代だと考えている。いくつか事例を紹介しつつ解説する。 優れたプログラマは優れたデバッグ方法論を持つ。そのデバッグ方法論をぜひ共有化したい。そのためには情報公開が要である。 デバッグとはプログラムの不具合を修正するプロセスである。テストなどによって発見された何らかの不具合を期待する結果に修正する作業である。テストとデバッグの区別が十分ついていな

  • プログラマ1年生に、先輩がアドバイス:アルファルファモザイク

    「ゼリーのみ規制…モチはいいのか?」→野田聖子氏「モチは喉に詰まるものというのが常識」…消費者庁構想に暗い影

  • GUIプログラミングのパターンを知りたい : akiyan.com

    GUIプログラミングのパターンを知りたい 2007-08-13 衝動的にCakePHP以外のプログラミング話エントリー。 まずはsubtech - Pink Blossom Diary - AS3/Flex2 を使い始めて約半年より。 まずイベントドリブンなプログラミングに慣れてないのが一つで。Flex のイベントや自前イベントやをただ単に投げまくってると、とりあえずは動くけど後からメンテし辛いスパゲッティコードができあがる。このスパゲッティコードは goto 文が乱立するコードよりも酷く、goto だったら割と行き先は把握できるけど、イベントを投げまくってるだけだと、どこでどのオブジェクトがこのイベントを受け取るかが解らない。解りづらい。いちいちソースコード grep ですね、おめでたいですね。あのイベントが発生してから、そのイベントが終了したら発生するイベントが終了したらウィンドウ閉じ

  • ウノウラボ Unoh Labs: プログラミングに使いやすいフォントを選ぶ

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    ウノウラボ Unoh Labs: プログラミングに使いやすいフォントを選ぶ
  • masuidrive on rails » Blog Archive » PHPユーザの為のRuby/Rails入門

    [追記] if構文の変数スコープの説明に間違えがあります。新しいスコープは作られません。 お盆のまっただ中8/11(土)に、社内勉強会を開いて、PHPユーザ向けにRuby/Rails入門をやりました。 じつはお盆の土曜日に4時間も勉強会って事で、そんなに人も集まらないだろうと思っていたのですが、ふたを開けてみたら28名も参加があり、びっくりしました。それだけ興味を持ってもらったのは嬉しいけど、これだけ集まるなら資料はちゃんと作らないと・・・・。ということで、作った資料を公開します。なんとRuby編100ページオーバー、Rails編200ページオーバーと、かなり大作です。 RubyKaigiで、発表者のスライドの横でIRCが表示されていたのが面白かったので、勉強会の参加者には、Lingrのチャットルームに全員入ってもらって、質問やパートごとの「終わった!」という書き込みをしてもらいました。今

    masuidrive on rails » Blog Archive » PHPユーザの為のRuby/Rails入門
  • もってけ!仕様書:アルファルファモザイク

    「梅田に行って地獄を見るか、南港に沈められるか、今金を出すか」強盗3人組を逮捕 大学生を殴り現金を奪う