Windows Azure command-lineと戯れる

Windows AzureでUbuntu 12.04.3 LTSのVMを立ち上げるまでの手順を、公式のドキュメントを読みつつ、淡々とメモしていく。 http://www.windowsazure.com/en-us/manage/linux/other-resources/command-line-tools/ Windows Azure command-lineはMacならばdmgを…

WordPressサイトのドメインを変更する

WordPressで公開したサイトのドメインを後から変更するというのはあまりやらない操作だとは思いますが、どうしてもドメインを移したいとか、公開済みのサイトをコピーしてテスト環境を作りたいといった理由でやらなくてはならないこともあると思います。 基…

ChefでUbuntu 12.04にemacs 24.3をインストールする

Ubuntu 12.04 LTSは、各種パッケージのバージョンやデフォルトの設定に安心感があり、「本当に楽だ、4, 5年前のCentOSと同じくらい鉄板だ」というありがたみを毎日噛み締めております。 しかしながら、多少バージョンが古くて不満を抱くパッケージもなくはあ…

virtualenvwrapper-4.0を使う

emacsがあればあんまり開発環境には拘らない方なので、virtualenvwrapperもウノウラボにこの記事を書いたころから、ずっと同じバージョンを使い続けてきた。 アップデートしなかった理由は、いつからかvirtualevnwrapper単なるシェルスクリプトではなく、vir…

Appiumを使ってMobile Safari上でSeleniumのテストケースを実行する

SeleniumのiPhone DriverはDEPRECATEDらしいので、代替として紹介されている Appium を試してみた。 Appium is an open source test automation framework for use with native and hybrid mobile apps. It drives iOS and Android apps using the WebDriver…

BrunchでChaplinアプリのプロジェクトを作る

プロジェクトの作成 brunchをインストールする。 $ npm install -g brunch brunch-with-chaplinをスケルトンにしてプロジェクトを作成。 $ brunch new myproject --skeleton=git://github.com/paulmillr/brunch-with-chaplin.git プロジェクトディレクトリに…

Riak Source Code Reading #1に参加しました

昨日開催された「Riak Source Code Reading @東京 #1」に参加しました。そして、Riakのbitcaskバックエンドとeleveldbバックエンドのコードに関して発表してきました。その時のスライドがこちら。 https://github.com/kuenishi/riak_scr_jp/blob/master/%231…

RiakのBackendのコードを読む(事前調査篇)

僕よりも詳しそうな人はいっぱいいるのに、なぜかRiak Source Code Reading @東京 #1の担当になってしまったので、Riakのbitcask, eleveldbバックエンドのコードを読んでいく。たぶん最終的にはgistかgithubに資料をまとめるけど、ここに書いてあるのはその…

couchbase-python-clientをmemcacheクライアントとして使う

couchbase-python-clientはCouchbase社が開発しているCouchbaseのクライアント・ライブラリ。「Couchbaseとは何ぞ?」という方は、CouchDBのストレージをMemcache/Membaseに置き換えたKVSだと考えて頂きたい。 https://github.com/couchbase/couchbase-pytho…

hidefを試す

PHP

一流のペチパーとやらにもなれば、「PHPのdefineはコストが高いからねー」とドヤ顔で語りつつ hidef なるものを使うらしい。 http://pecl.php.net/package/hidef しかし、"PHP hidef"とかでググっても、インストールの仕方とかごく基本的なことはともかく、h…

iWebDriverでテストする

昨日のエントリのChromeDriverを試した後、SafariDriverというなかなか有望そうだがイマイチちゃんと動いている感がないソリューションまで試した結果、iPhone向けWebアプリケーションのテストにはiPhoneそのものか、iPhoneシミュレーターを使うのが一番良い…

SeleniumのChromeDriverでUser-Agentを変更する

WebKit、しかもiOSのWebKitでしか動かないコードを通して世界を良くしていますかっ!?(挨拶)前回似たようなエントリを書いた時には分からなかったのだが、SeleniumのChromeDriverでUser-Agentを変更するのは比較的容易だった。これでFirefoxではピクリとも…

Facebookユーザー名からFacebookユーザーIDを調べる

Facebookと連携するアプリを開発していると「このユーザーのFacebookのユーザーIDを調べたい」ってことがよくある。 https://www.facebook.com/profile.php?id=123456789123445のようにURL未設定のユーザーならば簡単なのだが、 https://www.facebook.com/{{…

serializeしたオブジェクトの継承元が変わったらunserializeできるのか?

PHP

疑問点。PHPにおいてオブジェクトをserializeし、その後そのオブジェクトの継承関係が変わったら、正しくunserializeできるのか?検証コード。親クラスなしのDogというクラスのインスタンスをserializeしたファイルに書きだした後、Dog name = $name; } publ…

xgettextの使い方のメモ

いつも使い方を忘れてしまうxgettextの使い方のメモ。とは言っても、xgettextのlanguageオプションで正式に対応しているプログラミング言語以外で、シングルクォートもダブルクォートも共に文字列として扱える言語を念頭においている。以下の翻訳抽出元コー…

