MSYS2とsbtの設定

sbt(Windows MSI版)とMSYS2の組み合わせで、JVMオプションを指定したい場合、.bashrcで以下のように指定するのが無難っぽい。 alias sbt="JAVA_OPTS='-Xms512M -Xmx1G -XX:ReservedCodeCacheSize=256M -Dinput.encoding=Cp1252' sbt" ${SBT_HOME}bin/sbt の…

安定寄りの零細IT会社を作って1年ちょいで得た知見

デンキヤギ株式会社という名のITの会社を作ってから1年強になった。自社プロダクトを事業の中心に据えたいとは考えているが、まずは安定経営のため受託開発を優先してきたことにより得た知見をまとめておく。ちらほらと「会社を作ってどうよ」みたいな事は聞…

Haxe/JavaScriptでSource Mapを出力するための設定

ざっくりこんな感じです。 -cp src -main Main -js bin/main.js -debug -D source-map-content"-debug" オプションを付けると、Source Mapが生成されるのは皆さんご存知だとは思いますが、これだけだと、HTTPサーバに配置した場合にSource Mapが読み込めませ…

WindowsにMSYSのrsyncとsshをインストール

WindowsでVagrant Rsync Synced Foldersを使いたかったので、MSYSのrsyncとsshを入れた。Gowとかで済ませようと思ってたのだけど、rsyncが入ってなかった…。 mingw-get-setupでmingw-getをインストール MinGW Installerが立ち上がってくるが、閉じてOK cmdで…

GitHubに置いた就業規則に対して、GitHub対応社労士さんからツッコミが来た

無料相談状態なので、ありがたい話ですね。GitHub対応の社労士として就業規則にプルリクしてみた - Uchibe.netレス的なところ。 例えば、客先に常駐した時の労働時間に関する規定ですが、客先に常駐という状態をもって、事業場外みなし労働とする事は出来な…

GitHubに会社の就業規則を公開した

これです。DenkiYagi/EmployeeHandbookちゃんと社労士チェックを入れて、2014年時点の法運用Validな感じにしてあるので、下手な中小企業はおろか、ろくにメンテされていない大企業の就業規則よりマトモな内容になっているはずです。 なんで就業規則を公開し…

JsViewsとTypeahead.jsを併用するとバインディングが期待通りに動かない

おそらくJsViewsに限った話ではなくて、双方向バインディングをやってくれるテンプレートエンジンなりフレームワーク全般にかかるであろう事案。 問題点 以下のイベント発火時に双方向バインディング(View -> Model)が動作しない。 typeahead:autocompleted…

JsViews(JsRender)の{{for}}タグの#data, #index

ちゃんとドキュメントに書かれてないのだけど、{{for}}タグでは、#data(カレント行)と#index(インデックス)を参照できる。 <ul> {{for list}} <li>{{>#index}} - {{>#data}}</li> {{/for}} </ul> 追記:他にも #parent がある。

ハイパフォーマンス ブラウザネットワーキング、読むべき本だった

Twitterで「なんかやばそうな本が出るぞ!!!」みたいな事を言っていたら、それが偶然拾われて、献本して頂く流れになりました。オライリーさん、ありがとうございます。とりあえずざっと全体を流し読みした(と言っても3時間弱は読んだ)ので、書評っぽい…

abstractを使ってDOMとjQueryを透過的に扱う

