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/…

Vagrant/VirtualBoxの同期フォルダでハマった

Vagrantfileで以下のようにvagrantユーザのホームディレクトリを同期フォルダに設定したら、ホームディレクトリ以下のファイルが全部消えて死にかけた。 config.vm.synced_folder "home", "/home/vagrant" ホストOS側のディレクトリが空だったので、それを元…

Windows 8.1でVirtualBoxの最新版(4.3.0)を使うとブルースクリーン

タイトルの通り。Windows 8.1でVirtualBoxを使いたい場合は最新版の4.3.0ではなく、ひとつ前の4.2.18を使いましょう。

Let'snote CF-NX3にWindows 8.1をクリーンインストールした際のメモ

導入済みドライバがダウンロードできるので特に問題なし。強いていえば、工場出荷時の状態でC:\utilに入っているファイル一式を念のためバックアップしておく程度。

Vagrant/VirtualBoxの環境をそのまま他のPCに移行する

今までプライベートPCで創業準備なり仕事なりをしていたんですが、つい最近になって業務用PCを購入したので、Vagrant環境を旧PC(プライベート用マシン)から新PC(業務用PC)に移行してみました。少しだけハマったので、メモだけ残します。 手順 新PCにVagrant/…

Windows 8.1のシステムバックアップ

Windows 8.1のシステムバックアップ機能(Windows 7の「バックアップと復元」、Windows 8の「Windows 7 のファイルの回復」に該当するもの)が分かりづらいので備忘録。@unagixさんに教えてもらった。コントロールパネル→ファイルの履歴 内の 関連項目(左下…

NGK2012Bのロゴフォント

NGK

備忘録:NGK2012BのロゴはOrbitronっていうフォント使った。

デンキヤギ株式会社を設立しました

デンキヤギ株式会社なんだかんだで忙しいので、設立にあたっての詳しい話はまた今度。

Windows 8.1にVirtualBoxをインストールするとシャットダウンやスリープが失敗する

VirtualBox 4.2.18で再現確認。どうやらVirtualBoxのBridgeドライバがバグってるようで、これをインストールしてしまうとシャットダウンやスリープに失敗してしまう。現時点の対応策としては、Bridgeドライバをインストールしないようにすることしかない。 …

Windows 8.1 + VagrantでRails4開発環境を構築する

RailsはおろかRubyもほぼ開発経験なしで、そもそも無職なんですが、なぜかRails4開発案件の話が来ているため、ここ数日ほどRailsの学習/開発環境を用意したりしております。 基本方針 コーディングやDBメンテなんかは全てWindows上で行う Ruby/Railsの実行環…