読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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 の続きみたいな話です。 実際のところ void setup() { // put your setup code here, to run once: Serial.begin(19200); while (Serial.available()) { ; } //まずは何も考えずに Serial.println(B0001); //駄目元で型キャストだ! S…

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! 公式配布ではなく、有志がつくったソフトウェアです。 GitHub - mmu…

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を吐く場合は、標準出力に書き出すという技があるようです。 ダウンロードせんともエエのですね……。 実際のところ アウトプットされた結果は ハッシュ値比較や特徴点…

PhantomJsで画面キャプチャ その2:ちゃんとViewportSizeを設定しよう

shuzo-kino.hateblo.jp の続きです。 ある程度縦長だったり横幅によってレイアウトの差が大きいページはちゃんとViewportSizeを設定しましょう 実際のところ var page = require('webpage').create(); page.viewportSize = { width: 1920, height: 1080 }; p…

フリーダイヤルは着信地域の指定が可能

フリーダイヤルは地域の指定が可能です。 公式によると以下のような区分での指定が可能とのこと。 都道府県単位、隣町まで限定といった指定が可能です。 大ブロック 市外局番2ケタまでの指定。 (例えば、04とご指定になりますと、0425、0474など、市外局番…

awkのgsub/sub関数でマッチした文字の前後に細工をしたい場合

awk

awkのgsub/sub関数でマッチした文字の前後に細工をしたい場合、 マッチした文字をキャプチャしてくれるのは"&"です。 実際のところ たとえばgsubなら $ echo 12345678 | awk 'gsub(/[0-9][0-9]/, "&-")' 12-34-56-78- $ echo abc | awk ' gsub(/あ*/, " // &…

AWKの関数呼び出しは入れ子構造にできる

awk

AWKの関数呼び出しはrubyのように入れ子にできます。 実際のところ shuzo-kino.hateblo.jp でやった日付呼び出しの例を考えてみます。これが $ awk 'BEGIN {the_time = strftime("%y%m%d%H%M%S"); print the_time}'こうなります $ awk "BEGIN {print strftim…

nlコマンドで行番号を出さず、擬似的にインデントをつける

shuzo-kino.hateblo.jp では、nlコマンドで行数を出す方法を紹介しました。更に、catで行数を出す方法なんてのも。 shuzo-kino.hateblo.jpで、若干特殊な方法としてnlコマンドで「行を出さない」。 見方を変えればインデントをつけてるような感じですね。 実…

catコマンドの行数表示オプション

考えてみりゃ当然なのですが……catにも行数を表示するオプションがあります。 実際のところ そのままズバリ"-n"です。 $ cat -n tmp.txt 1 France 12 "UTC−10:00 — most of French Polynesia 2 UTC−09:30 — Marquesas Islands 3 UTC−09:00 — Gambier Islands …

【読書メモ】小さな会社の稼ぐ技術

小さな会社の稼ぐ技術作者: 栢野克己,竹田陽一,豊倉義晴(取材・執筆協力)出版社/メーカー: 日経BP社発売日: 2016/12/07メディア: 単行本この商品を含むブログ (2件) を見るいわゆる「ランチェスター戦略」についての本です。 Amazonの文章紹介から抜粋すると…

【読書メモ】知識ゼロからの行動経済学入門

知識ゼロからの行動経済学入門作者: 川西諭出版社/メーカー: 幻冬舎発売日: 2016/05/25メディア: 単行本この商品を含むブログを見る行動経済学とはナンノコッチャ? という話ですが…… 要は人間の選択*1について研究する分野で、 経済の名をもっておきながら…

PhantomJsでCORSを有効にする

shuzo-kino.hateblo.jp などでも活躍()してくれたCORS(Cross-Origin Resource Sharing)の機能を使うオプションです。 CORSについてはこちら参照。 公式では cross-domain XHR とかなってますが、一応CORSの事のようです。 実際のところ デフォではtrue、つ…

phantomJsの画像読み込み切り替えオプション

phantomJsの画像読み込み切り替えオプション 実際のところ "load-images"を使います。 どこぞの莫迦のようにファイルの後にオプションを入れないようにしてくださいNE☆。 画像なし $ phantomjs --load-images=false phantomtest.js 画像あり $ phantomjs --l…

PhantomJsで画面キャプチャ

PhantomJsで画面キャプチャする方法です。 ……スクショで証拠残さないといけない場合にも有効ですね!(血走った目 実際のところ example.orgの画面キャプチャを取る場合、 以下のようなスクリプトでいけます var page = require('webpage').create(); page.o…

PhantomJSをnpm経由でOS Xに導入する

今日はヘッドレスなWebkit、PhantomJSをnpm経由でOS Xに導入する方法です。 ブラウザテストフレームワークに使われてたり、サイトのキャプチャなんかに使われてたりします。導入方法は公式からバイナリとってきたり、 あるいはbrewでやる方法もあるそうです…

【読書メモ】エイリアンの地球ライフ―おとなの高機能自閉症/アスペルガー症候群

エイリアンの地球ライフ―おとなの高機能自閉症/アスペルガー症候群作者: 泉流星出版社/メーカー: 新潮社発売日: 2008/01メディア: 単行本購入: 1人 クリック: 2回この商品を含むブログ (8件) を見るのっけから、以下のような文言が ようこそ、あなたは異星人…

語学をやるときにはフレーズ集やエッセイから入ったほうが士気が維持できるかも? ……という私見

今日はチラシの裏めいたお話です。ベトナムに行った時感じた事ですが、 コミュニケーションを目的とした語学学習で文法をメインにすると士気が維持できません。そういう時はフレーズ集やエッセイのような、明日から使えるマメ知識系から入り、 その後文法に…

東京都中小企業振興公社の「総合相談」サービスがスゴイ

www.tokyo-kosha.or.jp 中小企業診断士……は何となく想像がつきますが、なんと弁護士*1やデザイナーの方まで在籍。 相談料は、都内の事業者向けとはいえ……無料。 『英国のEU離脱問題に関する「経営特別相談窓口」』など、 その時々のタイムリーな専門窓口も…

Go標準のJSONパッケージ

Go言語には標準でencoding/jsonというパッケージが付属しています。 以前の記事では、typeから変数を作って無理くりパースする形でやってましたが……。 shuzo-kino.hateblo.jp 実際のところ いまかいてます 参考もと JSONのパース/生成 - はじめてのGo言語

nanoで今いる行をデフォルト表示させる

nanoで今いる行をデフォルト表示させるには、"-c"オプションを使います。 実際のところ $ nano -c hoge.txt [ line 7/46 (15%), col 1/1 (100%), char 65/708 (9%) ] 参考もと man nano

go-echoでGPSな固定JSONを返す

go-echoでGPSな固定JSONを返すサンプルです 実際のところ package main import ( "net/http" "github.com/labstack/echo" ) // 型の指定 type ( place struct { LAT float32 `json:"lat"` LON float32 `json:"Lon"` NAME string `json:"name"` } ) // 変数の…

go用の軽量WEB鯖echo

go用の軽量WEB鯖echo 実際のところ 導入はパッケージ $ go get -u github.com/labstack/echo最小構成はこんな感じ package main import ( "net/http" "github.com/labstack/echo" ) func main() { e := echo.New() e.GET("/", mainpage) e.Logger.Fatal(e.St…

GO言語を導入する

若干参考もとが古かったようです。 GOROOTはすでに不要です。 詳しくは以下を参照 shuzo-kino.hateblo.jp 実際のところ OS X そのままズバリ、パッケージで導入しましょう。 この辺りは大分熟れたようで、昔のようにGOPATHがどうのこうのと心配しなくて良い…

【読書メモ】1000円ゲーム  5分で人生が変わる「伝説の営業法」

1000円ゲーム ?5分で人生が変わる「伝説の営業法」作者: 江上治出版社/メーカー: 経済界発売日: 2014/09/25メディア: 単行本(ソフトカバー)この商品を含むブログを見る黄色い表紙が目につく営業論の本です。 文字密度、イラストの量からして何だか小学校高…

【読書メモ】新人デザイナーのための Webデザインを基礎から学べる本

新人デザイナーのための Webデザインを基礎から学べる本作者: 瀧上園枝出版社/メーカー: ソシム発売日: 2014/12/25メディア: 単行本この商品を含むブログ (1件) を見るタイトル通り、Webデザインについての入門書です。 章の最初に分野の基礎知識が入り、 そ…

同一生成元ポリシー(Same-Origin Policy)のお節介を防止するSafariブラウザの機能

同一生成元ポリシー(Same-Origin Policy)は、自己が置かれた鯖以外からのデータ取得を制限するアレです。 これにより、不正なアクセスからデータやブラウザを守る事ができます。 ところがギッチョン、自分のアプリを作る際にこれが余計でサンプル動作の検証…

pythonのglobal変数を関数内で利用するときはちゃんと宣言する

ちょっと横着して、グローバル変数を使おうとしたところ UnboundLocalError: local variable 'count' referenced before assignmentなるエラーが。調べてみると、Python公式に以下のような記述が Python では、関数内で参照されるだけの変数は暗黙的にグロー…

leaflet-realtimeで「ピザ配達状況」めいたマップアプリをつくる

leaflet-realtimeは@perliedman氏が提供するleafletJsのサードパーティ拡張です。 サーバ上に置いたGeoJSONを呼び出して、「ピザ配達状況」めいたマップアプリをつくる事ができます。 実際のところ とりあえず、公式から持ってきましょう。 $ git clone http…

leaflet.jsでGeoJSONデータを扱う

shuzo-kino.hateblo.jp の続き。 ホントはコレをやりたかったのです。GeoJSONは地理データを記述する用JSON派生です。 特定の地点に吹き出し書いたり、国土領域をポリゴン埋めしたり、旅のルートを線で書いたりできます。 また、Githubに"geo.json"でUPする…

leaflet.jsで自前の画像ファイルを地図データとして扱う(執筆中)

便利なMAPライブラリ leaflet.jsには、既存の画像を使ったアミューズメント施設用の独自マップ、あるいは架空のゲームマップなんというのも実装可能です。例えば、以前紹介したオープンソースなスペースオペラゲームのマップを使った例は以下の通り。 CRS.Si…

国税庁法人番号公表サイト

相手企業の情報を照会したいが、部分的にしか情報が分からない……なんてこと、ありますよね。 たとえば、埼玉県にある株式会社なんちゃらシステム……あれ? 前株だっけ? そもそもなんちゃらって??? そんな時は、国税庁法人番号公表サイトが使えます。 http…

【イベントログ】第40回 東京五美術大学連合卒業・修了制作展/新構造・東京展に行って来ました

最近、展示会にもイベントにも行ってなくて精神が腐りきってる気がして来たので、ガラにもなく美術館に行って来ました。あまりにもクリエイティブ成分が不足してきたので美大の合同卒制発表会に来てみた件 pic.twitter.com/wRuq3LrJ8A— 木野修造 (@shuzo_kin…