ソフトバンクからiijmioに切り替えて約2年

ソフトバンクからiijmioに切り替えて2年経ちました。 このあたりでちょっと振り返りをしたいと思います。この記事では奥さん説得の材料になるようなポイントを書いて行こうと思います。 我が家では私が先に乗り換えて、あれこれメリットを説明・実演してから…

Value-Domainで取得したドメインに繋がらない

自分で作ったWebサービスを公開するにあたってドメインを取得しました。 いま公開されているのはmitsurintoshokan.comですが、最初はValude-Domainにて別の名前で取得しました。 juzow.hatenablog.comまずはさくらVPS側でDNSの設定ですが、これは下のURLにあ…

初めてWebサービスを作ってみた

Amazonで買う前に最寄り図書館の蔵書と中古価格をチェックするWebサービス http://www.mitsurintoshokan.com最近、諸々の事情で使える予算が厳しくなってきました。 昔のように少し気になった本を次から次へと買うことができません。 ただそうは言っても、た…

中継機の場所を変えたら劇的にWifi環境が改善された

最近3階建に引っ越しました。 家自体は快適なのですが、以前のマンションで全部屋繋がっていたWifiが届かない場所が出てきました。Wifiルーターは2階の角、テレビの脇に設置していますが、寝室の3階角部屋にはまったく電波が届きません。 届くけど電波をつ…

RoRでHelperを使ってみた

時間を入力してもらうのに分数を5分おきにする必要があったのでHelperを作った。 Viewにごてごて書くと、ソースがごちゃごちゃするのでHelperに書こうねということか? http://api.rubyonrails.org/classes/ActionController/Helpers.html http://qiita.com…

ActiveModelを継承していないModelでValidationを実施する

ActiveModelを継承していないModelでValidationを実施する必要があったのでメモ http://qiita.com/shunhikita/items/772b81a1cc066e67930evi app/models/mymodel.rb class Mymodel include ActiveModel::Validations validates_with MymodelValidator end vi…

RoRでなにか作ってみる - その1

とにかくRuby on Railsでなにか作ろう。 最近困ったことでWebサービスになるようなもの。。 ときどき観たい番組を見逃すから、これをなんとかしたい。こんな流れでいけるのではないか。 毎日Web上のテレビ番組表を確認 明日の番組表に特定のキーワードに引っ…

"Soft Skills"を読んでる

なんだか世界中で話題?のSoft Skillsが手に入ったので読んでいる。ソフトウェア開発者としてどのようにスキルを磨いていくのか、どうやって自分自身をマーケティングしていけば良いのか、新しい技術をどのようにして学んでいけば良いのか。。さらには金持ち…

英単語

今週調べた英単語gestation - 計画を練ること、妊娠期間 contraception - 避妊、避妊法、産児制限 concise - 簡潔な、簡明な inference - 推論、推定 longtitudinal - 長期的な、(長期にわたる)変化を扱った

JMockitを使ってStaticクラスをMock

10年近く前、まだテストなんて概念すら知らないときに作ったシステムがいまだに動いています。 当時はPHPしか経験がなかったのですが、開発はJavaでなければいけないということでHello Worldから始めました。 なんとか完成したものの、変更に次ぐ変更によっ…

SQLのWHERE条件

ANDで繋がってるWHEREの条件は左から右に順番に見ていくので、とてつもなく大きなデータを抽出する場合はより結果の絞れる条件を左に持ってくると良い。ということだと思う。 実際やってみたけど、自分の条件ではあまり変わらなかった。。 Queries with all …

BackboneのCollectionでFetchをカスタマイズ

前に同じようなこと書いたかもしれないがメモhttp://stackoverflow.com/questions/18383205/backbone-js-with-a-custom-fetch-url

JPAについて調べてみた

ほぼ毎日使うのだけれど、かなり曖昧な理解のまま放置していた。 エラーが起こるたびに場当たり的な対処をしてきましたが、これではいけないと1から調べてみました。 間違っている箇所もあるかもしれませんので、お気づきの点はぜひご指摘ください。永続化…

Apple Mac miniで作るVMware vSphereラボ環境 ー vCenter Serverのインストール

