成らぬは人の為さぬなりけり

エンジニアライフをエンジョイする為のブログ

Scala勉強日誌 - Akka その1

Scala勉強日誌 - Actor - 成らぬは人の為さぬなりけり 大分前にActorの勉強して、続きでAkkaの勉強しようと思ってて、完全に忘れていたので、 再開したいと思います。 (仕事で必要になって、勉強したので、メモしているだけ、、、)今日のテーマは、、、 SB…

CoffeeScriptを書いてみる その2

前回は、 関数定義、文字列内変数展開をやってみました。 さて、今回のテーマは、、、 可変長引数 レンジ 比較演算子 条件付き代入 無名関数 をやってみたいと思います。 可変長引数 関数の引数に「...」をつけると可変長引数になります。 hoge = (ary...) -…

CoffeeScriptを書いてみる その1

前回、CoffeeScriptの環境を作ったので、 早速書き始めてみようと思います。 今回のテーマ 関数定義 文字列内変数展開 関数定義 CoffeeScriptでの関数定義はこんな感じになるようです。 helloworld.coffee helloworld = -> console.log "hello world" 呼び出…

HomebrewでNode.js入れて、npmでCoffeeScriptを入れる

CoffeeScriptを勉強する為に環境を構築したので、メモ。 環境 OS : MacOSX 10.8.2 Node.js : 0.8.16 npm : 1.1.71 CoffeeScript : 1.4.0 Homebrew : 0.9.3 インストール手順 HomebrewでNode.jsをインストール npmをインストール CoffeeScriptをインストール …

Play2.0でsbtの独自タスクを定義する

sbtの独自タスク追加方法は、ググればちらほら出てくるのですが、 Playを使ったsbtの独自タスクの定義方法がよくわからず、 ちょっと苦労したので、メモします。 (苦労した、という程の事でもないのですが。。。) 今回の環境 OS : Mac OS X 10.7.5 Scala :…

プレースホルダは意外と難しい(その2)

前回、Scalaのプレースホルダについて書きました。↑の記事の後半に出てきた部分で大きな勘違いをしていたので、 訂正すると共に、学習し直したいと思います。 先日、@kmizuさんのブログで、プレースホルダについて書かれていたので、 参考にさせて頂きました…

すごいHaskellたのしく学んでみる-その9

今回のテーマは、、、 newtypeとdata 以上のテーマで、参ります。 newtypeとdata 「1つの型を取り、何かにくるんで別の型にみせかける」 というような事がしたい場合、 dataではなく、newtypeキーワードを使う事ができます。 例えば、このような場合 Prelude…

プレースホルダは意外と難しい

プレースホルダーは、関数の引数を省略して書けるものだと思っていました。結論からいうと、 プレースホルダはあくまで関数の部分適用をする物、 のようです。 ※自分の中ではそう理解した。。。具体的な例を挙げて、考えた事を説明していきます。 val list =…

すごいHaskellたのしく学んでみる-その8

今回はついにFunctorです。 正直、まだFunctorの利点がよくわかっていないですが、 とりあえず、書いてみようと思います。 今回のテーマは、、、 Functorとは? fmap ファンクター則 ApplicativeFunctor こんな感じでお送りしようと思います。 Functorとは?…

すごいHaskellたのしく学んでみる-その7

久々のHaskellです。 前回からの続きは「すごいH本」的にはIOの章なんですが、 この辺よりも、その次の章が面白かったので、 ブログに書くのはやめました。 と、いうわけで、今回のテーマは、、、 関数型問題解決法 逆ポーランド記法電卓 関数型問題解決法 …

メソッド引数とコンストラクタ引数のimplicitパラメータ

