Prog

ネイティブアプリのような超軽快ボタンをWebで実現してみた

iOSやAndroidのモバイルアプリをWebアプリで作り始めて自分が我慢ならなかったのが「ボタン」だ。Aタグを使っても、clickイベントをバインドしても、反応が遅い、トロいボタンになってしまう。ネイティブにはやはり勝てないのか。クイックなボタンはWebで作…

OSXでRedisをサービスとしてインストール/起動する

OSX(10.8)でRedisキャッシュサーバをサービスとして裏で起動させる方法を紹介する。 Redisサーバをインストール 普通にbrew installするだけ。 sudo brew install redis Redisサーバの起動 redis-serverただ、これだとCTRL+Cを押したらサーバが終了してしま…

WebStormで特定のフォルダをコンテンツのルートにして快適ファイル名補完する

WebStormでは、CSSファイルやimageファイル、外部JSファイルなどをプロジェクトフォルダ内から探してファイル名を補完してくれる。長いファイル名を正確に素早く入力できる素敵な機能なのだが、一つ欠点がある。コンテンツのルートが常にプロジェクトのルー…

IE8以下におけるグローバル変数の気持ち悪い挙動

グローバル変数がIE8以下だと、他のブラウザと挙動が異なる事象があるようだ。(参考) http://tobyho.com/2013/03/13/window-prop-vs-global-var/ Windowプロパティ指定で変数定義 別のスクリプト内で、Varをつけた同名の変数値を初期化 という特殊な例ですが…

Angular.jsのソースコードを読んでわかったJavaScriptの実践的テクニック8つ 第1回

勉強のためにAngular.js(v1.0.1)のソースコードを読み始めました。フレームワークの仕組みを把握するために読み始めたのですが、「おぉそんなことがあるのか!」と新しい事実の発見があったり、「やはりこの書き方は推奨されるんだな。。。」とベストプラク…

GroovyでFizzBuzz解いてみた

1から100まででFizzBuzz問題を解いてみました。 どんなやり方にしろ、職業プログラマでもこれを解けない人がいるらしい。じゃあいったい、何を書けるんだ?と思ってしまう。。。 class FizzBuzz { static main(args) { (1..100).each { n -> print "${n}: " …

JavaScriptによるテンプレートパターン実装

テンプレートパターンをJavaScriptで実装してみた。結構簡単。 以下を実行すると、child2.execute() が呼び出されて、before, child2!, after の順に表示される。 <html> <head> <script> var Parent = function(){ return { before: null, after: null, _execute: null, execute</head></html>…

お名前.comのVPSサーバでCakePHPアプリを動かす

結論から言うと、初期状態では上手く動かない。 apacheの設定で、/appというパスがある特殊なフォルダにリンクされてしまい、CakePHPのappフォルダの中身にリンクしないからである。次の設定をしてやることで動くようになる。 cd /var/www/vhosts/あなたのド…

SubversionにコミットしたらWEBサーバの内容も更新する方法

Subversionで開発していると、ソースコードをコミットした後に、動作環境用のサーバにもアップするということがよくある。 そうした場合、コミットとアップを両方行う便利な方法が、post-commitフックである。リポジトリの中の hooksというフォルダに、post-…

ソフトウェアはユーザから「消される」仕組みを提供するべき

以下のようなソフトウェアがある。 ・インストールすると自動的にインストール先が選ばれ、インストールされる(インストール先フォルダを選べない) ・インストーラはあるがアンインストーラが無い ・インストールするとプログラムメニューに「アンインスト…

SQLiteを使って超簡易のコメントページをつくる

ぼくの連れが最近PHPを弄ったり、WEBサイトを作ったりしている。まぁ彼女なのだが、やっぱり自分の好きなことに興味持ってもらえるのは嬉しいわけです。コメント機能がほしい、ということを言っていたのでサクっと作ってみた。(所用時間40分) 機能としては…

phpMyAdminで大きすぎてインポートできないとき

php.iniのpost_max_sizeを大きくしてやる。 僕はとりあえず50Mぐらいにしときました。

Joomla: URI、パス関連の定数・関数まとめ

JPATH_COMPONENT C:\web\apache\htdocs\Joomla\components\com_XXXJPATH_COMPONENT_ADMINISTRATOR C:\web\apache\htdocs\Joomla\administrator\components\com_XXXJURI::base() http://localhost/Joomla/administrator/JURI::base( true ); /Joomla/administ…

MySQL: 文字列の先頭/末尾の全角スペースを取り除く

MySQLのTRIM関数はそのままでは全角スペースを処理できないようだ。 この場合、パラメータで全角スペースを指定してやればよい。 文字列から先頭の全角空白を取り除く場合 TRIM(LEADING ' ' FROM 空白を取り除きたい文字列) 文字列から末尾の全角空白を取り…

Joomla: コンポーネントインストール時にFatal error

Joomlaで自作のコンポーネントをインストールしようとしたら、 Fatal error: Allowed memory size of 8388608 bytes exhausted のようなエラーメッセージが。 調べてみると、Joomlaの問題ではなく、PHPへのメモリ割り当てが少ないことで起こっているらしい。…

JavaScript: 正規表現による郵便番号の形式チェック

与えられた文字列が、7桁郵便番号の形式(XXX-XXXX あるいは XXXXXXX)になっているかを判定するJavaScriptです。正規表現を使って判定します。 // 郵便番号かどうかを判定するファンクション function isPostcode( postcode ) { if( (postcode.match(/^\d{3}…

JavaScript: 日付文字列の比較

DateオブジェクトのgetTime()メンバで得られる値を比較する。小さい値が過去(昔)の値になる。 サンプル:"YYYY/MM/DD"形式の日付文字列を現在の日付と比較する 戻り値: -1: 過去の日付である, 1: 現在か未来の日付である function compare2now( datestr )…