2013年12月31日火曜日

2013年の振り返り

2013年は「変化の年」なので「新しいことに挑戦しよう」と、興味を持ったIT技術の勉強会へ参加してきました。

その結果、以下の技術に触れる事ができました。

  • Web(HTML5、CSS3)
  • Google(Chrome、Android、GAE、GAS、AngularJS)
  • プログラミング言語(Java、Ruby、Python、Go)
  • ツール(Git)
  • 開発手法(テスト駆動開発)
  • セキュリティ

勉強会に参加することで情報や技術を得られるのはもとより、他のIT技術者と知り合うことができたり、また、会話をすることで自分のスキルや思考や状況の差異が明確になり、自分の現状を再確認することができました。

予想外だったのは、短時間ながら人前で発表を行ったことですね(^^;)

主催者&参加者の皆様、今年一年、お疲れ様でした&ありがとうございました!

1月

  13(日) 第16回勉強会@岡山(GDG中国)
    App Inventor | GAE/Jハンズオン | AngularJS

2月

  26(火) 第2回 岡山Python勉強会
    チュートリアル「5. データ構造

3月

  19(火)  第3回 岡山Python勉強会
    チュートリアル「6. モジュール
  20(水)  HTML5を業務アプリで使うための勉強会(仮)
    活動方針 | チェック | サンプル「form」
  27(水)  HTML5を業務アプリで使うための勉強会 #2
    HTML5タグ

4月

  04(木)  HTML5を業務アプリで使うための勉強会 #3
    Drag and Drop API
  11(木)  HTML5を業務アプリで使うための勉強会 #4
    File API
  13(土)  第1回 たのしいRuby読書会
  19(金)  HTML5を業務アプリで使うための勉強会 #5
    FileSystem API
  25(木)  HTML5を業務アプリで使うための勉強会 #6
    Web Workers

5月

  16(木)  HTML5を業務アプリで使うための勉強会 #7
    Application Cache API
  21(火)  第4回 岡山Python勉強会
    チュートリアル「7. 入力と出力
  25(土)  GDG DevFest Japan 2013 Google I/O 報告会 中国会場
    Android | Chrome/HTML5 | Cloud | Google+/Go/YouTube/Geo
  26(日)  GAE/P コードラボ
    GAE/Pチュートリアル
  30(木)  HTML5を業務アプリで使うための勉強会 #8
    Web Storage

6月

  01(土)  第8回 セキュリティうどん(かまたま)
    本質を見抜く"目力"講座
  06(木) HTML5を業務アプリで使うための勉強会 #9
    Indexed Database API
  08(土)  <htmlday> in Tokushima
    Chrome DevTools | Git
  12(水)  岡山でCSS3を学ぼう会:nth-child(1)
    CSSの読み込み 〜 セレクタ
  13(木)  HTML5を業務アプリで使うための勉強会 #10
    Indexed Database API
  15(土)  Java Day Tokyo 2013報告会@岡山
    基調講演/報告/写真 | IDE | Lambda | JJUG CCC
  20(木)  HTML5を業務アプリで使うための勉強会 #11
    Indexed Database API
  22(土)  第19回勉強会@岡山(GDG中国)
    ハッカソン([自分] GAE/Pyで緯度・経度から住所を取得)
  25(火)  第5回 岡山Python勉強会
    チュートリアル「8. エラーと例外
  26(水)  岡山でCSS3を学ぼう会:nth-child(2)
    メディアクエリー 〜 ページ制御
  27(木)  Okayama.rb #11
    [自分] Ruby 2.0 セットップ
  29(土)  第20回勉強会@福山(GDG中国)
    AngularJSハッカソン

