masatoのエントリー一覧 (39)


シェルの仕組み(後編)
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

ウノウでは特に最近、積極的にエンジニアを採用しています。 採用ページをご覧になり興味のある方、ぜひご応募ください!! 尾藤正人(a.k.a BTO)です 前回の勉強会でシェルの仕組み(前編)というのをやりましたが、今回はその後編をやりました。 前編と合わせて見ていただくと、シェル内部で使われている仕組みが一通り分かるようになるかと思います。 資料及び動画を公開しますので、もしよろしければご覧ください。 Shell 2 Publish at Scribd or explore others: Internet & Technolog Presentations & Slid unix shell ...

シェルの仕組み(前編)
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

尾藤正人(a.k.a BTO)です 社内勉強会でシェルの仕組みというのをやってみましたので、資料を公開します。 シェルはUNIXを使う上で、必ず使用される非常に身近なツールです。 毎日使用しているツールにも関わらず、具体的にどのような動作をしているのか知らない方も多いのではないのでしょうか。 シェルの使い方に関する情報はたくさんありますが、シェルの実装についての情報はほとんどないなと思ってシェルを題材に取り上げました。 シェルにはUNIXプログラミングのエッセンスがぎっしりつまっています。 シェルの内部の仕組みが分かるようになると、UNIXプログラミングが分かるようになると言っても過言ではないのかもしれません。 シェルの仕組み(前編) - Upload a Document to Scribd 社内勉強会中にus...

シェル(bash)スクリプトを書くときのTips
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

尾藤正人(a.k.a BTO)です UNIXを使う時にはシェルスクリプトをよく使います。 ちょっとしたコマンドを実行するには、シェルスクリプトは非常に便利です。 今回はシェルスクリプトを書くときに覚えておいた方が便利なTipsを紹介します。 非互換性 ここで紹介するものは基本的にbashで動作するものになります。 伝統的なBourne Shellでは動作しないことが多くあると思います。 しかしながら最近はbashがメインで使われることが多いので、"だいだいの環境で動くからおk"ぐらいのノリで使ってもらえればと思います。 $(...) コマンドを"$(", ")"で囲むと実行結果をコマンドラインに代入してくれます。 一見これは"`"(バッククオート)と同じに見えますが、"$()"にはネストができるという利点があります。 例えばシェルスクリプト自身の絶対パスを取得するのは次のようにできます。 ...

TCP/IP入門
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

尾藤正人(a.k.a BTO)です このブログを読んでる方にはWebプログラマが多いかと思いますが、Webの仕組みを基礎から理解してプログラムは書いてますでしょうか。 もちろんそんなことは知らなくても抽象化されてるので気にする必要は全然ないのですが、やはりエンジニアとしてはちゃんとどういうものか理解してプログラムを書いた方がよりよいプログラムが書けると思います。 そこで先日の社内勉強会で、TCP/IPについて軽くおさらいしてみました。 かくいう僕もTCP/IPについて勉強したのは7, 8年前だったのでいろいろ復習してたんですが、忘れていたり、実はちゃんと理解できてなかったことがありました。 せっかくなので資料を公開しておきます。 よかったら参考にしていただければと思います。 ...

いまさらコマンドラインの便利さを主張してみる
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

尾藤正人(a.k.a BTO)です 僕の偏見かもしれませんが、Webプログラマの方の多くはコマンドラインをうまく活用できてないように感じます。 コマンドラインを使いこなすには最初にある程度の勉強が必要で、その敷居の高さのせいであまり便利さが感じられないのかも。 そこで、今更ながらコマンドラインの便利さを高らかに主張してみます。 ワイルドカード ワイルドカードという特殊文字を使うと特定パターンのファイル名を簡単にしてできます。 これは知ってる人も多いので、詳細は割愛。 ワイルドカードでうまくいかない場合は後述するfindコマンドを使います。 zshのワイルドカード zshのワイルドカードを使うと、ちょっとしたfindコマンドのようなファイル名のマッチができます。 簡単に紹介すると次のようなことができます。 echo **/foo # 再帰的に 'foo' にマッチ echo *(/) ...

rpmパッケージを作ろう
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

尾藤正人(a.k.a BTO)です 先日社内勉強会でrpmパッケージの作り方についてやってみました。 資料を公開しておくのでよろしければご参照ください。 document.write(''); Read this doc on Scribd: rpm var scribd_doc = new scribd.Document(2559467, 'key-1h2bnnas1ykcigsjw9uu'); scribd_doc.write('embedded_flash_2559467_a55g5'); 参考用に以前GNU Autotools用のサンプルプログラムで作ったbatのrpmパッケージを使いました。 次のようなコマンドでrpmパッケージを作成できます。 基本的な機能をある程度網羅したつもりなので、参...

