タグ

ブックマーク / labs.unoh.net (46)

  • ウノウラボ Unoh Labs: 分かったつもりになるAndroid開発方法

    こんばんは。うちだです。 皆さんAndroid携帯は購入しましたか? 社内ではiPhone勢が多く、Android携帯所持は私だけという悲しい現実を目の当たりにしています。 そこで以前、社内勉強会にて、Androidの素晴らしさを皆に知ってもらおうと発表した内容が今回のエントリーです。 今回のエントリーでは開発者視点で分かったつもりになる為に、広く浅く書いてます。 気で分かるには公式ドキュメントや書籍及び参考リンクをご参照ください。 参考: Android | Official Website 特徴 環境 Linuxカーネル BSD UNIXのlibc アプリケーションはDalvikと呼ばれるVM上で動作 主にJavaで開発 Google提供のSDKあり Eclipseプラグインあり アーキテクチャ 参考: わかった気になる気になるandroid メリット マルチタスク inten

    wacky
    wacky 2009/10/01
    Androidアプリケーション開発の概要まとめ。関連情報へのリンク。
  • ウノウラボ Unoh Labs: diff with C++

    ミートソーススパゲティを作るときは、ミートソースから作るのが信条のbokkoです。それはさておき、今日はdiffのお話です。 diff diffは指定した2つのファイルの差分を求めるコマンド、もしくはその差分そのものを指します。普段から何気なく使用しているコマンドですが、その中で使われているアルゴリズムは結構難しいです。 差分を計算するということ 差分を計算するというのは以下の3つを求めることに帰結します。 ・Levenshtein Distance(Edit Distance) ・LCS(Longest Common Subsequence) ・SES(Shortest Edit Script) 上から順に1つずつ説明していきます。 Levenshtein Distance Levenshtein Distanceは2つのシーケンスの違いを数値化したもので編集距離とも言います。これは後述

    wacky
    wacky 2008/11/13
    diffコマンドで使われている差分アルゴリズムと自作diffライブラリ「dtl」の紹介。
  • ウノウラボ Unoh Labs: 四角いリンク

    yamaokaです。 最近タブをメタファーにしたナビゲーションをよく見るようになりました。タブには大抵、内容を示すキャプションが付けられています。さて、どこからどこまでがリンクでしょうか。どの部分をクリックすればそのタブを選択できるでしょうか。 例えば、キャプションの文字だけにリンクが貼られている場合。利用者はタブの中のさらに狭い範囲、文字の部分を狙ってクリックしなくてはなりません。 実はマウスの操作というのは難しいのです。狭い範囲を狙って指定することにはあまり向いていません。目的到達のために狭い範囲のクリックを強制するのはどう考えてもよいインターフェースではありません。 そこで大抵のタブ型インターフェースではタブの枠の中全体をリンクとして扱えるようになっています。 アンカー要素のdisplay属性をblockにして、必要な高さと幅を与えることでリンクの範囲を四角形に広げることができますね

    wacky
    wacky 2008/10/05
    タブインタフェースで押しやすいタブボタンを作るために。CSSの display:block と padding でリンク範囲を拡大。
  • ウノウラボ Unoh Labs: Ext JSをUIに使って携帯サイトのシミュレータを作ってみた

    五十川です。 携帯サイトの見栄えをシミュレートするウェブアプリ作りました。と言っても、実際に作ったのはかれこれ半年以上前で、手直ししてから公開しようと思ってたら、結局「guid=ON」を付け足したくらいであとは放置だったので、さすがにいい加減晒そうと。 任意のヘッダでリクエストして、レスポンスの絵文字とか変換してサイトの見栄えを確認するというものですが、これはそもそもExt JSをいじってた頃に、Ext JSでこういうの作ればいい感じになるんじゃね?ということで、丁度2.0がリリースされた頃にデモ用に作ったものなのでした(なので、かれこれ半年以上前) 実機テストの代用になるわけでは、もちろんありませんが、絵文字も含めたマルチキャリアでの見栄えを手軽に確認したいときなどに、わりと便利に使えてたりします。 スクリーンショット 機種ごとのプリセットのヘッダグループをYAMLファイルに書いておいて

    wacky
    wacky 2008/07/03
    PHP + JavaScript(Ext JS)で動作する携帯エミュレータ。
  • ウノウラボ Unoh Labs: Amazonの商品個別ページのURLからASINを取得する

    isogawaです。 題名のままのコードを書く用事があったので、できたものを晒します。とはいえ、ググれば多くの先達が既にさまざまなコードを書いておられ、目新しいものではないんですが。ついでなんで、大昔の「ISBN=~」を含めて、自分の知ってるURLのパターンを洗いなおしてみました(それでも、まだ他のパターンがありそうな気がしますが…)。 例えば、「The Elements of Style」という書籍の個別商品URLとして思いつくものには、以下のようなパターンがあります(細かいバリエーションは適宜省略)。 http://www.amazon.co.jp/exec/obidos/ASIN/020530902X http://www.amazon.co.jp/o/ASIN/020530902X http://www.amazon.co.jp/exec/obidos/ISBN=020530902

    wacky
    wacky 2008/03/25
    Amazon.co.jpの商品個別ページのURLからASINを取得するJavaScriptコード。
  • ウノウラボ Unoh Labs: Apache MPM の基礎をしっかりと理解しよう!

    naoya です。最近、とうとう花粉症の季節に入ったので、生まれて初めて空気清浄機を購入しました。 さて、今日は Apache HTTP サーバの MPM (Multi Processing Module) について解説したいと思います。普段、ウェブサーバを構築するとき、Apache HTTP サーバを使うことが多いと思いますが、Apache HTTP サーバを使う上で MPM について理解しておくことは大事です。 この MPM ですが、Apache HTTP サーバではリクエストを処理する部分のことをさします。MPM は、Apache HTTP サーバ 2.0 系から採用されています。Apache HTTP サーバの MPM には、次の種類があります。 prefork worker perchild winnt それぞれの MPM について解説します。まずは、一番代表的な prefork

    wacky
    wacky 2008/03/21
    ApacheのMPM(Multi Processing Module)について解説。
  • ウノウラボ Unoh Labs: 画像の遅延読み込み

    yamaokaです。 webページの表示を高速化する手法にはいろいろありますが、 その一つとして遅延読み込みという手法があります。 初期状態で表示する必要のない要素については読み込まず、 必要になったタイミングで読み込み、表示するようにする手法です。 ページの読み込みにかかる時間の大半を 画像の読み込みが占めている場合が多いので、 画像の読み込みを遅延させるという手法が多く取られます。 検討するべきケース では、画像の遅延読み込みはどのような場合に検討されるべきでしょうか。 最初から表示されている必要がない画像が存在し、その画像のサイズが大きかったり、 そうした画像の数が多い場合は検討してみる価値があると思います。 例えば、次のようなケースです。 初期状態では表示されないブロックに属する画像が存在し、 JavaScriptで表示するかしないかを切り替えているような場合 ページのずーっと下の

    wacky
    wacky 2008/01/18
    ページ内の画像が読み込まれるタイミングをJavaScriptで制御する遅延ロードのテクニック。prototype.jsを使ったサンプルコードやライブラリの紹介。画像が大量に張り付いたページで効果ありそう。
  • ウノウラボ Unoh Labs: PHPでJSONを扱う

    yamaokaです。 Ajaxの普及に伴い、JavaScriptで扱いやすいJSON形式で サーバーからのレスポンスを返すことが増えてきているように思います。 PHPでJSONを扱う方法についていくつか紹介します。 JSON関数 もともとPECLの拡張モジュールとして提供されていましたが、 PHP 5.2.0以降、デフォルトでPHPに組み込まれるようになっています。 そのため、最も利用しやすい形式なのではないかと思います。 利用方法は以下のとおりです。json_decodeの戻り値はオブジェクトになります(第2引数にtrueを指定すると連想配列になります)。 $values = array('company' => 'ウノウ', 'name' => 'yamaoka'); $json = json_encode($values); // string '{"company":"\u30a6

    wacky
    wacky 2007/11/28
    PHPでJSONを扱う3種類の方法を紹介。PHP5.2のJSON関数、日本語に強いJsphon、Zend_FrameworkのZend_Json。
  • ウノウラボ Unoh Labs: jQueryのパフォーマンス最適化に関するTips

    こんにちは、山下です。 今回は、jQueryのパフォーマンス最適化について説明したいと思います。 軽量と言われているjQueryですが、いろいろな機能を実現しようとして複数のプラグインを導入すると、だんだんと動作が重くなってきます。サーバ側をいくらチューニングしたところで、ブラウザ側での処理に時間がかかっていたら、せっかく訪問してくれたユーザに重いサイトとして認識されてしまいます。以下に、ウノウで運営している「映画生活」で実際に行っている方法を紹介します。 1. Packed版ではなくMinified版を使う jQuery1.1まではPacked版のみだったのですが、jQuery1.2からMinified版もダウンロードできるようになりました。Packed版よりもMinified版を使うことをお勧めします。どう違うのかというと、Packed版はファイルサイズを極限まで削減するために静的辞

    wacky
    wacky 2007/11/14
    jQueryは『Packed版ではなくMinified版を使う』。圧縮率より初期展開速度を優先。
  • ウノウラボ Unoh Labs: hasLayoutとは何か

    yamaokaです。 CSSに携わっている方なら、Holly hackを使ったことがあるかもしれません。 /* Hides from IE5-Mac \*/ * html .foo { height: 1%; } /* */ Internet Explorer(以下IE)で、レイアウトに問題のある要素に 上記のようなスタイルを指定をすると、 あら不思議、まともな表示がなされるというものです (上記のままではIE7に対応していませんが…)。 さて、どうしてレイアウトが意図したとおりに行われるようになるのでしょうか。 IEのhasLayoutプロパティ IEでは、全ての要素が 「hasLayout」という読み取り専用のプロパティを持っています。 これはそれぞれの要素がレイアウト情報(=要素の幅・高さなどに関する属性情報)を 保持しているかどうかを示す値で、 デフォルトの状態では「hasLayo

    wacky
    wacky 2007/09/28
    IEでのレイアウト崩れの問題を解消する「hasLayout=true」という手法。
  • ウノウラボ Unoh Labs: Rubyでネットワークサーバを書く

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

    wacky
    wacky 2007/09/25
    Rubyでデーモンを書く際に気をつけるべき点や工夫。
  • ウノウラボ Unoh Labs: 「視線を導く」方法あれこれ

    yamazakiです。毎度毎度技術系なこのウノウラボには馴染まない話題を振りまいているわけですが、さてはてどの程度お役に立てているものか…。 今回のテーマは「視線」です。例えばWebサイトは「見てもらう」ことが大事ですし、また、UI設計の場面などでも、「視線をうまく導いてやる」のは使い勝手をよくする上でも大切なことだと思います。といったわけで、ユーザの視線をうまく捕まえてみたり導いてみたりする上で役に立つかもしれない情報を簡単にまとめてみます。 1.視線をつかまえる Web上にも街にも広告だの何だのと情報が氾濫しています。その中で「見てもらう」ためには何かしらの工夫が必要になることがあります。というわけでまずは「人の視線をつかまえる」ための方法論を少し。 「人の顔」を使う まずはこの画像を見てみてください。 01 posted by (C)フォト蔵 最初に、どれを「見てしまいました」か?

    wacky
    wacky 2007/09/09
    視線誘導のテクニック。人の顔は視線を捕まえやすい、矢印を使う、同じ形を規則的に並べる、など。
  • ウノウラボ Unoh Labs: JavaScriptライブラリといえば jQuery(入門編)

    こんにちわ。山下です。 最近、私の周りではJavaScriptライブラリといえば、jQuery の名前がまず最初に挙がってくるようになってきました。今回は、jQueryって何が便利なの?っていう人向けに、ポイントを掻い摘んで説明します。 1.名前空間を汚さない 他のJavaScriptライブラリとかだとStringとかArrayを直接拡張してたりしますが、jQueryはグローバルな名前空間を汚しません。eachとかmapのような便利な関数もすべてjQueryオブジェクトの属性として定義されています。 jQuery.each, jQuery.extend, jQuery.grep, jQuery.map, jQuery.merge, jQuery.trim, etc. また、標準では $ にショートカットが割り当てられるのですが、jQuery.noConflict()と書くことで proto

    wacky
    wacky 2007/08/29
    jQueryを使うメリット。特徴的な機能の紹介。
  • ウノウラボ Unoh Labs: Flashの新しい可能生 Asynchronous Flash + XMLSocket

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

    wacky
    wacky 2007/08/22
    FlashのXMLSocketとは。ソケットを直接叩ける。
  • ウノウラボ Unoh Labs: フォームのユーザビリティを改善する10のTips

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    ウノウラボ Unoh Labs: フォームのユーザビリティを改善する10のTips
    wacky
    wacky 2007/08/16
    フォームUIのTips。label/fieldset、エラーclassで強調表示、ボタンテキストの工夫、画面遷移をチャート表示、サーバサイドの自動変換など。
  • ウノウラボ Unoh Labs: グラフィック作りのコツとカン

    こんにちは。yamazakiです。 前回はレイアウトなどについて非常にざっくりとですが書いてみたわけですが、いかがでしたでしょうか。 そろそろ「グラフィック」のほうも少し書いてみようかという気になってきたので、グラフィック品質を高めるベーシックな技術についても少しずつ書いていってみようと思います。 基のき 具体的な話に入る前に、まずは基的な話から。 とりあえず、ざっとあなたの周囲を見回してみてください。壁にしても、PCにしても、「単なる一色のベタ塗り」にはなっていないのではないかと思います。光の加減などで、「影」や「グラデーション」がついていると思います。また、ものの表面には「つるつる」「ざらざら」といった「質感」があるのが当たり前、という中で私たちは生活しています。 そのため、人の目はそういう「グラデーション」や「影」、「質感」がある状況を「見慣れて」います。 グラフィック上

    wacky
    wacky 2007/08/16
    グラフィック作成のヒント。グラデーションのかけ方、影の付け方、立体感を出す光の方向、テクスチャの質感など。
  • ウノウラボ Unoh Labs: buttonタグでサブミットするあれこれ

    CSSでいつも悩まされるのはクロスブラウザですけど、フォームでは特に面倒くさい要素が山盛りですよね。ボタンの文言を動的に変えたいから画像はなるべく使いたくないけど、だからといってブラウザのデフォルトのボタンとか、味気ないですものね。 今日は、フォームにつきもののボタンについて考えてみます。 私たちがボタンに求めるモノって、何でしょう。 データを送信(submit)する どのブラウザでも同じように見える 使い回しが聞く ボタンについている文言がどんなに長くなっても、水平方向の長さがフレキシブル 上記のようにサイズ的にフレキシブルであっても、見た目の美しさを阻害しない ボタンの大きさ=クリックできるエリアの大きさ 画像がdiableされていても使用可 CSSがdisableされていても使用可 ボタンのように見えて実はただのリンクの時のもある これらの要求を解決してくれる方法が複数出

    wacky
    wacky 2007/08/06
    submitボタンにbutton要素を使う優位性 → Safariでもスタイル適用できる、中に他のHTML要素を入れることができる。
  • ウノウラボ Unoh Labs: WEBアプリテストのチェック項目リスト

    こんにちは!やまもと@テスト番長です。 TestingGeekという耳障りの良い名前のサイトをご存知でしょうか? 総合的にテストの話を取り扱っており、それでいて読みやすいサイトです。 そこのTemplatesのコーナーにWeb Application Testing Checklist という便利そうなものがありましたので、日語にしてみました。 ちょっとそのままだと物足りない感がありますが、テストポリシー作成の叩き台に使ってみるのも良さそうですね。 この手のリストを他にもご存知の方がいらっしゃれば、是非ご一報ください。 1. 機能テスト 1.1 リンク 1.1.1 記載された通りの先に遷移するか 1.1.2 どこからもリンクされないページは存在しないか 1.1.3 全ての外部リンク 1.1.4 参照しているサイトおよびメールアドレスはハイパーリンクになっているか? 1.1

    wacky
    wacky 2007/08/01
    Webアプリケーションのテスト項目。
  • ウノウラボ Unoh Labs: mod_expires と mod_rewrite を使ってウェブサーバへのアクセスを減らす方法

    最近、雨の日が続いて自転車通勤ができていない naoya です。 今日は、先週ぐらいからフォト蔵に導入した Apache で mod_expires と mod_rewrite を使ったウェブサーバへのアクセスを減らす方法を紹介します。 通常のウェブサーバは、更新されていないリリースに対してアクセスすると、ステータスコード 304 とIf-Modified-Since ヘッダをつけて応答データを返しますが、CSSJavaScript など比較的更新頻度の少ないファイルに対して、毎回応答を返すのはウェブサーバから見ると無駄なアクセスです。 Apache の mod_expires と mod_rewrite を使うと、この無駄なアクセスをブラウザキャッシュを有効活用にすることにより、静的なファイルに対するアクセスを減らすことができます。 まず、仕組みから説明すると、とても単純で mod

    wacky
    wacky 2007/06/27
    mod_expiresとmod_rewriteを使って更新頻度の少ないファイルへのアクセスを減らす。ブラウザキャッシュを活用。
  • ウノウラボ Unoh Labs: ベンチャー流Webサービスの作り方(企画編)

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

    wacky
    wacky 2007/06/18
    Webサービスを企画するにあたって気をつけるべきポイント。