7月

  04(木)  HTML5を業務アプリで使うための勉強会 #12
    HTML5 Web Messaging API
  06(土)  岡山Ruby会議02
    ツール紹介 | Jenkins | アジャイル開発 | セキュリティ
    [自分] 発表「Okayama.rb #11 に参加してきた!」(5分)
  13(土)  オープンセミナー2013@香川
    Rmenu | プログラミング教育 | PostgreSQL 9.3 | AOSPコントリビュート
  16(火)  第6回 岡山Python勉強会
    チュートリアル「9. クラス
  18(木)  HTML5を業務アプリで使うための勉強会 #13
    WebSocket API
  20(土)  おいしいアプリ開発 #10 @徳島 [初級入門編]
    Androidハンズオン
  27(土)  Google Apps Script勉強会
    GASハンズオン

8月

  27(火)  第7回 岡山Python勉強会
    チュートリアル「10. 標準ライブラリミニツアー
  31(土)  TDD Boot Camp 岡山 2.0
    テスト駆動開発ハンズオン([自分] Java+JUnit)

9月

  07(土)  第21回勉強会@岡山(GDG中国)
    Androidカメラ | HTML5 API
  28(土)  Go言語 勉強会
    文法ハンズオン

10月

  12(土)  第22回勉強会@岡山(GDG中国)
    Google Cloud Platformハッカソン([自分] GAE/Gチュートリアル)
  14(月) Go Conference 2013 autumn
    [自分] Twitterハッシュタグ「#gocon」上にて参加(^^;)
  27(日)  Golang Cafe #1
    How to Write Go Code

11月

  02(土)  第15回 岡山Ruby, Ruby on Rails勉強会
    FizzBuzz | rails template | Rails4
  03(日)  Golang Cafe #2
    パッケージ「encoding/json」
  10(日)  Golang Cafe #3
    GoroutineとChannel
  16(土)  第2回 岡山「たのしいRuby」読書会
    4.1 オブジェクト 〜 6.8 until文
  17(日)  Golang Cafe #4
    パッケージ「github.com/lib/pq」(PostgreSQLドライバー)
  19(火)  第8回 岡山Python勉強会
    チュートリアル「11. 標準ライブラリミニツアー – その 2
  24(日)  Golang Cafe #5
    パッケージ「os」

12月

  01(日)  Golang Cafe #6
    パッケージ「text/template」
  08(日)  Golang Cafe #7
    Go 1.2について
  14(土)  合同勉強会 in 大都会岡山 -2013 Winter-
    Kotlin Web フレームワーク | Gitホスティング | reprap 3D | Mobile Push
    Notification | ASP.NET | JJUG | DSL | Haxe | LT
    [自分] 発表「Go言語のご紹介」(15分)
  15(日)  Golang Cafe #8
    2013年のGo界隈の振り返り
  19(木)  第9回 岡山Python勉強会
    Sphinx概要
  22(日)  Golang Cafe #9
    デザインパターン(マルチスレッド)
  29(日)  Golang Cafe #10
    パッケージ「image」

「新しいことに挑戦」ということでは、SNS(TwitterGoogle+ブログ)も今年からですね。

2013年12月30日月曜日

Golang Cafe #10

12/29(日)に開催された「Golang Cafe #10」に参加してきました。

参加者は +Takashi Yokoyama さん、+Takanobu Hagino さん、私の3名でした。

2013年の最後はimageパッケージと戯れました。

前半は、横山さん作成のサンプルソースを使ってimageパッケージを確認しました。

個人的には、以下の山口さんのブログ記事も参考にさせて頂きました。


後半は、もう少し簡単に画像を扱えないか?ということで、draw2dパッケージを確認しました。

画像に文字を出力するあたりで、出力方法やフォント(&ライセンス)を調べて行くうちに混沌として(^^;)、終了の時間となりました。

詳細&技術な内容につきましては、横山さんや萩野さんのブログをご覧下さい。


Golang Cafe、気が付けば10回を重ねましたね〜 q@w@p
来年は1/5(日)からパッケージツアー(?)を行って行く模様です!

[2013.12.31] 萩野さんのブログへのリンクを追加しました。

2013年12月23日月曜日

Golang Cafe #9

12/22(日)に開催された「Golang Cafe #9」に参加してきました。

参加者は +Takashi Yokoyama さん、+Takanobu Hagino さん、私の3名でした。

