タグ

programmingに関するogawastのブックマーク (96)

  • 0から作るOS開発

    0から作るOS開発について ここではOS(のようなもの)を自分で作るための 簡単で基礎的な技術を載せています。 このホームページはC言語の基礎的な知識がある方を対象としています アセンブラなども取り扱います 何故? プログラムってどうやって動いているんだろう? OSってなんだろう? どうやって動いているんだろう? プログラム作ったことあるけどmain関数が動く前ってどうなってるんだろう? と思ったことありませんか? こんなふうに考えてもんもんとして過ごしていませんか? そんな方のためのこのホームページです! その当時 ふと疑問に思って オペレーティングシステムに関する技術を読んでみましたが、 メモリ管理とかプロセスがどうたらこうたらと小難しいことばかりで 具体的にどう動くのか(もちろん十分具体的に書かれており 頭がついていってないだけなのですが。。。。)、 もっと言えばどうやって作るのか

    0から作るOS開発
  • io language

    Io A Programming Language

  • Matzにっき(2009-11-13) - [言語] The Go Programming Language

    _ [言語] The Go Programming Language もう知っている人は知っているGoogleからのシステムプログラミング新言語Go。 すっかり祭りには乗り遅れた感があるけど、少しだけコメントをつけておこう。 目次 言語仕様 言語実装 技術的でない話 まとめ 言語仕様 総合的に見て、非常にバランスを考えているように思える。 JavaC++のような複雑さを排して、シンプルに徹する一方、 言語好きを刺激するような新しいアイディアをそこかしこに配置している。 特徴である「コンパイルが高速」というのも、 このシンプルな言語仕様が寄与していると思われる。 個人的に、注目したのはオブジェクト指向機能と、並列機能。 interfaceによる、継承のないオブジェクト指向(duck typing)は、かなり私好みである。 昔からこういう言語が欲しかった。interfaceのみ動的結合を許す

    ogawast
    ogawast 2009/11/13
    流行るのかね。。
  • グーグル、C/C++に代わる新言語「Go」をOSSで公開 - @IT

    2009/11/11 グーグルは2009年11月10日、Cのようにシステム記述に適したプログラミング言語「Go」をBSDライセンスの下に公開した。C++のようなC言語の拡張ではないが、Cに似た構文が特徴で、ガベージコレクタ(GC)や並列プリミティブ、イテレータ、実行時リフレクションなどを備えた新しい設計が目を引く。Goグーグルの社員7人が「20%の自由時間」を利用して開発した。設計・実装を行っているのが分散OS「Plan 9」の創案者であるロブ・パイク氏や、Unix、Cの生みの親、ケン・トンプソン氏、Google ChromeのV8エンジンを開発したロバート・グリースナー氏など錚々(そうそう)たるメンバーで、こうした点でも注目を集めそうだ。 グーグル社内では、まだGoを使っていないが、今後はWebサーバなどのシステム関連のソフトウェアで実用を検討しているという(Goのオフィシャルサイトは

  • BLOG::broomie.net: 機械学習の勉強を始めるには

    thriftとかhadoopなど,何やらいろいろと手を出してしまい,ここのところブログの更新が滞ってしまっていますが,今日は前から書きたかったトピックについて自分へのメモの意味も含めて記しておきたいと思います. はじめに 最近,といっても結構前からなのですが,海外のブログなどで「機械学習の勉強を始めるガイドライン」についてのエントリーがいくつか見られ,かつ,議論も少し盛り上がっています.僕は機械学習が好きなだけで,専門というにはほど遠いのですが,僕も一利用者としてはこのトピックに関してはとても興味があります. 機械学習というと,色々な数学的な知識が必要であったり,統計学や人工知能の知識も必要になったりしまったりと,専門的に学ぶ機会が無かった人にとっては興味が湧いてもなかなか始めるには尻込みしてしまうことかと思います.今日紹介するエントリーは,そんな方々にヒントになるような内容になっていると

  • pej-hed.jp

    This domain may be for sale!

  • http://weare.buildingsky.net/2009/08/25/rubys-metaprogramming-toolbox

  • mysql と drizzle の負荷テストツール「skyload」が凄い! - kazuhoのメモ置き場

    tmaesakaさんがやってくれました。 ずいぶん前からSQLのベンチマークを測定するのに使いやすいプログラムないかなーと思ってました。個人的にはmysqlslapというのを使ってたのですが、幾らか気に入らない所があったりコマンドラインオプションが複雑で毎回 --help を読んだりしていました。余計な機能なんかなくて、指定したSQLを高速にくりかえしてくれる物が欲しいなぁって思ってたんです。 とあるIRCでこの前、tmaesakaさんから「いま作ってる」という話を聞いて、いろいろ要望を言ってたんですが、ついさっきチュートリアルが公開されました。速いw 名前はskyload。とても小さく、実装コードだと800行程度です。しかもオプションが少ないので使い方が単純です。試しに適当な INSERT の速度を測ってみました。 $ skyload --server=localhost --mysql

    mysql と drizzle の負荷テストツール「skyload」が凄い! - kazuhoのメモ置き場
  • クローラーを作るためのフレームワーク·Anemone MOONGIFT

    RSSフィードやWeb API、Mashupなどの単語が注目を集める中、Webクローラーを通じて外部のWebサイトにあるデータをかき集め、それを解析して別な形にするというのはよく見られるものになってきた。 あるURLを指定し、そこからリンクされているURLを一覧表示できる そうした数々のシステムの中で、クローラーとなる基盤は大きな違いはない。Webサイトのデータを取得し、次のリンクを洗い出して取得していくようなものだ。そうした共通動作部分を切り出したフレームワークがAnemoneだ。 今回紹介するオープンソース・ソフトウェアはAnemone、Webクローラを開発するためのフレームワークだ。 Anemoneは任意のWebサイトにアクセスし、その内容を解析するWebクローラーだ。例えばあるURLに付けられているリンクを一覧で取得するようなことも簡単にできる。外部サイトなのかどうかも区別できるの

    クローラーを作るためのフレームワーク·Anemone MOONGIFT
  • Expat を使ってみよう(その1)

    久方ぶりの更新になってしまいました。この頃何かと忙しいもので,なかなか長めの文章が書けないんです。どうもごめんなさい。 さて,ここから題。Expat というのは,C で実装されたストリーム型の XML parser です。FreeBSD で ports を扱っている向きには,「なんでか知らないけれど入ってしまう port」の1つとしてお馴染みなんじゃないでしょうか。 XML parser 一般で有名なモノというと,Apache XML project の Xerces あたりになるんでしょうけど,XML を使いたい場面というのは,C++Java を持ち出さなきゃいけないほど大規模な開発だけじゃないんですよね。例えば,この頃は設定ファイルを XML で書くアプリケーションが増えてきたけれど,こういったモノは規模の大小にかかわらず XML を使えると便利だったりするんです。 まぁ……言

  • ジャンル別ゲームの作り方とアルゴリズムまとめ - ネットサービス研究室

    ゲームの作り方とアルゴリズムをジャンル別にまとめてみました。ゲーム制作や、プログラミングの勉強用にご活用ください。言語別ゲームプログラミング制作講座一覧もあわせてお読みください。 リンク切れがおきていたものは、URLを表示しておくので、Internet Archiveなどでキャッシュを表示させてみてください。 RPG ゲームの乱数解析 乱数を利用した敵出現アルゴリズムの解説 各種ゲームプログラム解析 FF、ドラクエ、ロマサガのプログラムの解析。乱数の計算など ダメージ計算あれこれ(http://ysfactory.nobody.jp/ys/prg/calculation_public.html) ダメージの計算式 エンカウントについて考えてみる エンカウント(マップでの敵との遭遇)の処理方法いろいろ RPGの作り方 - ゲームヘル2000 RPGのアルゴリズム ドルアーガの塔 乱数の工夫の

    ジャンル別ゲームの作り方とアルゴリズムまとめ - ネットサービス研究室
    ogawast
    ogawast 2009/06/28
    いつかやるのかもな
  • 第1回  Kaiとは? ─Kaiのコンセプトとメカニズム | gihyo.jp

    今回から数回にわたり、Kaiという分散Key/Valueストアについて解説させていただきます。 まず、第1回では井上がKaiのコンセプトをご紹介します。次回以降は、Kai開発者の一人である幾田さんがKaiの利用方法について解説します。最終回では、gooホームでKaiを運用している橋さんから、Kaiの運用方法について紹介していただく予定です。なお、連載が対象とするKaiのバージョンは0.4です。 Kaiとは Kaiとは、分散型のKey/Valueストアです。Amazon.comが2007年に発表したDynamoというシステムに触発されて、そのオープンソース版として開発されています。Kaiをバックエンドに据えてWebサイトを構築することで、高いスケーラビリティやアベイラビリティを実現できます。2009年5月には、gooホームのバックエンドに導入され、運用実績も高まってきました。 Kaiは多

    第1回  Kaiとは? ─Kaiのコンセプトとメカニズム | gihyo.jp
  • ソースコードリーディング(killコマンド編)

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、オペレーション統括部(Yahooショッピング担当)の吉野です。 前回お話しさせていただいたlsコマンドをハックしてみようの公開後、多くの方からご意見をいただきました。 その中で目に付いたのは、「ソースコードリーディングはしてみたいがなかなか(時間|機会)がない」というご意見でした。 そこで、今回はソースコードリーディングとして、FreeBSDで動くkillコマンドのソースコードを読んでみたいと思います。 killコマンドとは、ご存じの通りプロセスにシグナルを送るコマンドです。 trussコマンドでトレースしてみても、killシステムコールしか使っていません。 $ truss /bin/kill 12345 kill(

    ソースコードリーディング(killコマンド編)
  • マルチスレッド・プログラミングの落とし穴、その2

    ずいぶん前に、「マルチスレッド・プログラミングの落とし穴、その1(かもしれない)」というエントリーを書いたが、今回はPhotoShareサーバーを運営していて、まさにこのあたりの深い考察が必要になって来たので、良い機会なので続編エントリー。 PhotoShareのバックエンドのようにCRUD(Create/Read/Update/Delete)のAPIをサポートするバックエンドを作る場合、Create/Update/Deleteのリクエストに対してはクライアントからのAPIコール時にすぐに(HTTP Requestに返事をする前に)データベースに変更を加え、Readの際にも(キャッシュを使う・使わないを別にして)データベースの最新の状況を反映するデータを返すように設計するのが普通である。 このアーキテクチャの問題は、ユーザーのアクティビティが増えた時に、データベースやI/Oがボトルネックと

  • 講義資料 配列解析アルゴリズム特論I 情報生命科学基礎/演習 他 -渋谷哲朗

    平成20年度 東京大学大学院 情報理工学系研究科・コンピュータ科学専攻 配列解析アルゴリズム特論I 4/10 4/17 4/24 5/1 5/8 5/15 5/22 5/29 (The problem to be reported - in English) 6/5 6/12 6/19 7/3 7/10 7/17 東京大学 理学部・情報科学科 情報科学特別講義3 (情報科学とバイオインフォマティクス) 6/10 7/15 7/22 東京大学大学院 新領域創成科学研究科・情報生命科学専攻 情報生命科学基礎/演習 5/27 6/17 京都大学大学院 薬学研究科・医薬創成情報科学専攻 情報科学概論 6/3 中央大学大学院 理工学系研究科・物理学専攻 物理学特別講義第二 TBA 創価大学工学部 生命情報工学科 TBA TBA 戻る Copyright (c) 2004- Tetsuo

  • FrontPage

    2019-03-28 Python/インスタンス生成 2018-01-02 Python/クロージャ Pythonを読む 2018-01-01 Python/メソッド呼び出し 2017-12-31 Python/build_class後編 2017-12-30 Python/読解対象とするPythonコードと解析方法 2017-12-24 Python/build_class前編(というよりPyTypeObject) 2017-12-07 Python/ビルトインがビルトインされるまで 2017-12-03 Python/C関数実行とPyObject 2017-10-22 Django/テンプレートシステムを読む(レンダリング) Djangoを読む 2017-10-21 Django/テンプレートシステムを読む(テンプレートのパース) 2017-09-24 Django/テンプレートシステ

  • 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初心者〜初中級者が読むべきコードについて - ’(rubikitch wanna be (a . lisper))

    Rubyの初心者にたいして「これは読むべき」だと思うコードを教え… - 人力検索はてな 今北産業ではないが超要約してみる。 Ruby初心者はまず文法や基的なクラスを習得せよ。 初級者ならばmailread.rbなどの簡単なライブラリを読んでみよう。 中級くらいからはWEBrickやBitChannelのソースがよい。 そして、なんといっても、力をつけたいならばソースを改造してみるのが一番だ。改造するんだからソースを理解しないといけないし、書く力も養われる。俺は「興味あるプログラム、気に入ったプログラム」をおすすめする。なぜなら、好奇心があるからモチベーションを保ちやすい。 やっぱり改造一番だよなぁ…書籍のサンプルコードはスペースの関係でミニチュア版になってるし、あくまで「作られた例(contrived example)」に過ぎないんだよね。生きたソースコードにはかなわない、うん。 俺はe

    Ruby初心者〜初中級者が読むべきコードについて - ’(rubikitch wanna be (a . lisper))
  • Kikker の学習の仕組みと Rocchio アルゴリズム - naoyaのはてなダイアリー

    先日のソーシャルブックマーク研究会では id:kanbayashi さんによる発表がありました。id:kanbayashi さんは Kikker や はてブまわりのひと などの開発をされている方です。最近情報検索理論に入門した自分にとっては、非常に面白い発表でした。 発表の中で Kikker の学習の仕組みについての解説もありました。Kikker は Cosine similarity で推薦するドキュメントを検索しているそうですが、ユーザーのクリックデータを使って、ユーザーごとに推薦対象を最適化するようにしているそうです。この学習は、ユーザーが見たページのベクトルを、そのユーザーの趣向ベクトルに足し込むことで実現している、とのことでした。 SBM研究会で発表した"私がチャレンジしたSBMデータマイニング"のスライド - Ryoの開発日記 Neo! 発表ではベクトルを加算することについて「

    Kikker の学習の仕組みと Rocchio アルゴリズム - naoyaのはてなダイアリー
  • はじめてのひき - PortableBinaryHacks

    Binary Hacks は GNU/Linux & x86 メインですが、 それ以外だとどんな感じだろうってことを書くところです。 私が個人的にいじってるものですが、 他の人にいじってもらっても問題ありません、 というか知らないことだらけなのでありがたいです。 1. イントロダクション Binary Hack入門 Binary Hack用語の基礎知識 file でファイルの種類をチェックする od でバイナリファイルをダンプする 2. オブジェクトファイルHack ELF 入門 静的ライブラリと共有ライブラリ ldd で共有ライブラリの依存関係をチェックする readelf で ELF ファイルの情報を表示する objdump でオブジェクトファイルをダンプする objdump でオブジェクトファイルを逆アセンブルする objcopy で実行ファイルにデータを埋め込む nm でオブジェク