最近ずっとHaskellの話題だったんですが、今日はScalaです。最近少しずつ仕事でもScalaを使うようになってきて、 勉強しなおしてます。早速表題の件ですが、 class Hoge(val name:String) class Foo(implicit hoge:Hoge) implicit val hoge = new Hoge("hoge…

すごいHaskellたのしく学んでみる-その6

先週サボったので、二週間ぶりです。今日のテーマは、、、 データ型 レコード構文 型引数 型クラス 今までずっとオブジェクト指向でやってきた自分にとっては、 ここはなかなか理解しづらく、 未だに0から自分で書ける気がしない、、、 データ型 データ型と…

すごいHaskellたのしく学んでみる-その5

今回のテーマは、、、 カリー化 高階関数 RubyやScalaをやった事があるので、 カリー化、高階関数は、割りとすんなり入って来ました。 カリー化 Haskellでは、関数はデフォルトでカリー化されています。 Haskellの全ての関数は、公式には引数を一つ取ること…

すごいHaskellたのしく学んでみる-その4

(週1で更新するのがお決まりパターンになってきました。)今日のテーマは、、、 再帰 今日は一個のテーマで書いてみます。 Haskellでは繰り返し処理は再帰で書くようです。 再帰はたしかに読みやすいし、 コードが簡潔になるので、好きですが、 実行効率の…

すごいHaskellたのしく学んでみる-その3

前回から、しばらく経ちましたが、 なかなか読み進まなかったので、書いてませんでした。というのも、正直2章の内容を理解しきれなくて、、、 理解できないというか、イメージができないというか、 型クラスのインスタンスが型と言われても、 正直よくわか…

RubyでSkypeにメッセージを投稿(Mac専用)

githubのnotifyやjenkinsのrssを常に気にしていたいのですが MacのFireFoxのJenkinsRSSリーダーがどうも上手く通知してくれないし、 常にブラウザ開いているわけでもないので、 今仕事で常に開いているSkypeに通知するbotを作ってみようかと思いました。 Rub…

すごいHaskellたのしく学んでみる-その2

前回からの続きです。今日のテーマは… リスト内包表記 タプル 以上!短いw まずは、 リスト内包表記 リストのフィルタリング・変換、組み合わせを行う方法、だそうです。 リスト内包表記ってなんぞや、と最初は思いましたが、 やってみると非常にわかりやす…

すごいHaskellたのしく学んでみる-その1

勉強会に参加する事や、TL上でよく見る本だったので、買ってみました。 すごいHaskellたのしく学ぼう!作者: Miran Lipovača,田中英行,村主崇行出版社/メーカー: オーム社発売日: 2012/05/23メディア: 単行本(ソフトカバー)購入: 20人 クリック: 556回この…

jpmobileでiPhoneの絵文字対応

iPhoneの絵文字は iOS2.2から絵文字を扱えるようになりましたが、 当初はSoftbankのUnicodeマッピングになっていました。しかし、現在のiOS5.1ではUnicode6.0の絵文字が使用されているようです。Railsで、Opensocialのアプリを作っているのですが、 jpmobile…

Scala勉強日誌 - Actor

今日のテーマは「Actor」です。 チャット作ってみようと思って、Play2.0のサンプルにある WebsocketChatのコードを見ていたらActorが出てきて、 全く理解できずw そういえば、さらっと勉強して、すっかり忘れていたので ちゃんと勉強してみる事にしました。…

ORMを使う - Squeryl

最近Scala勉強してます。仕事ではここ半年以上ずっと、Railsなので、 ScalaではPlayを使ってみようと思い、始めました。ただ、ことDBアクセスに関してはPlay標準のAnormは、なんかしっくりこない、、、 ActiveRecord的な感覚で使えるORMは無いものか、と。色…

ifの条件式で代入もしてしまう

好みの問題なのかもしれません。 (と、思っているのは、自分の知識が浅いからかな?) 以下のようなコードがあったとします。 def hoge foo = Something.foo if foo foo.do_something end end こういう場合、私はこう書きたい。 def hoge if foo = Somethin…

人気のプラグラミング言語

最近、 TIOBE Software: The Coding Standards Company こんな事をやっている所があることを知り、 C#が上がってきている事を知って、 驚きと共に、嬉しい気持ちになった矢先。別の角度で、面白い事をやっていらっしゃる方がいらっしゃいましたので、 ご紹介…

case式の対象オブジェクトのメソッドの戻り値を条件に使用する

うん、タイトルだけだと、意味わからん、という感じかと、、、 わかるかな? なんて書いたらいいのか、悩んだので、 とりあえず、書いてみました。 コードで示した方が分かりやすいかと。 ※やりたいと思った事(以下のコードは間違ってます) case hoge when…

RVMとEmacs

EmacsでRubyの開発を行う場合、 おそらくみなさんFlymakeを使っているのではないかと 勝手に思い込んでおりまして、 私はFlymakeを使っている次第でございます。 「emacs flymake ruby」とかググると、 まぁ、いろいろ出てくるわけですが、 例えば、 EmacsWi…

Gitのdiffツールとマージツールを設定する(p4merge)Mac

Gitのデフォルトの設定で、diffを見ると パッチの形式で表示される為、 ぶっちゃけ人間が見ると見づらいんですよ、、、 (慣れろ、俺。とは思うけども。 % git diff diff --git a/src/collection/set_and_map/MapSamples.scala b/src/collection/set_and_map…

知らない内に活用してるメソッド to_proc

Ruby1.9を使用している人は知らないうちに(?)活用してると思いますが。 Ruby1.9から、Symbol#to_procを使用するのにライブラリは不要になりました。 初めて見た時は、なんじゃこりゃーー、と思ったけど、 意味が分かれば、どうってことは無い。 例えば、…

クラスメソッドの定義

初歩的な事なのだけど、 改めてクラスメソッドの定義方法にいろんな書き方がある事を忘れていたのでメモ。 # 特異メソッド方式。 class Hoge def Hoge.foo end def self.foo2 end end Rubyではクラスは定数であり、つまりオブジェクトである。 そのオブジェ…

ハイパフォーマンスなチーム作り

InfoQでこんな記事があった ハイパフォーマンスなチームを実現して維持するにはベストプラクティスは、当然納得していて、 やっぱりそうするべきだ、とずっと思っている。 ただ、まぁ、なかなかうまく行かない現実もあるわけで、、、 上記記事の「アンチパタ…

Node.jsがWindow上でネイティブ実行が可能になったらしい

そもそも、JavaScriptがあまり好きじゃない私としては、 そこまで熱烈に興味は無いんですが、 サーバーサイドJavaScriptには興味がちょっとある。Node.jsは今までWindowsではCygwinを使うしかなかった。 それがやっとWindows上で普通に使えるようになったそ…