You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
jqはとても便利なコマンドです。 JSONを返すAPIを実装するときや、SaaSのAPIから特定の情報を抜き出してシェル変数に代入するときなど、web開発や運用には欠かせないツールとなっています。 しかし、私にとってjqのクエリを一発で書くのは容易ではなく、思い通りの出力が得られないことがよくありました。 難しいエラーメッセージに悩まされて、jqで書くのを諦めて別の言語で書き直すこともありました。 jqの十八番と思える場面で使いこなせないのは、なかなか悔しいものがあります。 ツールを使うのが難しいなら、同じものを作ってしまえばよいのです。 jqの全ての機能を実装する jqを言語としてきちんと書けるようになる jqを完全に理解する jqの全ての機能を自分で実装してしまえば、jqがどういうものか、クエリがどのように処理されるのか、詳しくなれるはずです。 jqを得意な言語と言えるようになって、ク
概要 LazyDockerは、DockerおよびDocker ComposeをTUIで操作できるツールです。 docker、docker-composeコンテナ環境の状態の表示、ログの表示、コンテナまたはサービスの再起動/削除/再構築などが1つのウインドゥで実行できます。 Githubでソースは公開されておりGoで実装されているようです。 jesseduffield/lazydocker 公開されたばかりですがスター数の伸びがとてもすごいです(7/5現在で7000ほど) 実行環境 macOS Mojave $ docker version Client: Docker Engine - Community Version: 18.09.2 API version: 1.39 Go version: go1.10.8 Git commit: 6247962 Built: Sun Feb 10
« Software Design 2018年7月号「Vim 絶対主義」の執筆に参加しました。 | Main | ボタンを押したら golang の if err... を自動入力 » tensorflow といえば Python と思っておられる方も多いのではないでしょうか。間違いではないのですが、これは初期に作られた Python 向けのバインディングに研究者達が多く食いついた結果に過ぎないと思っています。実際 tensorflow は現在 C言語、C++、Python、Java、Go から利用する事ができ、最近では JavaScript にも移植されています。筆者自身も Go で tensorflow を使ったシステムを構築し、運用保守しています。問題も発生せず機嫌良く動いています。学習の利用部分は GPU のパフォーマンスに依存しますが、それ以外の部分については各言語の実装に依存し
VoltはGo製のVim8用のプラグインマネージャで、あんまりVim scriptを書かなくてもプラグインの管理をすることができます。 以前はdein.vimを使っていたんですが、 Windowsでmsys2だとうまく動いていたのにkaoriya-vimを起動したらどっちでもエラーを吐くようになるとかがあって。 パスの設定とかの問題だとは思うんですけど、家ではMac、会社ではWindowsを使っていて、Windowsのために時間を掛けて調査したくないなーとか考えて移行先を探してました。 パッケージマネージャとして期待する機能は以下。 WindowsでもMacでもちゃんと動く 遅延ロードが使える(大量にプラグインをインストールしてもVimの起動時間が遅くならない) 設定ファイルをgitで管理できる そこで使うことにしたのがVoltです。 まずはインストール リリースページからダウンロードする
生成が重いリソース(や重い処理の実行権)を goroutine 間で共有し使いまわすようなパターンです。よく知られていて名前がついていそうだけど、ぐぐっても分からなかったので書いておく。 コネクションプールに近い感じで、最初にリソースを生成したあと、それらを大事に取り回します。リソースが空いてなかったら goroutine は待つことにする。sync.Pool は「プールにあったら使うけど、なかったら新しく作る」くらいの感じなので、ちょっとスタンスが違う。 チャンネルによる実装は簡単で、以下のエントリにも書いたセマフォを応用すればよい。 ざっくりと書いてみた例がこちら: https://play.golang.org/p/QWAXsA_89Y チャンネルによるセマフォの実装は、「バッファありチャンネルに何か(struct{})を挿入できた goroutine が実行の権利を持つ」というもの
Go 言語のいろいろなパッケージを使ってみるシリーズ(目次)。 今回は log パッケージ。 log パッケージには fmt パッケージのような Print 関連の関数がありますが、これらは fmt パッケージの同名の関数で書き出し時刻と改行を追加して表示します。 また、デフォルトでは標準出力ではなく標準エラー出力に書き出します。 【この記事の内容】 log パッケージ Print 関連 log.Print 関数 log.Println 関数 log.Printf 関数 Fatal 関連 Panic 関連 ログの設定 接頭辞 Prefix フラグ Flag 出力先 Output Logger 型 【修正】 log パッケージlog パッケージのパッケージドキュメントはこちら。 log パッケージに定義されている関数には以下のようなものがあります: // Print 関連 func Prin
先週go-promptというGoの端末制御ライブラリを公開しました。 c-bata/go-prompt: A library for building powerful interactive prompts inspired by python-prompt-toolkit, making it easier to build cross-platform command line tools using Go. https://github.com/c-bata/go-prompt このライブラリを使うと kube-prompt のような強力な補完を持つツールが簡単に開発できます。 この記事ではgo-promptの使い方について解説していきます Getting Started それではさっそくgo-promptを使ってリッチなコマンドラインツールを作ってみましょう。 Download
おはようございます。保育参観後、次男は熱を出し、また、長期化して、実家暮らしかもと冷や冷やしましたが、すぐに回復して、長男の誕生日イベントに奥さんと映画に行ってこれました。@kjunichiです。 背景 ANSIエスケープで端末に画像を表示するものは多く出回っていて、自分もmacOS上ではnode.js実装のansi-canvasのexampleのimgcatを 愛用している。 しかし、事前準備なしでWindowsのコマンドプロンプトに表示するものはなかなか見つからなかった。コマンドプロンプトにも一部の文字に 色を付けて表示することは可能なので、色数は限定されそうだが、原理的には出来なくなさそうだった。が、 Windowsの直接のAPIだと、Windowsでの開発歴が浅い自分には、難易度が高かった、ANSIエスケープ並みの手軽なAPIで これを実現するものがないものかと、物色していたところ
https://github.com/Songmu/axslogparser/ 下記のようにすれば、ApacheログかLTSVログをよしなにパーズしてくれます。 import "github.com/Songmu/axslogparser" log, err := axslogparser.Parse(line) Apacheのログ形式として知られるアクセスログはいろいろな形式があり、正確なパーズが何気に困難であることが知られています。よく使われるのは以下のような形式です。axslogparserはこれらの形式をサポートしています。 commonログ commonログの先頭にvhostが付いたもの combinedログ combinedに独自フィールドが追加されたもの フィールドの区切り文字は一般的には半角スペースが使われますが、パーズし易さのためにタブ文字が使われることもあります。現在は
vimを使ってそれなりに経つのに、最近になって設定したのでメモ。 vimにはmkviewという、現在の折りたたみの状態を保存するコマンドと、 loadviewという保存した折りたたみ状態を読み込むコマンドがある。 もちろん自分でコマンドを入力するのはめんどくさいので、 ファイルを保存した時と読み込んだ時に勝手にコマンドを実行して欲しい。 ということでautocmdを使って、勝手に実行してくれるようにするわけだが、 先人が色々なことを考慮した上で mkviewとloadviewを自動呼び出しする設定を 公開してくれている。 Hack #84: バッファの表示設定を保存する 細かい説明もリンク先に書いてあるので、自分はリンク先の設定をそのまま以下のようにコピペしただけ。 " Save fold settings. autocmd BufWritePost * if expand('%') !=
TL;DR Add let g:go_gocode_unimported_packages = 1 to your .vimrc 欲求 通常、gocode ではインポートしていないパッケージの関数等は補完されない。 例えば、strings.Spと打ってstrings.Split()が補完されるためには、import "strings"が必要である。 github.com これを修正するコミットが gocode に入っているため、有効にしたい。 試行錯誤 上記 Issue には、以下のコマンドを実行するように書かれている。 go get -u github.com/nsf/gocode gocode close gocode set unimported-packages true ところが、これをやってもうまくいかない。 様子を観察してみると、gocode set unimported-p
技術系ブログなどでコマンドラインの実行コマンドをキャプチャしてgifアニメーションにしてるような記事をよく見かける。 ↓こんな感じの あれ、カッコイイなーと思って調べてみたら、どうやらttyrecというものでできるそうなのでやってみた。 環境 MacOS X 10.10.5 Yosemiteターミナル バージョン2.5.3(343.7) iterm2じゃうまく動作しなかった… (これでむっちゃコケた… iterm2でもうまく動作してくれました!(2018.12.25) ttygif sugyan/ttygif を利用させていただきました. インストール # ttyrecは入力された文字を記録・再生するためのツール brew install ttyrec # 録画したttyファイルからgifアニメーションを生成するためのツール # go言語で作成されているため、goもインストールする。 br
タイトルに煽りが足りない!と指摘を受けたので頑張って変えてみました。 pet というツールを作ったら公開して3日でStarを1000も頂きました。本当に感謝です。 対象の方 「あーあのコマンド何だっけ。前も調べたけど忘れちゃったからまた調べよう...」 となる人 対象じゃない方 「Ctrl-rで検索すればすぐ見つかるし、よく使うコマンドはaliasに登録してるから全然問題ない」 という人 デモ 色々と書く前に動画を見てもらえれば雰囲気がつかめると思います。 詳細は以下のREADMEに書いてあります。ちなみにDescriptionは日本語でも動きます。 https://github.com/knqyf263/pet 概要 僕はいつも「あのコマンドなんだっけ...」となってしまいます。 もちろんpecoとか利用させていただいているのでコマンド履歴からの検索はしやすくなっているのですが、以下のよ
Go に暗黙の型変換はない Go には Tour of Go でも習うように,暗黙の型変換といったものは存在せず,明示的に型変換をする必要があります. Unlike in C, in Go assignment between items of different type requires an explicit conversion. – Type conversions https://tour.golang.org/basics/13 このデザインについては FAQ にも書いてあります. FAQ: Why does Go not provide implicit numeric conversions? https://golang.org/doc/faq#conversions (厳密には interface への変換だけは勝手にやってくれるのでその意味では暗黙の型変換はあるとい
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く