今回は、横山さんが書籍「増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編」をGoで実装されていた「Go言語でデザインパターン入門」の中から、以下の3つを解説して頂きました。(日本語の説明文は書籍でのサブタイトル)


マルチスレッドに関してはクラスや継承は関係ありませんし、並列処理がウリの一つであるGoにとってはうってつけの内容だと感じました。

本書籍の内容をGoで実装してみることで、GoroutineやChannelの使い方や理解を深めたり、並列処理(マルチスレッド)に関する実装パターンを習得できたりと、得られることは多いかもしれません。

詳細&技術な内容につきましては、横山さんや萩野さんのブログをご覧下さい。


ちなみに、私は書籍「Java言語で学ぶデザインパターン入門」にて、デザインパターンを学ばせて頂きましたm(__)m

[2013.12.31] 萩野さんのブログへのリンクを追加しました。

2013年12月20日金曜日

第9回 岡山Python勉強会

12/19(木)に開催された「第9回 岡山Python勉強会」に参加してきました。

今回から本格的にハングアウトを使うことになり、参加者は会場に4名、オンラインで2名の計6名でした。

前回までは公式サイトの2.7系の「Python チュートリアル」のハンズオンを行って来ましたが、Python年最後の今回は「Sphinx日本語)」で締め括ることになりました。

Sphinxのインストールまでは各自で事前に行い、当日は +Keigo Yamate さんにて導入部分の解説が行われました。

インストール手順については、少しでも埋められるかと思い、Qiita の Python Advent Calendar 2013 へ投稿しました。


「岡山Python勉強会」ですが、次回(来年1月?)からは「django」を行っていく予定です。

[2013.12.28] やまてさんのブログ&スライドが公開されました!

2013年12月17日火曜日

Golang Cafe #8

12/15(日)に開催された「Golang Cafe #8」に参加してきました。

参加者は +Takashi Yokoyama さん、+Takanobu Hagino さん、私の3名でした。

オープニングは恒例の(?)萩野さんの質問コーナー、その後、今週末に東京で開催されるGo年会2013に乗っかる感じで(!?)「今年のGoの振り返りとこれから」をテーマにトーク中心で進行しました。
# 東京はアルコールですが、こちらは「Cafe」だけに、いつものコーヒーでした(^^;)

今回は横山さんがガシガシとメモをとって下さっていたので、詳細な内容については、横山さんや萩野さんのブログをご覧下さい。


個人的には前日の発表と合わせて、Go三昧な週末となりました!q@w@p

2013年12月15日日曜日

合同勉強会 in 大都会岡山 2013 Winter

12/14(土)に開催された「合同勉強会 in 大都会岡山 2013 Winter」に参加してきました。

当日の様子については、以下の「Togetterまとめ」をご覧下さい。


ココでは本会にて私が初めて発表を行ったまでの経緯を簡単にご紹介させて頂きます。

10月ごろ、申し込みのタイミングを見極めようと合同勉強会のサイトをちょくちょく覗いていると、ショートセッション(15分)の最後の1枠がなかなか埋まらない光景を目にしました。

「15分ぐらいなら今の私のスキルでも大都会民の皆様にざっくりとGo言語の紹介ができるかも!?」と思い立ち、今回は発表者として申し込みをさせて頂きました。

ちなみに、人前で発表をするのは今回で2回目ですが、前回はライトニングトーク(5分)でしたので、実質初めてとなります。

Go言語を知っている参加者は少ないだろうと思って「Go言語のご紹介」という主旨で資料を作成し始めました。情報を収集して行く過程において、ほんの少しですが英語にも慣れてきましたし、あと、Rob Pike氏の資料を見る機会が多かったので、一瞬、彼と知り合いになったような感覚に陥ったりもしました(^^;)


12/1の「Golang Cafe #6」の帰り際、資料の内容をチェックして頂きたかったため、Ver.1.0を横山さんと萩野さんにざっくりと眺めて頂きました。その時の資料は15分の発表に対してスライドが40枚ほどだったり、内容が単なる自分のGo情報のまとめになっていたりと散々なものでした。

