こんな感じ。
↓embed用jsのクエリ引数 file にファイル名を指定しましょう。
<script src="https://gist.github.com/masahitojp/5003188.js?file=HttpStatus.scala"> </script>
こんな感じ。
↓embed用jsのクエリ引数 file にファイル名を指定しましょう。
<script src="https://gist.github.com/masahitojp/5003188.js?file=HttpStatus.scala"> </script>
@seratch さんのltsv4sをいじってて、もっとこんな機能が欲しいと思っていろいろ書きました。
主に勉強用。あと Text::LTSVのライブラリドキュメント読んでて、欲しい機能を付け足したくなったため。
ダラダラ書くと
want
# Only want certain fields? my $p = Text::LTSV->new; $p->want_fields('hoge'); $p->parse_line("hoge:foo\tbar:baz\n"); # Vise versa my $p = Text::LTSV->new; $p->ignore_fields('hoge'); $p->parse_line("hoge:foo\tbar:baz\n");
いちどMap[String, String]にしてから、いるやつ/いらないやつを削るよりも最初から
Mapに入れない方が無駄がないかなーと思ったため。
ltsv4sのScala-Parserに対して、手を入れる必要もあって結構つらかった。
何となく好みで。でも自分で使っててもEitherの扱いってめんどくさいので、
今後エラー時にexception返す/ 値はMap[]で返すって仕様に変えるかも。
毎回right.map(~~)って書くの結構キツい
ltsv4sの実装がScala-persers使っててすげーキレイだなってのに感動したので
機能を追加してみたって感じです。
今後やりたいのはテストの追加/ ScalaChecke化などなどです。
あとは速度面の検証とかプロファイルとかを学んでみたいと思ってます。
まじめにお仕事に使いたいのであれば、ltsv4sとかltsv4jとかを使う方をお奨めします。
「すべての人に知っておいてほしい JavaScriptの基本原則」のレビューをお手伝いしまして、
@cimadai から献本をいただきましたので、書評をあげておきます。*1
著者の皆様、執筆/構成お疲れ様でした。ありがとうございます。
すべての人に知っておいてほしい JavaScriptの基本原則
帯にも書かれているのですが「Webデザイナーが開発者と会話できるようになるための入門書」というのがコンセプトになっています。
扱っている内容は以下のようになっています。(開発者と会話できるようになるデザイナーのための入門書。『すべての人に知っておいてほしい JavaScriptの基本原則』発売|株式会社エムディエヌコーポレーションのニュースリリースから抜粋)
chapter 1 JavaScriptの基礎 chapter 2 組み込みオブジェクト chapter 3 jQuery chapter 4 スマートフォンでのJavaScript chapter 5 高速化と効率化 chapter 6 挑戦! オブジェクト指向 chapter 7 Ajaxによる通信 chapter 8 HTML5と関連API
文字だけで説明すると難しそうな印象になるのを和らげるために、図が豊富に使われています。
2-08でのイベントハンドラの実行順序の話題とか5-02スコープチェーンのような初心者にはわかりづらいところ
がきちんと図辞されて説明されてるのもかなりポイントが高いと思いました。
とにかくコードを書いてみるのがいいんじゃないでしょうかね。本書でも紹介されてるhttp://jsdo.it/やhttp://jsfiddle.net/を使って
公開されてるものをforksしてJSのコードを書き換えながら遊んでみるのがいいと思います。
もっとアプリケーションを書いてみたくなったらJSの中級者向けの本を読んでみるといいと思います。
JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技:書籍案内|技術評論社とかとか*2
読んでて思ったのですが、初心者向けの本って題材の選び方/説明とか難しいですね。
著者のみなさま、mdnの編集者の皆様おつかれさまでした。
@mumoshu さんの mumoshu: ScalaでMMOのサーバを書くための技術を読んで、
Akka IO
が楽しそうだなーと思ったので、ひとまずEcho Server書いてみた。
IO.Iterateeありとなしのやつを両方書いてみた。
コードの行数は大した事ないけど、どちらもマルチクライアントに対応してます。
フツーはforkしたり,Tread立ち上げたリする必要があるんですが、
Akka IOでは裏でAkka Actorが立ち上がって処理が行われます。
勘違いnon-blocking IOが行われる(詳しくはAkka IOのドキュメント参照)
この記事はPySpaアドベントカレンダーの15日目の記事です。
PySpa系のイベントには思い入れが強いせいか、考えがうまくまとまらなかったのでダラダラした感じで書いていきます。
来宮神社のにゃんこ
Vの人が書いている説明が↓にあります。
https://github.com/pyspa/pyspa
基本的に温泉のついでに、各自やりたいことを持ち寄って過ごす感じです。
ゲームやったり、だべったり、おいしい昼ご飯を食べにいったり、海を見に行って、ついでにコードを書く感じ。
かなり自由度は高いです。この自由度が非常に気持ちいいイベントです。
毎回、どこかで面白い事がおこっています。
よく読ませていただくブログの中の人がよく参加されてるので、たまにふわふわした気分になったりします。
私のPySpa系のイベントへの初参加は2009年頃にあったPython旅館(後にCodeCamp)というイベントでした。
当時PythonでAtndのイベント情報を取ってくるやつとかが作りたくて参加した覚えがあります。
@atusi さんとかがラジコンヘリを飛ばしてたり、 @nishio さんが
言語を作ってたりしてるのをみてて、
「なんかすごいところに飛び込んじゃったなー」と言う感想でした。
@kuenish さんにNTEmacsを教えてもらったりしました。
その後、PySpa本体に参加させていただくようになりました。
@rokujyouhitoma さんとか @hagino3000 さんとJSの話をしていた気がする。
確かこのときまだv0.1だったnode.jsを触っていたような...
こんなに流行って 東京Node学園祭2012みたいな大きなイベントが日本で開かれるようになるとはねー
http://masahito.hatenablog.com/search?q=pyspa
このとき裏でJavaScriptテクニックバイブル ~効率的な開発に役立つ150の技:書籍案内|技術評論社のネタだしのために、@rokujyouhitoma さんと一緒に @monjudoh さんを拉致って話し合いをしたはず。
後確か、ここでRiakの話をどなたかに聴いて分散KVSとか超面白そうとか思った覚えが。。。
仕事でP2Pを扱うこととかやってみたいと思って今の会社に入る動機になったので、PySpaのお陰で今の会社にいると行っても言い過ぎではないかも。
今の会社に転職後に参加。確かJS本の原稿書いたり、JVM上で動くWebFramework Play!flameworkの翻訳を手伝ったりしてました。
Play!flameworkはお仕事でも使ってるのでいろいろ勉強になった覚えが。
PySpaは参加する前は非常に敷居が高いと思ってたんですが、参加してみると全然そういう事もなくて非常に楽しいです。
主に技術力が高い方とか仕事をしながら本を書いている方たちが多いので、そういう方達がどう言う考え方で
作業をしてるのかを聴けたりするので、自分のやり方を見直したりできます。
もちろん聴くばかりじゃなくて、自分のしってることを説明したりできるのも面白いところです。
なんていうか、みんなそれぞれ何かの専門家なので、そこで新しいものができていくところをみれるのもこのイベントの
醍醐味なんじゃないでしょうか。
個人的には、 主催の @voluntas さん、 @aohta さんの連携にいつも感心させられています。いいチームだなぁ。いつも主催お疲れ様です。
PySpaは不定期になりましたけど、今後も続くなら是非参加させていただきたいです。
明日は @atusi さんがPySpaへの思いを語ってくれます。
明日もお楽しみに!!
ScalaでEmail送りたいと思ってググったらCommons Email - Homeってのを
使うのがいいみたい。内部的にはJavaMailAPIってのを使ってるみたいですね。
exception周りとか書いてないけどこんな感じで送信できます。
import org.apache.commons.mail.SimpleEmail case class SendMailInfo(to: String, from: String, subject: String, msg: String) class MyMailSender(sendHostName: String, charSet: String = "UTF-8") { def sendMail(mailInfo: SendMailInfo) { new SimpleEmail { setCharset(charSet) setHostName(sendHostName) setFrom(mailInfo.from) addTo(mailInfo.to) setSubject(mailInfo.subject) setMsg(mailInfo.msg) }.send } }
ユニットテストするときにはhttp://java.net/projects/mock-javamailを使うとモックを使ったテストが書けるみたい。*1
Commons EmailはJavaMail APIを使ってるのでこのライブラリ使えばmockを使ったテストが可能です。
今回は送信をチェックしたいのでこれでテストします。
import org.scalatest.FunSuite import org.scalatest.BeforeAndAfter import org.jvnet.mock_javamail.Mailbox class MyMailSenderTest extends FunSuite with BeforeAndAfter { val HOST_NAME = "mail.example.com" var mailSender: MyMailSender = null before { mailSender = new MyMailSender(HOST_NAME) //clear Mock JavaMail box Mailbox.clearAll() } test("testSendInMockWay") { val subject = "Test2" val body = "Test Message2" mailSender.sendMail(SendMailInfo("to@example.com", "from@example.com", subject, body)) // check JavaMail box val inbox = Mailbox.get("to@example.com") assert(inbox.isEmpty === false) assert(inbox.size() === 1) assert(subject === inbox.get(0).getSubject) assert(body === inbox.get(0).getContent) } }
libraryDependencies ++= Seq( "org.apache.commons" % "commons-email" % "1.2", // test "org.scalatest" %% "scalatest" % "1.8" % "test", "org.jvnet.mock-javamail" % "mock-javamail" % "1.9" % "test", )
*1:このライブラリJenkins作者のkohsukeさんが書いてるんですなぁ