YAMAGUCHI::weblog

海水パンツとゴーグルで、巨万の富を築きました。カリブの怪物、フリーアルバイター瞳です。

Goが4歳になりました

はじめに

こんにちは、Go界のヒュー・ジャックマンです。今日はGoのリリース4周年となる日です。

今日はリリース記念日ということで、上のエントリをなぞりながら、このすばらしい記念日を祝いましょう!

トレンド

先のエントリには "golang" というキーワードがどれくらい検索されてきたか、グローバルでの検索ボリュームを見ていて、2012年のversion 1.0リリースから急増したことが示されています。では日本国内に限ってはどうだったのかも見てみましょう。

面白いのは日本では各区切りの段階(初公開リリースと1.0のリリース)のタイミングでピークを迎えていて、それ以外は低空飛行をしている、という状況です。しかしながら、2012年3月の1.0リリース以降を見てみると、着実に検索ボリュームを伸ばしているのがわかります。

プロダクション投入

こちらに関しては日本国内においてはまだ表向きにはプロダクション環境でGoを利用しているという話はあまり出てきていません。(もしあればぜひご連絡ください!)

実際半年前の春の段階では「興味があります」というような内容が多かったですが、先日のGo Conference 2013 autumnでは「実際にプロダクションへ投入している」「導入を積極的に検討している」という声がちらほら聞こえ、いよいよ浸透してきたなあという実感を得ました。

半年後にまたGo Conferenceを開催したいな、と思っていますが、その時にはプロダクション環境での事例が1つでも聞けたら嬉しいなあと思います。

コミュニティ

国内のGoコミュニティは最近活発になってきています。

などなど。他にもあれば教えて下さい!

公式ブログのほうでも「Tokyoのコミュニティがあるよ」と紹介されていますが、東京に限らず各地域で勉強会が開催されています。ぜひ参加してみてください!また日本語情報などはGoogle+コミュニティ、Lingrなどで交換されていますので、ぜひ参加してみてください!

おわりに

リリース4周年おめでとうございます!次の4年がどうなっているか楽しみです!

Go Conference 2013 autumnを開催しました #gocon

はじめに

こんにちは、Go界のジャック・ニコルソンです。連休最終日の10/14に日本マイクロソフトさんの品川オフィスをお借りしてGo Conference 2013 autumnを開催してきました。

新幹線を使って参加された方もいて、大変うれしかったです。次回はまた半年後の春頃に開催したいと思っています。GoConでは絶賛発表者を募集しておりますので「何か作った」「突っ込んで調べてみた」という方がいたらご連絡ください。また次回もLTをしようと思うので、こちらはもっと気軽な感じで参加してみてください。

発表者スライド

LT

プレゼン

Gopher in the Cloud」という話をしてきた

クラウドとタイトルに付いていますが、GoをサポートしているPaaSの話と、Build Constraintの話をしてきました。

Go言語はその立ち位置からしてグローバルで見てもインフラ系のエンジニアにすごく人気で、PaaS/IaaSベンダーのエンジニアが多くコミットしているイメージがあります。しかしながら、そういうエンジニアが彼らのインフラ上でGoのアプリケーションを容易に動かせるように、非公式とはいえハックしてくれていて、ほぼ準公式に動作するものとして公開されています。

GoはC++/Javaがカバーしていたミドルウェア系のソフトウェアを書くだけでなく、LL系で実装したAPIやWebサービスを高速化する事例でも使われ始めていて、実際にAndrewのキーノートでも紹介されているように、標準パッケージのみでもある程度のものであればWebアプリケーションを作れるようになっています。まずは多くの人に試してもらいたいとおもったので、プレゼン前半では3rd partyのPaaSをいくつか紹介しています。

後半ではBuild Constraintsという若干応用的な内容を紹介しました。Build Constraintsを用いることで、複数の環境で異なるソースを用いてビルドを行うことが出来、ネイティブコードを吐くGoの柔軟性をさらに高めることが可能となります。 肝心なのはこれがソース内のコメントのみで制御される点で、ビルドファイル無しでビルドができるというGoの設計が反映されています。

Tシャツ販売

@nuki_ponさんがGoConオリジナルTシャツとスタンダードなGopher Tシャツの販売を始めました。コミュニティ発Tシャツ熱い!!GoCon Tシャツは10/21までの1週間限定販売だそうです。

謝辞

会場提供をしてくださったマイクロソフトの藤山さん、ありがとうございました。再度スポンサータイム。

また運営を手伝ってくださったみなさん、ありがとうございました。 > @Jxck_、@tenntenn、@nuki_pon、id:futoase、@es_kap、@ikasamt、@manji0112

感想ブログエントリなど

関連エントリ

引越し備忘録

はじめに