12/7に内容のスリム化を図ってVer.1.1に、12/8の日中に見直しを掛けてVer.1.1.1とし、夜の「Golang Cafe #7」にて、当日は参加できないというお二人に対してプレ発表会を行い、頂いた指摘事項をその場で修正してVer.1.1.2が完成しました。

12/11と13の深夜にGAE/GソースやGopherの追加を行ってVer.1.2としてFixしました。

当日、自分のセッションが始まったところで、70人ほどが集まった会場で「Go言語を知っていたり使ったことがある人」をアンケートしたところ、なんと(!?)目の前には約半数ぐらいの人の手が挙っていく光景ぐぁ...(嬉し涙:キラーン)

今回の資料は「Go言語の初見者向け」であり「私なりのご紹介」ということで、情報をデフォルメしている部分もあったりして、物足りなかったという人も多くいらっしゃったと思いますが、自分的には当初の目的は何とか達せられたのではないかと思っております。

以下、私が作成した資料です。ご参考までにm(__)m


Go言語に関する資料はインターネット上に数多く存在していますので、Go言語に興味を持たれた方は引き続きそちらを追って行って下さい。

P.S.資料のバージョンに「ピーン」と来た方は根っからのGopherかも!?(^o^)

[2013.12.15]

スライド19のGAE/Gについて修正しました。以下、補足記事です。

2013年12月11日水曜日

Golang Cafe #7

12/8(日)に開催された「Golang Cafe #7」に参加してきました。

参加者は +Takashi Yokoyama さん、+Takanobu Hagino さん、私の3名でした。

今回はハンズオンではなく、

  1. 萩野さんからの「質問タイム」
  2. 私からの「発表資料のチェック依頼」
  3. 横山さんからの「Go 1.2の紹介」

の豪華(!?)3本立てでした。

私は準備で詳しく聞けなかったのですが、萩野さんからnilや大きい数値の扱いについての質問があり、横山さんが回答されていました。(詳細はお二人のブログをご参照下さい。)

その話を小耳にはさんで「これはオブジェクト指向からの視点だなぁ」と感じていました。というのも、Go言語はオブジェクト指向言語か?という問いに対して「Yes and No」という立場をとっているからです。どちらからのアプローチでも受け入れられるというのもGo言語の魅力の一つだと思います。

私事ですが、今週末の合同勉強会で15分ほど大都会民に向けてGo言語の簡単なご紹介をさせて頂く予定なのですが、いかんせん、人前で発表するのは2回目(1回目はLT)のため、発表内容について大都会Gopher目線&発表経験者目線からチェックをして頂きたく、お二人の前でプレ発表会をさせて頂きました。(これで安心して当日を迎えられます!q@w@p)

最後に横山さんから12/1にリリースされたGo 1.2の変更点(nilとスライス)について説明を頂きました。最初、スライスのスリーインデックス指定のメリットが見えなかったのですが、少し触ってみて、コピーする範囲を明示的に指定することで安全性やリソースを担保できることを理解しました。

詳細&技術な内容につきましては、横山さんや萩野さんのブログをご覧下さい。


来週は、東京のGo年会に乗っかる感じで(!?)こちらも「今年のGo言語を振り返る」回となる予定です!

[2013.12.14] 横山さんと萩野さんのブログへのリンクを追加しました。

2013年12月4日水曜日

Golang Cafe #6

12/1(日)に開催された「Golang Cafe #6」に参加してきました。
# q@w@p この日はGo 1.2のリリース日!

会場には +Takashi Yokoyama さん、+Takanobu Hagino さん、私の3名が、タイムライン上には +Yasutaka Kawamoto さんが参加されました。

ちなみに「Golang Cafe」はGDG中国マネージャーの横山さんが主催者のため、ハッシュタグは「#gdgchugoku」を使用しています。

今回はtext/templateパッケージについて学習しました。テンプレートにはhtml/templateパッケージもありますが、今回はtextのみを扱いました。

