メイン

2007年11月 9日

Webアプリテスト2008年問題について考える会のお知らせ
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんにちは! やまもと@テスト番長です。

早いものでもう年末が近づいて参りましたね。
家の近所にディスプレー(ショーウィンドウやデパートなどの飾り)の工房があるのですが、今急ピッチでクリスマスツリーを量産しています。

さてさて、唐突ですが皆さんはWebアプリテスト2008年問題ってご存知ですか?
え?聞いたことないですか?それもそのはず、今自分が発案しました。

実は、常々ウノウラボを見てくださっているQAエンジニアの方々と、
皆さんの職場はどんなテストをしているのかとか、使っているツールは?など
直接お話してみたいなーと思っておりまして。
近々、忘年会シーズンに先駆けて一席用意してみようかなと決心した次第です。
ただのオフ会だとなんなので、勉強会風にしようかとお題を考えてみたのが2008年問題の真相です。
勉強するふりをして飲みに出るもっともらしい口実とも言います。

そんなわけで、QAエンジニアを生業になさっている方同士で情報交換など致しましょう。
参加を希望される方は、このエントリにコメントをお願いします。
後日ご連絡差上げますので、メールアドレスをお忘れなく。
もしくは、「やまもと」@unoh.netまでメールください。

日時ですが、2007/11/27(火) 19:30~ を予定しています。
場所はウノウのある渋谷とさせてください。
人数がどのくらいになるのか等全く未知数なので、
詳細については参加希望を募ってから考えさせてください。

それでは、ご参加お待ちしています!


11/19追記:
詳細が決まりました。
1時間ほど軽く勉強会を行ったのち、懇親会を行います。
まだ多少席が残っていますので、ご興味のある方はご連絡ください。

■「Webアプリテスト2008年問題について考える会」
開催日時 2007/11/27(火) 19:30~
場所 ウノウ株式会社 会議室

勉強会の内容
・自己紹介など(10分)
・ウノウ社内見学ツアー(5分)
・2007年のWEBアプリテスト事情を振り返り(やまもと:15分)
・2008年問題についてブレスト大会(大喜利)
#Ustreamで実況または録画してブログで公開する予定です。

懇親会 20:45分頃から
#お店は未定ですが、近所の「テスト済み」で安心できる所を押さえます。

それでは、宜しくお願い致します!


11/27追記:
勉強会の様子はUstreamで実況させていただく予定です。
アドレスはこちらです。
http://www.ustream.tv/channel/qa-meeting

どうぞ宜しくお願い致します。

2007年8月20日

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

尾藤正人(a.k.a BTO)です

大富豪チャット
大富豪チャット posted by (C)フォト蔵

ブラウザだけでネットワーク対戦ゲームができる無料ゲームポータル「プラッシュ」をβ公開しました

プラッシュ

プラッシュの特長

  • ブラウザだけで遊べる
  • ネットワーク対戦ができる
  • Wiiに対応している
  • 無料で遊べる

ブラウザだけで遊べる

プラッシュのゲームは全てブラウザ上で遊ぶ事ができます。 面倒なソフトウェアのインストールはいっさい必要ありません。

ネットワーク対戦ができる

プラッシュのゲームはネットワーク対戦ができます。 オンラインでリアルタイムでネットワーク越しにいろんな人とゲームを遊ぶ事ができます。

Wiiでも遊べる

今話題沸騰中のWiiに完全対応。

無料でゲームが遊べる

プラッシュのゲームは全て無料で遊ぶ事ができます。

プラッシュの仕組み

せっかくラボブログにエントリを書いているので、 少しプラッシュについての仕組みを説明します。

ゲームはFlash7で作る

今回作ったのは大富豪だけですが、ゲームはFlashで作っています。 Flash7で作っているのはWiiのOperaに搭載されているのがFlash7だから。 今後もFlash7でゲームを作っていく予定です。

XMLSocketでゲームサーバと通信する

ネットワーク対戦を行うためには何らかの形でネットワーク通信を行う必要があります。 FlashにはXMLSocketというSocketを直接叩ける仕組みがあります。 そこでプラッシュではXMLSocketを使ってゲームサーバと通信する事でネットワーク対戦を実現しています。 ゲームサーバとの通信はXMLをベースにした独自プロトコルで行っています。

ゲームサーバ

