新規性の無い話というものはなかなか話す場所も無いもので、 どこにも話す機会が見つからなかったのでブログに書いて放置しようかと。 Free MonadのApplicative合成 Free MonadはMonadです。 なのでApplicative合成ができます。 Applicative合成ができても直…
モチベーション 差し替え時の変更忘れなどを防ぐために、Runner部分を抽象化してConstructor Injectionしたい。 Free ここは今回重要ではないので、Functorの要らない単純な実装を用意。 sealed trait Free[F[_], A] { def map[B](f: A => B): Free[F, B] = …
PD VerlagのIMPERIAL, ニューゲームズオーダーの日本語訳付きを買いました。 日本語訳ルールの他国に行軍ときの動きの訳が自分の解釈と違うので、メモ。 日本語訳 友好的な態度を取らせる場合は、駒を寝かせます。この友好的な陸軍駒は、州の活動を妨げませ…
この記事は? IndexedCont便利なのでみんな使ってほしいとの思いの元、前提となる知識から解説する記事です。 前回はfor式を使ったエラーハンドリングの基本的なことを書きました。 なお、今回もIndexedContは 出てきません 。 継続 今回も引き続きforを使っ…
この記事は? IndexedCont便利なのでみんな使ってほしいとの思いの元、前提となる知識から解説する記事です。 なお、次の次の回ぐらいまでIndexedContは 出てきません 。 本編 この記事ではエラーハンドリングのためにIndexedContを使えるようになることを目…
このエントリーはボドゲ紹介 Advent Calendar 2017の7日目です。 前日: 推理ゲーム『ワトソン&ホームズ』 - kano-e no memo 翌日: テラフォーミング・マーズの魅力: うぃりあむの「ヴァリアントの森」 タイトルの通り、ボドゲのハコを紹介したいと思います。…
最近のおっさんはビールもきちんと数えられないことに驚愕したので、ScalaですがJavaの話をします。 昔と違ってUTF-8の半角カナが3バイトだと信じてくれないおじさんとは出会わなくなってきたなと思ってたのに、世の中そう甘くはなかったようです。 Javaの話…
まず、Shellって何かがわからないところから入るわけだけど、 いや、自分が打っているのが所謂shなのかbashなのかzshなのかがわからないってことなんだけど、 まあ複数ファイルを順次処理したい時ってあるわけですね。 forを使ったループ シンプルな例だと以…
アレ用のアレ。 implicit def fs2effectTask: fs2.util.Effect[scalaz.concurrent.Task] = { import scalaz.concurrent.Task import fs2.util.Effect new Effect[Task] { def fail[A](err: Throwable) = Task.fail(err) def attempt[A](t: Task[A]) = t.atte…
MySQLしか触った事のない人にとっては全く知らない文法だというとこを最近知ったので。 WITH句とは WITH句は、ネストされたテーブルに別名をつけて読みやすくするために使用する構文。 PostgreSQL, Oracle, MS SQL Serverなどで使用可能。 MySQLは(少なくと…
はい。タイトル通りです。 ansibleとはpythonで動いてるけどpython書かなくてもいい不思議な何かという認識。 で、ansibleからdockerコンテナー立ち上げるときのレシピがこちら。 --- - name: Run CentOS container docker: image: "centos:centos6" name: s…
たどり着くまで時間がかかったのでメモ。 文字コードを意識しないファイルの読み込み つまりはUTF-8のファイル。BOMはどうなんだろう?(試していない) os.Openとbufio.NewReaderで行ごとに読み込める。 注意点: 読み込み完了時はerrorにio.EOFが入る。 packa…
この記事はScala Advent Calendar 2015 12日目です。 www.adventar.org 昨日は同じく私による今日から始めるScalaプログラミングでした。 前置き 私はアプリケーションにSQLを自分で書きたい派です。 参考: ScalaでSQLが書きたいんだ!! なので積極的に自分…
この記事はScala Advent Calendar 11日目です。 www.adventar.org 昨日はdakatsukaさんによるScalaでLuaスクリプトを動かして遊ぶでした。 Luaでしたね!! ゲーム業界すごいですね! さて、Scala Advent Calendarですが、まだまだ空きがあります。 難しいこ…
DSLとかOR Mapperとかじゃなくて、SQLが直接書きたいんだ!! 嘘です。タイトル詐欺です。 最近neo4jというグラフ指向データベースがお気に入りでして、 アクセス用のクエリとしてCypherという言語を使います。 基本はHTTP+JSONでRESTにアクセスできるのです…
いやね、Scalaの話なんですけどね、何の話かってね、Option型がOption("a")とかってやって生成できるの。。。 > val a = "abc" a: String = abc > val o = Option(a) o: Option[String] = Some(abc) 今までずっとSome(a)かNoneでしかOption生成できないと思…
さすがはWindows!ひと手間かけたおいしさだぜ!! 経過をメモっているので、最後だけ読めば事足りるよ!! 参考にしたのはこのあたり Go のクロスコンパイル環境構築 - Qiita Windows7 64bit版でGo言語のクロスコンパイルを試す - taknb2nchのメモ どうして…
最終的な目標としては、行列の計算がしたい。 1 2 3 1 4 1*1+2*2+3*3 1*4+2*5+3*6 14 32 ( ) * ( 2 5 ) = ( ) = ( ) 4 5 6 3 6 4*1+5*2+6*3 4*4+5*5+6*6 32 77 こんな感じのやつ。 2行3列の行列は3行2列の行列との積を求めることができて、結果は2行2列の行…
初スライド!!! for の使い方について。 http://kazzna.jp/slide/scala_for/index.html Haskellのモナド系ブログが大体doを理解するならStateだってなってたので便乗です。 勉強会でも口頭で言ったけれど、 flatMapの定義をするなら Monad則 を覚えないと…
ラムダ計算とかの例によくある チャーチ数 をScalaで試してみる。 原点を表す Zero 、次を表す Succ を定義しておけば足し算とかできるってやつ。 まずは試し書き import Conrtol.Applicative zero f a = a succ n f a = f $ n f a one = succ zero two = su…
atomエディタのMarkdownプレビューのCSS設定がいつの間にか変わっていたのでメモ。 目的は日本語のフォントにしたい。デフォルトだと中国系だからね 検索するといくつか出てくるけど、 setting -> Open Config Folder で、 styles.less を修正する。 /* * Yo…
pythonは文法が単純で覚えやすいらしい。 class MyClass: def __init__(self, init_value): self.value = init_value def my_method(self, value): return self.value + value instance = MyClass(5) print instance.my_method(3) # => 8 print MyClass.my_m…
ハノイの塔自体は再帰を使えば簡単に解けることは有名で、Googleれば大体すぐ出てくる。 def hanoi(height: Int, from: String, via: String, to: String): Unit = { if (height <= 0) { () } else { // 1. スタート位置にある一番下以外のものをすべて関係…
Monadって難しいって話。 元ネタは xuweiさんのブログ いやね、最近PlayでWebアプリ作ろうと頑張ってるんですよ。 そこでログ出力のために、引数で渡すものを必要に応じてWriterにできればなとか考えてたんですよ。 結果うまくはいかなかったんですが。 本編…
昨日はPlayもくもく会に行ってきました。 色々と教えていただいてありがとうございます。 で、その中でたまたまprologのお話になったので、 prologの魅力が簡単に分かるような「prolog向きの」サンプルを書いてみたいと思います。 ちなみに、prologは頑張れ…
Dockerのインストールを試みるよ!!! なんでDockerかと言いますと、Haskell環境がほしい!とか、LAMP環境がほしい!!とかいろいろあるものの、環境が汚れきって手に終えなくなることを経験してきたからなのです。 しかし、このDocker、なかなかに凶悪です…
今のところ原因不明。。。 Windows 7にVirtualBoxを入れてその中のLinuxからsshでサーバーにつなぐ使い方をしていたんだけど、今日4.3.22にアップデートできますという通知が来たので軽い気持ちで上げてしまった。 別に何の問題もなく使えていたと思っていた…
まあタイトル通りなのですが、gnome-tweak-toolのフォントの倍率を1.4にしつつ、残りは書くツールごとの調整機能で倍率を調整しました。 OSはUbuntu GNOME 14.04 見た目が気に入ったかどうかで選んだので、細かいことは気にしません。 どうやらgnome-tweak-t…
なんとかしたい。 問題点 UbuntuをVMware上に入れたら、元のモニターが1960x1080の11.6インチだったために、96dpi?ではすごく文字が小さくなってしまった。 解決への挑戦 システム設定から行けないかな?とチャレンジ システムの設定から軽々変えられちゃう…
ふしぎ。 emerge -uDN worldしたらstartx後のキーボードが英語レイアウトになった(T ^ T) Xの外では日本語なのに。どこなおせばいいのかな? #gentoo #awesome— かず(アミノ酸等) (@kazzna) 2015, 1月 24 このままでは困るので、何とかして治そうと試みます…