タグ

Programmingに関するkhikerのブックマーク (234)

  • Perl で 8ビット CPU を作る - naoyaのはてなダイアリー

    CPU を作る、と言ってもハードではなくソフト、仮想機械です。 2001 年から UNIX USER で連載されていた西田亙さんの「gccプログラミング工房」。いまさらながら、バックナンバーを取り寄せて初回から順番に読んでいます。とてもためになる連載です。 この連載中で第10回から数回に分けて開発されていた octopus という 8 ビット CPU の仮想機械があります。オリジナルは C 言語で書かれていたのですが、その設計を見て、これは他の言語でも作れるのではないか、と思い Perl に移植してみたところなんとか動作させることができました。以下の URL にコードを公開します。(西田さんに確認を取ったところ、オリジナルのソースは Public Domain とのことでした。オリジナルは http://www.skyfree.org/jpn/unixuser/ からダウンロード可能です。

    Perl で 8ビット CPU を作る - naoyaのはてなダイアリー
  • pthreadについて(条件変数・モデル):CodeZine

    はじめに この連載ではUNIX系OSなどで使われるスレッド「pthread」についてサンプルを交えて説明していきます。pthreadはPOSIXが仕様化したスレッドモデルです。サンプルはCと一部C++、調査環境はFedora 8(2.6.23.1-49.fc8)、32bit、glibc-4.1-2、gcc-4.1.2-33およびFedora Core 6(2.6.18-1.2798.fc6)、32bit、glibc-2.5-3、gcc-4.1.1-30を使用しています。前回の記事第1回:pthreadについて(概要・生成)第2回:pthreadについて(同期) 4. 条件変数(1/3) 同期処理を行う際、ある共有情報が条件を満たしたらスレッドが動いて欲しい、という時があります。それまではサスペンドしてて欲しいですが、条件が満たされた時に他のスレッドから処理を始めるよう合図する仕組みが必要で

    khiker
    khiker 2007/12/27
    thread, pthreadの解説
  • strchr() ではまった話 - bkブログ

    strchr() ではまった話 標準Cライブラリに strchr() という関数があります。文字列の先頭から指定した文字を探すという単純な関数なのですが、先日、意外な仕様を知りました。 以下のコードを見てみます。 if (strchr("+-*/", c)) { // c は四則演算の記号かな? ... } この if 文は c が + - * / のいずれかの場合に条件が真となり、ブロック中が実行されます。…と、思いきや、実は条件が真になるケースがもうひとつありました。c が '\0' の場合です。 まさかと思って手元の Linux の man を見ると、文字列の終端のナル文字 ('\0') の扱いは明記されていません。 The strchr() function returns a pointer to the first occurrence of the character c i

    khiker
    khiker 2007/12/23
    \0も真
  • CodeZine:JavaScriptとオブジェクトの関係(チュートリアル)

    はじめに JavaScriptは、とても不思議で面白い言語です。ただ、特徴を掴みきるまでは難解だと思ってしまうと思います。今回は、JavaScriptを理解するコツをいくつか紹介しようと思います。 インタプリタだと思うからややこしい JavaScriptでもっとも難解なのは、「今まで定義していないクラスであっても、あたかも定義されていたかのように、好きなタイミングでインスタンス(変数)を生成できる」という点です。 例えばJavaなどのコンパイラの場合は、実行する前に一度全てのソースをコンパイラが見渡すため、ソースコード全体からクラス定義を見つけ出してインスタンスと関連づけることができます。そのため、クラス定義の実装タイミングやソースコード上での位置がどこであっても問題になりません。 ところが、1行1行読み込みながら実行するイメージのあるインタプリタで、JavaScriptのような

  • Route 477(2007-09-27)

    ■ [ruby][prog] プログラミング言語「ず」を公開しました 先日の言語開発合宿で製作したプログラミング言語「ず」を公開しました。 「ず」はアスキーアートで図を描くとそれがそのまま実行される、フローチャート指向言語です。 性格判断を行う程度のプログラムが書けます。 サンプルプログラム: *-----------------------* |ask "do you like ruby?"| *--------------------------------* | +------------> ask "then, do you like python?"| *------------------+----* | | | *-----+------------------------+-* | | | | | | | *----------v----------------------

    Route 477(2007-09-27)
    khiker
    khiker 2007/09/27
    AAを描く.
  • HowToWriteAnEffectiveDesignDocument - 設計文書のうまい書き方

    HowToWriteAnEffectiveDesignDocument - 設計文書のうまい書き方 目次 この文書について 設計文書のうまい書き方 なぜ設計文書を書くのか 良い設計とは何か 同僚の開発者に向けて書く 第 1 節に書くこと: プロジェクト/サブシステムの目的を示す 第 2 節に書くこと: 設計に使う高レベルなエンティティを定義する 第 3 節に書くこと: 個々のエンティティに関する低レベルの設計を書く 使い方 設定 モデル 相互作用 第 4 節に書くこと: 利点, 前提, リスク/懸念事項 マネージャ向けに書くこと 最後に 設計文書のうまい書き方 この文書について "How to Write an Effective Design Document" の日語訳です. http://blog.slickedit.com/?p=43 推敲歓迎: 誤訳, タイポ, 訳語の不統一,

    khiker
    khiker 2007/09/25
    設計文章の書き方のはなし.
  • Mozilla Developer Center

    オープンなウェブは、開発者に素晴らしい機会をもたらします。これらの技術を最大限に活用するには、それらの使い方を知る必要があります。以下に、ウェブ技術のドキュメントへのリンクがあります。 ウェブ開発者ガイド ウェブ開発者ガイドは、ウェブ技術を実際に使用して、やりたいことや必要なことを実現するために役立つハウツーコンテンツを提供しています。 ウェブ開発者向けチュートリアル HTMLCSSJavaScript、Web API の学習を段階的に進めるためのチュートリアルです。 アクセシビリティ ウェブサイトを使用する人に何らかの制約があっても、できるだけ多くの人が使用できるようにすることです。 パフォーマンス コンテンツをできるだけ早く利用できるように、操作できるようにすることです。 セキュリティ データ漏洩やデータ盗難、サイドチャンネル攻撃、クロスサイトスクリプティング、コンテンツインジェク

    Mozilla Developer Center
  • IT戦記 - JavaScript の this について

    WEB+DB PRESS 編集の R たんから、僕の連載記事に読者様から質問が来ていると教えていただいたので、その内容を教えていただきました。 以下、内容を転載 「JavaScriptわくわく開発道」の記事に関して質問です。 今回の内容で特に興味を持ったのはthisキーワードの振る舞いでした。 thisキーワードの説明には、オブジェクト型の変数を別の変数にコピーしてから初期化すると、コピーした変数からメソッドを実行できなくなるという例が紹介されていました。 そこには「(1)の時点でobj0には{}が入っているため、hogeは未定義となってしまう」という説明があるのですが、誌面の都合上省略があるためか、thisキーワードを用いることで問題を回避できるという理由がなかなか理解できないでいます。 自分なりに考えてみたところ、内部的には以下のようなことが起きているのではないかと思いました。 (1)

    IT戦記 - JavaScript の this について
    khiker
    khiker 2007/09/18
    あー, なるほど. obj0 = {} としても, もともとあった中身は, obj1 が参照しているため削除されてはいない. んで, this は, 呼出し元が何かを示すってことかな.
  • Skype4Java日本語サイト

    This page is written in Japanese. The English page is Skype API For Java (English). Skype4Java (旧 Skype API for Java) † Skypeには連携するソフトウェアを作るための仕組みとしてSkype APIが用意されています。 ですが、Skype APIは文字列をやりとりして連携する仕組みのため、そのままでは非常に使いにくいものとなっています。 Skype APIを使いやすくするためにJavaクラスライブラリ化するのがプロジェクトの目的です。 プロジェクトはSkype社公認のオフィシャルAPIになりました。 https://developer.skype.com/wiki/Java_API Skype社からのサポートを受けつつ、機能拡張を進めています。 「Skype A

    khiker
    khiker 2007/09/15
    skype api
  • マシン語ってどんな感じか知りたくなった方へ - shi3zの日記

    khiker
    khiker 2007/09/13
    日常的なエラーの本質を知るためにもマシン語はしっとくべきでしょうってことかな. ニコ動のいい使い方
  • mixiの生みの親“バタラ氏”が語るMySQLの意外な利用法 - TechTargetジャパン

    日記だけで4億件のデータ ミクシィが運営するSNS「mixi」は、2007年7月末段階でユーザー数が1110万人。人が12人集まれば、1人はmixiユーザーというわけだ。ユーザーのアクティブ率(ログイン間隔が3日以内)は約62%と高く、2007年4月から6月の月間平均ページビューは117.5億に達した。日記だけでも4億件以上に上るなど、蓄積するデータ量も莫大。2004年3月のサービス開始から、わずか3年半で現在の巨大コミュニティーへと発展したのだ。 ミクシィは、「LAMP(OSのLinux、WebサーバのApache、DBMSのMySQL、開発言語のPerlPHPPython)」と呼ばれるWebシステム向けの標準的なオープンソースソフトウェア(以下、OSS)でシステムを自社開発し、安価なPCサーバを1000台以上連ねる超分散構成でmixiのサービスを支えている(広告配信など周辺機能では

    mixiの生みの親“バタラ氏”が語るMySQLの意外な利用法 - TechTargetジャパン
  • はじめてのJSONPプログラミング

    前回の「ブログの☆の総数を取得できるAPIを組み込みました」では、はじめてJSONPを使ってみました。以下、実際にJSONPを使ってみての覚え書きと、これからJSONPプログラミングをはじめる方へのTIPSです。 ブログの☆の総数を取得できるAPIは、はてなスターに登録されたブログの情報を取得できるJSON形式とJSONP形式で提供されているAPIでした。 はてなスター日記 - ブログの☆の総数を取得できるAPIを追加しました JSONとは、JavaScriptにおけるオブジェクトの表記法をほぼそのまま利用したデータフォーマットのことで、JSONPはJSONにちょっと記述を加えて、クロスドメインのJSONデータを非同期で読み込ませて処理するための手法のことです。(詳しい定義については、自分で調べてみてください) 通常、Webブラウザでは他ドメインのJavaScriptのデータを読み込んで実

    はじめてのJSONPプログラミング
  • Yusukebe::Tech: Perlでニコニコ動画のflvとコメントxmlをダウンロードする

    サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

    Yusukebe::Tech: Perlでニコニコ動画のflvとコメントxmlをダウンロードする
    khiker
    khiker 2007/09/06
    コメント取得.
  • Write Yourself a Scheme in 48 hours

    Write Yourself a Scheme in 48 Hours A Haskell Tutorial By Jonathan Tang Contents Overview First Steps: Compiling and running Parsing A Simple Parser Whitespace Literal Numbers and Strings: Return Values Lists, Dotted Lists, and Quoted Data: Recursive Parsers Evaluation, Part 1 Displaying Values: Show and Typeclasses Evaluating Primitive Values: Pattern Matching Evaluating Primitive Functions: Firs

    khiker
    khiker 2007/09/03
    Scheme の haskell 実装?
  • 「コンパイラ・スクリプトエンジン」相談室@Wiki

    1 :デフォルトの名無しさん :2005/11/06(日) 19:45:18 プログラミング言語処理系の開発に興味のある人達のスレッドです。 字句解析・構文解析から,データフロー解析,ループ並列化,データ分散,SSA変換, CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン, SIMD命令生成,VLIW向けクラスタリング,スクラッチメモリ向け最適化,リンク時最適化, JIT,動的バイナリ変換等の各種最適化,それにVM,GC,低消費電力化などなど。 意味論に関する話題も歓迎です。

    「コンパイラ・スクリプトエンジン」相談室@Wiki
    khiker
    khiker 2007/08/31
    コンパイラ/スクリプトエンジン
  • 独習 Scheme 三週間 Teach Yourself Scheme in Fixnum Days

    A practical introduction to the programming language Scheme

    khiker
    khiker 2007/08/31
    scheme の教科書かな.
  • ユメのチカラ: ソースコードの読み方

    ソフトウェア工学の標準的なカリキュラムにソースコードの読み方というのがあるのかないのか知らないが、プログラマとして最も重要な資質の一つにコードの読解力というのがある。 ついでに言えば、大学や専門学校であまり教えられているとはいえないけど、実践では常に必要とされているものとして、テストの方法論、デバッグの方法論、性能向上の方法論、メモリなど各種資源の削減方法論などなどがある。国際化、移植性なども重要な単元であるがソフトウェア工学の中で教授されていると言う話はあまり聞かない。コードのハック一般についてどこかで議論されているのだろうか。経団連あたりで議論しているのだろうか? 閑話休題。 ソースコードの読み方ということで、最近では「コード・リーディング」というそのものずばりの教科書も出ているので状況は好転しつつある。コードの読み方はオープンソースの時代になり、間違いなく広く情報を共有できるようにな

    khiker
    khiker 2007/08/27
  • 2007-08-23

    レコードは名前付きタプルというか、Structというか。そんな感じのものです。よくある例として二次元座標とか。 # type point = { x:int; y:int };; type point = { x : int; y : int; } # let pt = {x=3; y=5};; val pt : point = {x = 3; y = 5} # pt.x * pt.y;; - : int = 15 フィールド名を同じにしちゃうようなオイタは型推論の邪魔なのでダメらしいです。 # type hoge = { x:int };; type hoge = { x : int; } # {x=3;y=5};; Characters 0-9: {x=3;y=5};; ^^^^^^^^^ The record field label y belongs to the type poi

    2007-08-23
    khiker
    khiker 2007/08/27
    OCaml 1人勉強会.
  • Ruby/Gtk Tutorial

    khiker
    khiker 2007/08/23
    英語. チュートリアル.
  • http://www.gtk.org/tutorial/

    khiker
    khiker 2007/08/23
    チュートリアル. 英語.