以下、今回の資料(ソース)の取得手順です。

(1) カレントディレクトリーを移動。

$ cd $GOPATH/src

(2) 横山さんのGitHubから資料(ソース)を取得。


(3) golangcafe ディレクトリーに移動。

$ cd golangcafe

(4) ローカルのブランチ一覧を確認。

$ git branch
* master

(5) 今回のブランチをチェックアウト。

$ git checkout -b cafe_#6 origin/cafe_#6
Branch cafe_#6 set up to track remote branch cafe_#6 from origin.
Switched to a new branch 'cafe_#6'

(6) ローカルのブランチ一覧を再度確認。

$ git branch
* cafe_#6
  master

(7) 今回のディレクトリーに移動した後、内容を確認。

$ cd sample.com/template/
$ ls
main.go    template_2 template_4 template_6
template_1 template_3 template_5 template_7

上記のtemplate_1からtemplate_7の順に、横山さんの解説を聞きながらソースや動作の確認を行いました。

外部ファイルとしてテンプレートを用意して読み込んだ後、データを設定して出力するところまで行くと「テンプレートを使っているなぁ」という実感が湧いてきました。

あと、個人的には"{{.Name}}"の記述はAngularJSで見ていたので、違和感はありませんでした。

横山さんはGoをソースからコンパイルして使用しており、会の終盤に目の前でインストーラー組(?)より一足お先に1.2へバージョンアップされていたのを見て、少し得した気分になりました(^^)

詳細&技術な内容につきましては、横山さんや萩野さんのブログをご覧下さい。


ちなみに、今回は「ナポリタンライス」でした!
# (カレー)ライス系、Completed!

[2013.12.6] 横山さんと萩野さんのブログへのリンクを追加しました。

2013年11月27日水曜日

Golang Cafe #5

11/24(日)に開催された「Golang Cafe #5」に参加してきました。

参加者は +Takashi Yokoyama さん、+Takanobu Hagino さん、私の3名でした。

今回はosパッケージを見て行くことになりました。個人的にはPythonのosモジュールと似た感じに思えたので、あまり違和感なく見始めることができました。

ファイルに関しては読み込み・作成・削除を、ディレクトリーに関してはカレントの変更・作成・削除を、ソースを記述してgo runコマンドで実行して動作を確認しました。

関連するソースを見ていくと、何れは広大なsyscallパッケージに辿り着く結果に...(^^;)

大したことではないのですが、ソース内の次のコメント文が気になりました。

// +build darwin freebsd linux netbsd openbsd windows

公式サイトではOpenBSD用のバイナリー版インストーラーは見受けられませんが、ソースからコンパイルすればインストールできるであろうことが読み取れました。

あと、東京では12/20(金)にGo年会が開催されるということで、こちらも「12月の何れかの開催日を"Goな1年"を振り返る会にしよう」という話にもなりました。

詳細&技術な内容につきましては、横山さんや萩野さんのブログをご覧下さい。
# 各自でもくもくして、かつ、時間通り(?)に終えたので、いつもより少なめかも...


今回は、Windowsユーザーの萩野さんがsyscall_windows.goのidやownを取得する関数群において、軒並み「return EWINDOWS & -1」攻撃を受けて悶絶されていたのが印象的でした(^^;)
# 横山さんと私はOS Xユーザーです。

ちなみに、今回は「カレー」でした!

[2013.11.29] 萩野さんのブログへのリンクを追加しました。

2013年11月21日木曜日

Golang Cafe #4

11/17(日)に開催された「Golang Cafe #4」に参加してきました。

参加者は +Takashi Yokoyama さん、+Takanobu Hagino さん、私の3名でした。

今回はdatabase/sqlパッケージとlib/pqドライバーを使ってPostgreSQLへのアクセスを試みました。

数あるGoのデータベースドライバーの中からpqが選択されたのは、ピュアGoで地雷も少ないだろうという理由からでした。

私にとって初のPostgreSQLでしたので、brewでインストールしてから参加しました。