DCと仮想ESXiを追加したのでvCenter Serverをセットアップします。 まずWindows 2008 R2をインストールするのですが、評価版のイメージがかなり古いようです。ダウンロード時のままだとvCenter Serverどころか、SQL Server 2008 R2 Express、VMware Toolsも…

Apple Mac miniで作るVMware vSphereラボ環境 ー Nested ESXiとDCのインストール

前回までの内容でMac miniにESXiがインストールできました。 これから仮想ESXi、vCenter Server、FreeNASを使った仮想ストレージを用意します。 セットアップするのは次の5つの仮想マシンです。 ドメインコントローラ(DC) ESXi x 2台 vCenter Server iSCSI…

Apple Mac miniで作るVMware vSphereラボ環境 ー ESXiのインストール

前回の続きでMac miniにESXiをインストールしていきます。 CD-Rが余っている場合は普通にISOを焼いてもらえれば、USBメモリを準備する必要はありません。 CD-Rがない場合は最初に500MB程度の容量のあるUSBメモリを用意してください。今回は引き出しの奥にあ…

Apple Mac miniで作るVMware vSphereラボ環境 ー はじめに

VCP受験を思い立ったとき、会社以外でvSphereを実行できるテスト環境が欲しいと思っていたのですが、スペース的にも騒音的にもサーバー機器を家に置く訳にはいきませんでした。かといって家にある古いWindows PCにVMware Workstationを入れてラボを作れるか…

PlayFrameworkのViewでHTMLエスケープをさせない方法