こんにちは、Go界のジェット・リーです。10年間北区に住んできたのですが、新しい場所に住んでみたいという気持ちと、通勤時間を減らしたいという気持ちが強くなったので、勢いで先々月引越をしてみました。その際色々とやることがあって、想定していたよりやることがあったので、今後のために残しておきます。

家を借りたくなったら

家を借りたくなったら

引越し準備 (2013年6月中旬〜7月末)

部屋探し (2013年6月中旬〜7月中旬)

足で稼ぐのは厳しいので部屋探しサイトを活用した。いくつか選択肢があった中で、suumoで検索条件をマイリスト化して、新着物件をメールを受け取るのが一番性にあっていた。 結局知り合った仲介業者から送付されてきた物件も合わせて、間取り図は200枚近くは見た気がする。その中から選んで内見は7件ほどおこない、最終的に2つの候補から現物件を選んだ。

契約 (2013年7月中旬〜7月下旬)

仲介会社、管理会社各々に対して手数料および各種料金の支払いを行った。物件の管理会社がわかっていたため、直接管理会社に掛けあっても良かったが、時間がもったいなかったため仲介業者に交渉や諸項目の確認を任せた。 交渉に関しては家賃が下がったあとの交渉だったため、金額面では特に割引はなかったが、入居日に関してかなり融通を利かせてもらった。これだけでも半月分の家賃は浮いた。

引越し作業 (2013年7月下旬〜8月末)

インフラ系停止・開始連絡

東京電力が運営している「引越れんらく帳」が大変有用。電気・ガス・水道の停止・開始の連絡をウェブ経由で一発でできる。それだけでなく、ここにまとめてあるような諸々の民間サービスに対して連絡を行ったかのチェックリストも作成できるため、まずはここでアカウントを作るのが良い。

引越し業者選定

なんか楽そうだったので「引越し侍」を使ったら、電話がじゃんじゃんかかりまくってきて最悪だった。あと引越し侍の電話オペレータもなんか全然応対ができない感じの人で全然話が噛み合わなかったのでめんどくさかった。二度と使わないし、使うこともおすすめしない。

大手引っ越し業者は、テレアポの人がやたらピッチが高い声色で独特の日本語を使ってるし電話かけるたびに同じことを3回も4回も言わなきゃいけないし、業務中でもガンガン電話かけてくるし、メールでの応対しないっていうし、引越し業界は終わってると思ったし、こんな人件費に引越し費用がかかってると思ったら頭にきた。TVCM流す前に業務改善しろ。具体的には「アリさんマークの引越社」「サカイ引越センター」が最も電話連絡が煩わしかった。

そんななかで結局利用した「フクフク引越センター」はまともな対応で、メールでの応対もしてくれ、値段も良心的だったので良かった。

荷造り (2013年7月下旬〜8月中旬)

契約が決まるまでは何もしたくなかったので、逆に契約が決まってからはバタバタしてしまった。結局次のような量になった。

  • 大箱6個
  • 中箱3個
  • 小箱5個
  • 1.5Lペットボトル半ダース用箱5個
  • 衣装ケース6つ
  • 140Lバッグ1つ
  • ギター1本
  • ベース1本
  • ベースアンプ1個
  • デスクトップマシン3つ
  • こたつ
  • 姿見
  • シングルベッドフレーム+マットレス
  • 掛け布団、毛布、ブランケット、枕
  • アーロンチェア1脚
  • 24inchモニタ、19inchモニタ各1つ
  • 自転車1台

粗大ごみ廃棄 (2013年8月上旬)

自分の自治体では粗大ごみを捨てる場合は事前に廃棄日の予約と、廃棄物に応じた粗大ごみチケットを購入しておかなければならなかった。

荷解き (2013年8月中旬〜8月末)

引っ越し当日にダンボールは8割方片付けてしまったし、ベッドも棚も組み上げてしまったので特に問題はなかった。

引越し事後処理

転居元清掃 (2013年8月中旬)

転居元が転居先からそこまで遠くないため(電車で30分程度)、転居先への荷物搬入完了後に転居元の清掃を行った。 基本は掃除機でホコリを吸い取る作業ばかりだったが、床にクッション材として使っていたゴム板のカスがへばりついていたのを取る作業が厄介だった。 歯ブラシとマジックリンで綺麗に落ちた。歯ブラシとても便利。

ゴミが「可燃ごみ」「不燃ごみ」「資源ごみ」それぞれあったので、転居後にも各ゴミを転居元自治体のゴミ収集日に合わせて出さなければいけないのは不便。 ゴミ集積所がある集合住宅であればこういう心配がなくて正直羨ましい。

オフライン手続き

行政

転出届 (2013年8月中旬)

