タグ

2013年5月31日のブックマーク (6件)

  • Go の型は First-class ではない

    Go の型は First-class ではない、ということにゴールデンウィーク最終日に気づき、悶々としています。(何も Go が悪いわけではない) ことの発端は、以下の様な関数を定義したところから始まります。 func getName(x interface{}) string { return reflect.TypeOf(x).Elem().Name() } この関数に、任意の型のポインタをわたすと、型の名前を取得できます。けど、ポインタを渡さなければならないのですね。 var foo *Foo name := getName(foo) foo は使わないのに! 使わないというのはウソですね。けど、ちょっと違うんですよ。まあこれは私がPython 脳だからであって、別にGoが悪いわけじゃない。 何をしたいかと言うとですね、Google App Engine datastore のクエリ

  • Go言語で効率良く文字列を連結する話 #golang - memoメモ

    Go言語での話ですが、他の言語でも似た話があります。 文字列の連結で何気なく+(プラス演算子)を使ってしまうことがありますが、連続する場合は気をつける必要があります。 たとえば以下のコード: func StringBuild_bad() string { str := "" for i := 0; i < 1000; i++ { str += "a" } return str } とした場合、連結するごとに文字列オブジェクトが生成されます。これは、Javaでも同じことです。 次に、bytesパッケージを使ってみます: func StringBuild_good() string { var buffer bytes.Buffer for i := 0; i < 1000; i++ { buffer.WriteString("a") } return buffer.String() } こう

    Go言語で効率良く文字列を連結する話 #golang - memoメモ
  • Dreamweaver歴8年半の僕が3日前にSublime Text 2にしてやったこと |  clear sky source

    これまでかたくなに Dreamweaver を利用していたのですが、CS6 にアップデートしたあたりから動作が重くなり、直近ではもーやってられんとなりましたので重い腰をあげて Sublime Text 2 デビューをはたしました。 これでやっと僕にも春が来るのかなとワクワクしております。 参考にした記事 以下あたりを読みました。 基 Sublime Text 2ってエディタがすごくイイ。Dreamweaverから乗り換えた時の初期設定とか使い方とかをメモ | Mnemoniqs Web Designer Blog Sublime Text2の複数カーソルの使い方 #SublimeText2 – Qiita [キータ] SublimeText2を3ヶ月使ってみて利用を決めたPackageまとめ | 濃紺ピッチャー Emmet系 Sublime Text 2のEmmetでdivの閉じタグにコ

    Dreamweaver歴8年半の僕が3日前にSublime Text 2にしてやったこと |  clear sky source
  • AngularJS + TypeScript でリッチなフォームを作ってみる - パンダのメモ帳

    前回(AngularJS で Hello World)に引き続き AngularJS + TypeScript による簡単なアプリケーションを書いてみました。 今回は AngularJS を使ったフォームの例です。 AngularJS のみで、比較的簡単にリッチなフォームが作成できることがわかるんじゃないかなぁと思います。 まえおき TypeScript で書いてます。 AngularJS のバージョンは2013年2月現在の最新安定版である 1.0.4 を使用します。 自動受け入れテスト(E2E Test)は面倒なので省略しました。 ソースコードについて なお、今回のソースコード一式も GitHub で公開しています。 また、こちらで実際に動作を確認することもできます。 解説 前回解説した内容についてはなるべく割愛します。 form 要素 <form id="signupForm" nam

    AngularJS + TypeScript でリッチなフォームを作ってみる - パンダのメモ帳
  • Go1.1 の Race Detector - Block Rockin’ Codes

    intro 先々週、Go 1.1 がリリースされました。 いくつか新しい機能が入ったのですが、その中の Race Detector というのが面白そうだったので、 軽く調べてみました。 Race Detector この機能は、簡単に言うと「レースコンディションが発生していないか」を調べる機能です。 といわれると、なんだかすごい機能ですね。 そもそもレースコンディションとは、マルチスレッドプログラミングなどで、単一のリソースを複数のスレッドで共有した際に、競合状態が発生して、予期しない結果を生んだりする状態です。 レースコンディションによるバグは、再現生が低かったりするので、一般的にデバッグが難しいとされています。 そうした状態が起こらないように、がっちりロックを取り合ったり、そもそもメモリを共有せずメッセージパッシングするなど、別のパラダイムで情報を共有する方法が取られます。 Go も、以

    Go1.1 の Race Detector - Block Rockin’ Codes
  • Big Sky :: Vimを使ったGo言語開発手法

    先日、Go言語バージョン1.1がリリースされました。安定しているのは勿論、幾つか新機能が追加されましたが、何よりもパフォーマンスチューニングが施された一番嬉しいですね。 Go 1.1 performance improvements | Dave Cheney This is the first in a series of articles analysing the performance improvements in the Go 1.1 relea... http://dave.cheney.net/2013/05/21/go-11-performance-improvements さて今日はVimを使ってGo言語を開発する方法を紹介したいと思います。 VimGo言語を開発するには、Go言語のリポジトリに含まれる misc/vim にランタイムパスを追加します。以下を vimr

    Big Sky :: Vimを使ったGo言語開発手法