ux00ff

ビールとプログラミングと

Scala

implicit parameter として引数と戻り値が同じ型の関数型を指定するとコンパイルが通らない

Mac OS Sierra / scala 2.12.1 にて。結論から言えば、Predef で定義されているものとコンフリクトするので、自前で利用する implicit parameter にはちゃんと固有の型をつけなさいって話であり。 タイトル通りの現象にひとしきり悩んだ 以下のような test.s…

sbtのバージョンを確認する

いつも忘れるので。 うまくいかない $ sbt version versionサブコマンドはsbtのバージョンではなく、現在のプロジェクトのバージョン値を返す。だいたいホームディレクトリで間違って打っちゃって、最初は1.0-SNAPSHOTって表示され、気がつくとホームディレ…

Hello PlayFramework2

ちょっと仕事でWeb API周りを用意する必要がありまして。流れでScalaだろうなぁという話もあって、PlayFrameworkをチラ見していました。ん、Play2 Framework? PlayFramework2? どっちだろう。まあよい。 JSONを返すエンドポイントを作成するロールプレイ プ…

Scala x Matsuri

2月25日、2月26日にお台場で開かれたScalaMatsuri2017に参加してきました。初参加です。 とはいえスポンサーブース側でブースに張り付いていたので講演は聞けず、惜しいことをしました。後から資料を見て楽しむことにします。 ユーザー母数としてはけっして…

Right value is right

Either型で成功と失敗を表すとき、どうして慣習的にLeftがエラー情報、Rightが正常系なんだろうと不思議だったんですが、Right(右)とRight(正常な)がかかってるっていうことを知って地味に感動しました。ダジャレか。 個人的には最初、先に(左側)正常値を…

トレイトと自分型を利用してPAppletを分割する

引き続きProcessingです。自分型を設定したトレイトを利用すると、トレイトを実装する側のクラスを縛ることができます。Scalaスケーラブルプログラミングに「大きなクラスをトレイトを利用して分割するときにめっちゃ便利だよ」と書いていたが確かに便利です…

ProcessingをScalaで書く用のgiter8テンプレート

学習も兼ねて Processing 用のプロジェクトテンプレートを作って見ました。「scala-processing g8」 で検索しても最近のものが出てこなかったのでこれはきっと需要があるのだろうと信じて(苦しい) コードはこちらに置きました。 ma2saka/scala-processing.…

読書の春

Scalaスケーラブルプログラミング第3版、なんだかんだで読み終わるまでに四日くらいかかった。良い本でした。 やっぱり紙の方が読みやすい・・・んだけど、お風呂で読んでいたのでちょいちょいふやけていたりします。 普通にJavaからの置き換えで学習してる…

Scalaスケーラブルプログラミング第3版

通称コップ本。版を重ねるごとにコップが増えている。どうも Better Java っぽい書き方が抜けないなーと思って、買った。 Scalaスケーラブルプログラミング第3版 第三版は2016年出版で2.11、2.12対応。 自分はだいたいプログラミング言語の基礎はオライリー…

Scalaでコンウェイのライフゲーム with Processing

定番ということで、書いてみました。ライフゲームについては Wikipedia の記事がわかりやすいので参照してください。本当に Better Java (というか普通に手続き的) な書き方ができてしまうところに面白みというか味を感じます。昔はライフゲーム書くときは二…

文字を画像化してピクセルデータを利用する

もともと文字の形状を扱いたかったのですが、まずはピクセルベースでの処理を試そうと思い、 OpenProcessing に公開されている「create ‘webby’ numbers and letters」を参考に Scala に手元で書き直してみました。 www.openprocessing.org こういうやつです…

OpenProcessingで公開されている「Amoeba」の移植

公式サンプルのflockingに続けて、openprocessing.orgに公開されている「Amoeba」をScalaで移植してみることにします。OpenProcessingの各作品のページでは実行結果のほか、コードも公開されているので写経には最適です。 www.openprocessing.org これはそん…

ScalaでFlockingの公式サンプルコードを書き直してみた

Processingの公式コードサンプルのFlockingは自分が好きなサンプルの一つです。 Flocking \ Examples \ Processing.org これは Boid理論に基づいてわらわらと動作する「鳥の群れ」っぽい動きをシミュレーションするというものです。 Boid理論というのは「仲…

IntelliJでProcessing with Scala プロジェクトテンプレートを用意する

ProcessingのプログラムをIntelliJとScalaで開発する の通り気軽にIntelliJを利用して開発できるようになりました。 とはいえ、書き捨ての小さなプロジェクトが多いのでいちいち External Library を追加するのも面倒くさくなってきました。そこでプロジェク…

Scala, Akka, Processing

Scalaを学ぶならAkkaも学ばねばならぬ・・・という話を誰から聞いたのかは覚えていませんが、せっかくだからAkkaもProcessing文脈でやってみようと試みたのがこちら。あまりにも誰得なのですが、とはいえ書いておかないと忘れそうなので覚書です。 環境は ma…

processing.videoの代わりにOpenCVのVideoCaptureを利用する

ところで現在の Processing には、昔あった processing.video.* がありません。このあたりのコミットで delete video library now in processing-video 見ての通りばっさりやられています。 公式によると、 Video – we’ve removed the QuickTime for Java vi…

Scalaで書いたProcessing のプログラムを VisualVM でプロファイルする

ProcessingのプログラムをIntelliJとScalaで開発する で Processing を Scala で書いて実行することはできるようになりました。 Processing でちょっと複雑なコードを書いているとどうしてもパフォーマンスの問題に出会うと思いますが、ここではそんな時に役…

ProcessingのプログラムをIntelliJとScalaで開発する

さてScalaでProcessing書こうと思ったものの、あんまり情報がなかったのでまず環境周りのメモを書き残しておきます。(後日、sbt を用いた CUI開発に流れ着きました) ここでは前提として、IntelliJはインストール済みであるものとします。また、Processing…