Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

2017-04-01から1ヶ月間の記事一覧

【読書メモ】老いる家 崩れる街 住宅過剰社会の末路

老いる家 崩れる街 住宅過剰社会の末路 (講談社現代新書)作者: 野澤千絵出版社/メーカー: 講談社発売日: 2016/11/16メディア: 新書この商品を含むブログ (5件) を見る最近、空き家問題に興味が出てきたので読んでみました。駅に近い程、空き家戸建てが目立つ…

自前のパッケージを読み込む

自前のパッケージを読み込む方法です。 実際のところ 以下のようなディレクトリ構造だったとします。 完全ローカルでも、一応github用ディレクトリの中に作ってます。 何が有るかわからんしね…… $ cd $GOPATH/src/github.com/shuzo_kino/mysamples $ tree -L…

1000日連続更新やったー

前回は年末納品で力尽きて記録が止まりましたが…… 多めに記事ストックを作っておく等々の対処で何とか継続できました……そろそろ、質の方を上げたいですね(白目

io/ioutilパッケージを使ってパイプで繋いだ標準出力から文字列を受け取る

io/ioutilパッケージを使ってパイプで繋いだ標準出力から文字列を受け取る 実際のところ package main import ( "fmt" "io/ioutil" "os" ) func main() { stat, _ := os.Stdin.Stat() if (stat.Mode() & os.ModeCharDevice) == 0 { fmt.Println("data is bei…

GO言語のメソッドについて

GO言語のメッソドは一見関数に似てますが……関数名の前に型を指定するトコがあります。 これにより、特定の型等々に付随する処理を書き下す事が可能です。 実際のところ package main import "fmt" type MyType struct { num int body []byte } func (mt *MyT…

GO言語の構造体型を初期化する方法

Go言語の構造体型は変数を意味合いレベルでカタマリにできるもので……なんだかクラスに似ています。 今回はこれの初期化方法について。 実際のところ MyTypeというint型と[]byte型をもつ構造体を定義し、 一個毎にデータを突っ込む方法 まとめて入れる方法(…

for文におけるrange節について

日本語や中国語も含めたマルチバイト文字もよろしくパースしてくれます UTF-8でサポートしてる必要があるので、ヒエログリフとかは駄目です。 package main import "fmt" func main() { for pos, char := range "これ不错one까요?" { fmt.Printf("character …

deferでリソースの閉じ忘れを防止する

前回の事例でもちょっと触れたdeferについて。 これは例外の地獄ネストを回避するための素敵な機能です。 実際のところ 一時ファイルを使う場合の事例は以下の通り。 import ( "io/ioutil" ) func Something () { file, _ := ioutil.TempFile(os.TempDir(), …

【読書メモ】セルフビルドの世界: 家やまちは自分で作る

セルフビルドの世界: 家やまちは自分で作る (ちくま文庫)作者: 石山修武,中里和人出版社/メーカー: 筑摩書房発売日: 2017/04/06メディア: 文庫この商品を含むブログを見るタイトルにある「セルフビルド」という言葉を知りませんでした。 オビの文言から建築…

io.ioutilを使って一時ファイルをつくる

ツールを作る際、何かと必要な一時ファイル。 GO言語では、io.ioutilを使ってつくる事ができます。 実際のところ 一時ファイルを作る場合はioutil.TempFileを使います ioutil - The Go Programming Language公式サンプルを元に、一通りの挙動をするスクリプ…

if構文の中だけで通用する変数を別途設定できる

GO言語ではif文の中だけで通用する変数を別途設定できます。 実際のところ 公式サンプルから。 指定数分、乗数を掛けるが最後の引数を突破した場合はそれに従う……みたいな ある種フィルターめいた関数は以下の通り。 package main import ( "fmt" "math" ) f…

Bash環境において"$_"は最後にマッチした変数を拾う

Bash環境において"$_"は最後にマッチした変数を拾います。 実際のところ 以下のようなコマンドを叩いたとします。 $ mv ~/tmp/hoge /Users/shuzo_kino/dev/src/ $ cd $_この時、"$_"がマッチするのはどっちでしょうか? ……正解は後者。 これならmvした後に移…

testingパッケージの"Example~"記法だと実行例をドキュメントに記載できる

testingパッケージの"Example~"記法だと実行例をドキュメントに記載できます。 ユーザが頻繁に利用するタイプの関数なら、付けておくと親切で良いかと思います。 実際のところ 実行対象の内容は前回のと同じです。 func ExampleSomething() { fmt.Println(So…

Golangでテストを始める

GoLangでテストをやるには"testing"パッケージをつかいます。 公式では、余計な外部パッケージを使わずデフォのものを推奨しているので、それに従っておきます。 実際のところ デフォでは"$GOPATH/src"以下にあるフォルダを対象に実行されます。 今回は"hoge…

GoLang用REPL「gore」

GoLangにはサードパーティ提供のREPL「gore」があります。 毎回毎回コンパイルしなくとも動作検証ができます。 実際のところ 導入 $ go get -u github.com/motemen/gore公式で周辺ツールの導入も勧められているので、 ついでに導入しておきます。 $ go get -…

Scrapboxでアイディアや情報を相互に連携させる

Scrapboxはアイディアやメモ書きを溜めておくのに丁度いいツールです。 Google Keepなんかがあるみたいです。登録はよくある他サービスと連携できるタイプ。 私は仕事で使うことになったので、G-Suiteのを連携しときました。 scrapbox.io 登録すると、こんな…

"-bash: bash: command not found"なんて出てきたら、PATH変数がおかしな事になっている

業界ン年目でこんな初歩中の初歩に引っかかるとは思いませんでした。 再起動かけて一切のコマンドを読まなくなったら、PATH変数がやられてます。 参考もと 環境変数を弄って再起動をかけたところ "-bash: bash: command not found" なんてエラーが。 lsやnan…

【読書メモ】みんなのGO言語

みんなのGo言語【現場で使える実践テクニック】作者: 松木雅幸,mattn,藤原俊一郎,中島大一,牧大輔,鈴木健太,稲葉貴洋出版社/メーカー: 技術評論社発売日: 2016/09/09メディア: 大型本この商品を含むブログ (3件) を見るGO界隈で評判だったので買ってみました…

GoLangの環境変数を一覧する

shuzo-kino.hateblo.jp の続きみたいな記事です。 すでにGOROOTは不要になっていたようです。そういったGO言語の環境変数まわりを一覧するには"$ go env"を実行してください。 実際のところ ちょっと誤爆してinstallコマンドを空で叩いたところ以下のような…

Arduinoでゼロ埋めや右詰めした文字列を関数に渡したいなら、諦めてsprintf

shuzo-kino.hateblo.jp の続きみたいな話です。sprintfはCの標準ライブラリにあるデータ列を生成する関数です。 こいつを使って文字列をつくり、それをシリアルに繋ぐ方向で実装します。 実際のところ void setup() { // put your setup code here, to run o…

OSパッケージでディレクトリを弄る

OSパッケージでディレクトリを弄る方法です。 実際のところ 初期状態確認=>1234というディレクトリをつくる=>1234ディレクトリを消す という挙動は以下の通り package main import ( "fmt" "os" "os/exec" ) func main() { var result []byte result, _ = sh…

GO言語でシェルコマンドを実行する

GO言語でシェルコマンドを実行する方法です。 実際のところ この例ではコマンドを実行し結果を得ています。 結果は"[]byte"型で返ってくるため、必要おうじてstring型にキャストしてやる必要があります。 package main import ( "fmt" "log" "os/exec" ) fun…

exprやbcを使わずシェル上で計算する

シェル上で計算刷る場合、exprやbcなんてのがありますが……今回はそれらを使わずシェル上で計算する方法です。 参考もと 変数展開を使うと、内部で式を書いておけば評価されます $ echo $((1 + 2)) 3 16進数の計算も(結果は10進数) $ echo $((0x01 + 0x12))…

シェル変数と初期値

変数を設定して、それをprintfで出すだけなら、以下のようなスクリプトで事足りるでしょう。 $ VAR="hoge" $ printf "Value::%s\n" ${VAR} Value::hogeさて、ここで問題。 変数が空の場合一々判定して別のprintf文を作る必要があるのでしょうか? 答えはNO。…

sedで不要な行を削除する その3:行頭や末尾

shuzo-kino.hateblo.jp と shuzo-kino.hateblo.jp の続き。 $ cat data.csv hello,2,a yeah,0,b foo,1,c bar,3,asedで末尾行だけ消すには"$"です。 $ cat data.csv | sed '$d' hello,2,a yeah,0,b foo,1,c一行目はそのまんま1です。 $ cat data.csv | sed '1…

ArduinoでTDDをしたい際の選択肢

shuzo-kino.hateblo.jp でC言語のTDDという奴を試しました。 ArduinoはC++の方言なので、厳密には適用できないケースは結構あります。 最近は状況が大分マシになったようで、いくつか案がでています。 arduinounit 専用テスト環境arduinounit! 公式配布では…

sortコマンドの"-k"オプションで降順にしたり数値順にしたりする

sortコマンドの"-k"オプションではソート方法について指定ができます。 加えて、数珠繋ぎにできるので複雑なソートも可能です。 実際のところ 3番めのキーで昇順にソート、次いで1番目のキーを降順にソートという処理は以下の通り。 $ sort -t , -k 3 -k 1…

sortコマンドでcsvファイル……やtsv的な謎独自ファイルの処理を行なう

実際のところ こんなデータがあったとします。 $ cat data.csv hello,2,ab yeah,0,ab foo,1,ab bar,3,cd区切り文字を","、三番目のカラムをソートする場合 $ sort -t , -k 3 data.csv foo,1,ab hello,2,ab yeah,0,ab bar,3,cd区切り文字を","、一番目のカラ…

OpenSSLでmd5のハッシュ値を出す

OpenSSLでmd5のハッシュ値を出す方法です。 苦労してダウンロードしたUbuntuのイメージファイルが破損してないか調べたり、 テストツールで出した画像を比較したりする時に使えます。 実際のところ 同じテストファイルから、それぞれ別のタイミングで生成し…

PhantomJsで画像やらPDFやらがレンダリングされる場合

PhantomJsにて、バックヤードが自動生成でバイナリファイルを吐く場合 ……たとえば画像やPDFを吐く場合は、標準出力に書き出すという技があるようです。 ダウンロードせんともエエのですね……。 実際のところ アウトプットされた結果は ハッシュ値比較や特徴点…