,. -‐'''''""¨¨¨ヽ (.___,,,... -ァァフ| あ…ありのまま 今日 起こった事を話すぜ! |i i| }! }} //| |l、{ j} /,,ィ//| 『BWT について調べていたら Suffix Array のライブラリができていた』 i|:!ヾ、_ノ/ u {:}//ヘ |リ u' } ,ノ _,!V,ハ | /´fト、_{ル{,ィ'eラ , タ人 な… 何を言ってるのか わからねーと思うが /' ヾ|宀| {´,)⌒`/ |<ヽトiゝ おれも何をされたのかわからなかった… ,゙ / )ヽ iLレ u' | | ヾlトハ〉 |/_/ ハ !ニ⊇ '/:} V:::::ヽ 頭がどうにかなりそうだった… // 二二二7'T'' /u' __ /:::::::/`ヽ /'
1970年代後半、この世に産声をあげたパーソナルコンピュータは、極めて単純なパーツから成り立っていました。当時のプログラマーは、小さな箱庭のような世界を細部にわたるまで把握し、ハードウェアを自由自在に操ることで、知的興奮を覚えたものです。それから30年以上が過ぎた現在、パソコンは高度に複雑化し、もはや一個人が全体を把握するのは、不可能に近い事となってしまいました。 オーバーシー・パブリッシングは、「すべての応用は基本の延長線上にある」と考えています。Computer Architecture Seriesは、牧歌的時代であった30年前の世界まで遡り、基礎技術を理解し体得することから、はじまります。“基本の水平線”の先には、素晴らしい大海原があなたを待ち受けていることでしょう。
Google の面接について書かれたブログ記事が面白かったので翻訳してみました。 原著者の許可取得済み。(Thank you, Petris!) 本文 二週間ちょっと前、ぼくはカリフォルニアのマウンテンビューで Google の面接を受けてきたんだ! Google の面接が面白い体験だったから、ぼくはそのことを話したいんだ。(Google からはこの記事を出すゴーサインをもらった) ぼくが面接を受けた職種は Google SRE だった。SRE というのはサイト信頼性エンジニアリング(Site Reliability Engineering)という意味だ。サイト信頼性エンジニア(SRE)はソフトウェアエンジニアでもあり、システム管理者でもあって、Google の製品サービスを端から端まで責任を持つんだ。 合計8回の面接があった。最初の3つは電話越しで(電話面接)、残りの5つは現地での面接だ
以前、Redhat系のCentOSのカーネルを再構築したが(「CentOSのカーネル再構築」)、今回はUbuntu(Debian系)の再構築を試みた。 カーネル本体はディストリビューションとは独立しているので基本的なやり方は同じだが、Debianではカーネルの再構築用のユーティリティ(スクリプト等)を提供しているので、それらを使って簡単に構築できる。 次のような手順となる。 環境の整備(開発環境パッケージの追加) ソースコード・パッケージのダウンロード ソースコードの展開 カーネルのコンパイル カーネルのインストール 本来は3と4の間にカーネル構成の設定があるが、今回は先ず現在動いているカーネルと同じ構成のものを作ることを目的としたので省略した。 ■ 環境の整備 Ubuntuはインストールしたての状態でコンパイルの環境が十分ではないためまず、一応、コンパイラの環境を整える。 root@ub
David A Rusling david.rusling@arm.comv0.8-3 January 25, 1999 JF Projectv0.8-3 December 2000 *フレーム表示* 本書は、Linux カーネルの仕組みを知りたい Linux 愛好家のためのものです。これは 内部構造のマニュアルではありません。むしろ Linux で使用されている原理や メカニズムを解説したものであり、Linux の動作原理とはどういうもので、なぜそれ が採用されているのかを説明するものです。 Linux という対象は常に変化しています。本書がベースにしているのは現在の安定 版である 2.0.33 のカーネルソースですが、これは個人や法人の大部分で使用されて いるのがこのバージョンだからです。 また、本書は自由に配布してもらってかまわないので、一定の条件のもとにではあり ますが、複製や再配
分散バージョン管理Git/Mercurial/Bazaar徹底比較:ユカイ、ツーカイ、カイハツ環境!(3)(1/5 ページ) Subversionとは一味違う「分散バージョン管理」とは? 最近、Linuxをはじめ、Ruby on Rails、MySQL、OpenSolarisなどのオープンソースプロダクトが次々と分散バージョン管理システムを導入し始め、「Git」「Mercurial」「Bazaar」といった、分散バージョン管理システムが注目を浴びています。 本稿では、バージョン管理ツールのデファクトスタンダードであるSubversion(以下、SVN)と分散バージョン管理システムを比較しながら、メジャーな分散バージョン管理システムであるGit、Mercurial、Bazaarについて紹介していきます。 集中型と分散型 最初に、集中管理方式(または、集中型)のバージョン管理システムと分散管理
(ちょっとだけ追記しました。その他1/25のあたりも見てみてください。) "Can programming be reinvented?"というタイトルでの発表。東工大と東大で似たような発表をしたのだが、ストーリーラインが比較的新しいため、先にやった東工大での発表には反省点がいろいろあり、それが東大での発表に生かされた形になったのは否めない、かもしれない。以下は、かなり再現性の低いメモ。詳細はさらに聞いてください。「私」はもちろんAlan Kayを指します。 近所の人から、「なんで新しいコンピュータのほうがWindowsの起動やMS Wordの起動が遅いの?」、「大きいディスクがついているはずなのに、なぜ使える容量が少なくなるの?」、「アップデートをしたら、何で再起動しなくてはいけないの?」という質問をされる。なかなか良い質問である。 私自身も、コンピュータに関する疑問がある。「なぜ、コン
_ 論文ファイブが書けない言い訳(skipはご自由に) 職場でも居室でも論文は読むのだが、分量が違いすぎる。職場で読むほうが圧倒的に多いのである。一日あたりをいうと、少ないときは0本(ここは笑う場面です)、多いときはこれは例外的でちょうど70本読んだ。 70ってのはおかしすぎで、実際読んだだけで一日を終えた。これは、詳しくはいえないが、「対象についていけがみがよくわかっていない論文」の査読を依頼されたときである。しかし、著者の主張の解決策は理解できたし、私が詳細に確かめるのも悪くはないかと感じたのだった。そこで、編集者に「私、その対象については、門外漢ですが、査読にあたって最大の努力はしますよ、それで不都合があれば査読者を下ろしてください」というようなやりとりがなされたあとで、査読した(実際、差読者は複数いて、対象の専門の方も査読をなさるということだった)。 で、査読論文の1次参考文献、2
前に書いたSVMの記事で、「L1とかL2というのは間違えたときのペナルティをどう定義するかを意味しており」と書いていたが、L1とかL2って正則化項の話なんじゃないの、と疑問に思った。1ヶ月ほど時間をおいてのセルフツッコミである。確認しようとしてカーネル多変量解析を読むと、やはり正則化項についてはL1とL2の両方の説明が書いてあるが、損失に関しては普通のHinge Loss(=L1 Loss)しか書いてない。 と言う訳で、ああ、間違えちゃったなぁ、と暗澹たる気持ちで"A dual coordinate descent method for large-scale linear SVM"を読み直してみたところ、やっぱりL1-SVMというのは損失が普通のHinge Lossで、L2-SVMというのはHinge Lossの2乗を損失とすると書いてあった。両方とも正則化項についてはL2正則化を使って
正月早々インフルエンザにかかって寝込んだmikioです。電車に乗る時や繁華街などに出る時はマスク着用が必須ですね。さて今回は、Tokyo Cabinetで実装したテーブル方式のデータベースについて紹介します。意外にどうして強力な機能なので、このネタは連載することを予告します。 テーブルデータベースとは 簡単に言えば、リレーショナルデータベースのテーブルのように、複数の列からなるレコードを格納できるデータベースです。SQLや表結合などの複雑な機能はサポートしませんが、そのぶん高速に動作します。つまり、DBMの速度で動くリレーショナル風データベースです(厳密にはリレーショナルデータベースではありません)。 TCの基本となるハッシュデータベースは、単純なkey/value型のデータベースであり、つまりキーにも値にもスカラ(数値や文字列などの特に構造を持たない単一の値)しか格納することはできません
Created by Vic Metcalfe, Andrew Gierth and other contributers (Transrated into Japanese by: Keisuke Mori)May 21, 1998 この文書は、UNIX 上での ソケットインターフェースを用いた TCP/IP アプリケーションプログラミングについて、頻繁に行われる質問とその 解答を集めたものです。 1. 一般的な情報と概念 1.1 更新情報 1.2 この FAQ について 1.3 この FAQ はどのような人向けでしょうか? 1.4 ソケットって何ですか? 1.5 ソケットはどのように動作するのでしょうか? 1.6 [ある本の題名] という本のソースコードはどこから取得できますか? 1.7 どこでもっと情報を得ることができますか? 2. クライアントとサーバ(TCP/SOCK_STREA
このFAQについて 1 プロセス制御 1.1 新しいプロセスの生成: fork() 1.1.1 fork()は何をするのですか? 1.1.2 fork()とvfork()の違いは何ですか? 1.1.3 forkによる子プロセスを終了するときにexitよりも_exitを使うのはなぜですか? 1.2 環境変数 1.2.1 どうすればプログラム内で環境変数の値を取得・設定できますか? 1.2.2 どうすれば全ての環境変数を調べられますか? 1.3 どうすれば一秒未満のsleepができますか? 1.4 粒度の細かいalarm()はどうすれば得られますか? 1.5 どうすれば親プロセスと子プロセスの間で通信できますか? 1.6 どうすればゾンビプロセスができることを防ぐことができますか? 1.6.1 ゾンビプロセスってなんですか? 1.6.2 どうすればゾンビプロセスになることを防げますか? 1.7
*BSD で kqueue・kevent を使ってみよう select() の欠点 select() は複数のディスクリプタをポーリングできる便利なシステムコールです。 しかしパフォーマンスはよくありません。理由は以下の通りです。 ユーザプロセスは、監視対象のディスクリプタ一覧をユーザ領域からカーネル領域にコピーする必要がある。 カーネルがポーリング結果をユーザ領域に返す際もコピーしなければならない。 カーネルは、ポーリング対象のディスクリプタを知るために、配列の全要素を調べなければならない。 ユーザプロセスも、入出力可能なディスクリプタを知るために、配列の全要素を調べなければならない。 上記の作業は、select() を発行するたびに毎回行わなければならない。 select() のパフォーマンスが悪いことは広く知られていたので、 各 OS でいろいろな取り組みが行われてきました。 Sol
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く