プラッシュ用にゲームサーバを独自に開発しました。 決められたプロトコルに従って、 ゲームサーバ側でゲームの進行やチャットの処理などを行って、 FlashクライアントにXMLベースのレスポンスを返しています。

最後に

ぜひプラッシュでネットワーク対戦ゲームを楽しんでください!!

2007年7月12日

TilePlex脆弱性問題の追跡調査と再開につきまして
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

このたびはTilePlexの脆弱性問題につきましてご心配とご迷惑をおかけし大変申し訳ありません。

追跡調査と再開につきましてウノウ・ホームページの方に掲載いたしましたので、ご覧ください。

2007年7月10日

TilePlex脆弱性発見と対応につきまして
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

ウノウ株式会社代表取締役社長/山田進太郎です。

このたびベータ版としてウノウラボで公開しておりましたTilePlexにおきまして、ユーザー登録されましたユーザー様のメールアドレスなどが取得できる状態になっていましたことをご報告し、深くお詫び申し上げます。大変申し訳ありませんでした。

詳細な経緯と今後の対応などをウノウ・ホームページの方に掲載いたしましたので、ご覧ください。

2007年7月 4日

商品を”つなげる”サイト TilePlexβオープン
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

komagataです。

本日、TilePlexという新しいサイトをオープン(β版)しました。

TilePlexはある商品と関連する商品をひたすらつなげていく不思議なサービスです。ユーザー登録不要で追加していけますので是非試してみてください。

Screenshot-TilePlex%20-%20Mozilla%20Firefox.png

また、Web APIも同時に公開されていますので面白いアイデアを思いついて何か作ってしまった方は100%見に行くのでトラックバック等いただければ幸いです。
(トップページのFlashもこのAPIのみを使って作られています。)

TilePlex:
http://tileplex.jp

TilePlex API:
http://tileplex.jp/top/api

2007年5月29日

Twitterが醸す「今の空気」とフォト蔵の「視覚」のコラボレーション
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんにちは!やまもと@テスト番長です。

先日、ウノウの開発合宿が行われたのですが
今日は、そのとき自分が試作したものをご紹介させていただきます。

巷で話題のTwitterと弊社フォト蔵のAPIを使ったマッシュアップです。

Phoitter

Twitterを流れるコメントの数々とフォト蔵の写真をマッチングさせ、まった~~りと表示するダラ見系コンテンツです。
マッチしている(ようなしていないような)言葉と写真の組み合わせを、イマジネーションを膨らませてご覧いただければと思います。

Phoitter
Phoitter posted by (C)フォト蔵


使い方
基本的に眺めて楽しむだけです。
一時停止したいときは、Pauseボタンを押してください。

ご意見ご要望などございましたら、お気軽にお聞かせください。

2007年4月25日

携帯で使える無料のメーリス「sugu.CC(ベータ版)」を公開しました
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

本日、sugu.CC(ベータ版)を公開しました。
カンタン・メーリス!スグCC

