たのしい人生

ASUS T100CHI を買って ubuntu をインストールした話

ASUS T100CHI を買って ubuntu をインストールした話

少し前に ASUS T90CHI を買ったんですが、やっぱり RAM 2GB は厳しかったんですよね。 そこで RAM が 8GB、少なくとも 4GB の Windows Tablet はないものかと探していたところ、T90CHI の兄弟機である T100CHI がリファインモデルで RAM 4GB で 5 万円程度とかなりコスパが良かったので、T90CHI を手放して購入しました。 T100CHI のハードウェア等については正直 T90CHI とかなり近いというかほぼ同じなので省略。 というわけで T100CHI で RAM も 4GB になって快適〜かって言うと、 RAM 4GB 程度で快適なわけないんですよね!!!!!!!! Intellij 起動して SBT なんか走らせようもんなら即死です。 そこで、3度目の正直、T100CHI に Ubuntu インストールバトルをやりました。結果から言うと、ほぼ完璧に動作するところまで持っていくことができました。 T100CHI に Ubuntu 16.04 をインストールする 実は T1oo シリーズについては、Google+ […]

Continue reading
Windows 環境構築手順書の話

Windows 環境構築手順書の話

Windows 環境で Play + Scala + Scala.js + MongoDB 開発環境構築の手順書。他の方のショートカットになれば。 Windows Update Firefox をインストール Google 日本語入力をインストール (ChangeKey をインストール) (TouchKey をインストール) 管理者権限の PowerShell で スクリプトの実行ポリシーを変更 Set-ExecutionPolicy RemoteSigned Chocolatey とその他諸々をインストール JDK をインストール JDK の Path をシステム環境変数に追加 JAVA_HOME をシステム環境変数に追加 sbt をインストール IntelliJ IDEA をインストール Node.js をインストール Node.js の Path を追加 MongoDB をインストール MongoDB の Path を追加 設定ファイル mongodb.conf […]

Continue reading
Service で DB から find する際のキーによって戻り値型を Option と List で変えたい場合にどうしたらいいか考えてみたけどどうなんでしょうという話

Service で DB から find する際のキーによって戻り値型を Option と List で変えたい場合にどうしたらいいか考えてみたけどどうなんでしょうという話

Service で DB からあるキーでデータをひろいたい。かつ、キーによって戻したいデータの型が Option だったり List だったりするとする。Service にキーごとのメソッドを生やせばいいけどダサいしたくさん書くのがいやなのでジェネリックに書けないか考えてみたけどいい方法なのかわからないので晒す。コードは Scala です。 ※追記あり。いろいろご指摘をいただきました。

Continue reading
サーバーサイド初心者が Play Framework 2.4 + Scala + Silhouette で認証認可動かしてメール認証を自前実装した話

サーバーサイド初心者が Play Framework 2.4 + Scala + Silhouette で認証認可動かしてメール認証を自前実装した話

なんか結果的に Play Framework の主要な機能について触れることになったっぽいので、Play + Scala の入門というかチュートリアル的成長譚。Web サービスとかどう作っていいかわからん!という私向け。 Play Framework 2.4 + Scala + Silhouette(認証認可ライブラリ) を使ってWebサービスの基本になりそうなところまで作ってみたお話。永続化は mongoDB でやったよ。 完成形は github で公開してます。 Play Framework ぜんぜんわからん。2.4系から変わりすぎ。Webよくわからんよー。認証認可どうしたらいいいんだ、ライブラリ使ったらいいのか。永続化とかどうするんですかね… という私みたいな初心者向け弾丸ツアーです。特に認証認可ライブラリ Silhouette については日本語での解説が全然ないので、役に立ったらいいな(宣伝)。

Continue reading
Play Framework 2.4 で reverse router の absoluteURL を Controller 外で使ったら RequestHeader がねーよって言われて解決した話

Play Framework 2.4 で reverse router の absoluteURL を Controller 外で使ったら RequestHeader がねーよって言われて解決した話

