サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
blogs.ricollab.jp
初めまして、リコーの沖田です。この度私もこの blog を書くことになりました。以後よろしくお願いいたします。 みなさんテストは好きですか?私も含めて私の同僚は皆テストが大好きなので、しばしばテストの議論で白熱しすぎてしまいます。今日はそのテストの中から Mock(モック) と Stub(スタブ) について書いてみたいと思います。 Test Double まずテストにおける Mock と Stub についてですが、これらは Test Double という概念の一部です。Double とは代役という意味で、テスト対象となるシステムが依存する外部のコンポーネントの代わりに、それらしく振舞ってくれるコンポーネントを代役として利用しようということです。 例えば Web アプリの Controller の単体テストがしたい場合に、Model の実装が完了するまでテストができないっていうのでは大変です
基本編 まず基本として、環境変数 http_proxy にプロキシの URL を指定します。 bash や zsh を使っている場合は .bashrc、.zshrc に以下の行を書いておきます。 export http_proxy=http://foo:bar@proxy.example.com:8080 これで wget、curl や Plagger は OK です。例外設定は NO_PROXY ですね。ただ、wget は NO_PROXY には対応していないようです。 yum 編 /etc/yum.conf 内で proxy を設定します。(次の一行を追加します) proxy=http://foo:bar@proxy.example.com:8080/ 最後の / は、付けないと動かなかったことがあるので付けておきました。現象の再現ができていないため、詳細はわかっていないのですが。
こんにちは。リコーの井上です。今回から私もこのブログを書かせていただくことになりました。よろしくお願いします。 今回はMySQL Proxyについて書きたいと思います。MySQLを利用していると、WebアプリケーションなどのMySQLクライアントからサーバに送られるクエリを解析したい場合があります。あるいは、複数のMySQLサーバに処理を振り分けたいということがあります。 MySQL Proxyはその名の通り、MySQLクライアントとMySQLサーバの間に入って、接続やクエリで取り交わされるデータを参照・加工して、いろいろと役立つことをさせようというものです。動作内容は軽量スクリプト言語Luaにより柔軟に記述できますが、機能的制限もあります。 このエントリではMySQL Proxyとはどういうものか、どういうことができそうなのか、できないのかということを感じ取っていただければと思っています
こんにちは、濱田です。 前回から時間が経ってしまいましたが、今回は「性能検証編」ということで、パーティションドテーブルに対して実際にデータを挿入・参照することでパーティショニングの性能面を検証してみようと思います。 性能検証環境 使用したマシンのスペックは以下の通りです。 OS CentOS 5.3 32bit (on Windows XP Pro SP3 32bit via VMware Server 2.0.0) CPU Core2 Duo E8300 2.83GHz (VMには1CPUを割り当て) Memory 3.25GB (VMには512MBを割り当て) MySQL のバージョンおよび設定は以下の通りです。なお、MySQL サーバおよびクライアントは同一マシン上で動作させました。 MySQL 5.1.35-community (設定は my-medium.cnf をそのまま使用)
初めまして、リコーの濱田です。このたび私も本ブログを担当することになりました。今後ともよろしくお願いいたします。 本エントリではデータベースに関する技術トピックとして、MySQL 5.1 から導入された機能であるパーティショニングについて書こうと思います。少し長くなりそうなので、「基本知識編」「性能検証編」の2回に分けて書くことにします。 今回は「基本知識編」として、パーティショニングの概要と基本的な使い方について紹介します。 パーティショニングの概要 パーティショニングとは、事前に設定されたルールに従ってデータをパーティションと呼ばれる部分的なテーブルに分割する仕組みです。 データ挿入時には、設定ルールに従ってデータが該当するパーティションに自動的に振り分けられます。データ参照時には、オプティマイザがクエリから必要なパーティションを判断し、該当するパーティションのみにアクセスします。これ
はじめまして。リコーの梅原です。今回から私もブログを書くことになりました。宜しくお願いします。私の一つ目のエントリーは、Androidについて書こうと思います。 Android携帯 国内初のAndroid搭載端末HT-03Aが2009年7月にNTT docomoから発売されました。皆様ご存知でしょうか? 海外でもMotorola CLIQ、HTC Hero、LG-GW62等の端末が続々とリリースされていて、最近ではDellもAndroid搭載のスマートフォンを発売すると報道されています。Android端末が世界中で増えつつありますね。 実は私もHT-03Aの購入者の一人なのですが、携帯電話の変更連絡を友人や家族にしたときに、多くの人から「何それ?」と言われてしまいました。いやいや、これは今までに無い素晴らしい携帯電話なんです。 今回は、私が感じたAndroid携帯の魅力を3つに絞って皆様に
XHTML2は残念なことになってしまいましたが、HTML5にしろフィードにしろ、XML構文が重要なことにはかわりのない昨今みなさんいかがお過しですか。ずいぶんとエントリの間隔が空いてしまって申し訳ありません。 さて、XMLの出力には to_xml()のようなメソッドを呼ぶ RubyのBuilderのようなDSLを使う テンプレートエンジンを使う 手書き などの方法が考えられますが、今回の本題はこれらの方法によって生成される最終的なXML文書(インスタンス)はどう表現されるべきか、についてです。 エンコーディングはUTF-8で これはもう説明不要ですね。UTF-8が処理できない環境というのは本当に少くなりました。モバイルや組込み等でどうしても対応できない場合以外はUTF-8を使うのが望ましいと思います。 実体参照の件 実体参照というのはXML内で文書の一部に名前を付けて再利用する仕組です。た
お久しぶりです、日野原です。引き続き MogileFS の話題です。 と言っても前回の続きで開発環境上での話ではなく、サーバに MogileFS を入れていこうと言う話になります。 そこで MogileFS についてちゃんと調べ始めると、「Learning MogileFS」という資料の「mysql database cluster」のところになんと「その名の通りNDB Cluster推奨」と書いてあるではありませんか。 というわけで今回は MySQL の NDB Cluster を 3 台の CentOS 5.2 のマシンにセットアップします。NDB Cluster 自体の説明はThink ITの記事などいろいろとあるので、参考にしてください。 インストールにはrpm 形式で配布されているバイナリを使います。(CentOS 5.2 なので Red Hat Enterprise Linu
日野原です。 週をまたいでしまいましたが、先週末にlivedoor主催のテクニカルセミナーに参加してきました。 検索するとすでにいろいろな方のレポートが見つけられますね。月曜日は別に片付けなくてはいけない仕事があったので相当出遅れてしまいました。やっぱり週末に清書しておけば良かったかと反省しております。…いや、休日に仕事しちゃいけません。ああ悩ましい。 ということで、あまり遅くなってもつまらないのでセミナー中に取っていたメモを整形だけしてスピード優先で掲載します。 後日発表資料が公開されたら、資料と一緒に見ていただけるとよりわかりやすいかと思います。 なお、私が聞いて解釈したとおりに書いているので、間違ったことが書いてあっても発表内容が間違っていたとは限りませんので察してください。指摘をいただけるとさらに幸いです。 セミナーは社員の方の発表はバックエンドの話が中心で、非常におもしろ
さて、このシリーズも今回で最後です。遅れに遅れて申し訳ありません…ちなみに昨年の12/22付けで仕様書が改訂され、私が指摘したところが直っていました。どうもありがとうございます>中の人 最後は設計編です。 今回、私がはてなダイアリーAtomPubの仕様を見ていて、設計面で疑問に思ったのは次の2点です。 X-HATENA-PUBLISH HTTP ヘッダ エントリ文書の対称性 以下ではそれぞれについて具体的に検討してみます。 X-HATENA-PUBLISHヘッダ いくつかのブログでも指摘されていますが、はてなダイアリーAtomPubではapp:draft 要素を利用しません。 はてなダイアリーAtomPub仕様書によると、以下のような理由があるそうです。 はてなダイアリーAtomPubでは、AtomPubで規定されているapp:draft要素を使用しません。はてなダイアリーでは日記エントリ
お久しぶりです、日野原です。 読者の皆さんは山本のレビューの設計編を楽しみにしていらっしゃると思いますが、彼は最近何やら忙しく飛び歩いていて、ここの記事を書く時間がとれそうにないのでもう少々お待ちください。 私はこの3ヶ月の間にまたプロキシの設定をしなければいけないケースに遭遇したので追記しておきます。 今回もプロキシの情報は同じとします。 ホスト proxy.example.com ポート 8080 ユーザ foo パスワード bar sudo 編 まず、前回基本編で挙げた export http_proxy=http://foo:bar@proxy.example.com:8080 ですが、これの適用範囲が広がりました。 rubygems編で「sudo では環境変数を引き継げない」と書いてしまったのですが、これは私の無知で、実は設定で引き継ぐ環境変数を指定できることがわかりました。 設
その1を公開してからだいぶ時間が経ってしまいましたが、その2を公開します。今回はドキュメンテーション編です。 レビュー対象ははてなダイアリーAtomPubの仕様書です。普段私が業務で仕様書をレビューするときに気をつけている観点をご紹介しながら、いくつか指摘をしてみます。 なお、レビューの指摘はどうしても細かくなってしまうので、粗探し的と感じられてしまうかもしれませんが、技術的な完成度を上げるためには必要な作業なのでご容赦ください。 基本的な文章チェック まず、仕様書に記述されている文章の「てにをは」や文法レベルでのチェックをします。表記ゆれなども含まれます。 今回の仕様書は、たとえば以下のような記述がありました。 「ヘッダ」と「ヘッダー」、「XML文書」と「XML文章」、「はてなID」と「はてなアカウントのid」などの表記ゆれ。document に対する訳語は通常は「文書」を用います 「~
はてなさんがダイアリーのAtomPubインターフェースをリリースしていました。 私は AtomPub が大好きなので、少しだけ試してみました。簡単にレビューを書こうと思ってエントリを起したのですが、意外と長くなりそうなので3部構成でお送りします。まずは実装編です。 認証 とりあえず普通のGETリクエストをサービス文書に送ってみます。http://d.hatena.ne.jp/{hatena-id}/atom がサービス文書の URI です。 GET http://d.hatena.ne.jp/yohei/atom HTTP/1.1 Accept: */* Host: d.hatena.ne.jp HTTP/1.0 401 Unauthorized Date: Fri, 19 Sep 2008 07:00:10 GMT Server: Apache/2.2.3 (CentOS) WWW-Au
こんにちは、日野原です。 Google のブラウザ、「Google Chrome」が発表されてダウンロードできるようになりましたが、社内でインストールしようとしてみたところプロキシ認証に対応していないらしく、インストールに失敗してしまいました。プロキシ自体には対応しているようなので、ローカルプロキシを立てて認証を任せてあげればインストールできるようです。 と言うわけで今日はプロキシ認証についてです。 自宅で趣味のプログラミングをしているときなどは良いのですが、会社で何かをしようとするとこれのせいではまることがとっても多いので、同じような悩みを持っている人達のために情報をまとめておこうと思います。 ただし、基本的にLinux(Fedora もしくは CentOS 系)での情報です。また、以下の例では、プロキシの情報は下表のようなものとします。 ホスト proxy.example.com ポー
昔、とあるデータベース研究の偉い先生に、研究は上位レベルレイヤーか下位レベルレイヤーかどちらかに偏っている方が面白い、というような話を聞きました。とくにそれを意識していたわけではないのですが、最近の自分の興味がその言葉のとおり、一番上と一番下の両極端になってきているなと感じている山本です。 上位レベルレイヤーの方では情報アーキテクチャや情報デザインがとても気になっています。いわゆる REST 的な文脈のリソースモデリングに関ってくると考えているからです。そんな折に、社内のとあるUI系研究者の同僚から「ペルソナ/シナリオ法による商品・サービス開発」というセミナーがあるよ、と教えてもらいました。 プログラムを見ると、いつもブログを拝読している(でも情報量が多くてなかなか読みきれていない)千葉工業大学の山崎先生と DESIGN IT! w/LOVE の棚橋さんのご講演ではないですか。さっそく嬉々
ドキュメント指向データベース CouchDB 株式会社リコー グループ技術開発本部 山本陽平 諸君、私は CouchDB が好きだ 3 • 諸君、私は CouchDB が好きだ • 諸君、私は CouchDB が好きだ • 諸君、私は CouchDB が大好きだ 4 アンケート • CouchDBを知っている • CouchDBをインストールした • CouchDBを使ってみた • CouchDBのソースを読んだ • CouchDBを作っている(コミッタだ) 5 • ドキュメント指向が好きだ • Erlangが好きだ • スキーマレスが好きだ • Map/Reduceが好きだ • 半構造データが好きだ 6 CouchDB のリソース • データベース – http://couchdb:5984/{db_name} – 0個以上のドキュメントを格納 – 実体は .couch ファ
日野原です。 今回はこの前に引き続いて MogileFS の話題です。 前回の最後に唐突に ruby から触ると言う話をした通り ruby のクライアントライブラリから MogileFS を操作してみましょう。 まず環境ですが、前回と同じ Fedora7 on coLinux です。 その上に、ruby と rubygems をインストールしておきます。 % sudo yum install ruby ruby-ri ruby-rdoc ruby-libs\ ruby-irb ruby-devel rubygems 次に MogileFS のクライアントを gem でインストールします。 % sudo gem install mogilefs-client ではこれで ruby のプログラムから触ってみましょう。 まずは下準備です。 % irb irb(main):001:0> req
先日、Erlang分散システム勉強会で、最近私が追っている CouchDB というオープンソースのドキュメント指向分散データベースについて紹介してきました。発表資料をおいておきます。 ドキュメント指向データベース CouchDB(PDF) 分散システムでしかも Erlang というニッチっぽい勉強会でしたが、30人の参加者が一瞬で集まり、非常に熱い会でした。私も自分の好きな話を好きなように話してしまい、参加者のみなさんはドン引きだったかもしれません… これだけでは何なので、ついでに手元の Fedora7 on coLinux に CouchDB の trunk を入れたときの手順と、簡単な couchdb の使い方をご紹介しておきます。 基本的にはオフィシャルwikiにあるとおり、yum でモジュールを入れていけば問題ありません。素の coLinux からの場合、以下のモジュールが必要でし
日野原です。 今、分散ファイルシステムが熱いです。負荷分散とか冗長化とかを考えていると、当然ファイルシステムも分散させたくなるのです。…なりますよね? というわけで手元の Fedora7 on coLinux に分散ファイルシステムの一つの実装である MogileFS を入れてみました。 ただ、CPAN を使える人向けの情報はこのページ(Six Apart - Tech Talk Blog: MogileFS のインストールと初期設定)にすでにあるので、今回は perl をちゃんと使ったことがなくてもできるやり方でインストールしてみました。正確に言うと私が CPAN を使って入れようとしてできなかったので回避しただけなんですけど… というわけでインストールの手順は独自ですが、その後の初期設定などは前述のページで説明されているやり方とほとんど同じです。 前提となる環境は Fedora7 (c
こんにちは。山本です。 先週発売になった WEB+DB PRESS Vol.44 で、先日公開した郵便番号検索サービスの設計の解説を書きました。 郵便番号の検索はかなりシンプルな機能ですが、仕様書として書き下すとそれなりの分量になります。この仕様書は私がスクラッチから作成したのですが、今回の記事ではこの仕様書を書くにあたって行った設計作業をそのまま文章として書き出してみました。 リソース設計の基本は RESTful Web サービスで紹介されているリソース指向アーキテクチャ(ROA)の設計手順に従っています。この手法の良いところは、フレームワークに依存せずにリソースを考えられるところです。 最初にリソースとその URI を設計し、URI Templates を使って機械的に各リソースとそれに対する操作をコントローラやモデルに振り分けていくという流れがRESTful な Web システムの設
RESTful な URI の設計 REST で設計する際に気をつけなければいけないところはいくつもあるのですが、ここでは主に URI の設計について解説します。 URI には名詞を使う URI はリソースの ID です。リソースの説明時に書きましたが、これは名詞であるべきです。たとえば、東京地方の天気予報リソースの名前が「東京の天気予報」ではなく「東京の天気予報を取得する」だったとしたらどうでしょうか。当たり前のようですが、すごく違和感がありますよね。 同じことが URI にも言えます。次の二つの URI のうち、どちらが良いと思いますか? http://example.com/getWeather?area=tokyo http://example.com/weather/tokyo 前者の雰囲気は「東京の天気予報を取得する」そのものですね。それに対して後者の雰囲気は「東京の天気予報」
1月に三分の一を公開して以来、ずるずると遅れていた残りの記事の公開をやっと行いました。 RESTアーキテクチャスタイル入門 Web アプリケーションのアーキテクチャ Web サービスと REST RESTful な URI の設計 出版は2006年なので2年前の記事です。内容が一部古くなっている部分もあったため、現時点での最新情報に少しだけアップデートしました。
本日より、ricollabの語源の一つである「リコーラボ」としての活動の第一弾、郵便番号検索サービスを開始します。 同時に、このブログのサーバも社内のマシンルームから外部のデータセンターに移動して、心機一転です。読者の皆さんにはサーバの場所が変わってもあまり関係ないかもしれませんが、法定点検による停電の心配などが無くなりました。 「何でリコーが郵便番号なの?」という疑問も大いにあるかとは思いますが、いろいろなサービスで使われる情報なので応用が利くというのと、Webサービスとしてまずは小規模なところからスタートし、サーバの運営やWebサービスの提供までの設計・開発ノウハウを蓄積していこうという狙いがあります。 ただし、小規模なアプリとは言ってもただ単に日本郵便のゆうびんホームページで公開されている郵便番号データを検索できるようにするだけではつまらないので、山本がガチで設計したRESTfulな
REST と ROA 株式会社リコー ソフトウェア研究開発本部 山本陽平 http://blogs.ricollab.jp/webtech/ 2008年2月27日 株式会社リコー ソフトウェア研究開発本部 技術交流会 2 自己紹介 • 山本陽平 – (株) リコー – ソフトウェア研究開発本部 – ソリューション研究所 – インテグレーションエンジニアリング研究センター • XML guy • REST 関係でいろいろ執筆 3 RESTって何だろう 4 REST って何だろう • Representational State Transfer の略 • Roy Fielding の博士論文(の第5章) • ソフトウェア工学の研究成果 • ネットワークシステムの「アーキテクチャスタイル 」 5 アーキテクチャ スタイル 6 アーキテクチャスタイル • Architectural Style
こんにちは。山本です。 先月 NTT コミュニケーションズ様で講演した内容を報告しましたがその後なんで社内でやらないのだとツッコミをうけたので、社内の技術交流会でほぼ同じ内容で発表しました。 せっかくなので、このブログでも報告できるようにと映像を撮ってあります。リコーの MPMeister という動画とパワーポイントスライドを同期させたWebコンテンツを簡単に(本当に簡単です)作成できるツールを使って作成しました。MPMeister は残念ながら Windows/IE 限定のツールなのでそれ以外のブラウザの方用に Flash のコンテンツも用意しました。 2/27 ソフトウェア研究開発本部 技術交流会 「RESTとROA」(MPMeister版) (Windows/IE 限定です。Firefox の方は開かないでください。ブラクラですorz) 当日使った資料も PDF で置いておきます。
次のページ
このページを最初にブックマークしてみませんか?
『https://blogs.ricollab.jp/』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く