FacebookアプリでQUOTA_EXCEEDED_ERRというエラーになったら

Chrome 17.0.963.56(Mac)でFacebook JS SDKを使って遊ぼうとしたら、下記のようなエラーに見舞われた。 Uncaught Error: QUOTA_EXCEEDED_ERR: DOM Exception 22ググってみたら、このエラーの意味はlocalStorageの容量の上限を超えた場合に出るらしい。しかし…

UglifyJSの--defineと--define-from-moduleが便利すぎる

JavaScriptのコードの中にアプリの設定を定数として埋め込みたいことってありますよね。例えば、このFacebook Mobileのドキュメントにあるログインの例を借りると、 window.fbAsyncInit = function() { FB.init({ appId: FB_APP_ID, status: true, cookie: t…

Dart練習帳: Future/Completer

この記事はPromise型を撤廃してFuture型に統一していくよ、という記事だと思うのだが、"try it out"といいつつ全くドキュメントがないので、どういう人を対象読者にしているのかなぁとびっくりしてしまう。そこで、Dartのユニットテストを参考に粛々と練習す…

Dart事始

どこまで真剣なのかよく分からないDartであるが、Dartのアップデートブログはけっこう頻繁に更新されており、Dart VMを組み込んだChromiumがリリースされたという話を聞いて、少しは触ってみようという気になった。 http://blog.chromium.org/2012/02/tech-p…

Jasyプロジェクトを作成する

前提条件 Python 3.2とpip、それにJasy 0.4.6がインストールされているものとします。 $ pip install https://github.com/wpbasti/jasy/zipball/0.4.6 ディレクトリ構成 最初にプロジェクトのトップディレクトリを作る。ここでは設定ファイルに記載するプロ…

Jasyを使ってJavaScriptアプリケーションを作成する - セバスチャン現る

JasyはZyngaの俊英Sebastian WernerによるJavaScriptビルドツール(Python3製)。coreは同氏によるJavaScript Framework。 https://github.com/wpbasti/jasy https://github.com/wpbasti/core coreが大規模なJavaScriptアプリケーションを作るためのモジュール…

Jasyを使ってJavaScriptアプリケーションを作成する - 最適化

Jasy/Coreの使い方をなんとなく語るシリーズの第一回。順番が間違っている気がするが、第一回はJasyのJavaScript最適化機能について。解説の順番が間違っている気がするが、Python3.2とpipをインストールした上で、 $ pip install https://github.com/wpbast…

Selenium WebDriverでUser-Agentを変更する

しばらく前は「Webアプリケーションのテスト自動化にはSeleniumよりWatirの方がよくね?」と思っていたが、Selenium2になってWebDriverが使えるようなり、Rubyで書かなくてはならないWatirより、Pythonで書けるSeleniumの方が断然楽だと感じている。仕事柄モ…

shelveの"dbm.error: db type could not be determined"というエラー

MacPortで入れたPython3.2.2*1でshelve.openを使おうとして、"dbm.error: db type could not be determined"というエラーが出た。 % python [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for m…

Misakaを使ってmarkdown文書をHTMLに変換する

Misaka is a Python (2.7 and 3.2) and PyPy (1.6) binding for Sundown. And Sundown is a Markdown library written in C and it's really fast. http://misaka.61924.nl/ MisakaはCで書かれたmarkdown parserであるSundownのPythonバインディング。要Pyth…

LZOとSnappyの圧縮効率・処理速度を比較する

LZOとSnappyは共に、圧縮効率は他に劣るものの、処理速度が早いことを売りにした圧縮ライブラリ。 http://www.oberhumer.com/opensource/lzo/ http://code.google.com/p/snappy/ インストール Pythonで使うならば、LZOに関しては python-lzo-static を使うの…

tmuxのscreen-keys.confのtypo

もうscreenからtmuxに乗り換えて久しいのですが、長年使用してきたscreenのキーバインドが体に染み付いてしまい、screen互換にカスタマイズして使っております。カスタマイズと言っても、CentOS(EPEL?)のtmuxのRPMにある /usr/share/doc/tmux-{{ VERSION }}/…

PhantomJSを使ってWebSocketの開発を行う

「Webアプリケーションの開発はEmacs(emacs-nox)で行うべき」というは幼稚園児でも知っている常識だが、JavaScript中心のアプリケーションではどうしてもフォーカスがブラウザに行ってしまう。そこで、PhantomJSを使えばターミナルから離れる必要がなくなり…

チーム開発でのplistの管理方法

複数名のチームでCocoa/Cocoa Touchのアプリケーションを開発している状況で、誰かがplistの設定ファイルを間違ってコミットしたからアプリケーションが動かなくなったといった状況を防いだり、開発中は自分固有の設定を使いたいとする。ぱっと思いついた方…

apressのcocos2d本を読む - 第5章のメモ

apressの"Learn iPhone and iPad cocos2d Game Development"を読みながらcocos2dを勉強していくメモ。第5章はScene, Layer, Spriteの関連クラスの使い方の説明。Learn iPhone and iPad cocos2d Game Development作者: Steffen Itterheim出版社/メーカー: Apr…