Plastc

複数のカードを一つにまとめられる Coin とかとおなじようなアレ。 Coin と違うのは、IC チップや NFC にも対応している点。公式ページは https://plastc.com/ です。以下、メモ。 EMV 規格に対応した IC チップ VISA, Master, Amex, DISCOVER, JCB, Union P…

Spring Boot で 例外ハンドリング

Spring Boot での例外ハンドリングの方法について調べたので、そのメモです。 *1実際に試していないので、問題なく動作するのかはわからないですが、 http://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc の内容でほぼ足りそうです。 例外に…

mixi-inc/AndroidTraining で Android アプリ開発の学習中

スマートフォンのアプリ*1を作れるようになっておきたいと思い、GitHub にある mixi-inc/AndroidTraining で学習することにしました。 開発環境 AndroidStudio AndroidTraining では Eclipse に ADT を入れていますが、私は IntelliJ がベースとなっている A…

Dispatch を使ってみる

このエントリは Scala Advent Calendar の 18 日目になります。 Dispatch というライブラリを使ってみます。 Dispatch とは Dispatch というのは、Scala 用 の HTTP クライアントライブラリです。Dispatch には classic と reboot という二種類があり、前者…

NAS4Free 9.1 で HDD へのインストールに失敗する場合

LivceCD からの起動で HDD へのインストールに失敗する場合の対処。 ML115G5 に最新版のNAS4Freeをインストールしようとしたら、パーティションの作成とかで失敗した。 以下によりインストールできた。 1. ブート途中でSafeモードとかを選択出来る画面が出る…

fstab で CIFS のファイルシステムを記述しているけど、マウントされない場合

netfs サービスが起動していない可能性が高い。"/sbin/chkconfig --list netfs" と打って、on となっているか確認してみる。 off になっている場合は "/sbin/chkconfig netfs on" と打って on にしておく。これでもダメな場合は _netdev オプションを追記し…

Windows で nslookup で IP アドレスは引けるけど、ping は通らない場合の対処

DNSClient サービスが DNS 情報をキャッシュしているために発生していることが多い。 ipconfig /flushdns では効果が無い場合は、DNSClient サービスを再起動するとなおる。というか、別にキャシュしなくてもいいや・・・ということで、DNSClient サービスを…

ダウンキャスト