$ brew install postgresql

開始早々、今回も簡単に「プチPostgreSQL勉強会」を開催して頂きました。
# すぐに本題のGoに入れず、すみませんm(__)m > メンバー各位

(1) ホームディレクトリー配下に「data」という名前でデータベース情報を格納するディレクトリーを作成。

$ cd
$ mkdir data

(2) PosgreSQLのコマンドパスにカレントディレクトリーを移動。
# 早く本題に入りたかったので、.bashrcなどへの追加作業は後回しに。

$ cd /usr/local/Cellar/postgresql/9.3.1/bin/

(3) データベースクラスターを作成。

$ ./initdb ~/data/

(4) データベースサーバーを起動。

$ ./pg_ctl -D ~/data/ start

(5) 「sampledb」という名前でデータベースを作成。

$ ./createdb sampledb

(6) 「sampledb」データベースが作成されていることを確認。

$ ./psql -l
                              List of databases
   Name    | Owner | Encoding |   Collate   |    Ctype    | Access privileges 
-----------+-------+----------+-------------+-------------+-------------------
 postgres  | usrid | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 | 
 sampledb  | usrid | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 | 

(7) 「sampledb」に接続。

$ ./psql -d sampledb

(8) テーブル定義ファイル「table.sql」を実行してテーブルを作成。

sampledb=# \i $GOPATH/src/golangcafe/sample.com/dbtest/table.sql
CREATE TABLE
CREATE TABLE
INSERT 0 1
INSERT 0 1

pqドライバーは go get コマンドでインストールしました。

$ go get github.com/lib/pq

今回のサンプルも横山さんのGitHubから取得して使用しました。
# お忙しい中、毎回、ありがとうございますm(__)m > 横山さん

$ cd $GOPATH/src
$ git clone https://github.com/tyokoyama/golangcafe

テストファイル「db_test.go」にて、データベース接続のためのユーザー名を書き換えて、

$ vi golangcafe/sample.com/dbtest/db_test.go

 10 func getConnection() (*sql.DB, error) {
 11 //  return sql.Open("postgres", "user=gdgchugoku dbname=sampledb sslmode=verify-full")
 12     return sql.Open("postgres", "user=[ユーザー名] dbname=sampledb sslmode=disable")
 13 }

go test コマンドでテストを実行して、接続を確認しました。

$ go test golangcafe/sample.com/dbtest/db_test.go 
ok   command-line-arguments 0.056s

今回は、横山さんが目指していた本来の姿である「もくもく会」状態となり、途中からツイートもなくなる程に全員がのめり込んでコーディングを行っていました。

個人的には、課題であった insert, update, delete 文の実装までは行えましたが、内容を理解するまでには至らなかったので、公開される他メンバーのブログを拝見しつつ復習させて頂きますm(__)m

今回も(!?)肝心のdatabase/sqlでのデータベースアクセスについては書けておりませんので、詳細&技術な内容につきましては、横山さんや萩野さんのブログをご覧下さい。


ちなみに、今回は「名物ビーフストロガノフ」でした!

[2013.11.24] 萩野さんのブログへのリンクを追加しました。

2013年11月13日水曜日

Golang Cafe #3

11/10(日)に開催された「Golang Cafe #3」に参加してきました。

参加者は +Takashi Yokoyama  さん、+Takanobu Hagino さん、私の3名でした。

今回も横山さんに資料を用意して頂き、Go言語の目玉機能の一つである「GoroutineとChannel」について学びました。

今回の資料はGitHub上に用意されたため、まずは「プチgit勉強会」から始まりました。

(1)  横山さんのGitHubから資料(ソース)を取得。

 $ git clone https://github.com/tyokoyama/golangcafe

(2) カレントを移動。

 $ cd golangcafe/sample.com/goroutines/

(3) タグの一覧を確認。
  # Step7〜Step9は頭文字が大文字なので注意。

 $ git tag
 Step7
 (省略)
 step6

