memoメモ

最近はGo言語関連で。φ(..)メモメモ

golintをemacsで使う

golintはGo言語用のlintプログラムです。 プロジェクトはこちら: https://github.com/golang/lint 導入は: $ go get -u github.com/golang/lint/golint で、基本的な使い方は: $ golint main.go などとすれば解析結果がでてきます。 vimはmattnさん(@mattn…

A Tour of Go日本語版を更新しました

本家の更新に追従してA Tour of Go を更新しました。 主な変更は以下のとおりです: Go Playgroundに関するスライドを追加 (スライド#3) スライド#4へ乱数生成についての注意書きを追加 スライド#43の説明文を追加 あまり大きな変更はありませんが、スライ…

Go tipでなにが行われてる?(2013-08-30)

What's happening in Go tip (2013-08-30)よりメモ。 前回のメモはこちら: http://atotto.hatenadiary.jp/entry/2013/08/24/214941 (以下、間違い/勘違いがあるかもしれないので注意してね) What's happening in Go tip (2013-08-30) より安全に GIF画像の…

Redmineのチケットにテンプレートを入れる(プラグイン不要) #redmine #redminejp

Redmineのチケットにテンプレートを埋め込みます。 ここで紹介する方法はプラグイン不要ですので、簡単に運用できるとおもいます。 結論からいうと、チケット作成ページのURLにクエリパラメータ(クエリ文字列)を付け足します。 では、さっそく試してみまし…

Go tipでなにが行われてる?(2013-08-23)

What's happening in Go tip (2013-08-23)よりメモ。 前回のメモはこちら:http://atotto.hatenadiary.jp/entry/2013/08/19/083830 (以下、間違い/勘違いがあるかもしれないので注意してね) What's happening in Go tip (2013-08-23) スライスの新しいシンタ…

コンパイル時に特別な文字列情報を入れるには #golang

Go言語の話題です。 コンパイル時にフラグを与えることで、ソースコード上の特定の文字列情報を書き換えることができます。 これを応用すれば、例えば、バージョンやリビジョン番号などの特別な文字列情報を後で指定するといった使い方ができます。 以下、例…

Go言語の環境をソースからビルドする #golangjp

Go1がリリースされて以来、各環境のGoコンパイラは Downloads - go - The Go Programming Language - Google Project Hosting で簡単にダウンロードできるようになりました。 またLinuxやOSXでも、パッケージマネージャでGoコンパイル環境を整えることもでき…

Go言語ベストプラクティス12コ

Twelve Go Best Practices よりメモ。 各行の # はスライドの番号 コード エラーを先に処理して、ネストするのを避ける #4 可能なら同じことの繰り返しを避ける #5 Type switchを特別なケースのために使う #6 Type switchには変数宣言を使う #7 Function ada…

Go tipでなにが行われてる?(2013-08-15)

What's happening in Go tip (2013-08-15)よりメモ ちなみに、tip とは Goのリポジトリ https://code.google.com/p/go/ の開発中のバージョンを指します。 $ hg update tip で切り替えることができます。 (以下、間違い/勘違いがあるかもしれないので注意し…

ThinkPad Bluetooth ワイヤレス・トラックポイント・キーボード をMacで使うメモ

1か月程前に「 ThinkPad Bluetooth ワイヤレス・トラックポイント・キーボード 」を購入しました。 Lenovoのサイトで購入しましたが、最近はAmazonでも購入できるようです。 トラックポイントがキーボードに付いているので、テレビに接続しているMacを扱う…

Redmineでリポジトリのファイルを読めるようにする

Redmineを使っていると、たまにリポジトリでファイルを読みたくなります。 しかーし、Redmineのリポジトリで「表示」をクリックするとダウンロードされてしまうことがあります。 例をあげると、Sphinxの*.rstファイルや、Cucumberの*.featureファイルなどで…

glogパッケージをちょっと使ってみる #golang

つい最近アナウンスされたglogパッケージを使ってみました。glogは簡単に言うとログをとるためのパッケージです。実行時の引数でログレベルを指定したり、指定したモジュールのログだけを出力したりと、簡単に使うことができます。 glogパッケージで利用でき…

『JUnit実践入門』写経・実践会 in 横浜 #6 (特別編) の準備。

ありがたいことに、『JUnit実践入門』写経・実践会 in 横浜 #6 (特別編) - connpass へ参加できるので、気合入れて準備します。 @shinyaa31 さんの告知 http://d.hatena.ne.jp/absj31/20130506/1367848297 から ハンズオン資料をダウンロード。 基本的にREAD…

vagrantをつかってみる

入門Chef Solo - Infrastructure as Code でchefを試すためにvarigantを準備していたので、やってみる。 前提: VirtualBoxがインストール済み 試した環境: OSX 10.8.3 VirtualBox Version 4.2.12 ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darw…

Go Conference 2013 spring のリンクまとめ

今更だけどリンクだけまとめとく http://connpass.com/event/1906/ @tenntenn さん Go言語で作るWebアプリ @najeira さん Go on AppEngine @Jxck_ さん Go の並行処理 blog: http://d.hatena.ne.jp/Jxck/20130414/1365960707 @methane さん GOMAXPROCS の基…

Go言語で効率良く文字列を連結する話 #golang

Go言語での話ですが、他の言語でも似た話があります。 文字列の連結で何気なく+(プラス演算子)を使ってしまうことがありますが、連続する場合は気をつける必要があります。 たとえば以下のコード: func StringBuild_bad() string { str := "" for i := 0; i …

JettyのwebsocketクライアントからGo言語のwebsocketサーバへ接続する #golang

JettyのwebsocketとGo言語のwebsocketは共にversion 13です*1(2013/03/02現在) というわけで、Java(Jetty)からGoへ接続してみましょう! Jettyは jetty-websocket-8.1.9.v20130131 を利用しました。 Jettyのwebsocketクライアントは WebSocketClientのドキ…

nginx で php-cgi がなぜか停止するという話

php

Windows + nginx + php-cgi という不思議な環境を使っています。 php-cgiはFastCGIで動かしています。 このところ不意に php-cgi が落ちるという現象で悩んでました。 結論から言うと、これは正常な動作で、phpの不具合ではないです。 パフォーマンス測定を…

デブサミ2013に参加してきました #devsumi

2/14-15の2日間、デブサミへ参加してきました。恥ずかしながらデブサミは今回がはじめてです。昨年はGoogle Developer Dayがなく、寂しく感じていたため飛びつきました。一部の簡単なメモですが、貼り付けます。 なお、デブサミ全体での資料まとめはここが…

Go Tour日本語版を更新しました #golang

本家に合わせてGo Tourを更新しました。 目に見える所での主な変更点: 各スライドが固有のタイトルになるように修正 スライドの配置を自然になるように変更(これまでと順序が変わっています) 日本語訳の修正(変な日本語多すぎ。。スイマセン。) 「Go言…

JenkinsでEclipse CDT (C++) プロジェクトをビルドする

本エントリーは、Jenkins第7回Jenkins勉強会で紹介した内容の補足資料です。 JenkinsでEclipse CDT (C++) をビルドする EclipseでC++を書いている人はおそらくCDT環境を使っていると思います。 この環境でJenkins様にお願いして自動ビルドする方法をメモしと…

Go言語のパッケージのテストでプライベートな関数や変数を呼び出すには

Go言語でパッケージのテストを書く時に、プライベートな関数(隠蔽した関数)や定数を呼び出したいことがたまにあります。 これを実現する方法をメモ。 プライベートって? パッケージの内容は以下のような構成になっているとします: eg.go eg_test.go ここ…

はてなブログの markdown 形式で ソースコードハイライト

以前はできなかったのですが、はてなブログでソースコードのシンタックスハイライトができるようになってました。いつから?? ```go package main import "fmt" func main() { fmt.Println("Hello, 世界") } ``` とすると: package main import "fmt" func…

go get でプロキシを突破するには #golang

Go言語では、 go get コマンドで外部パッケージや外部コマンドを簡単に取得でき、とても便利です。 ここでは、 go get コマンドでプロキシを突破する方法についてメモしておきます。 解決策 環境変数の http_proxy と https_proxy を設定します。 くわしく …

Travis-CI で Go言語 のプロジェクトを自動ビルド&テストする

Travis-CIでGo言語のプロジェクトを自動ビルド&テストするサンプルを作ってみました: https://github.com/atotto/travisci-golang-example Travis-CI側の設定は、 .travis.yml : language: go script: - go test -v として、テストを実行するようにしてい…

Go言語でJSON(Marshal)エンコード

試す。 package main import ( "encoding/json" "fmt" ) type Message struct { Name string Body string Time int64 } func main() { m := Message{"Alice", "Hello", 1294706395881547000} b, _ := json.Marshal(m) fmt.Println(string(b)) } 結果: http:…

Go言語でLinux ARM用の実行ファイルをビルドする

以前、Go言語でクロスコンパイルする方法を書いたけれど、ARM用にビルドする手順をまとめとく。 前提として、Go言語をソースコードからコンパイルできる環境が必要です。 ここが参考になります: http://golang.org/doc/install/source GoのLinux ARMコンパ…

Raspberry Pi インストール手順のメモ

Raspberry Pi インストール手順をよく忘れるので自分用メモ。 OSX Mountain Lionにて。 wheezy をダウンロード ここから: http://www.raspberrypi.org/downloads イメージをSDカードへ焼く 手順: $ cd ~/Downloads $ shasum 2012-10-28-wheezy-raspbian.zi…

Go言語用QuickLookプラグイン QuickGo を作ってみた #golang

MacのQuickLook用プラグインです。 もしかすると既にあるかもしれませんが、練習に作ってみました。 ダウンロードはこちらから: https://github.com/atotto/QuickGo 簡単なシンタックスハイライトも付けてみました。githubのREADMEにも書きましたが、style.…

Goフレーズブックと原著のサイズ比較 #golang

左から 「プログラミング言語Goフレーズブック」 「The Go Programming Language Phrasebook 」(原著) 「iPhone 4S」 原著小さいっ Goフレーズブックについてはこちらの記事参照どぞ。