php, 雑記いつもなら寝ている時間なのだけれど、なぜか睡魔がやってこないので過去の思い出をまとめてみる。去年の2月ごろ、新規案件のウェブサービスに開発メンバーとしてアサインされた。作るべきものが大量にあったため、4チーム(工期中多少増減したが)に分けてドメインごとに作業分担をした。そのうち、ウェブアプリケーション本体(フロント、API、マネージツール)を担当するチームのサブリーダーが自分の役割だった。そのプロジェクトは去年の末に一旦の区切りを迎え、自分はそこで退職し、新たな環境に身を置くことにした。それから丸4ヶ月経って、自分が書いたコードと新しい環境で書かれていたコードを見比べて、思うところが多々ある。それらを文章としてまとめたいと思う。 失敗したこと簡単な骨組みを作ったあと、デプロイの仕組みを作った。php には phar という仕組みがある。これは jar/war のようにウェブサ
ソースコードタグシステム GLOBAL の、作者自身による解説本「GNU GLOBAL ハンドブック」を読んだので紹介します。章立ては次の通りです。長かったので少し「(省略)」と書いてはしょりました。 目次 第1部 導入編 第1章 インストール 1.1 インストールの最も簡単な説明 1.2 インストールの準備 1.3 ソースアーカイブからのインストール 1.4 CVS リポジトリからのインストール 1.5 ソースアーカイブの署名を確認する 第2章 さぁはじめよう 2.1 GLOBAL ひとめぐりのための最初の題材 2.2 タグファイルを作る 2.3 シンボルの定義場所を調べる 2.4 シンボルの参照場所を調べる(-rオプション) 2.5 定義でも参照でもないシンボルを探す(-sオプション) 2.6 ディレクトリを移動する 2.7 正規表現を使う 2.8 egrep 相当の機能を使う(-gコ
バージョン管理狂の皆様におかれましては alias st='git status' などのエイリアスは当然定義されていることと思います。 うっかり Mercurial リポジトリの中で st を叩いてしまって fatal: Not a git repository などと言われ、ここで st つったら hg status に決まってるだろボケがとターミナルを叱責した経験も当然あることと思います。 泣く泣く gst と hst を定義したものの、3文字打つのがかったるくて枕を濡らしたことも当然一度や二度ではないことでしょう。 というわけでちょっと賢いエイリアスを定義できるやつを作りました。 Git リポジトリの中で st を叩いたら git statusになり、Mercurial リポジトリの中では hg status になる、そんな空気の読めるやつです。 no title こういう感じで使
もうJavaもRubyも要らない?–JavaScriptオンリーの未来派WebアプリフレームワークMeteorがデビューという記事で知った、新しいフレームワークMeteor。 ちょっと気になったので、軽く触ってみました。すごすぎるフレームワークの登場です!! 正確に言うと、実行環境&フレームワーク&クラウドPaaS&パッケージマネージャーといったところでしょうか。Node.jsとHerokuとnpmが一緒になったようなもんだと思えば、イメージがわくと思いますが、実態はそれらを上回っています(パッケージ数はnpmの比じゃありませんが・・・使い勝手という意味で)。 インストール ターミナルをたちあげて、以下のコマンドを実行するだけ。 (行頭の$はターミナルであることを表してるだけで、コマンドの一部じゃありません) $ curl install.meteor.com | sh これで /usr/
全国6,000万人の美女ファンのみなさん。ごきげんよう。 突然ですが「美人時計」というiPhoneアプリがあるのをご存知でしょうか。 全国各地の美女が1分毎にiPhoneに現れ、手にした黒板で時刻を教えてくれる、それはそれは本当に素晴らしいアプリです。 全国の美女ファンに熱烈な歓迎を受けた最初の美人時計がリリースされてから、僕はずっとこのシリーズの大ファンです。特に福岡版がお気に入りで、仕事中はスタンドに立てたiPhoneにこのアプリを起動させ、1分に1回の美女との出会いを楽しんでいました。 ただ毎日のように見ていると、何時にお気に入りの子が現れるのか分かってしまい、新鮮味に欠けてきます。名古屋版や京都版など全国各地の美女を堪能できる様々なバージョンがリリースされているのですが、それでも起きてる時間のほとんどはパソコンの前に座っているこの生活では、新鮮味に欠けるのは時間の問題です。 それか
2014-09-02更新:pcre モジュールを使わないバージョンに差し戻し 以前のエントリで掲載したコードを改良して、 git の作業状態(merge がコンフリクトで中断してるとか interactive rebase 中だとか)も表示するようにしてみた。 以前のこれに加えて merge 中はこんなんなります。 つまり、 作業ディレクトリがクリーンなら緑 追跡されていないファイルがあるときは黄色 追跡されているファイルに変更があるときは赤 変更あり+未追跡ファイルありで太字の赤 merge や rebase の途中ならカッコ内に表示 です。 コード autoload -Uz VCS_INFO_get_data_git; VCS_INFO_get_data_git 2> /dev/null function rprompt-git-current-branch { local name
最近、GmailやGoogle Calenderにアクセスすると以下のようなダイアログが表示されることに気づいた方も多くいらっしゃるのではないでしょうか。 「Gmailでメールリンクをすべて開くようにしますか?」というこの問いに「はい」と答えると、以降、「mailto:」 で始まるリンクをクリックするとGmailが立ち上がるようになります。 この「mailto:」とGmailの紐付けは、Google Chromeであれば「環境設定→高度な設定→コンテンツの設定→ハンドラを管理」というメニューを開くと確認・管理することができます。一度紐付けたアプリを削除したり、他のアプリに変更することもできます。 こんな面白い仕掛け、どうやって実現しているのでしょう? それは、HTML5から利用可能になったnavigator.registerProtocolHandler() を使うとこういうことができます
ここ数年のCAVE及びTAITOの気合いの入れようから、iOS向けのシューティングゲームがもの凄い勢いで充実してきています。私のiPadのゲームアプリのうち半数くらいはシューティングになってしまっており、これはもうシューティングゲーム機だよねということで書いてみました。 この調子で盛り上がっていって、他メーカーもどんどん参入するようになったら素敵ですね。 【スクープ】東亜プランのゲームがiOSで蘇る!? iOS機器がシューティングゲームに向いている理由 大きくわけて3つ! 最初から縦画面対応 シューティングゲームには「縦画面・縦スクロール」の「縦シュー」と、「横画面・横スクロール」の「横シュー」があります。(一部には「横画面・縦スクロール」のタイプもありますが、かなり少数派。)このうち「縦シュー」の「縦画面」というのが家庭用移植の大きな壁でした。家庭用ゲーム機はテレビをモニターとして使用し
jdb.jsというフレームワークを作りました。まだ開発に2日もかけてない(ドキュメント書くほうが大変だった(^^; )ので、荒っぽいところも、機能が不足しているところもありますが、試しに実装してみたらかなり便利なものができたと思っているので、フライング気味に公開します。Indexed Database APIの使いにくさを知っている人なら、結構興味を持っていただけるんじゃないかと。 GitHubのリポジトリはこちらです。 以下、README_ja.mdから引用します。 jdb.jsは、W3C Indexed Database APIをより直感的に扱いやすくすることを目指したライブラリです。 名前の由来は、「IDB」(Indexed DB)をより使いやすく、ということで「JDB」(Jはアルファベット順でIの次の文字です)としました。 Indexed Database APIをそのまま利用する
Vimこの記事は Vim Advent Calendar 2011 : ATND の40日目の記事ですです。VIm Advent Calendarを見て興味持った or 初心者向けの紹介記事になります。undoVimではノーマルモードで u と打つと 元に戻す(undo) が発動し、行き過ぎたundo直す為に Ctrl-R を打つと やり直し(redo) が発動します。 ほとんど使いませんが、undoブランチを辿る様な使いかたも一応あります。undo - vimdoc-jaVim-users.jp - Hack #8: 作業の履歴を辿る 無限undoさて、このundo履歴は、Vimを終了したら消えてしまうというのが昔の仕様でしたが、Vim7,3からはファイルにundo履歴を書き出して、終了をしても再開が可能となりました。※Vimのバージョンは端末上なら以下で詳細に見れます。 $ vim -
Titanium, OpenGLTitanium Mobile で、enchant.js や emo-framework 並みに手軽に2Dゲームが作れるモジュールを公開しました! http://code.google.com/p/quicktigame2d/ http://code.google.com/p/quicktigame2d/wiki/ Android の方は残念ですが、現在のところ iOS 用のモジュールだけです! 特徴 Titanium.UI.ImageView とかより全然速いスプライトシート対応。もちろんシートのアニメーションもできます。TexturePacker やZwoptex などのツールを利用したスプライトアトラスに対応Titanium.UIとの組み合わせもできます などなど。 emo-framework と違うのは、Titanium Mobile のコンポーネン
Unix/Linux, Debian, 運用この資料、どこかの勉強会のLT向け*1に2010年11月13日に作ったのですが、大人の事情*2でお蔵入りにしてました。*3Git本も無事出版されたので、どこかのLTで発表しようか、というと個人的にはずいぶん忘却の彼方になってしまった感もありますし、今年はプライベートな事情*4で、参加できても東京エリアDebian勉強会と、CouchDB JPの勉強会くらいになりそうな感じですので、ブログで公開しておくことにしました。インフラエンジニアのためのGit入門 View more presentations from Kouhei Maeda興味があればぜひご覧ください。Git本もぜひよろしくです。wGitによるバージョン管理posted with amazlet at 12.01.04岩松 信洋 上川 純一 まえだこうへい 小川 伸一郎 オーム社 売り
最近は、運用中Railsアプリの管理画面をTwitter Bootstrapでリニューアルしたり、こまごまと機能追加なんかしたりしてました。そんな中で新たに使ったgemライブラリを簡単にまとめてみます。 Prawn no title PDF作成 日本語フォントとあわせて日本語表示も可能 表や図などある程度自由にレイアウトできる prawn-railsというのもさっき見つけた Haml-rails https://github.com/indirect/haml-rails HamlはERBよりも記述が完結で楽 管理画面とかプログラマのみで完結するような要件なら導入すべきかと erb2haml no title ERBのviewファイルを一括置換 Hamlの文法を覚える参考にもなる Kaminari no title ページネーション will_paginateよりもなんとなくこちら wil
ワーキングドラフトが公開されたり、IEBlogでも言及されるなど、注目度が一層高まってきた感のあるWeb RTC (Web RealTime Communication)仕様について、改めて調べてみました。 Web RTCは、Webアプリからカメラやマイクでメディアデータを取り込んたり、リモートホストとのP2Pのデータ送受信を行うためのJavaScript APIです。 Web RTCは、以前はWHATWG HTMLの一部として仕様が提案されていましたが、分離して一つの仕様になりました。分離したのはつい最近です。 API自体は単純なので、これまでは仕様書流し読みしてわかった気になっていたのですが、「ローカルからのメディアデータの取り込みとP2Pがなんで同じ仕様にあるんだろう?」とふと疑問に思って、きちんと仕様書を眺めて見ました。同じように疑問に思う方が居らっしゃれば、お役に立つ記事かと思い
GHC(コンパイラ)XCode4だと標準でgccが入ってないので、macportsやらhomebrew経由でコンパイルする気でいるとさっぱりうまく行かず挫折してしまうので素直にHaskell Platformを入れる。 http://hackage.haskell.org/platform/ ライブラリHaskell Platformの中にghcのパッケージ管理システムcabalで以下インストール。hoogle(APIリファレンス参照)ghc-mod(便利)標準だと ~/Library/Haskell/bin(lib)に置かれるので$PATHに追加していおく。 リファレンスvimからhoogle参照できるとかっこいいので以下のpluginを入れる。 https://github.com/ujihisa/ref-hoogle https://github.com/thinca/vim-ref
nodejs mizchiです。今日は、結局なんでJavascriptなのか、みたいなことを書きます。 ロジックと手続きロジックは論理的な手順を記述します。複雑なものはアルゴリズムなどと呼ばれますが、それは数学的な構造を含むアプローチであることが多いです。 それに対して、手続き的な記述は、決められた手順を踏むことが多いです。これに関しては「ググれ」というしかありません。ただ、言語に精通することで中身を想像できるようになり、実装が早くなります。 で、他人が作ったものを使い回すことでだいたいものは実装できるので、基本的にコーディングって手続き的なコーディングの連続になることが多いわけですね。ゲームプログラミングならともかく。 手続きを経て入手してきたデータを、他のパーツと差し替えて自分のやりたい結果に導いていく、その過程がコーディングだとも言えるでしょう。 というのがプログラミングの一般論。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く