sifue's blog

プログラマな二児の父の日常 ポートフォリオは www.soichiro.org

Scala2.9から2.10への移行作業の健忘録

ただの作業ログです。 build.sbtのscalaVersionを2.10.0に変更 scalaVersion := "2.10.0" 以上のようにする。 Seq#firstをSeq#headに置換 盲目的に置き換え。 Squerylを2.10対応の最新バージョンに。でもリポジトリのURLがおかしいので直接追加 libraryDepen…

ssh上でマウススクロールも使える大規模PHP開発向けvim+tmux環境の構築

全体で数百万行、1ファイル1万行超のPHPファイルも一秒以内で開き、開発していくことのできる大規模開発向けのvim+tmux環境を紹介しようと思います。この設定この環境で半年ぐらい安定して利用できています。(無論そんな1万行あるファイルや数千行で複雑性循…

エリック・エヴァンスのドメイン駆動設計に沿ってSymfony2でユーザー管理アプリを作ってみた

あけましておめでとうございます。 去年の暮からエリック・エヴァンスのドメイン駆動設計という5200円、500ページもする本を購入して読み始めた自分です。エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)作者: エリ…

恐ろしく高い編集能を持つマルチカーソルエディタとしてのSublimeText2

最近、開発環境の導入コストの低いIDEの導入を広めようと思って、VimからSublimeText2にメインエディタに変更した自分ですが、SublimeText2のすごさはやっぱりマルチカーソルにあるなと思ったのでエントリーを書くことにしました。Sublime Text2 は http://w…

JavaでノンブロッキングIOを使ったネットワークアプリを学ぶのに最適なNetty 3.5系のGetting Startedを日本語訳しました

Nettyと言えばJavaのノンブロッキングIOのAPIであるNIOをラップしたフレームワークとして、TwitterのFinagleなどで分散ネットワークアプリケーションシステムで使わていて高速で実績のあるライブラリとして有名ですが、ノンブロッキングIOでイベント駆動のサ…

ScalaでEclipseデバック可能な実行jarを作るまでの手順 (例:特定のハッシュタグを含むツイートをファイルに保存し続けるアプリ)

最近Scalaでちょっとしたjarアプリを作ることが多いのでその手順をまとめておきます。まだ発展途上とは言え2.0.2になったことでScala IDE for Eclipseも実用に耐えうるところまできているように思います。あとは、リファクタリング機能とクイックフィックス…

イングリッシュ記法(名前に情報を追加する)は、誰もが行うべき重要な変数命名法

リーダブルコードを読み終えました。リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典出版社/メーカー: オライリージャパン発売日: 2012/06/23メディア…

Mac OSXのEclipseにJavaのソース付きのJDKを設定する方法

MacにJDKをインストール新たにインストールしたり、今回みたいにFlashback対策のようなセキュリティアップデートがされた際に、JDKを再インストールするわけですが、いつものソース付きJDKインストール、設定の仕方を忘れるのでまとめました。 1. Macのアッ…

Scala+sbt+EclipseでUTF-8文字とUIを含む実行jarのアプリケーション作成、開発方法

sbt0.11.3以上をお使いの方はこちら 全国のScalaファンのみなさん、こんにちわ! 最近よくScalaをいじっていることもあって、Scalaを使ってUTF-8の文字を表示しつつ、SwingのUIなんかを表示させる実行jarを作ったりすることがあり、いろいろと開発環境の設定…

SSHを介してVimを使う人に感動的なESCキーを押すとESCキーが効きつつIMEがオフになる設定(Google日本語入力とVimの相性は最強!)

Vimをお使いの皆さん、こんにちわ。 Vimを使って日本語のコメントやドキュメントを書かなきゃいけな人をいつも悩ますのが、IMEのモードの問題です。 (IMEオン, IMEオフ) x (挿入モード, コマンドモード, ビジュアルモード) の、この全6パターンを意識しなが…

vimを使う上で欠かせないproject.vimのヘルプの日本語訳(意訳)

最近project.vimを使ってプロジェクトツリーを表示してソースを読む事が多いのですが、実際には、:Project {filename}で起動した後、 \Cで、フォルダ再帰的にプロジェクトファイルを作るウィザートを起動する \Rで、フォルダ再帰的にプロジェクトファイルを…

MacでCUIのさくらのレンタルサーバー上にssh+screen+vimでマウスで編集、慣性スクロール可能な開発環境を作成する方法

最近電気代のことも考えて、CentOS 5.5で立てていた自宅サーバーを、さくらのレンタルサーバー(月々500円のスタンダードプラン FreeBSD 8.1)に移行しました。 その際にやった、sshを介して使うscreenとvim、あとvimプラグイン群による、マウス操作可能な開発…

GitHubが生み出すソーシャルコーディングがOSSの世界を急速に進化させている

ここ2,3年でオープンソースソフトウェア(OSS)の世界は大きく変わってきました。それはGitHubの台頭とソーシャルコーディングの普及によるものが大きいと考えています。 ご存知の通り、ソフトウェアというのは、日々変わる状況、例えば生産性の高い言語の登場…

Scala2.9.1でEclipse3.6.2を使ってMavenビルドする方法

