天領倉敷Scala第0回勉強会に行ってきた

第10回オープンラボ岡山に参加したときに、自己紹介でおすすめの本を紹介する時間があったのだけど、ここで何人かの人がScala関連の本を紹介されていた。Scalaは前職の同僚がScalaいいよーってよく言っていたので、そういうプログラミング言語があることは知っていたのだが、自分で勉強するまでにはいかなかった。その時点では、洋書しかなかったので英語がさっぱりな自分にはハードルが高かったのです。。。

で、それから1年ちょいの間で日本語の書籍もいくつか出版されて徐々に各地で勉強会なんかが開催されていたので、そろそろ自分も触ってみたいなと思っていたところ岡山でもScalaを勉強されている人がいることを知り、興味が高まってきたところに倉敷でScalaの勉強会を立ち上げる方からお誘いがあったので、さっそく参加してきましたー。

以下、ところどころメモったので。

日時:2010/8/28(土)  13:00−16:30
場所:株式会社アイネット

Scala入門 -西本さん

自己紹介
Scala+Web Fravorで某所に納品した(瀬戸内国際芸術祭2010豊島)

告知
・第1回Scala座 2010/9/4(土) 名古屋
 
背景
Java仮想マシンで動くプラットフォーム
・近年はjava意外でも利用が可能
・LL(Lightweight Language) -> 動的言語
Javaに不自由を感じるならJavaと親和性の高い言語を作ればいい
  ・Groovy(独自)
  ・JRubyRuby互換)
  ・Scala(独自)
 
 概要
スイス連邦工科大学が中心に開発
 ・2003年に登場
  ・Javaオブジェクト指向を継承しつつ
  ・関数型プログラミングの要素を取り入れた
  ・マルチパラダイム

機能・文法
・便利な記法
 ・メソッド引数のカッコの省略
  ・リテラルXMLなど)
・豊富な型宣言
  ・traitを使ったmixin, Generics
  ・型の拡張(Implicit Conversions)
・便利な標準ライブラリ
  ・豊富なコレクション
関数型プログラミング文化由来
  ・クロージャ

API
scala コアライブラリ
scala.actors Actor(並行処理)
scala.collection コレクション
scala.concurrenct コンカレント
scala.runtime 基本型拡張など
scala.util 正規表現、Parser Combinator
scala.xml XML操作

設計方針
・パフォーマンス
 ・Javaとほぼ同じ
  ・同じくらいの性能、同じくらいのクラスサイズ
・文法
  ・豊富な文法
  ・ただし導入は慎重に
・副作用
  ・変数の値の代入など
  ・一般的に副作用があるコードにはバグが発生しやすい
・副作用が起きないよう配慮
・文法
・最大入深の変数宣言 val
再帰呼び出し
API
・immutableなコレクション
・Streamなど副作用を隠蔽する仕組み
・副作用を書くことも可能
・varを使う
・一般的に副作用を書くコードのほうがハードルが低い
・副作用を伴わないコードのほうが見通しや可読性がいいこともある
・まとめ
・基本はかえない
  ・Javaの型や記述など
・許容する
  ・副作用等
 ・簡素に
  ・アクセス修飾子のデフォルトはpublic
 
 便利な文法
・代入と型推論
・Tupleリテラル
 ・Tupleは22個までok
XMLリテラル
・for式
 ・1文で書くことができる
  ・for文ではなくfor式
・パターンマッチング
  ・C言語でいうSwitch Case文
クロージャ
  ・Scalaでは重要
・カリー化

動向
・最近2.8がリリース
・デフォルト引数、名前付き引数
・Package object
・break文
・継続(限定的)
・copyメソッド
・コレクションの改良
・scalacの高速化
・ライブラリ・ツール
・事例
 ・Twitter
   ・バックエンドをScalaで描いている
  ・Foursquare
 
オススメ本
Scalaスケーラブルプログラミング

講演の資料は、アップしてくださるようなので興味のある方は天領倉敷ScalaのサイトかGoogle groupをチェックしておくといいよー。

勉強会で使用する本はScalaプログラミング入門に決まった。個人的にはScalaスケーラブルプログラミングに決まって欲しかったけど、しょうがないか。
Scalaプログラミング入門、買わなきゃ。。。

で、次回(10/2)までに各自、Scalaプログラミング入門を読み進めて第1回勉強会では2章から進めていくことになる。


勉強会で使用する本

Scalaプログラミング入門
Scalaプログラミング入門デイビッド・ポラック 大塚庸史

おすすめ平均
stars評価が分かれるのではないかと…
starsScalaでアプリケーション/ライブラリ開発を考えている方は是非どうぞ

Amazonで詳しく見る
by G-Tools


僕が購入した本

Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)
Scalaスケーラブルプログラミング[コンセプト&コーディング] (Programming in Scala)Martin Odersky Lex Spoon、Bill Venners 羽生田 栄一

おすすめ平均
stars初心者の入門書としては高度すぎる
starsポストJavaを求める人向けです
starsScalaのバイブルたる本です。
starsすべて道がscalaに通じていた

Amazonで詳しく見る
by G-Tools

[勉強会]中国GTUG第1回に参加してきた

さてさて、この暑い中、オープンラボ岡山に続いて中国GTUGに参加してきました。
目的は、もちろんAndroidのセッション。Android関連の書籍をずいぶん前に購入したけど、まったく手をつけず積読状態になっていたので、これをきっかけにAndroidを触っていこうという個人的なねらいがありました。

以下、さらっとメモ。