sugu.CC(http://sugu.cc/)は、スグにメーリングリスト(メーリス)が作れるサービスです。

★カンタン

(好きな名前)@sugu.ccと
Cc(To)に追加したい人のメールアドレスを入れて、
メールを送ると、スグ、メーリスのできあがりです。

★メーラだけで作れる

携帯で使うことをメインに据えていますので、シンプルでわかりやすく、使いやすいことを目的に、メーラだけで作れるようになっています。

★メンバなら、誰でも追加できる

webで作成・管理など、手間がかかることは一切ありません。
そのため、管理人などの仕組みもありませんので、
管理人に連絡して、管理人が追加。という面倒な手順もありません。

★携帯で使いやすい

携帯特有の機能については、
・デコメール・デコメ絵文字にも対応しています。(端末が対応している場合)
・auから送られてくるメールの絵文字に対応しています。
部活・サークル・飲み会の連絡など、
グループでの手軽な連絡手段としてお使いいただければと思います。
※注 なりすましメールを拒否している方は解除してからご利用下さい

以下のQRコードから携帯サイトにアクセスして下さい。
カンタン・メーリス!スグCC
QRCode by MOJI-Q

2007年4月 1日

[April Fool]ウノウラボの名称変更と新サービス開始について
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんばんは、naoya です。
ウノウラボは、やっと無事一周年を迎えて一歳になりました。
さらにその上、本日ウノウ株式会社があのムノウ株式会社に買収されることが発表されました。詳しくは、プレスリリースをご覧ください。

この買収に伴い、ウノウラボという名称ではあわないということで、ウノウラボもムノウラボに装いも新たにリニューアルいたしました。

なお、ムノウラボは、ムノウエンジニアが大小のアウトプットを行う場として情報を配信していきますので、今後も期待してください。

今後ともムノウラボをよろしくお願いいたします。

4月2日追記

エイプリルフールネタです。

[April Fool]「フォト蔵」から学ぶ効率のよいマルチスレッド処理と自社サーバのススメ
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

ムノウラボをご覧の良い子の皆様、こんにちは。

以前フォト蔵サーバをホスティング業者から自社サーバに移民させたことは記載せていただいたと思いますが、今回はフォト蔵サーバ内でどういう処理を、どう効率よく進めているか?を写真を交えながらご紹介したいと思います。

非常に高効率なマルチスレッド処理なので、サーバ構築の際は是非参考にしてみてください。

まず、処理のノウハウに先だちまして、フォト蔵のサーバをホスティング業者から自社サーバに移民させた理由を説明します。

【移民させた理由】

  1. マシンの増員に時間がかかり、フレキシブルに対応できない
  2. フォト蔵のような写真系のサービスの場合、十分広い暗室を確保する必があるが、暗室を確保するにはコストがかかる。
  3. フォト蔵のような写真系サービスの場合、大容量の現像液・現像停止液必要になるが、大容量の現像停止液を搭載したマシンは酢酸臭くなり、ホスティグ業者に迷惑がかかる。

とにかく、自社サーバにしてから処理速度の向上と、高効率なマルチスレッド処理を、低コストで実現する事ができました。そのノウハウを写真を交えながらご案内します。

まずはサーバルームの写真から紹介しましょう。

サーバルーム
サーバルーム posted by (C)モロ蔵

サーバは熱を発するため、サーバルームは常に熱気ムンムン。クーラーでは追いつかないため、扇風機も常時動かしています。サーバ内部はさらに暑いです。時折、サーバから出てしっかりとすずまないと理性がなくなります。温度は常に監視し、緊急時には外へ出す事が処理速度をはやめる秘訣です。

次はサーバ内部の様子です

サーバ内部
サーバ内部 posted by (C)モロ蔵

主に写真の現像、アルバムへ保存する作業をしています。暑さと酢酸の刺激臭と戦いです。流れ作業ではなく、各自が自主的に仕事を探し、処理を行っています。人数分だけマルチスレッド処理が可能になり、非常に効率があがりました。また、写真にこだわりをもったサーバなので、写真のチェックは常に2人がかりです。

最後は動画のエンコード処理、熱暴走手前の状態です。

動画のエンコード処理
動画のエンコード処理 posted by (C)モロ蔵

動画のエンコード中です。動画のエンコードは非常に高負荷な処理のため、CPUの熱が急上昇します。理性がなくなったサーバがいますが、この後外に出してすずませます。常に監視をしておく必要があり、手間がかかりますが、彼らのおかげで処理速度は以前に比べてはるかに向上しました。

今回はサーバ構築にあたってかなりコアな部分を書きました。精神面でもいろいろ工夫をしていますので、それについてはまた後日書きたいと思います。

なお、非常に残念ではありますが本日ウノウ株式会社がムノウ株式会社に買収されたため、今後はムノウラボとして活動していきます。

4月2日追記

エイプリルフールネタです。

[April Fool]プチプチAPI
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

Keitaです。

新規サービスのプチプチAPIを公開いたしました。

プチプチAPI

弊社ではかねてより、Webのバックエンドとして、現実社会の仕組みを動作させる研究を行っておりその結実ともいえるのが本サービスとなります。本サービスを使うことにより、ムノウ株式会社のスタッフをプチプチに集中させ、ムノウ株式会社に対してDoSを行うことが可能となります。

エアパッキンの粒をつぶすことは、万国共通であり。
たぶん、ノーベル賞(癒し系部門)も目じゃないと思います。

これで、とりあえず、国内はもとより、世界中で、暇をもてあましている人がぷちぷちを、家にいながらにしてつぶすことができます。

4月2日追記

エイプリルフールネタです。

2007年2月26日

ThinkITでPHP開発手法の連載の第6回目が掲載されました
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんにちは、hideです。

ThinkITでPHP開発手法の連載 第6回目が掲載されました。ウノウで採用している「Trac」のインストール方法と活用事例について説明していますので、興味のある方はお時間のある時にでも見て頂ければ幸いです。

第6回:BTS(Bug Tracking System)の利用

2007年2月18日

Web2.0サービスのデザイナーになるということ
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんにちは、Sashaです。

IA (Information Architecture)系で重要サイトであるBoxes and Arrowsの記事の前半部分にこんなくだりがありました。

【要約】サイトリニューアルで、一般のデザイナーからデザインを公募しました。世界中からそれはそれはすばらしいデザインが集まってきて、公正な選定により、採用されるデザインが決定しました。きれいで、クリエイティブで、かっこいいデザインでした。にもかかわらず、私たちはこのリニューアルが失敗であったと反省しています。それはなぜでしょう。

結局のところ、
・ユーザーさんにサイトをどのように使ってもらいたいか
・ユーザーさんに何を、どのように伝えたいか
・ユーザーさんの声を、どのように受け止めるか
を『真剣に』考えているのは、サイトを開発している私たちしかいないのです。

デザイナーは、上記のような『作る人のキモチ』を代弁することができなければなりません。そのキモチを代弁することができるのは、まさにサイトを開発しているメンバーの他にいないのです。どんなに腕のいい外注さんでも、この事実を覆すことができないのです。...続く。

さて、なぜこんな話をしていると思いますか?ズバリ...

ウノウでは、デザイナーさんを大募集中!

なのです。

デザイナーならクリエイティブなデザイン・スタジオで働いてみたいと思うものです。そのキモチ、筆者はよくわかります。プログラマーが、プログラミングのことを理解し切磋琢磨できる畑で活躍したいと願うのと同様に、デザイナーはデザインを理解し切磋琢磨できる畑で活躍したいものです。

デザイナーである筆者が8ヶ月ほど前に転職活動で選択したのは、デザイン系受託制作会社ではなく、あえて、スーパーなプログラマーたちのそろう、Webサービスを自社開発する会社(=ウノウ)でした。今ウノウでデザイナーさんを募集するにあたり、自分の体験を踏まえてデザイナーがWebサービスを自社開発する技術系の会社で働くことの意義をご説明したいと思います。


(1)本当の意味でユーザーのためのサイトを作ることができる

企業のサイトを制作するのが、受託制作の基本ですよね。受託では、あなたのデザインで本当に喜ぶのも、あなたのデザインに文句をつけるのも、実際に使う・見るエンドユーザーさんたちではありません。あなたのデザインによって利益がもたらされる発注企業です。ウノウでは、デザインでユーザーさんを喜ばせることが、あなたの仕事になります。

(2)作りたいものを作れる土壌がある

自社開発系のウノウでは、社員が「欲しい!」と思ったものを作ることが、事業の基本です。プログラマーであっても、デザイナーであっても、作りたいもののアイデアは平等に降ってきます。そのアイデアを、形にできる制度と可能性が、ウノウには整っています。こういうの作りたかったけど、プログラミングできないから・・・とあきらめたりしていませんか?アイデアが社内の凄腕エンジニアをインスパイアすれば、きっと協力してくれるに違いありません。

(3)凄腕エンジニアに学べる

上記のような会社なので、凄腕のエンジニアたちが後から後から入社してくるのがウノウです。その辺のデザイン・ファームにはいない人種です。そんなに本腰入れてプログラミングが出来るようになりたいと思っているわけではなくても、技術的なことをある程度理解している、していないの違いは、あなたのデザイナーとしてのキャリアパスに大きく影響するはずです。

(4)毎日使えるデザイン、という挑戦がある

Webサービスは、万人が日々使い、何度でも戻ってくることを前提に作られます。デザインは、「使うもの」という点でアートとは全く性質の異なるものですよね。使いたいと思うものを、使いたいところに、使いたい気を促進する形で置いて行く。毎日使うものだから、デザイナーに課される挑戦は、とても大きいのです。やりがいも、得るものも、大きいのです。


こういう意義をしっかり見据えてウノウにデザイナーとして参加された場合にあなたに着いてくるであろうデザイナーとしての付加価値は、今後のキャリアにきっと大きなインパクトを与えると私は思います。そう信じているから、私もがんばっています。

ちょっとでも「ウノウ入りたい!」と思った方は、ぜひ求人ページから応募してみてください。お待ちしてます!

2007年2月 5日

ThinkITでPHP開発手法の連載の第五回目が掲載されました
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんにちは! やまもと@テスト番長です。

ThinkITで、ウノウの開発者によるPHP開発手法の記事をご紹介させていただいてます。

本日、自分の担当分である
複数人での開発におけるテストの勘所が、掲載されました。

お時間の空いた時にでも、ご一読頂ければ幸いです。
宜しくお願い致します。

2007年1月15日

ウノウの開発合宿がワールドビジネスサテライト(テレビ東京)で放送されます。
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

SANY0002 posted by (C) フォト蔵さんの動画

先週末にウノウで行った開発合宿をテレビ東京さんに取材していただきました!!
放送予定は次のようになります。

1/22(月) 23:00 ワールドビジネスサテライト(テレビ東京)

是非ご覧ください!!

2007年1月 1日

新年あけましておめでとうございます
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

nenga2007ss
nenga2007ss posted from フォト蔵

今年もよろしくお願いします。

2006年12月20日

五反田人がウノウの本棚で見つけた三冊の書籍紹介。
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

今月入社のgotandajin@待っていたよアンダーソン君。です。
テスターとして採用されましたが、まだまだ全然見習いでして、モーフィアス番長に日々ビシバシ鍛えられております。よろしくお願いします。

さて、unohのオフィスにはこんな感じの小さな本棚があるのですが、

CIMG0418.JPG
CIMG0418.JPG posted by (C)フォト蔵

ITベンチャーらしくIT系の技術書はもちろんのこと、新書や雑誌、ホットペッパーなど色々置いてあります。
そして今回は本棚の中にあったもののうち、最近ご献本頂いた3冊ほどをピックアップしてご紹介させて頂こうと思います。


それでは早速。

まずは、高林哲さんから頂いたBinary Hacks ―ハッカー秘伝のテクニック100選です。

Binary Hacks ―ハッカー秘伝のテクニック100選
高林 哲 鵜飼 文敏 佐藤 祐介 浜地 慎一郎 首藤 一幸
オライリー・ジャパン
売り上げランキング: 477

「カユいところに手の届く良書です。
例えば#78「シグナルハンドラからプログラムのコンテキストを書き換える」は、私が以前調べて結局分からず終いだったテクニックでした。
UNIXのシグナルを扱った書籍、Webサイトは数多くありますが、ここまで深く掘り下げて解説しているものはまず見つからないでしょう。」
~~某U社スタッフhiracchiさん談~~



次に、有限会社アートライの坂井恵さんから頂いた超・極める!MySQLです。

超・極める!MySQL
超・極める!MySQL
posted with amazlet on 06.12.21
坂井 恵 志村 和彦 ひろせ まさあき 松信 嘉範
翔泳社
売り上げランキング: 11762

「この本が出た時点では、たぶん、MySQLについての最もフレッシュでマニアック、かつ実践的な内容が載っている本です。
MySQLを使おうとする人は、自分の知らなかったことが書かれてあったりすることも多いかと思うので、一回は読んでおくといいと思います。
個人的には、最近では資料がそろってきた文字コード関連の問題についての記事が参考になりました。」
~~某U社スタッフkeitaさん談~~



最後に、サイボウズラボの秋元裕樹さんから頂いたPHP×WebサービスAPIコネクションズです。

PHP×WebサービスAPIコネクションズ
秋元 裕樹
ソフトバンククリエイティブ
売り上げランキング: 9691

「これからPHPでAPIを扱いたい、また、マッシュアップ的なシステムを構築してみたいと考えている人にとっては有益だと思います。
APIに関しての基礎知識的なものについての記述が多いですし、
サンプルコードを使って、諸API(AmazonWebサービス、del.isio.usAPIs、livedoor番組表、YouTubeデベロッパーAPIなど、全26種と多彩)との連携について、サンプルコードを交えて実例解説してくれているのでAPI初心者にとってはとっつきやすいと思います。」
~~匿名neo氏談~~



・・・と、どれも必携の良書ですね!
本屋さんにお立ち寄りの際は是非手にとってみてください。

今回ウノウラボ初の試みとして、ご紹介した3冊の本のアフィリエイトを貼ってみました。
といっても営利目的ということではなくて、もし収入があれば
社外に対して還元できる形で、面白いことできないかな?とみんなで話しています。
例えばunohが普段使っているオープンソースプロジェクトへの寄付金に充てたりすると良さそうですよね!

実際に行動することが出来た時は、またここで皆さんにご報告させていただきますね。

2006年12月 8日

ウノウラボをリニューアルしました!
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加


こんばんは! やまもと@テスト番長です。

ウノウラボをリニューアルしました!
デザインの変更と共に、記事の著者が判るようにしてみました。

今後ともウノウラボを宜しくお願い致します。

#ご協力頂きましたSashaさん、naoyaさん、ありがとうございました!

2006年12月 6日

ThinkITでウノウエンジニア陣によるPHP開発手法の連載が始まりました。
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

尾藤正人です。

ThinkITでウノウエンジニア陣によるPHP開発手法の連載が始まりました!!
暇なときにでも読んでいただければと思います。

第1回:複数人による開発の要所を押さえる

2006年9月14日

中元さん、平島さん(@マイネット・ジャパン)ウノウに出張オフィス
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

中元さんと平島さん(マイネット・ジャパン)
中元さんと平島さん(マイネット・ジャパン) posted from フォト蔵


akano です。

今日はソーシャルニュースサイトnewsing(ニューシング)を運営している株式会社マイネット・ジャパンさんより、中元さんと平島さんが出張オフィスでウノウに来社されました。


いつも社員が行っているようにお二人にもフリーアドレス、デュアルモニタの環境にて作業を行っていただきました。が、平本さんは一歩進んでWin & Mac のデュアルマシンを実践!! 私自身マカーなので、その作業風景を大変興味深く見せていただきました。自宅に戻ったら眠っているThinkPadを叩き起こそうと思います。


マイネットニュースさんは今年の7月に創業された大変若い会社です。ですがインターネットサービスに関わるおもしろな人々で集まって、楽しく熱を帯びてサービスやビジネスの発想を広げたり、あわよくばパートナーを見つけたりする「創発的ビアガーデン」を開催(弊社代表の山田も参加しました)という、とても面白い試みをされています。運営されているnewsingはウノウのサイト研究にも取り上げさせていただきました。

また、newsingの開発にはPHPのフレームワークEthnaを採用されていらっしゃるとのことで、Ethnaのお手伝いをしている弊社の個々一番=keitaは夜の飲み会を楽しみにしているようです。

ソーシャルニュースサイトというウェブサービスは、アメリカ(英語圏)ではDiggが積極的にサービスを行っていますが、日本ではSNS(mixiなど)やソーシャルブックマーク(はてブなど)、写真共有サイト(フォト蔵など)ほど定着したサービスはまだありません。この大変若い会社がこの分野をどう開拓し日本の文化に定着させていくか、今後の発展が見ものです。

夜の飲み会はお二人以外も駆けつける、とのこと!

2006年8月31日

YouTubeの動画を携帯で見れる Melovie 公開しました
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

尾藤正人です。

前回の開発合宿で YouTube の動画を携帯用に変換するサービス Melovie を作成しました。

Melovie

Melovie で YouTube の動画の URL、携帯機種、携帯メールアドレスを入力すると変換した動画の URL がメールで送信されます。
その URL に携帯からアクセスすると YouTube の動画が見れるようになります。

ぜひお試しください!!

2006年8月11日

サルガッソーさんウノウに訪問オフィス
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

サルガッソーの鈴木さん
サルガッソーの鈴木さん posted from フォト蔵

尾藤正人です。

サルガッソーの方がウノウに訪問オフィスで来てくれました。

朝10時頃に来社。
ウノウはフリーアドレスなので、好きな席に座って普通に仕事してもらってます。
ランチは近くのカフェで一緒に。
17時からサルガッソーさんが開発している SARGASSO XM という会議支援ツールの紹介をしてもらいました。

SARGASSO XM をその場で議事録をみんなと共有できて、会議で決まったことがすぐに担当者に ToDo として割り当てられるようになるので、会議で決まったことがあいまいにならずにすぐに実行に移せることができるようになります。
テストアカウントをもらったので、ウノウでも早速使ってみようかと思ってます。

夜は有志で飲み会!!

2006年8月 7日

ベンチャー流サーバ構築のススメ(同期ツール編)
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

ダイエット中で炭水化物の量が気になる尾藤正人です。

前回のエントリベンチャー流サーバ構築のススメ(ソフトウェア編)では、主にOS周りのことについて書きました。複数台のサーバを管理するのに重要なのは極力構成を同じにすることです。そうすることで管理コストが大幅に下がります。

以前Klabさんのサーバ管理者向け無精のすすめ ~ちょっと便利なツールの紹介~というエントリで同期ツールの紹介がありましたが、ウノウでも同じような感じの独自ツールを作って同期をとっています。今回はこの同期ツールの紹介をしたいと思います。

僕が shell scripter ということもあってスクリプトは全て sh で。zsh の特殊な記法が使いたかったので zsh で書いています。

凡例

全てのコマンドは最後に対象とするホスト名を指定します。all というは特殊な指定で全てのサーバに対してリクエストが送られます。

共通関数

全てのスクリプトから読み込まれる共通関数です。

function absdirname()
{
        local dir=`dirname $1`
        if [ "x$dir" = "x." ]; then
                dir=$PWD
        elif ! echo $dir|grep '^/' > /dev/null; then
                dir=$PWD/$dir
        fi
        cd $dir
        echo $PWD
}

function absfilename()
{
        local dir=`absdirname $1`
        if [ "x$dir" = "x/" ]; then
                dir=""
        fi
        echo $dir/`basename $1`
}

function get_servers()
{
        local servers i=1 max=12
        while [ $i -le $max ]; do
                servers=(${servers[@]} "s$i");
                i=`expr $i + 1`
        done
        echo ${servers[@]};
}

dir_diff.sh directory host

ディレクトリ以下にあるファイルの diff を表示します。zsh の "<()" という記法を使ってます。これを使うと標準出力をファイルのように扱えて直接 diff に渡せるので便利です。

#!/bin/zsh
source `dirname $0`/sh_functions
PROGRAM_NAME=`basename $0`

function usage()
{
        echo Usage: $PROGRAM_NAME directory host
        exit $1
}

function _dir_diff()
{
        if [ -z "$1" -o -z "$2" ]; then
                echo "Lack of arguments" 1>&2
                return 1
        fi

        local source=`absfilename $1`
        diff -u <(ssh root@$2 find $source|sort) <(sudo find $source|sort)|grep '^\(+\|-\)'
}

# check arguments
if [ -z "$1" -o -z "$2" ]; then
        usage 1
fi

if [ "x$2" != "xall" ]; then
        _dir_diff $1 $2
        exit $?
fi
for host in `get_servers`; do
        echo ++++++++++++++++++++++++++++++++++++++
        echo + diff from $host
        echo ++++++++++++++++++++++++++++++++++++++
        _dir_diff $1 $host
        echo
done

rpm_diff.sh host

rpm パッケージの diff を表示します。サーバ間でパッケージの過不足がないかどうか確認するのに使います。

#!/bin/zsh
source `dirname $0`/sh_functions
PROGRAM_NAME=`basename $0`

function usage()
{
        echo Usage: $PROGRAM_NAME host
        exit $1
}

function _rpm_diff()
{
        if [ -z "$1" ]; then
                echo "You must specify a host name" 1>&2
                return 1
        fi

        diff -u <(ssh root@$1 rpm -qa|sort) <(rpm -qa|sort)|grep '^\(+\|-\)'
}

# check arguments
if [ -z "$1" ]; then
        usage 1
fi

if [ "x$1" != "xall" ]; then
        _rpm_diff $1
        exit $?
fi
for host in `get_servers`; do
        echo ++++++++++++++++++++++++++++++++++++++
        echo + diff from $host
        echo ++++++++++++++++++++++++++++++++++++++
        _rpm_diff $host
        echo
done

xdiff.sh source host

ファイルの diff をとります。設定ファイルがちゃんと同期されてるかどうか確認したりするのに便利です。

#!/bin/zsh
source `dirname $0`/sh_functions
PROGRAM_NAME=`basename $0`

function usage()
{
        echo Usage: $PROGRAM_NAME source host
        exit $1
}

# check arguments
if [ -z "$1" -o -z "$2" ]; then
        usage 1
fi

if [ "x$2" != "xall" ]; then
        _xdiff $1 $2
        exit $?
fi
for host in `get_servers`; do
        echo ++++++++++++++++++++++++++++++++++++++
        echo + diff from $host
        echo ++++++++++++++++++++++++++++++++++++++
        _xdiff $1 $host
        echo
done

xexec.sh command [options ...] host

host で指定されたサーバでコマンドを実行します。ライブラリが更新されたときに一気に全サーバで ldconfig 実行したりとか、他にもいろいろ使えます。

#!/bin/zsh
source `dirname $0`/sh_functions
PROGRAM_NAME=`basename $0`

function usage()
{
        echo "Usage: $PROGRAM_NAME command [options ...] host"
        exit $1
}

function _xexec()
{
        if [ -z "$1" -o -z "$2" ]; then
                echo "Lack of arguments" 1>&2
                return 1
        fi

        ssh root@$2 $1
}

# check arguments
if [ -z "$1" -o -z "$2" ]; then
        usage 1
fi

host=
command=
while [ -n "$1" ]; do
        command="$command $host"
        host=$1
        shift
done

if [ "x$host" != "xall" ]; then
        _xexec $command $host
        exit $?
fi
for host in `get_servers`; do
        echo ++++++++++++++++++++++++++++++++++++++
        echo + execute $command on $host
        echo ++++++++++++++++++++++++++++++++++++++
        _xexec $command $host
        if [ $? -ne 0 ]; then
                echo "Failed to execute on $host" 1>&2
                exit $?
        fi
        echo
done

xrsync.sh source host

その名の通り rsync します。ファイルを一斉にシンクロするのに便利です。

#!/bin/zsh
source `dirname $0`/sh_functions
PROGRAM_NAME=`basename $0`

function usage()
{
        echo Usage: $PROGRAM_NAME source host
        exit $1
}

function _xrsync()
{
        if [ -z "$1" -o -z "$2" ]; then
                echo "Lack of arguments" 1>&2
                return 1
        fi

        local opts source host
        while [ -n "$1" ]; do
                opts="$opts $source"
                source=$host
                host=$1
                shift
        done

        local source=`absfilename $source`
        local destination=`dirname $source`

        local opts="-auvz -e ssh $opts"
        eval sudo rsync $opts $source root@$host:$destination
}

# check arguments
if [ -z "$1" -o -z "$2" ]; then
        usage 1
fi

host=
arguments=
while [ -n "$1" ]; do
        arguments=(${arguments[@]} $host)
        host=$1
        shift
done

if [ "x$host" != "xall" ]; then
        _xrsync ${arguments[@]} $host
        exit $?
fi
for host in `get_servers`; do
        echo ++++++++++++++++++++++++++++++++++++++
        echo + rsync to $host
        echo ++++++++++++++++++++++++++++++++++++++
        _xrsync ${arguments[@]} $host
        if [ $? -ne 0 ]; then
                echo "Failed to execute on $host" 1>&2
                exit $?
        fi
        echo
done

xscp.sh source [source ...] host

こっちは scp 版。ちょっとしたファイルを同期したときに便利。

#!/bin/zsh
source `dirname $0`/sh_functions
PROGRAM_NAME=`basename $0`

function usage()
{
        echo "Usage: $PROGRAM_NAME source [source ...] host"
        exit $1
}

function _xscp()
{
        if [ -z "$1" -o -z "$2" ]; then
                echo "Lack of arguments" 1>&2
                return 1
        fi

        local sources host
        while [ -n "$1" ]; do
                sources=(${sources[@]} $host)
                host=$1
                shift
        done

        local opts="-pr"
        local source destination
        for source in ${sources[@]}; do
                source=`absfilename $source`
                destination=`dirname $source`
                eval sudo scp $opts $source root@$host:$destination
        done
}

# check arguments
if [ -z "$1" -o -z "$2" ]; then
        usage 1
fi

host=
sources=
while [ -n "$1" ]; do
        sources=(${sources[@]} $host)
        host=$1
        shift
done

if [ "x$host" != "xall" ]; then
        _xscp ${sources[@]} $host
        exit $?
fi
for host in `get_servers`; do
        echo ++++++++++++++++++++++++++++++++++++++
        echo + scp to $host
        echo ++++++++++++++++++++++++++++++++++++++
        _xscp ${sources[@]} $host
        if [ $? -ne 0 ]; then
                echo "Failed to execute on $host" 1>&2
                exit $?
        fi
        echo
done

まとめ

サーバ間の同期を取るためにウノウで導入しているツール群を紹介しました。こういう細かいツールを最初に作っておくと、作業が効率よく進み非常に楽になります。ぜひ、みなさんの環境でも導入してみてはいかがでしょうか。

何回か続けてきたベンチャー流サーバ構築のススメですが、おかげさまでみなさんから多くのトラックバック、コメント、ブックマークをいただきました。今回で大体サーバ構築に関するトピックは網羅したかと思います。何かありましたら、トラックバックなりコメントなりをいただければ幸いです。