小ネタ。 reverse router (controller.routes クラス)を使って URL を取得しようとした時 val link = routes.HogeController.piyo(fuga).absoluteURL() これを controller 外で呼ぶと Cannot find any HTTP Request Header here とかいってエラーになる。 結論から言うと、absoluteURL のシグネチャは def absoluteURL()(implicit request: RequestHeader): String なので、absoluteURL() を呼ぶメソッドが Controller から呼ばれること前提で def hoge()(implicit request: RequestHeader): String = { routes.HogeController.piyo(fuga).absoluteURL() } とかするときれいにまとまった。 よかったね。

Continue reading
Play Framework 2.4 Scala + Specs2 + Mockito + Guice DI でテスト素人がテストに挑戦した話

Play Framework 2.4 Scala + Specs2 + Mockito + Guice DI でテスト素人がテストに挑戦した話

Play Framework 2.4 をちまちま触っているのですが、モダンな開発といえば自動テストはかかせないよな〜〜〜〜〜〜〜と思いつつずっと出来てなかったので触りました。 案の定、いろんなことに引っかかったし、とくに Play 2.4 から本格導入された Guice による動的DIとかと絡んで、どうすれバインダーってなってたし、モックとか Mockito とか聞いたことあるけど、どうやったらいいんですかね〜ってなったし、Futureってどう評価したらいいんだ…とかとか、いろいろあるのでまとめました。 慣れればできそうなので、テストとか Play + Specs2 + Mockito はあんまり、みたいな人、自分みたいな初心者に役に立てばいいなぁ。

Continue reading
Scala の Future と Promise で Android の Callback 地獄を緩和した話

Scala の Future と Promise で Android の Callback 地獄を緩和した話