(4) ブランチを「step1」に切り替え。

 $ git checkout step1
 Note: checking out 'step1'.
 (省略)
 HEAD is now at d965486... Golang Cafe 3日目(Step1)

(5) ソースを変更したり実行したり。

 $ vi main.go
 $ go run main.go

(6) ブランチを「step2」に切り替えようとすると、ソースを変更しているためアボート

 $ git checkout step2
 error: Your local changes to the following files would be overwritten by checkout:
 (省略)
 Aborting


(7) 今回は閲覧がメインでコミットはしないので、ソースの変更を破棄してHEADへ。

 $ git reset --hard HEAD
 HEAD is now at d965486 Golang Cafe 3日目(Step1)

(8) ブランチを「step2」に切り替え

 $ git checkout step2
 Previous HEAD position was d965486... Golang Cafe 3日目(Step1)
 HEAD is now at ee7c1f7... Golang Cafe #3 Step2

上記の(4)〜(8)の手順を繰り返してstep1からStep9までのソースを閲覧したり書き換えたりして動作確認しながら進められました。

肝心のGoroutine&Channelについて書いていないが、まぁ、いっか(^^;)

詳細&技術な内容につきましては、横山さんや萩野さんのブログをご覧下さい。


ちなみに、今回は「エッグカレー」でした!

[2013.11.15] 萩野さんのブログへのリンクを追加しました。

2013年11月4日月曜日

Golang Cafe #2

11/3(日)に開催された「Golang Cafe #2」に参加してきました。

今回も参加者は +Takashi Yokoyama さん、+Takanobu Hagino さん、私の3名でした。

主催者の横山さんより「Webアプリ作成で使ったりして実用的」ということで、今回は「encoding/json」パッケージのソースリーディングを行うことになりました。

ウォーミングアップがてら、前回のExsampleの復習を始めましたが、godocコマンドまわりで思った以上にハマり、軽く30分を経過...(^^;)

仕切り直して、言語や文法の解説を交えつつ本題のMarshal関数の読み進めを開始。内部で使用されいる関数を追っていくと「reflect」パッケージのtype.goやvalue.goとを行ったり来たりして、リフレクションを知らないとちょっとツラい状況に。

ソースはコンソールで閲覧していましたが、途中で力尽きて「LiteIDE」に頼らせて頂きました。
# go1.2に対応するといいなぁ...

あとは、クォート文字(シングル「'」、ダブル「"」、バック「`」)の違いについて調べたりもしました。

そうこうしている間に、気が付けば終了時間を30分程オーバー。ソースを読み込むには「力」が必要ですが、いろいろと勉強になります。

クロージングの際、Go言語の特徴について質問があり、「言語レベルで並列処理をサポートしている」という話から、次回はGoroutine/Channelを扱う予定になりました。

詳細&技術な内容につきましては、横山さんや萩野さんのブログをご覧下さい。


ちなみに、今回は「チーズカレー」でした!

[2013.11.08] 萩野さんのブログへのリンクを追加しました。

2013年10月31日木曜日

Golang Cafe #1

10/27(日)に「Go言語をいじり倒す会」として始まった「Golang Cafe #1」に参加してきました!毎週日曜日に珈琲店の一角で約2時間ほど開催される予定です。

記念すべき第1回目の参加者は +Takashi Yokoyama さん、+Takanobu Hagino さん、私の3名でした。

今回は主催者の横山さんが公式サイトの「How to Write Go Code」の内容をベースに作成された資料をもとに「パッケージ」と「テスト(testingパッケージ)」についてハンズオンする形で進められました。

詳しい内容については、参加者がブログなどにまとめてくれています。


個人的に得られた成果は、

  • 書籍で学習していたので、公式サイトに触れるよいキッカケとなった。
  • パッケージについて理解が曖昧だった部分を整理できた。
  • 気になっていたテスト(testingパッケージ)について知ることができた。

でした。

今後どのような展開になるのか楽しみにしつつ、可能な限り参加して行く予定です。

最後は「名物金沢カレー」で締めました!