LD_PRELOADを使って任意の関数呼び出しにフックしてみる
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

尾藤正人(a.k.a BTO)です 先日の社内勉強会のLTでLD_PRELOADについて簡単にやってみました。 LD_PRELOADって? 環境変数$LD_PRELOADを使うと他のライブラリの読み込みの前に任意のライブラリを先に読み込ませることができます。 実行プログラムの形式にELF形式を採用しているOSで使うことができます。 Linuxであれば問題なく使用できるはずです。 何ができるのか プログラムを変更することなく、任意の関数を上書きしたり、任意の関数にフックすることができます。 libhookwriteを作ってみた 簡単なサンプルプログラムとしてlibhookwriteというのを作ってみました。 libhookwriteはその名の通りwrite(2)にフックをかけることができます。 といってもできることは限られていてファイルのタイムスタンプの更新か、任意のプログラムをsh経由で実...

圧縮アルゴリズム
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

尾藤正人(a.k.a BTO)です コンピュータを使ってる方ならいつもお世話になってるデータ圧縮。 gzipのようなツールで意識して圧縮していることもあれば、フォーマット自体に圧縮機能が備わっていて、意識しないで使っているケースもあるかと思います。 毎日のようにお世話になってるデータ圧縮ですが、その原理を知らない方も多いのではないでしょうか。 かくいう僕自身も、つい最近までは全く知りませんでした。 そこで、先日の社内勉強会で圧縮アルゴリズムについて一通りやってみました。 その資料を公開します。 僕も専門家ほど詳しいわけでもなく、単に勉強してみただけのくちなので、いろいろおかしな点もあるかもしれません。 何かありましたら、いろいろご指摘いただければと思います。 プレゼン資料の作成にはデータ圧縮法概説を大いに参考させていただきました。 参考っていうか、ほとんどそのまんまです。 ぶっちゃけデー...

なんて読むのかわからない
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

尾藤正人(a.k.a BTO)です 韓国大統領選挙に出馬するのを忘れていたと思っていたら、 いつの間にかmixi新CTOにノミネートされてた今日この頃、 みなさんいかがお過ごしでしょうか。 今日はちょっと趣向を変えて、ライトな感じのエントリでいこうかと思います。 ITエンジニアに英語が苦手な方が多いかと思います。 僕も英語が大の苦手で、英語に対してコンプレックスを持つ者の一人です。 そんな僕ですが、なんとか簡単な会話を英語でこなすことができるようになりました。 僕の英語の学習の課程は、以前のエントリ 「海外経験のない典型的理系人間が日常会話レベルの英語を話せるようになるまでの道のり」 で紹介したので、よかったら参照してください。 英語に限らず、IT業界にいると読み方のよく分からない単語が出てきます。 妙に省略された単語だと読み方がさっぱり分からない事がありますが、 通常の英単語であれば辞...

マシン語を学ぶ子ども達
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

