ux00ff

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

StreamのGroupByは一度最後まで探す

実装がこうなってるので仕方がない。無限Streamに使うと倒れる。 動作として、GroupByした結果もStreamになって欲しかった気もあります。新しいグループキーが現れたらストリーム増える的に。 def groupBy[K](f: A => K): immutable.Map[K, Repr] = { val m …

Docker for Mac のコンテナの中からホストにつなぐ

結論 Guest to Host はけっこうみんな苦しんでいるらしい。 Docker for Mac はLinux VMが間に挟まっているので期待した感じに動かすのが大変。ホストというか Mac を発見できれば良いので、--add-host を指定して代替する。linkと大差ない使い心地になる。 …

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

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

docker 17.06 の仕様変更に伴う aws-cli の動作変更

docker login 時に -e オプションを取らなくなったよ、ということで。 # docker 17.06より前 aws ecr get-login # docker 17.06以後 ( aws-cli 1.11.91 以上が必要) aws ecr get-login --no-include-email こうなるのでヨロシクってメールがAWSから来ていた…

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

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

MindNode2

マインドマップツールが欲しかったので導入しました。 MindNode 2 - AppStore もともとFreeMindを使っていましたが、仕事で使うってこともあるしちゃんと業務用として使っているツールについては開発元に還元せねばという気持ちが最近強く。製品版なら課金は…

:vim:

社内Slackでの一コマ。何かが間違っています。

jqのtodateでタイムスタンプ値を読みやすく

できるんじゃないか! 背景: jq コマンドで todate が使えるのをさっき知って。たぶん、何度目かに知って、感動しています。いいんだ、嬉しいことは何度あったっていいんだ。 つまりCloudWatch Logsのエポックタイム形式の表記を「2017-05-07T07:20:58Z」のよ…

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 こういうやつです…

PAppletはインターフェイスPConstantsの実装である

えっ? というか PConstants ってインターフェイスだったの? 驚いたというかこれは完全に思いこみがあった。つまり、これまで以下のように書いていたところは、 import processing.core.PApplet import processing.core.PConstants._ これでもいいってことに…

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…

エンジニアリーダーの仕事って言われた時に思い出すこと

思い出すことがあったので書いてみる。 二十代終わりの頃、自分は大手のWeb企業に転職したばかりだった。海外向けのサービス開発事業部に配属になり、突然大きめのプロジェクトの「エンジニアの取りまとめ」をやることになった。 リーダーというのは何をする…

はてなブログに移行してみる

してみた。 移行といっても記事を移すわけではないのだが。