2013年9月30日月曜日

HTML+CSSデザイン|基本原則、これだけ。【HTML5 & CSS3対応版】を読みました。

HTML+CSSデザイン|基本原則、これだけ。【HTML5 & CSS3対応版】
HTML5のクライアント側の技術も知りたかったので読んでみました。

デザインの基礎知識、プランニングの話題が前半出てくるので
個人的に必要だったマークアップとCSSのレイアウトあたりなどの話題が
なかなか出てこないというのが気になりましたが、内容とサンプルコードが
しっかりしていたので、この本は良かったと思います。

マークアップの部分は、コンテンツの違いが説明されていますし、
スタイルの部分はレイアウトや、インターフェイスの話題が大半を占めています。
しかし、アニメーションやデザイン的な話も書かれているので
個人的に知らなかった事が書かれていて、十分でした。

少し、サンプルコードを触りましたが、物足りないので
もう一度触ってしっかり覚えたいと思います。

気になるのは、編集時のチェックが甘いのか、参考資料の番号が
なかったり、間違っていたりと、読みすすめれば分かる程度の
ことですが、ちょっと残念だったかもしれません。

2013年9月29日日曜日

Go言語勉強会に行ってきました。

ぷち勉強会としてGo言語をやるということで、講師を務めてきました。
http://atnd.org/events/43427

ぷち勉強会の様子はhttp://togetter.com/li/570097にまとめられています。

当日の資料:http://goo.gl/lpydda
同日に+Shingo Ishimuraさんが公開した資料http://slid.es/sinmetal/first-golang
東京と、香川で同時開催だったようです。
go wikiとかも紹介されたようです。(私は見たことがなかった…)

今回は「浅く広く」ということで、主に文法について話をしました。
プログラミングのスタイルは人それぞれだと思ったので、
「こう書くべき」とは言わず、「いろいろな書き方がある」という
ことにしました。

ただ、少し内容としては物足りない部分があったかもしれません。
(他の言語でプログラムを書いている人ばかりなので、見ればわかる)

ちょっと、tour of goとか見てたら、全て知っている内容になってしまいましたが
実際、「初心者向け」ってなるとこんな感じだろうなと思ったり思わなかったり。

思ったよりもコードを書かずにGo Playgroundと、読んで理解されていたので
進捗は、70ページぐらいのうち、60ページ弱まで進んだ所で
タイムアップしました。

並列処理のところや、パッケージのことについても話をしたかったのですが、
仕方がないということにします。

次は、並列処理、テスト、パッケージのあたりを中心にしたものがあれば良さそうです。
が、やっぱり実際に何らかのコードを作成した方が良さそうな気もするので
難しいところですね。

Go言語に興味がある人はいるようなので、今後のGDG中国のイベントで取り上げたいと
思っています。

2013年9月8日日曜日

Go言語で構造体のメンバを継承する

久しぶりにGo言語関係のトピックです。たまたまTwitterで質問されていたので試してみました。(私も実は知らなかった)ということで、メモしておきます。

Go言語には継承の考え方はないのですが、構造体に別の構造体のメンバを取り込むことができます。
interfaceでもできることは書いてありますが、構造体に関してはドキュメントに明記がないような気はするけど、以下のリンクあたりに構造体のメンバを使うコード例が書かれています。(※英語なので読むのに時間と体力が必要なので今回は軽めにしておきます。)
http://golang.org/ref/spec#Selectors

ちなみにこの辺りの記述なのかもしれません。
http://golang.org/ref/spec#Composite_literals

サンプルコードです。(リンク先は動作確認ができるようになっています)
http://play.golang.org/p/nNV-jUiygC

package main

import "fmt"

type a struct {
 A int
 B float32
}

type b struct {
 a
 C string
 D bool
}

func main() {
 val := b {C: "abcde", D: true}
 val.A = 1
 val.B = 2.5

 fmt.Printf("b.A = %d\n", val.A)
 fmt.Printf("b.B = %f\n", val.B)
 fmt.Printf("b.C = %s\n", val.C)
 fmt.Printf("b.D = %v\n", val.D)
}



第21回勉強会@岡山を開催しました。


昨日、第21回勉強会@岡山を開催してきました。

私のAndroidのカメラをテーマにしたセッションと、萩野さんが開催している「HTML5を業務アプリで使うための勉強会」で取り上げた内容を紹介するセッションの2つが行われました。

最初は私のセッションでしたが、やっぱり練習不足は否めないものでしたが、参加者の皆さんはいかがだったでしょうか。当日の資料は以下になります。

Androidのカメラを使う(Presentation)
当日ハンズオンで使ったサンプルプロジェクト(事前に練習=完成したもの)
CaptureSample http://goo.gl/v8IWz8
CameraSample http://goo.gl/K8oNlU

CaptureSampleは、外部のカメラアプリに対してIntentを飛ばして、結果を受け取る版
CameraSampleはCamera APIを利用して写真を取ったり、ズームしたり、顔検出したりします。

実際は、プレビュー表示でハマってしまって(資料の抜け+練習不足)残念な事になってしまいました。時間もかなりオーバーしてしまった事もあってHTML5に興味があった方には申し訳ないことをしたかもしれません。

で、当日言った事をいくつか残しておくと、

  • カメラは端末によって動作が違うから、気をつけること。
  • CameraInfoの値をチェックして、ズームや、オートフォーカス等が利用できるかどうかを確認してプログラムが動くようにすること。
    • isZoom = falseの時にはズームは使えない。
  • 某端末は、isZoom = trueだけど、setZoom()したら、例外発生!
いくつか、Togetterまとめにまとめられているようなので、ご興味があればどうぞ。

やっぱり、前回のぷち勉強会とどうように、資料に書いてない部分を補う程度の「練習」が必要でしたが、なかなかその時間が取れず、セッションを担当するのは難しい気もしてたりします。

次回は9/28(土)にまた、香川のぷち勉強会で「Go言語」が扱われるので参加します。