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] 横山さんと萩野さんのブログへのリンクを追加しました。