サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
www.tsujita.jp
App Storeのアプリ情報ページのアプリ名と☆評価の間に 企業名や開発者名が載ってたり載ってなかったりして、 「あれってどうやって載せるんだろ?」と思っていました。 ようやく載せ方が分かったので書いときます。 その前にアプリ情報ページのどこの事かって言うとココですね。 で、開発者名の載せ方なんですが、アプリを申請する際のメタデータに 「App URL (optional) 」という入力欄があります。 ここに開発者のWebサイト(企業ならコーポレートサイト)のURLを 入力することにより、最初のアプリを申請するときに入力した Company Nameがアプリ名の下に表示されるようになるようです。 もう一つアプリ情報下部にも開発者名とサイトURLが載るようになるので 開発者名(や企業名)をアピールするには最適ですね! 申請後でもiTunes Connectからメタデ
えーと、前回ブログを更新したのが…3年前!? ズボラにもほどがありますね、 来年の抱負は「まめににブログを更新する」にしたいと思います。 先週の金曜に、僕が作ったiPhoneアプリがAppleに承認されApp Storeに並びました。 アプリ名は「GalapaBrowser(ガラパブラウザ)」、 ケイタイサイトをええがに変換して表示してくれるアプリです。 http://itunes.apple.com/jp/app/galapabrowser/id403649072?mt=8 特徴的なのはDoCoMo、au、SoftBankの3キャリアのUser-Agentを 700を超える端末から選択でき、iモードIDなど各キャリアの端末IDを自由に設定出来ます。 アクセス元IPで閲覧制限をかけているサイトは見れない場合がありますが、 そうでないサイトであればわりと良い感じに見れます
Coomons BetwixtはBeanオブジェクトからXMLへのシリアライズや逆のXMLからBeanオブジェクトへのデシリアライズを行うライブラリだ。 通常のObjectOutputStreamを使用するシリアライズと違って出力されるファイルがXML形式なため可読性が高く、その上XMLの編集によりデシリアライズ後のオブジェクトの状態まで変更することが可能である。 使用方法はとてもシンプルでBeanReaderによりXMLを読み込んでオブジェクトを生成し、BeanWriterによりオブジェクトをXMLに出力するというものだ。 XMLの要素名はそのままBeanのアクセッサメソッドからgetやadd等の接頭語が取られた状態の名前になるので直感的に理解できると思う。 以下のサンプルは本を表したBookとそのBookをリストで管理するLibraryをXMLから読み込み、一つBookを追加し
サーバへのネットワーク接続状況を監視するには通常ntopのようなツールを用いるが、シェルだけでもある程度監視することが可能だ。 以下のコマンドを使用すればサーバ上で待ち受けているポートへの接続状況がリアルタイムで監視出来る。(bsh系) while true;do netstat -an | grep tcp | awk '{print $4,$6}' | sort | uniq -c | sort -r > /tmp/netstat.txt ;clear ;echo "Conns Local Address State";cat /tmp/netstat.txt; sleep 1 ; done 説明するとnetstatで出力される行の内tcpが含まれる行のみ抽出し、その行の中から4番目と6番目の列(Local Address,State)を抜き出し接続数の多い順に表示する、というもの
PostgreSQLをチューニングする機会があったので その時に調べたチューニング項目を備忘録として残しておきます。 バージョンの違いやサーバの規模などによっても 効果は変わってくると思うのであくまで参考程度のものですが。 ・shared_buffers 7系では8000〜10000程度まで引き上げる 8系では150000程度まで引き上げることが可能、100000程度が性能のピーク これに多く割り当てるよりOSのバッファ領域として使う方が性能が向上する テーブルサイズを割り出して設定するのがベスト 簡単に設定するなら搭載メモリ量の1/4、搭載メモリが多ければ1/2ぐらいでも可 ・max_connections 7系では256程度、8系では1000程度が性能のピーク ・work_mem(sort_mem) 適切なサイズに調整する、2048〜4096程度 プロセス毎
先月、家のMacをPowerMac G4からMacBook Proに買い換えました。 WWDCで何か新製品が発表されていたらきっとそれを買っていたに違いない…。 本当に今年のWWDCは近年希に見るショボさでガッカリ…。 そんな事はどうでもいいんですが、MacBook Proを買っても今まで使っていた旧シネマを 引き続き使いたかったのでDVI-ADCアダプタを経由させて繋ぎました。 で、今まではシネマの電源ボタンでMacの電源をon/off出来ていたんですが、 MacBookやMacBook Proでは出来ないことが発覚。 閉じた状態のMacBook Proにシネマ繋げて使いたいので 電源を外部から操作できないと辛い!面倒くさい! 仕方がないので電源を落とす代わりにスリープさせて使ってるんですが、 超簡単にスリープさせる方法を見つけたので紹介します。 実は最近Mac(M
ヒマ少し時間があったので画像をHTML(アスキーアート?)に変換するツールを作ってみました。 使い方は"画像のURL"に変換したい画像のURLを入れて"文字"に適当な一文字を入れます。 で、"HTML変換"ボタンをクリックするとその画像が"文字"で表されたHTMLとして表示されます。 デフォルトでミクシィのロゴ画像が変換されるようになっているのでとりあえずそのままボタンを押してみてください。 どうしても画像が表示できない環境や画像を含めたHTMLを無理矢理一枚のHTMLに収めたい かなり特殊な状況下にいる人には使えると思います。 画像のURL: 文字: 大きさ:ピクセル 縮小:% ニアレストレイバー バイリニア 表示: 画像 ソース
先日、Zend Frameworkが正式に1.0.0としてリリースされました。 公式だし今後使っていこうかなと思ったんですが、最近人気のある他のPHPフレームワークと比べて パフォーマンスの面でどう違うか気になったので簡単なベンチマークをとって比較してみました。 今回使用したフレームワークはZend Framework、Symfony、CakePHP、CodeIgniter、PHP on TRAXの5つです。 各フレームワークで行った処理はコントローラを呼び出しビューに遷移させて "Hello World!"を表示させるだけのかなりシンプルな内容です。 DBへの接続やモデルの作成は行わず、自動レイアウト機能があるものはオフにするか全て削除しています。 使用したソースはこちらからダウンロードできます。 ベンチマークを行った環境はCeleron 1.7GHz、メモリ1GBのLi
このサーバを復旧させた時にApacheを2.0系から2.2系にアップして Tomcatとの接続をmod_jk2からmod_proxy_ajpに切替えたんでその時の備忘録を書いておきます。 まずはhttpd-2.2.0のインストール。 $ ./configure --enable-module=so --enable-proxy --enable-proxy-ajp $ make # make install ここでのポイントは--enable-proxy-ajpだけじゃなくて--enable-proxyも必要なとこ。 次にhttpd.confを編集…するんじゃなくてconf/extra以下のファイルを編集します。 Apache 2.2からは機能毎に設定ファイルが分けられていて、 それをhttpd.confからIncludeするという形になっています。 このサーバはバーチャルド
あまり知られていません(と思われる)がApache2(2.0.41以降)にはアクセスログの書き出しをメモリにバッファリングし高速化させるという機能があります。 今回はその機能を有効にするとどれぐらい速くなるのか調べてみました。 設定方法はhttpd.confに BufferedLogs On と追加するだけでログのバッファリングが有効になります。 以下ベンチマークを取った結果です。 バッファリング無効984 Request/Sec バッファリング有効1033 Request/Sec (参考)ロギング無し1055 Request/Sec ※小さなhtmlファイルに対してab -c 100 -n 1000を何度か繰り返した結果の平均です。 体感では違いを感じられないとは思いますがベンチを取るとおよそ5%程Request per secondの値が上がっていました。 静的なファイルが
PHPのクラスに備わっているstaticはJava(Servlet)のそれとは違いHTTPのリクエストが完了すると破棄されてしまいます。 そのためstaticフィールドを使ったシングルトンの実装を行ったとしてもリクエストがある度にインスタンスが生成され独立したプロセスから同一のインスタンスにアクセスすることは不可能です。 そこで今回memcachedを利用しPHPの各プロセスから同一のインスタンスを参照できるようにしてみたいと思います。 といってもシリアライズさせているので厳密には別のインスタンスになりますが…。 ちなみにmemcachedとはオブジェクトをメモリにキャッシュさせるPHPとは独立したサーバプログラムです。 利用できる言語はPHPだけに限らずPerl、Ruby、Java、Pythonなどにも対応しています。 インストールは./configure && make &
Web系のシステムを作っていてよくあるのが乱数をキーとして個人情報を特定する場面。 ユニークな乱数を発行してそれを個人情報と一緒に保存するのが一般的だが、既存項目の情報を暗号化してそれをキーとして扱うことも出来る。 それを可能にするのがjavax.cryptoパッケージだ。 このパッケージ以下には秘密鍵の実装や暗号化/複合化を行うクラスが含まれる。 使用可能なアルゴリズムにはAES,Blowfish,DES,RSAなどがあるが以下のサンプルではDESede(トリプルDES)を使った。 またバイト配列を16進文字列に変換するためCommons Codecを使用した。 //暗号化 String value="sample"; //暗号対象文字列 String key="ABCDEFGHIJKLMNOPQRSTUVWX"; //キー(24バイト) SecretKeyFactory k
YouTubeの動画を一定時間ごとに画像として書き出したら便利かなと思って作ってみました。 使い方はYouTube動画のURL(http://www.youtube.com/watch?v=xxxxxとか http://www.youtube.com/v/xxxxxとか)を入力し作成ボタンを押せば勝手に画像を作ってくれます。 現在の設定では約5秒ごとに画像として書き出すようにしているので 大まかなシーンの確認程度には使えるんじゃないでしょうか。 ただあまりにも長い動画だとダウンロードに時間が掛かりすぎ回線の中の人に怒られるので 25MB(だいたい10分程度?)までの動画だけに制限している状態です。 そうでなくても線が細いので急いでる時は素直に動画を見た方がいいと思います。 また一度変換した画像はキャッシュされるので同じURLを入力すると待たずに画像が表示されます。 サンプ
先日、Lingrというサイトを見てちょっと感動してしまいました。 上記のサイトで何が出来るのかというといわゆるチャットなんですが Cometという技術を使っていてブラウザとサーバ間の通信が非同期で行われているそうです。 試してみると確かに自分以外の人の発言がリアルタイムに表示されてサクサク気持ちいいです。 確認のためブラウザを2つ立ち上げて片方で発言すると即座にもう片方に表示されます、素晴らしい! ここで使われているCometという技術は従来ブツ切りであったブラウザとWebサーバ間の接続を 維持した状態でデータのやり取りを行うということらしいです。(詳しくは知らない…) そのためブラウザからのプル型だけでなく任意のタイミングでサーバからデータを送信できる プッシュ型での通信も行えるため他の書き込みも即座に表示されていたわけです。 このCometとても気になって色々調べては
qmailとMySQLを連携させてメールサーバを作る機会があったのでその時の備忘録。 でも正直qmailはあまり好きではありません。djb氏独特のディレクトリ構成、設定方法とかがヤダ。 普段はMTAとしてPostfixを選んでいます、何しろ楽だし分かりやすい。 まずはqmailのインストールですが今回はnetqmailを使用しました。 アカウントの追加など基本的な部分は省いています。 あとMySQLは既にインストールされているものとします。 $ ./collate.sh ここでqmailをMySQLに対応させるパッチをここからダウンロードしてきて当てます。 $ patch -p0 < netqmail-mysql-1.1.15.patch $ cd netqmail-1.05 # make setup check これでインストール完了です。 makeでコケる場合はMake
同じネットワーク内でファイルを共有する場合 個々のPCでフォルダを公開するかSambaなどのファイルサーバを使えばいいけど 共有したい相手が離れたネットワークにいる場合はこの方法は使えない。 こういう場合はWebDAVを使うと簡単便利です。 WebDAVはWebサーバのプロトコルを拡張しファイル共有を行えるようにしたもので Webサーバにアクセスできる環境であれば問題なく使えるのでネットワークが離れていても大丈夫。 今回apache2.0系に設定する機会があったのでそのときの備忘録を書いておきます。 まずはhttpdのインストールから。 $ ./configure --enable-module=so --enable-dav $ make # make install これで一応インストールは完了で使えるようにはなるけど、このままだと日本語名のファイルを置いた場合に フ
仕事上Webページ上一部分の文字数を文字数を数えることがたまにあって 今まではコピペでエディタに写してエディタの機能で文字数を数えてた。 これがちょっと面倒でなんとかならんかなぁと考えてたら そういえばちょっと前ブックマークレットというのが流行った事を思い出し 即席で文字数を数えるブックマークレットを作ってみた。 ブックマークレットというのはお気に入りにページURLを設定する替わりに JavaScriptの構文を設定してページを開いているときにそのお気に入りをクリックし 設定されたJavaScriptを動かして任意の処理をさせてしまうというシロモノ。 で、出来たのがこれ。(リンクを右クリックしてお気に入りに追加) 文字数カウント ソースはこっち javascript:alert(document.selection.createRange().text.length+
今日髪を切りに行った帰りBEAMSによるとCube Worldを発見。 Engadgetでの紹介記事を見てから欲しいなぁと思ってたらこんなところで出会うとは。 しかもこれはバンダイとBEAMSとのコラボらしくて限定色らしい。 さっそくつなげて遊んでみると人がキューブを行き来してなかなか面白ーい。 つなぎ方を変えればまた違うアニメーションが見れるので結構楽しめますね。 ただ電源を入れて5分放置すると自動で電源が切れるのでずっと見ていたいときは 時々触ってあげなければならないのがちょっと面倒かも。 あと2個入りで4410円はちょっと高いんじゃないの…。 追記: Amazonでも販売を開始したようです。 色はホワイト&ダークグレーとグレー&ブラックの計4色。 海外版と違ってえらくシックな色…。 ブルーとオレンジはやっぱりBEAMSでしか買えないのかな?
やることがないちょっと手が空いたので前回に引き続きAjax + PHPで簡単なツールを作ってみました。 今回のツールはWebページのキャプチャ(スクリーンショット)を取ってそれをサムネイル画像に変換するものです。 使い方はとても簡単で"WebページのURL"に適当なサイトのURLを入力し、 "イメージ作成"ボタンを押してしばらくするとそのページが画像として表示されます。 少し変換に時間が掛かるので表示されるまでジッと待っていてください。 最近は検索サイトなどで検索結果とそのページのサムネイルを同時に表示してるところもあるので 実は結構需要があるのかなと思います。手動でキャプチャしてサムネイル作るのも面倒だし。 WebページのURL: サムネイルの大きさ:
巷で話題の百ます計算。 賛否両論があるようだけど脳を使うのには違いないはず。 最近ボケてきた自分の脳にカツを入れるためにもいっちょやってみるか、と思いJavaScriptで百ます計算を作ってみた。 使い方は以下の通り。 ・サイズ(マス数)とタイプ(計算方法)を選んで開始ボタンを押すと百ます計算スタート。 ・開始すると自動で上段と左側の - がそれぞれランダムな数字に変化。 ・その後、最初のマスにキー入力のフォーカスが移りマスが黄色く変化。 ・黄色くなったマスの上段と左側の数値をタイプで選んだ方法で計算し入力。 ・正解すればマスが青くなり次のマスにフォーカスが移動、間違うと赤になりとどまる。 ・赤くなった場合は正しい値を再度入力。 ・全て青くすれば計算終了。
CaptchaとはCompletely Automated Public Test to tell Computers and Humans Apartの頭文字を取った造語で日本語で説明するとユーザーが人間かコンピュータか区別する自動化されたテストの事、となる。 具体的な例をあげるとYahooなどの会員登録の際に読みづらい文字が描かれた画像中の文字を判別させて入力させるフォームなどがそうだ。 言うまでもなくこれはプログラムなどによる不正な会員登録を防止するための措置でYahooに限らず最近は他のサイトでも見かけるようになってきた。 この読みづらい文字が描かれた画像を生成するJavaの実装がJCaptchaだ。 使用方法はcom.octo.captcha.engine以下のパッケージに用意されているImageCaptchaEngineの実装クラスからImageCaptchaオブジェク
Javaを利用してサムネイルなどの画像縮小を行う際に一番メジャーなのはjava.awt.GraphicsのdrawImageメソッドではないだろうか。 確かにJ2SE標準のAPIなので手っ取り早いのだが、いかんせんニアレストによる補完が行われるため画質が粗くなってしまう。 こういう場合はJava Advanced Imaging (JAI)を利用すれば高画質で縮小させることができる。 javax.media.jai.Interpolationのスタティックフィールドに宣言されているINTERP_BICUBIC,INTERP_BICUBIC_2,INTERP_BILINEAR,INTERP_NEARESTがそれぞれバイキュービック、バイキュービック2、バイリニア、ニアレストによる補完方法になっていて、スケール変更の際のパラメータとして指定すればその方法で補完される。 以下はバイリニアに
このページを最初にブックマークしてみませんか?
『www.tsujita.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く