abstractを使うと、「C言語のunion」みたいなのを型安全かつ便利に書ける。引数をabstractで受けると非常に便利。例として、js.html.Elementとjs.JQueryを透過的に扱ってみる。 abstract Html(Element) { inline function new(x: Element) { this = x; } @:f…

Haxeのmacroでtypedefを動的に生成する

公式Wikiで解説が発見できなくて、ググりながら色々試しててたら、JSON-schema type builder prototype.にたどり着いた。理解できてしまえば簡単なのだが、ポイントとしては、 Expr.ComplexType.TAnonymousを生成して、 ComplexTypeTools.toType()でTypeに変…

Haxeとはどんな言語か

厳密にいえば正しくないのだけど、ざっくりこんな感じ。 型システムがまともになってマクロも使えるECMAScript4(ActionScript3) 型システムがまともになってマクロも使えるけど、try-with-resourcesがないJava8 型システムがまともになってマクロも使えるけ…

Haxeのexternとinlineを同時に書くとinlineが優先されるっぽい

HaxeのjQuery externで new JQuery("selector"); って書くのがダサいなぁと思って、いろいろ試していたときにコンパイルできたコードをメモ。externとinlineを同時に書くとinlineの方が優先されるらしい。Haxe 3.1.3で確認。 @:native("jQuery") extern clas…

HaxeのJavaScriptターゲット用のビルトイン

Haxe 3.0から __js__() 以外にもいくつか追加されてたらしい。知らんかった。The Haxe Magic - Haxe untyped __js__(js : String) : Dynamic インラインJavaScript。 var console = untyped __js__("console"); untyped __js__("console.trace()"); untyped …

Haxeの構造的部分型(typedef)ってstaticでも使える

Haxeを使い始めて2年ぐらい経つけど、今更こういうコードが書けることに気が付いた。 typedef Foo = { function print(): Void; } class Hoge { public static function print() { trace("Hoge"); } } var foo: Foo = Hoge; foo.print();

Haxeで仕方なくnullと付き合う

Haxeは現時点で選択しうるaltJSの中では型システムが一番出来が良く、代数的データ型(Haxeではenum)が扱える点が素晴らしい。しかし、元々はFlashを前提とし、今はマルチターゲット(JavaScript、PHP、C++、C#等)にコンパイルする言語として設計されてい…

IntelliJ IDEA 13のJVM設定

初期値のままだと結構IntelliJがスワップするので、idea.exe.vmoptionsをこんな感じにしてある。 -server -Xms512m -Xmx2048m -XX:MaxPermSize=512m -XX:ReservedCodeCacheSize=128m -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX…

Windows用のPostgreSQL 9.3でUUIDを使えるようにする

シーケンスの代わりにuuidをIDとして使う | Siguniang's Blogを見ながら必要なことだけをメモ。 uuid-osspを有効にする Windows用のPostgreSQLには最初からライブラリが同梱されているので、有効化する。 CREATE EXTENSION "uuid-ossp"; UUIDを生成する v1, …

Windows 8.1上にScalatra開発環境を作る

基本手順は公式ページに書いてある通りだが、Windowsだと多少面倒が発生する。 Installation | Scalatra First steps | Scalatra IDE Support | Scalatra JDKのインストール OracleのページからJDK 7u51をダウンロードしてインストール。 Conscriptのインス…

Scalatra + ScalaTestでunit test

公式ドキュメントの記載通りに設定すれば動く。ScalaTest | Testing | Scalatra guides 設定 project/build.scalaのlibraryDependenciesに、次を追加。 "org.scalatra" %% "scalatra-scalatest" % "2.2.2" % "test" テストコード package test.app import or…

Debian wheezy(Debian 7.4)にPostgreSQL 9.3(最新版)をインストール

公式ページの手順通り。PostgreSQL: Linux downloads (Debian) PostgreSQLのaptリポジトリを追加 /etc/apt/sources.list.d/pgdg.list を作成して、次の通り記述する。 deb http://apt.postgresql.org/pub/repos/apt/ wheezy-pgdg main リポジトリのキーを追…

Debian wheezy(Debian 7.4)にOracle JDKをインストール

基本的には次の手順の通りとなる。JavaPackage - Debian Wiki java-packageのインストール JDKをインストールするために必要らしい。 $ sudo apt-get -y install java-package JDKのダウンロード GUIをインストールしてない環境でもいけるように、wgetで無理…

Debian wheezy(Debian 7.4)のVagrant Boxを作成する

基本的な手順はCreating a Base Box - Vagrant Documentationを参照。 Debuan wheezyのインストールイメージを取得 amd64版のnetinst CDをダウンロード。 Debian -- Network install from a minimal CD VirtualBoxでVMを作成(Debianのインストール) 仮想マ…

プログラマ35歳定年説に対する私の理解

SI業界の一般レベルの人間を想定。 23歳 新卒入社 とりあえず現場に配属されるが、戦力外として扱われる Excel方眼紙のメンテを筆頭とした刺身タンポポ的な仕事が多く回される 上司から勉強しろ的なことを言われ続ける 仕方ないので、Java入門的な本でプログ…

Office 365の予定表のアクセス権設定

Office 365の予定表はデフォルトのアクセス権が絞られすぎ(他ユーザの予定が編集はおろか閲覧もできない)ので、設定を変更しないとつらい。で、管理者が一括で設定変更する際はPowerShellからでしか設定ができないらしい。 セットアップ Exchange Online …

VirtualBoxのShared Folderが遅すぎるのでどうにかする(Windows向け)

開発用にVagrant/VirtualBoxを使っているのだけど、ゲストOS側のファイルアクセスが遅すぎて開発効率が落ちていたので対応した。 原因 VirtualBoxのShared Folder機能が遅い。Vagrant公式でもこの問題は認識されていて、NFSモードに切り替えると改善するとの…

突然 vagrant up ができなくなった

vagrant upしたら、以下のようなエラーが出て、VMの起動ができなかった。 $ vagrant up Bringing machine 'default' up with 'virtualbox' provider... [default] Importing base box 'ubuntu12_04'... There was an error while executing `VBoxManage`, a …

PHP逆引きレシピ第2版を献本して頂きました

第1版を執筆してた縁で、PHP逆引きレシピ第2版を献本して頂きました。ありがとうございます。(第2版の企画の際にも声がかかっていたのですが、その当時は「ほぼ恒常的にデスマです」みたいな状況だったので、辞退させて頂きました…。)PHP逆引きレシピ 第2…

メモリが8GB載るWindows 8.1タブレットの比較(Surface Pro 2 vs Venue 11 Pro)

メモリが8GB載るWindows 8.1タブレットは現時点だとSurface Pro 2とDell Venue 11 Proぐらいしか選択肢がないっぽい。VAIO Tap 11はメモリ4GB固定。 Surface Pro 2 256GB Venue 11 Pro 256GB OS Windows 8.1 Pro x64 Windows 8.1 Pro x64 CPU Core i5 4200U1…

Rails 4.0.1/MySQL環境でstructure.sqlを使ってrake db:setupしようとしてコケた

Rails 4.0.1/MySQLで、structure.sqlを使ってrake db:setupしようとすると、以下のようなエラー出てこけた。 rake aborted! no implicit conversion of Fixnum into String /home/vagrant/share/nsts/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.1/lib/…