尾藤正人(a.k.a BTO)です コンピュータは低レベルのシステムを抽象化することで、どんどん扱いやすいものに進化してきました。 コンピュータの歴史は抽象化の歴史だと言い換えるのは大げさかもしれませんが、近いものはあるかもしれません。 ウノウで行うプログラミングはWebプログラミングがほとんどですが、WebプログラミングはPerl, PHP, Python, RubyのようなLLを使ってプログラムを書くことが多いかと思います。 LLは高度に抽象化されて低レベルで行っている処理を意識せずに記述することができる大変優れた言語です。 LLでプログラムを記述するにあたって低レベルのシステムを理解する必要があるとは思いませんが、知っていて損はない知識です。 少し前にマシン語についての話が話題になりました。 ちょうどタイミングよく社内勉強会の当番が回ってきたので、マシン語(というかアセンブリ言語を...

Rubyでネットワークサーバを書く
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

尾藤正人(a.k.a BTO)です 先日公開したブラウザだけでネットワーク対戦ゲームができるサイト「プラッシュ」では、 フラッシュとネットワーク通信を行う専用のXMLSocketサーバを開発しました。 このXMLSocketサーバはrubyで書かれています。 LLでデーモンを書く需要が、それほどあるとは思えませんが、デーモンを書く際に気をつけた点、工夫した点をまとめてみたいと思います。 なぜrubyを選んだのか rubyを選んだのには理由は2つあります。 Railsを採用した LLで早く開発をしたかった 僕も昨今のRailsブームにのって個人的にRailsを使い始めていました。 プラッシュは完全に新規プロジェクトで環境を選択する事ができたので、迷わずRailsを選択しました。 では、なぜCのようなコンパイル言語で書かなかったのか。 速く動くものを開発するよりも、早く開発をしたかったからで...

Flashの新しい可能生 Asynchronous Flash + XMLSocket
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

尾藤正人(a.k.a BTO)です 昨日ラボプロジェクトとして実験的に開発している新規プロジェクト「プラッシュ」をβ公開しました。 簡単に説明するとプラッシュはFlashとXMLSocketを使う事でブラウザだけでネットワーク対戦ができるゲームポータルサイトです。 今回はプラッシュで使われているFlashとXMLSocketを使ったアプローチについて考察してみたいと思います。 はじめに 正直に告白すると僕はFlashを一行も書いた事がありません。(汗) なので、Flashの部分に関してはFlash側の開発者であるyossyに聞いたり、Webで調べた情報がほとんどです。 不正確な情報が含まれてる可能性がありますが、その辺を考慮していただければと思います。 FlashのXMLSocketで何ができるのか FlashのXMLSocketを使うと直接ソケット通信を行う事ができます。 AjaxやC...

ブラウザだけでネットワーク対戦ゲームができる無料ゲームポータル「プラッシュ」をβ公開しました
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

尾藤正人(a.k.a BTO)です 大富豪チャット posted by (C)フォト蔵 ブラウザだけでネットワーク対戦ゲームができる無料ゲームポータル「プラッシュ」をβ公開しました プラッシュ プラッシュの特長 ブラウザだけで遊べる ネットワーク対戦ができる Wiiに対応している 無料で遊べる ブラウザだけで遊べる プラッシュのゲームは全てブラウザ上で遊ぶ事ができます。 面倒なソフトウェアのインストールはいっさい必要ありません。 ネットワーク対戦ができる プラッシュのゲームはネットワーク対戦ができます。 オンラインでリアルタイムでネットワーク越しにいろんな人とゲームを遊ぶ事ができます。 Wiiでも遊べる 今話題沸騰中のWiiに完全対応。 無料でゲームが遊べる プラッシュのゲームは全て無料で遊ぶ事ができます。 プラッシュの仕組み せっかくラボブログにエントリを書いているので、 少しプラッシ...

ベンチャー流Webサービスの作り方(開発チーム編)
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

尾藤正人(a.k.a BTO)です 前回はWebサービスを作るときの企画の部分について書きました (ベンチャー流Webサービスの作り方(企画編))。 今回はWebサービスを作るときの組織作りについて書いてみたいと思います。 僕がウノウに入って始めたのがフォト蔵の開発でした。 当初は開発が僕、ディレクションが代表の山田という二人体制でやってましたが、 組織が大きくなるにつれてだんだんと人数が増えていきました。 現在は僕も山田もフォト蔵からは離れて新しいチームで開発を行っています。 二人体制から始めて、少しずつ人数を増やしていって、 立ち上げメンバーが開発から離れるまでいろいろ経験しながら 自分が感じた事を簡単にまとめたいと思います。 ・最終決断は一人で 何をするのか、戦略はどうするのか、方向性は何なのか、最終的な決断はリーダーが一人で行います。 個人の主張を尊重しすぎて、各々が好きな事を始...

ベンチャー流Webサービスの作り方(企画編)
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

尾藤正人(a.k.a BTO)です 僕はウノウが株式会社化するタイミングでウノウに参画しました。 それ以来はずっと二年半程Webサービスの開発に従事してきました。 ウノウに参画した当初はWebサービスのことは全く分かっておらず、 単なるLinux好きのエンジニアにすぎませんでした。 ウノウ株式会社の創業時に参画することにより、 サービスの企画から開発、運用まで携わることができました。 最初はエンジニアが自分一人だけだっとところから、 現在のように数多くの優秀なエンジニアを抱える企業に成長するまでの組織作りにも関わることができました。 全く経験のないところから始めたので、それこそいろんな失敗を重ねてきました。 そこで今までの経験を元にベンチャーがWebサービスを開発するにあたって気をつけておいた方がいいことをまとめてみます。 Webサービスの開発を始めるには、何はなくとも企画から。 今回は...

Wii対応サイト向けコマンド入力ライブラリ
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

尾藤正人 a.k.a BTO です。 先週末開発合宿に行ってきました。 開発合宿のレポートはまた後日書きますので、しばしお待ちを。 僕は今回の開発合宿でWii対応サイト向けのコマンド入力ライブラリを作りました。 まずはデモをご覧ください。 wii.js デモ 別にWiiでなくても、ちゃんと普通のブラウザでも動作しますので、恐れずにカーソルキーでコマンドを入力してもらえればと思います。 WiiでWebにアクセスしているとパスワードの入力にかなり抵抗を感じます。 通常PCからWebにアクセスするときは一人でアクセスしますが、 Wiiでアクセスするときは一緒にみる事が多いのでパスワードをあまり入力したくありません。 インターネットチャンネルが正式版になってから、 入力した文字が「*」で隠されるようになりましたが、 それでも入力している動作は丸見えです。 そこでコマンドでパスワードが入力できれば...

UNIXデーモンを作ろう
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

20070405コードレビュー posted by (C)フォト蔵 尾藤正人です 先日ウノウの勉強会でUNIXデーモンの作り方についてプレゼンしました。 UNIXのデーモンの仕組みはWebサービスの開発にあたって直接関係の深いトピックではないかもしれませんが、知っておいて損はないと思います。 発表資料と動画を公開しますので、よかったらご覧下さい。 普段は気にしないUNIXデーモンが裏で何をやってるのか、少しでも身近に感じていただければと思います。 発表資料の公開にはちまたで話題のScribdを使ってみました。 プレゼン資料はKeynoteで作ったのですが、PowerPoint形式に変換してアップロードする簡単にできました。 デモ用に実際に動く簡単なデーモンプログラム ccho(シコー) を作成しました。 ccho は前々回の勉強会で行ったGnu Autotoolsで作った bat プロ...

ウノウラボブログが1歳になりました!! - ウノウラボブログを通して思った事感じた事
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

尾藤正人です。 ウノウラボブログの最初のエントリから始まってウノウラボブログもとうとう1歳になりました。 最初は購読者数も少なかったラボブログですが、今では購読者数も増え多くの方に読んでいただけるブログに成長する事ができました。 これもひとえにいつも読んでいただいてる読者の方のおかげだと思っています。 今日はラボブログ1周年を迎えた記念に、この1年を通して感じた事、思った事などをつらつらと書いていきたいと思います。 開発合宿の成果報告場から情報公開の場へ ウノウでは2ヶ月に1回ぐらいのペースで開発合宿に行っています。 当初ラボブログは開発合宿での成果を公開する目的で始めました。 ですが、開発合宿の成果をそうそう頻繁に出すのは難しいのでどうしようかという話になり、だったら開発合宿の成果だけに留まらずどんどん情報を公開していく場にしようということで、エントリを書き始めました。 OSSから影響...

2006年度上期未踏ユース成果報告会に参加してきました
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

尾藤正人です。 2/17-19の三日間に渡って行われた2006年度上期未踏ユース成果報告会に参加してきました。 遅くなりましたが、いろいろ面白い成果物がいっぱいあったので、 今日はそれをレポートしたいと思います。 全て紹介してたらかなりの長文になってしまいました。 1日目 スプラインスキャン法による曲線認識とその応用 スプラインスキャン法というのを用いると線を自然に認識して、線の繋がりや流れも認識できるようになるとか。 OCRへの応用等が考えられているそうです。 採択者はaltpaperという紙ベースのデータを自動で認識するシステムを開発している株式会社情報基礎開発で働いていて、 今回開発システムはaltpaperにも組み込む予定だそうです。Altpaperも未踏の開発成果物の一つです。 FileUtils-URI: ローカルファイルにWebコンテキストを付加するためのライブラリの開発 ...

自己学習で分類精度を向上させるベイジアンフィルタ
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

尾藤正人です。 20070201勉強会_ベイジアンフィルタ posted by (C)フォト蔵 ベイジアンフィルタを自己学習を行う事で文書を高精度にフィルタリングすることができるシステムです。 SpamassassinやPOPFileのようなspamメール振り分けソフトに使用されているのでご存知の方も多いと思います。 ベイジアンフィルタというとspamメールの処理で広く使われているイメージがありますが、 これをwebの世界でも応用してみれば面白いものができるんじゃないかと思っていろいろ開発してたのですが、 結局実現には至りませんでした。 このままではもったいないので、これまで勉強してわかってきたことを勉強会で発表しました。 勉強会の様子の動画と資料を公開します。 bayes.pdf 僕自身専門家ではないので、いろいろ間違ってる部分もあるかと思います。 その時はご指摘いただければ幸いです。...