Android というより Java のライブラリで頻出する Callback パターン呼び出し連鎖 def setImage(id: Stiring) = { User.load(id, new OnLoadCallback { override def onSuccess(userJson: String) { Json.parse[User](userJson, new JsonParseCallback { override def onSuccess(user: User) { Image.load(user.imageUri, new OnLoadCallback { override def onSuccess(image: Image) { view.setImage(image) } } } } } } } // >つらい< みたいのを Scala 標準のライブラリに含まれる Future と Promise で殺す話。 […]

Continue reading
2015年も終わりそうなので Scala で Android をはじめる方法をまとめたのでぜひみんな2016年は Scala で Android を書きましょうという話

2015年も終わりそうなので Scala で Android をはじめる方法をまとめたのでぜひみんな2016年は Scala で Android を書きましょうという話

iOS では Swift での開発が本格化して関数型っぽい言語による開発が世間一般に浸透し始めた2015年ですが、Android 開発といえばクソみたいなのは相変わらずで Java6 でもうね。という感じですがいかがお過ごしでしょうか。 そんななか本日は Android を Scala で開発する方法をまとめた話。年末だしね。Kotlin じゃないよ。ごめんね。

Continue reading
16色しか使えない PowerShell でサングラスがなくても Vim がまぶしくないようにした話

16色しか使えない PowerShell でサングラスがなくても Vim がまぶしくないようにした話

PoserShell は16色までしか扱えないので、PoserShell で Vim 使って Scala するとシンタックスハイライトがかなり南国感がでる。 ただ、Windows 10 の PowerShell では、16色のカラーテーブルが変更可能になっている。(それ以前の OS でもできるかもだけど未確認) ので、その変更法。 PowerShell のスタートメニューなりなんなりのショートカットのプロパティ => 画面の色 というタブがあるので、そこで色を変更するとそのショートカットから起動した時はそのカラーテーブルが利用される。 いい感じに彩度を抑えるとよいと思います。 おしまい。

Continue reading
Scala の implicit がいまいちよくわかってなかったけど Android の Listener を小綺麗にかけたらちょっとたのしかったけど黒魔術っぽい話

Scala の implicit がいまいちよくわかってなかったけど Android の Listener を小綺麗にかけたらちょっとたのしかったけど黒魔術っぽい話

Scala には謎が多い。その一つが implicit だと思う。 他の言語でもあまりみないキーワードだし、検索するとどういう書き方をするかとか、散発的な使い方は書いてあるけど、今一歩よくわからない。ので調べたら Android というか Listener パターンで使うとわりと良さそうなことがわかった。

Continue reading
Transbook T90CHI-3775 とデジタイザ/スタイラス ペンと Microsoft Universal Foldable Keyboad で Surface mini 気分になった話

Transbook T90CHI-3775 とデジタイザ/スタイラス ペンと Microsoft Universal Foldable Keyboad で Surface mini 気分になった話

Surface Mini 気分になるために T90CHI を買ったわけだけど、結論から書くと T90CHI と Dell の Synaptics社製 デジタイザペンの組み合わせは思った以上にスムーズで最高でおまけに Type Cover そっくりの薄型折りたたみキーボード Microsoft Universal Foldable Keyboad も買っちゃって非常に良くて完全に Surface 気分。 論より証拠。何はともあれまず動画を。 動画

Continue reading
Andoroid で Scala するためのテンプレートになるプロジェクトを作ったら TypedResources とか TypedActivity の仕様が変わっていて意外とネットに情報がなかった話

Andoroid で Scala するためのテンプレートになるプロジェクトを作ったら TypedResources とか TypedActivity の仕様が変わっていて意外とネットに情報がなかった話

Android で Scala するのに毎回ごにょごにょするのはめんどくさいので、GitHub に Android で Scala するテンプレートになるプロジェクトを公開した。 基本的には pfn/android-sdk-plugin を引っ張ってきて ProGuard とかの SBT ビルドのセッティングがしてあるだけだけど、何も考えずに Clone すれば動くので、私みたいにつまづいた人のために公開しておきます。 biacco-android-scala TypedResouces でつまづく android-sdk-plugin では 1.4.0 から TypedActivity は廃止されて、TypedFindView trait に統一されたらしい。このプロジェクトでも TypedFindView をミックスインしてます。よくネットに転がってるサンプルが TypedActivity をミックスインしているけど、もうないので注意。 おしまい。

Continue reading
Windows10 で Linux ライクな開発環境構築を Cygwin でやろうとしたら挫折したので Power Shell で Vim して SBT する環境をつくった話

Windows10 で Linux ライクな開発環境構築を Cygwin でやろうとしたら挫折したので Power Shell で Vim して SBT する環境をつくった話

Windows Tablet 機である T90CHI を購入したのだけど、開発マシンとして使いたかったので Linux をインストールした。が、ドライバがまともに動かなくって挫折した。 ので Cygwin をインストールして作業していたんだけど、SBTのビルドで環境変数がうまく呼ばれなくてこれも挫折(なんか環境変数を何かが上書きするみたいな話があった気がしたけど発見できなかった)。 ので Power Shell という茨の道路線を選んでしまった。Windows 開発は闇と言われたが如何に。

Continue reading
ASUS TransBook T90CHI-3775 を買って1周間使ってみて開発環境作ってみての感想の話

ASUS TransBook T90CHI-3775 を買って1周間使ってみて開発環境作ってみての感想の話

縁あって発売日に ASUS の新型 Windows10 tablet である T90CHI-3775 を購入することができたので、1周間使ってみてのレビュー。 本当は Dell の Synaptics 社製デジタイザ/スタイラスペンで Surface Mini 気分になれるか試そうと思っていたけど、納期が2週間とかかかるようだ… つまるところものすごく安い Surface が欲しかったのだけれど、そのレビューはまた届いたら。 => 届きました      T90CHI-3775 自分は秋葉原のツクモさんで購入。約32,000円也。

Continue reading
Scala で case class と apply() と unapply() の関係がよくわかってなかったので調べたら関数リテラルについても学びがあった話

Scala で case class と apply() と unapply() の関係がよくわかってなかったので調べたら関数リテラルについても学びがあった話

unapply() のあたりがどうにもよくわからなかったのと、読んでいる Programming Scala で扱っている Scala のバージョンが 2.7 系とかなり古くて、現在の仕様と差があるようなので、調べた。 2015 Nov. 4th 現在 Scala 2.11.6 を基準としている。

Continue reading
Scala の REPL でサンプルのスクリプトを動作させようとするとエラーになる話

Scala の REPL でサンプルのスクリプトを動作させようとするとエラーになる話

簡単なTipsとしてメモ。 Scala は REPL でコードを簡単に試せるからよいという話は多いけれど、REPL 特有のこともあったりして結構悩ましい。 特に、スコープに関してどうなっているかよくわからなかった。 で、サンプルのスクリプトをコピペするとよく動かないことがあったので調べたところ、まんまコピペ向けの機能があった。

Continue reading