Scala でプログラミングしていると型パラメータやパターンマッチがあるからか、ダウンキャストが必要になることがあまり無いです。なのですが、パターンマッチの多用によりインデントが深くなってしまうのが悩ましかったりします。 例えば dispatch.json (sj…

PuTTY + screen で日本語入力ができない

perl の開発環境用として自鯖に仮想マシンを追加したのですが、なんだか日本語入力ができない!という現象にでくわしました。 原因は .screenrc に term xterm のように端末の種類名?を指定していなかったからっぽいです。 またはまらないようにメモ・・・…

リスト操作対応表

おもいつきでだらだら書いたので、足りていない可能性の方が高いです。 ちなみに Perl には Scala の List 見たいなものや、Stream みたいなものは標準では用意されていないため、通常は配列を使います。 @ で始まる変数が配列です。でも配列への参照も良く…

NFS クライアント設定

NFS サーバは FreeNAS でさくっと用意できているので問題なし。 FreeNAS で公開しているディレクトリを、CentOS5.5 のサーバ上でマウントした手順。 nfs 等のデーモンを停止してあったので、再開する chkconfig portmap on chkconfig nfslock on chkconfig n…

リバースプロキシ設定

私の環境では外部向けに公開している Apache の入っているホストとは別のホスト上に、SVN のリポジトリを作成しました。 このままでは外部から SVN リポジトリにアクセスできないため、リバースプロキシを設定して https://svn.〜/ のときに SVN リポジトリ…

仮想マシン増殖

私にとっての最小構成のサーバを作ったので、これをコピーして増殖させます。 あと、後々用にスナップショット*1をとっておきます。 仮想マシンをシャットダウン 一応、イベントリから削除する ストレージプールをホストしている FreeNAS にシェルログイン …

FreeNAS のバージョンアップ

いままで FreeNAS の 0.7.0 の stable 「じゃない」 ものを使い続けていたので*1、いいかげん stable な最新版に入れ替えました。 最新版のイメージをダウンロード 新しい USB メモリに WinDD をつかってイメージを書き込み*2 現在の設定をバックアップ 電源…

CentOS5.5のセットアップ備忘録

インストール VMWare ESXi上にインストール 一応 DVD イメージをダウンロードしたけど、ネットインストールでも問題ないかも CentOS 4/5(64bit)、メモリ512MB、HDD 8GB でインスタンス作成 インストール時に標準では ext3 になるファイルシステムを ext2 に…

無線LANの設定変更

メモも兼ねて。うちでは電波が届かないため、無線LANのアクセスポイントを一階と二階それぞれにおいています。ちなみに光回線を引いているのが二階なので、二階から一階まで外壁づたいにLANケーブルをたらしています。いままではAPモードに設定した無線LANル…

おまけ

ついでに、良く使う範囲での Scala と C# のリスト操作対応表。 Scala C# map Select flatMap SelectMany filter Where foldLeft Aggregate *1 foldRight なし reduceLeft Aggregate *2 reduceRight なし foreach なし zip Zip *3 すぐに思いつくのは、この…

Option的なものを作ろうとして絶望した

C#

ものすごい久々にブログを書くのですが、あまり役に立たない情報です(汗ここ半年ほど C# を使用するプロジェクトに携わっています。C# は 4.0 から?だと思うのですが、ジェネリクスの型パラメータに変位指定(in とか out とか)ができるようになっています。…

S2JDBC で UUID 型を利用する

テーブルの主キーに UUID を使いたい場面は結構あるとおもうのですが、S2JDBC は UUID を利用できるようにはなっていないようです。 ならばってことで、Dialect を拡張して、UUID を使えるようにしてみました。対象の DBMS は H2 です。H2 ならば UUID 型を…

Scala から S2JDBC を利用するときに気をつけること

Scala から S2JDBC を利用するときに気付いたこととかを、いくつか書いておきます。 タイプセーフ API S2JDBC では Operations クラスや S2JDBC-Gen により生成した Names クラスを、以下のように利用することで型や名前の間違いをコンパイル時に気付けるよ…

トレイトの初期化処理で抽象 val にアクセスする

トレイトのメンバとして抽象 val を宣言した場合、初期化処理のタイミングでは、その val の値が null になっていることがあります。 以下の例では、Foo の初期化時には value2 が null になっています。 object Sample1 { def main(args: Array[String]) { …

Chain of Responsibility っぽいことを trait を利用して実装してみる

Chain of Responsibility というよりも、http://itpro.nikkeibp.co.jp/article/COLUMN/20081009/316549/?P=2 の方法を変形しただけなんですけどね。まず、リクエストを処理するメソッドを持つ、ハンドラの trait をつくります。 trait Handler { def handleR…

Cake Pattern の簡単な例を書いておく

Cake Pattern の説明は Programming Scala よりも、http://jonasboner.com/2008/10/06/real-world-scala-dependency-injection-di/ の方が分かりやすかったです。一応、自分なりに理解できたつもりでいるので、とりあえず簡単な例を書いておきます。 出現す…

親トレイトで定義されている val を、子トレイトで override するとインスタンス化に失敗する

子側のトレイトで親の val を override すると、コンパイルは成功するにも関わらず、実行時に ClassFormatError が出ます。 以下は現象を再現させるコード。 trait Base { val value: String = "base" } trait Child extends Base { override val value: Str…

SiteMap も JRebel(JavaRebel) で HotDeploy されるようにする

Liftを使用しての開発では mvn scala:cc と mvn:jetty:run をしてファイル保存のタイミングで変更が反映されるようにしていました。 scala ファイルを変更すると scala:cc により自動でコンパイルが実行され、class ファイルが変更されたことにより Jetty が…

main メソッドが見つからないといわれたら・・・

先日、Scala プログラムを書いていたときのことです。object に main メソッドを定義しているにもかかわらず、main メソッドが見つからないといわれました。 以下のようなプログラムです。 import java.awt.Dimension import javax.swing.JFrame object Samp…

JavaでARを試してみる

冬休み中にARをやってみようと思い*1、とりあえずサンプルを動かしてみました。Java で使える AR 用のライブラリを探したところ、ARToolkit を Java に移植した NyARToolkit というものがあったので、これを試すことにしました。NyARToolkit は http://nyatl…

The Cake Pattern による DI

前に、Java の DI コンテナと Scala の組み合わせはどうにもいまいちと Twitter でつぶやいていたら、とある人から Programming Scala に DI のサンプルがあるよ!っておしえてもらいました。以下の URL は Programming Scala の DI についての箇所です。*1 …

null を None に変換する implicit conversion

Java のライブラリを利用していると None を返してほしいところで null を扱うことになります。if (value == null) ... とか value match { case null => .... } とか書くのに嫌気がさしてきたので、implicit conversion を利用して Option 型に変換するよう…

scala.swing.PopupMenu を実装

Scala には swing をラップした scala.swing というパッケージが標準で含まれています。Panel、Button、Table などのコンポーネントが Scala から扱いやすい形で提供されている一方、 JPopupMenu や JTree といったコンポーネントは提供されていません。 し…