・中国GTUG紹介:横山さん
 中国GTUGマネージャーの横山さんから中国GTUGを作るまでの経緯や苦労、そしてこれからの展望についてのお話。Androidに限らず、Google技術に興味を持ったユーザの集まりで幅広くやっていくよう。

MapReduce応用プログラムの組み方の基本:増田さん
 2010/08/15 発売予定の「Data-intensive Text Processing With Mapreduce」の紹介。オライリーから出てるHadoop本はHadoopのハウツー本で、こちらはアルゴリズムの本。MapReduceを用いると同時並行処理をフレームワーク側がやってくれるため、開発者はMapとReduceの実装に集中してすることができるよう。クックパッドさんなんかがHadoopを使ってるっていうことで有名だけど、自社の仕事でいまいち使いどころがイメージできないんだよなー。

Google Android Application ハンズオン?:松原さん
 個人的には今回一番聞きたかったセッション。なんと、Androidアプリを作ろうっていうことでセッション間の休憩時間で慌ててAndroid開発環境を作りました。しかし、セッションが始まってすぐのエミュレータを起動しようってとこで脱落。原因はAndroid SDKのPackageがインストールできていなかったこと。(これは家に帰ってから調べて分かった。。。)結局、ハンズオンはチューターの方のPCを借りて無事?進めることができました。今回、初めてAndroid開発環境を触ってみたのですがエミュレータユニットテストフレームワークなど、かなりよくできたSDKだなーという印象。これをきっかけに少しずつ勉強していこうと思いました。話はかわるけど、僕に色々教えてくれたチューターの方は仕事でAndroidアプリを開発しているようで、面白いことをやってる会社が岡山にもあるんだなと。


今回の中国GTUGは、岡山県立図書館で開催されたのですが、公衆無線LANサービスが提供されていて、とっても快適でした。やっぱり勉強会でwifiが使えるのはめちゃめちゃ便利。今回のように休憩中に環境構築できるし。(不完全だったけど。。。)



Google Androidプログラミング入門

Google Androidプログラミング入門


Data-Intensive Text Processing With MapReduce (Synthesis Lectures on Human Language Technologies)

Data-Intensive Text Processing With MapReduce (Synthesis Lectures on Human Language Technologies)

[勉強会]岡山オープンラボ第010回に参加してきた!

ちょうど、1年ぶりの更新になります。
この1年、色んなことがありました。
転職、引越し、結婚。
振り返ってみると、人生における重要なイベントが多かった1年です。

さて、岡山に引越してきて8ヶ月。

引越し前から存在を知っていて、ずーっと行こうと思っていた岡山オープンラボにやっと参加してきました!
(仕事や結婚が重なって参加できずにいました。)


以下、適当にメモ。


フリーソフトへのこだわり -- 出射氏を偲んで(晴田さん)

・日本人はハンディがあると燃える
・日本人は置き換え(改良)の天才
・プログラムは趣味だと本当に楽しい
フリーソフトの楽しみ方(秘)

→昔のPCやFDなど全く知らなかったけど、興味深い話だった。


オープンソースとソフトウェアエンジニアリング(天嵜さん)

GPL採用のプロジェクトはユーザ(利用開発者)の関心が低い
→なるほど。


・技術者の器用貧乏脱出論(若林さん)

・独りは一人前以下 
 ・能力を高めても人並み程度
ランチェスター戦略
 ・経営戦略として有名
・皆と普通にやっていては、人並み程度なので「差別化」することが重要
→確かに。人と同じことをやっていては人並み止まりだよな。。


VHDネイティブブートのお話(きよくらさん)

・仮想環境とは異なり、マルチブート環境を容易に作成できるよう。
 ・新規にディスクやパーティションを用意しなくてもいい
→初めてVHDという単語を知った。開発環境、テスト環境を作るには便利そう。


・Small Basic(きよくらさん)

→子供やプログラミング初心者の方にすごく良さそう!こんな環境が容易に手に入る現代の子供はうらやましいな。


・ITSS2010参加記(白石さん)

→おもしろそうなシンポジウム。。


夕方から予定が入っていたので、ここで退室。

初参加でしたが、予想より年齢層が広くて驚きました。
休日の勉強会なので、プライベートな時間を確保しやすい学生や若い方が多いのかと思ってましたが、年配の方も多く参加されてました。
また、いわゆるプロの方でない方。趣味でプログラムを作られている人も多かったように思います。
岡山にもこのような勉強会がいくつかあるようなので、今後は積極的に参加していけたらと思いました。
あと、次回は懇親会に参加したいな。。。


最後に今後、岡山近辺で予定されている勉強会等。

7/31 オープンラボ備後(福山)
7/31 Android勉強会(岡山県立図書館)
8/15 Rails勉強会(岡山?)
2011/02 オープンソースカンファレンス香川?(高松)

個人的にはAndroid勉強会に行ってみたいな。。

Tracのユーザに管理者権限をつける

Tracをインストールしたのはいいけど、パーミッションをつけてやらないと全く使えない。
今回はイントラネット内で自分しか使用しないため、とりあえず管理者権限をつける。

# trac-admin /home/svn/trac/project/ permission add greennoah TRAC_ADMIN

管理者権限をつけてやると、管理コンソールから各種設定からチケットの登録まで何でもできる。
1つ、気になることが。。ヘッダーロゴにTracのロゴが表示されていないんだけど、何で?デフォルトだと、ヘッダーロゴは空なのか?

今度は、プラグインでもいれてみようかな。