転居先の自治体で転入届を提出するためには、転居元で転出届を出して、転出証明書を受け取る必要がある。 転居元は北区なので、北区の転出証明書を受け取る。

転入届・印鑑登録 (2013年8月中旬)

転出証明書を受け取ったあとに、転居先で転入届を行った。渋谷区はヒカリエに区民サービスセンターがあり、土曜日も半日対応してくれているのでとても助かる。

印鑑登録は転入届を行う際に窓口で申請書類をもらって引き続き行うことが出来る。

転居・転送サービス(2013年7月末)

当面の郵便物が転居先に来るように郵便局に申請する必要がある。最近はネットでも登録ができるらしく便利。自分の場合はオフィスのそばに郵便局があるので、昼休みに提出した。事前に登録できるので、転居の2週間以上前でも申請だけしておいた。

運転免許証住所変更(2013年9月中旬)

なぜかこれだけだらだらと先送りにしてしまった。手続き自体は非常に簡単で、住民票、公共料金の領収書/請求書などで新住所と氏名の記載があるものなどがあれば手続き可能。自分はNTTの料金請求書で変更手続きを行った。時間にして10分程度。

個人

インターネット回線&プロバイダ契約 (2013年8月上旬)

家のインターネット回線はFLETSで、プロバイダがOCNというNTTにおんぶにだっこな感じだが、116に電話するだけで回線の移転手続きが終わったのは大変良かった。ただ転居先がフレッツ光のマンションタイプに入っておらず、ファミリータイプに加入して最悪穴空け工事をする必要があると言われたので、工事当日に確認してもらい穴空け工事が必要になった場合には解約するということで回線移設の連絡をした。

当日は配電盤部分から光回線を引きこもうとしたが、集合住宅の共有部を通さざるを得ない状況となり、大家から認められなかったため、外からエアコンダクト経由で通した。こちらに関しては無駄な心配をすることになるため、契約時に管理会社に「光回線の引き込み可能の確認が取れるまでは契約しない」という条件を盛り込んでも良かったかもしれない。

クレジットカード住所変更届け(2013年9月上旬)

利用しているクレジットカード会社によってまちまちだが、オンラインで変更できるものは非常に楽で助かった。トラップだったのはTカードは、Tサイト、Tカードそのもの、クレジットカード機能それぞれに対して住所変更届を行わなければいけなかったことぐらい。

銀行口座住所変更(2013年9月末)

これも利用している銀行によるが、メガバンクはオンラインで変更できるので非常に楽。少なくとも確認しただけで次の銀行はオンラインで変更可能だった。

ただしシティバンクに関してはウェブでの変更にあたってワンタイムパスワード(OTP)を利用する必要があり、OTP利用開始にあたって郵送される通知書を待つ時間が3営業日ほど必要となる。

保険契約住所変更届け(2013年8月下旬)

契約していた保険会社に住所変更届を行う必要がある。こちらも契約している保険会社によって変わる。自分の場合は電話一本で済ませられたので助かったものの、自分のタイミングで変更できるWebシステムがないのは微妙。 このへんはライフネット生命みたいなオンラインが主の保険会社だと違うのだろう。

会社

住居変更 (2013年8月下旬)

住民税や年金の納付先が変わるので、会社側に伝える必要がある。人事に伝えて完了。

おわりに

振り返ってみると色々とやることがありましたが、こうして作業を洗い出してみると結構並行してできるものも多く、いつになるかわからないけれど、次回の引越しはより一層スムーズに出来そうです。

XPath使うならxmlpathパッケージ

はじめに

こんにちは、Go界の大杉漣です。いま、辻堂で合宿をしています。

xmlpathパッケージ

GoでHTMLをパースしてごにょごにょしたいというときはgoqueryを使うことが多いですが、個人的にはあのコールバック書きまくるスタイルが好きではなく「そこまでjQueryの真似しなくてもいいだろ」と思っていました。

またPythonで割とlxmlを使っていたこともあって、XPathを使うのが好きだったのでGoにも同様のXPathを扱えるパッケージがないかと探してみたらCanonical製のxmlpathというパッケージがありました。

使い方

めちゃくちゃ楽。ドキュメントにあるサンプルだとちょっと実用性がないので、もう少し実用性のある例。

resp, _ := http.Get("http://sample.com/content")
defer resp.Body.Close()

path := xmlpath.MustCompile(`//a[@rel='bookmark']/@href`)
root, _ := xmlpath.ParseHTML(resp.Body) // HTML扱うならParse()ではなくParseHTML()

iter := path.Iter(root)
var links []string
for iter.Next() { // イテレータ回せ
    n := iter.Node()
    links = append(links, n.String())
}
return links

これで sample.com/content のページ内にあるaタグで、rel属性が "bookmark" となっているもののhref属性を全部取得できます。便利。