最近Scala勉強中ですが、maven-scala-pluginを使ってScalaのコードをビルドしようとしたところ、Scalaのバージョンが2.8.0だったり、そもそもデフォルトのpom.xmlじゃ動かなかったので、そのために修正した方法を以下にまとめておきました。 (ただ、Scalaの…

HerokuにScalatra(ScalaのSinatraクローン)をデプロイする方法

ついにJava系のPaaSはGAEだけでなくHerokuも使えるようになり随分幅が広がって来ました。 データベースに様々なものが使え、技術的にロックインされないう点でHerokuには大きな魅了があります。というわけで、今回はScala2.9.1を使ってScalatraというRubyのS…

MacPortsからHomebrewに完全移行してApache2.2+PHP5.3.10+MySQL5.5を構築

前々からずっと気になっていたHomebrew。 MacPortsからHomebrewへの移行メモ 以上を参考に、MacPortsからMAMP環境をHomebrewに完全移行しました。 Homebrewって何かと調べてみると、その特徴が本家( http://mxcl.github.com/homebrew/ )にまとめられていまし…

MacOSXでのEclipse3.7.2の日本語のJava開発環境の構築

かれこれ大学院時代から2年、社会人で5年、計7年近くEclipseを使ってきているわけですが、4月が近づいて新人向けのエントリーがここ多いので、自分がやってきたMacOSX Lionにおける 日本語のEclipseのJavaの開発環境構築方法を紹介しようと思います。 まずは…

Javaで再現性の低い不具合に出会った時に疑う4つのパターン

1. マルチスレッドによる非同期の可変データへのアクセスを疑う →スレッドIDを確認の後、同期処理を入れて確認 2. SetやMapやorder by句のないSQLで取得したListなどの順序がランダムになるデータを疑う →データを巡回処理している場所で確認 3. 外部ファイ…

CentOS5.5のPHPを5.2系から5.3系にバージョンアップ

これまたphpのバージョンアップのたびに色々と詰まるので覚書です。 ちなみにpen4の32bitマシンという7〜8年前のマシンにインストールしています。 でははじめます。 ◯ phpのアンインストール http://www.linuxquestions.org/questions/linux-software-2/fed…

phpfogでクラウドアプリの作成を試してみる

http://dev.appfog.com/features/article/getting_started_custom_application 基本的には以上のやり方の日本語訳です。 このページにはAppFogというWordPressやSugreCRMやMediaWikiなどできあいをアップロードする方法も書かれているので注意。 ちなみにこ…

MacOSX 10.7.3 LionにPHP開発環境を整える

過去何度ももPHPをインストールしている気がしますがその覚書。 リンク先もできるだけここ2,3年以内のものを選びました。 ◯ Xcodeのインストール(MacPortsをインストールするため) [macosx][xcode]Xcode 4.1 を AppStore からダウンロードしてインストール h…

JavaScriptをやり始めた人が理解したほうが良いJSONパーサのコード

そろそろ4月も近いということもあって、新たにWeb業界やSIer業界に入るぞという方がプログラミングの勉強をし始めているころでしょうか。最近は、エンタープライズでもWebクライアントが主流になりつつあるのでJavaScriptの習得は避けては通れない道だと思い…

ニコニコ生放送の生放送だけを連続視聴するChrome拡張を作りました

今週末になってひどい風邪をまたひいてしまった自分です。 実は先週突如Google Chromeの拡張を作ってみようと思いたち、ニコニコ生放送の生放送を自動的に連続視聴してくれる拡張を作りました。 「ニコニコ生放送ダラ見ちゃん」 https://chrome.google.com/w…

秀丸からVimへ移行中:SQLをJavaの文字リテラルに変換するVimスクリプト

かれこれ高校時代、1999年ぐらいからWindowsでは秀丸を12年近く愛用し、Macでは最初はmi、今はCotEditorを愛用してきた自分ですが、ついに今週テキストエディタをVimに改宗することに決めました。 そんなこんなで、只今、秀丸で作った資産を少しずつVimに移…

アジャイルサムライbot( @agile_s_jp_bot )を作りました

http://twitter.com/#!/agile_s_jp_bot 以上のURLになります。内容としては、かの有名なアジャイルサムライ本の内容をかいつまんで1時間に一度つぶやく仕様です。アジャイルサムライ−達人開発者への道−作者: Jonathan Rasmusson,西村直人,角谷信太郎,近藤修…

Heroku + Sinatra + OAuth2.0 + Google API Client で Googleアカウントでログイン

前回のTwitterアカウントでログインに引き続き、今回は、Googleのアカウントを使ってGoogleのサービスにログイン済みの場合にはIDとPasswordを入力させることなくログインをさせる、OAuth2.0を使ったGoogleアカウントでログインの実装例の紹介です。 今回も…

Heroku用Sinatraを使った「Twitterでログイン」の実装例

久しぶりのブログ更新です。仕事の方はひたすらJavaなのですが、サンデープログラミングの方はRuby&JavaScriptに戻ってきました。やっぱりRubyいいです。本当にプログラミングしてて楽で速い。特に読むのも書くのも短いのがいいです。JavaはIDEのお陰で書く…