この方法が正しいかどうかはわからないけど一応メモ。 下のような形でHTMLを出力させるメソッドがあったとして… @Entity public class MyModel extends Model { @Transient public final static HashMap typeMap = new HashMap(){{ put(0, "Type1"); put(1, …

VCP5を取得しました

半年前にトレーニングに参加したVCPですが、先日やっと試験に合格しました。 VCPとして認定されるには下記コースへの参加が条件になっていますので、受験される方はトレーニングの受講が必要です。 VMware vSphere : Install, Configure, Manage [V5]コース…

apache 一部のサブディレクトリだけを認証なしに設定する

ルートディレクトリに対してBasic認証をかけている場合に、サブディレクトリの一部を認証なしでも通すように設定する方法です。 LocationMatchを使って認証が必要ないLocationにSatisfy Anyを指定します。対象のLocationだけ認証なしにしても、当然ながらそ…

backbone.js Viewのイベントを実行したターゲットを取得

backbone.jsのviewでeventsに定義したメソッド内で対象の要素を取得するにはtargetを使います。 eventsで定義されたメソッドの中だと「this」はviewそのものを参照するので、console.log($(this).html())とやってもnullが返ってきてしまいます。 正しくイベ…

Playframework モデルのプロパティのデータ型を指定する

PlayframeworkでモデルにString型のプロパティを追加すると、データ型はMySQLだと自動的にVARCHAR(255)になります。 このままだと255を超える長さの文字列を追加しようとするとPersistenceExceptionになります。PersistenceException occured : org.hibernat…

backbone.js モデルのバリデーション

backbone.jsでモデルのバリデーションを行うにはモデルでvalidateメソッドを実装します。 下のSourceにあるサンプルだと1つのエラーで1つずつAlertを表示するような形でしたが、複数の入力フィールドがあるのでまとめてエラーを出したいと思います。 var MyM…

PlayFramework Listを使ってIN句でqueryをかける

idとtypeでqueryをかけて結果を取得するような場合、bindを使ってListの内容をそのままIN句に使うことができます。 String型のリストなら自動でシングルクォートを付けて、SQLエスケープもやってくれるようです。 List<MyModel> list = new ArrayList(); List<Long> idList </long></mymodel>…

backbone.js モデル保存後のCallback

Backbone.jsでモデル保存後のcallbackを設定するには、1つ目の引数に保存するプロパティ値を渡して、2番目の引数にsuccessとerrorを渡します。 success、errorはどちらか一方だけでもOKかと思います。 this.model.save( {var1: "test", var2: "hoge"}, { su…

PlayFramework ManyToManyのリレーション

// 親モデル @Entity public class Parent extends Model{ @ManyToMany(mappedBy="parents", cascade=CascadeType.ALL) @OrderBy("birthday") public List<Child> children; } // 子モデル @Entity public class Child extends Model{ @ManyToMany public List<Parent> pare</parent></child>…

http.maxParams

大きめのデータをPOSTで飛ばしているときに、コンソールに警告が出ていました。Number of request parameters xxxx is higher than maximum of 1000, aborting. Can be configured using 'http.maxParams' application.confに次の行を追加すると解決しました…

PlayFrameworkでセッションID、DBのデータが必要なFunctionalTest

たぶんFunctionalTestの使い方が間違ってますが一応書こうと思います。まずセッションIDについて。 開発中のアプリで、セッションにモデルのIDを保存しておくメソッドと、そのIDを後から使うメソッドがあります。 簡略化して書くと下のようなコードです。実…

Jasmine+Sinon.jsを使ってAlertが正しいテキストで表示されることを確認する

confirmでも同じように使えました。 // Spec describe("MyAlertTest", function(){ beforeEach(function(){ setFixtures(sandbox()); $("#sandbox").append("<button id='testBtn' value='test' />"); this.alertSpy = sinon.stub(window, "alert").returns(true); }); //これなしだとTypeError: </button>…

IE9でBackboneアプリが動かない

ChromeやFFで問題なく動作していたBackboneアプリがIE9では動かない。。 デバッグツールを立ち上げるとこんなエラーが出ていました。SCRIPT1028: 識別子、文字列または数がありません。 var ItemView = Backbone.View.extend({ render: function(){ $(this.…

Jasmine+sinon.jsでjQuery.ajaxが呼ばれているかテストする

sinon.spyを使うと$.ajaxが呼ばれているかをテストできます。 このときはBackboneのCollectionでfetchが正しいパラメータで呼び出されているかをテストしてみました。 describe("some ajax test", function(){ beforeEach(function(){ this.ajaxSpy = sinon.…

Jasmine+BackboneでViewのテストをするときにダミーのHTML要素を使う

jasmine-jqueryのsandboxを使うと、テストの間だけ使えるDIV要素を作ってくれます。 各テストの間でちゃんと掃除をしてくれるので、わざわざ削除する必要もありません。 beforeEach(function(){ setFixtures(sandbox()); }); sandbox()を使うとdiv要素にidと…

Jasmineで非同期のリクエスト終了後にテストを実行する

今日はJasmineを使ってBackbone.Viewのテストを書いていました。 サンプルに載っていた通り、非同期リクエストでViewのテンプレートを読み込んでいたのですが、テンプレートの読み込みが終了した時点でテストを実行しようとして、うまくいかずにハマりました…

PlayFramework 別のモデルと関連があるモデルにGsonのtoJsonが使えないとき

Gsonを使うとモデルをそのままJSON形式に変換したい時に、こんな形で一発変換できます。 Gson g = new Gson(); Person p = Person.findById(myId); g.toJson(p); // {"name": "Taro Yamada", "birthday": "1920/06/30"} ただ、Personが別のモデルとManyToOne…

Ajaxリクエストをテスト

PlayのFunctionalTestでAjaxリクエストをテストしてみました。 ここではJSON形式でデータを渡すので、Gsonを使ってHashをJSON形式に直してからPOSTしています。 HashMap dataToSend = new HashMap(); dataToSend.put("key1", "value1"); dataToSend.put("key…

Eclipseでvim/textmateライクなテーマを使う

仕事ではJavaが多いのでEclipseを使います。 画面があまりにもシンプルで寂しいので、Eclipseのテーマをいじれないか探してみたところ、プラグインを使ってVimやTextmateっぽい感じにすることができました。wombatやmonokaiなども最初から用意されています。…

PlayFrameworkでローカルにあるJarを使いたい

こんな形でjarをローカルフォルダに突っ込んで、使用することができます。 こうしておくとJenkinsでも、ビルド前にdependencies --syncすることで、ちゃんと指定したjarを使ってくれます。 jarのファイル名は、artifactのところにあるように「モジュール名-…

jQuery + Backbone + JasmineでBDD その1

jQuery + Backbone + JasmineでBDDを試してみます。元ネタはこちらのすばらしいブログです。 最初に断っておきますが、私はJasmine初体験でBDD、TDDの知識も本で読みかじった程度です。 ついでに言うと、jQueryもちょろっと触ったことがあるくらいです。なぜ…

PlayFrameworkのtemplate その2

Includeテンプレートの中で別のテンプレートを呼び出すにはincludeを使います。 includeされたテンプレートでは、親テンプレートで使用可能な値を使うことができます。includeする親側での呼び出しは下のような形です。 #{include 'Books/bookDetail.html'} …

PlayFrameworkのtemplate

今日はPlayのテンプレートで3つ発見があったので、そのときのことをメモします。 ソースが手元にないので覚えてる部分から書いていきます。・別のテンプレートをページの一部に読み込む(Railsのpartialみたいな) ・ループの中でインデックスを取得する ・…

PlayFrameworkでTDDのマネをしてみた

自分用の小さな開発案件にPlayを使ってTDDを真似てみようと思いました。 とりあえずModelのテストからと書き始めたところ… //Model @Entity public class Company extends Model{ } //Test public class CompanyTest{ @Test public void testSomething(){ Co…

YUM, RPMのメモ

Redhat系のOSの場合、yum, rpmでパッケージの管理をすることになります。 削除や追加もたまに発生するのですが、毎回コマンドを忘れてしまい、その度に調べることになるのでメモします。YUMすでにインストールされているパッケージを調べるにはlist installe…

JenkinsでVerifyError

新しく仲間に加わったJenkins氏がPlayのプロジェクトのテスト実行時にエラーを吐いていた。 APIをみても「some sort of internal inconsistency or security problem」といまいちはっきりしないのですが。 Execution exception VerifyError occured : Expect…

JenkinsでPlay Frameworkのプロジェクトを扱う

少し前からJenkinsを導入しています。 Playを使ったアプリケーションがあったので、Jenkinsにビルドの設定をしたときのメモ書きです。前提条件: Jenkinsはyumでインストール&設定済み手順サマリ: 1. JenkinsサーバーにPlayのダウンロード 2. Playframewor…

vSphere Clientを英語で起動する

普段vSphere Clientを使用するときは日本で表示していますが、ときどき英語にして起動する必要があります。 エラーの内容や、なにか特定の用語について、日本語で検索しても情報がない場合です。1度vSphere Clientを終了して、ショートカットを下のように変…

VCP取得に向けて

某社でVMware vSphereの研修を受けてきました。 記憶が飛ばないうちに勉強を開始して、ぜひVCPを取得したいと思います。VCPの取得にあたってはVMwareから公式のガイドが出ています。 http://communities.vmware.com/docs/DOC-16726さらに英語版では7月にVCP5…

RVMのRubyでCGI

RVM上のRubyを使ってCGIを動かしたいと思ったのですが、WEBにあまり情報がないようです。 世の中では当たり前すぎて書く必要もないのか、あまりやる人がいないのか。。gemもgemsetを使って気軽に追加・削除ができるのでいいかなと。環境はCentOSの5.7です。 …

一時的に使う変数をモデルに持たせたいとき

モデルそのものを使うのではなくて、モデルをハッシュに変換して変数を追加する model.attributesでモデルをハッシュに変換できるので、これを使った配列にハッシュでモデルの全変数を入れている array = Array.new MyModel.all.each |m| do hoge = m.attrib…

仮想ESXi上で64bit OSを起動させる

仮想環境にあるESXi 4.1で64bitのゲストOSを起動しようとしたができなかった。 どうやらHardwareのバージョンが8からでないとできない模様仮想ESXiを5.0にアップすることで解決した。http://communities.vmware.com/docs/DOC-8970

VM化したESXiでVMを動かす時の設定

ESXiをインストールしたマシンに仮想マシンとしてESXiをインストールして、さらにそのうえで仮想マシンを実行しようとすると、こんなエラーが出る。「仮想マシンで VMware ESX を実行するには、外部の仮想マシンが VMware ESX ゲスト OS を実行するように構…