生涯未熟

生涯未熟

プログラミングをちょこちょこと。

sirupsen/logrusのユーザー名変更問題について

皆さんはGoでプログラミングする際にloggerは何を使ってるでしょうか? 様々なloggerがありますが、その中でも sirupsen/logrus を使っている方は多いと思います。 ただ、このlogrusに大きな問題が起こりました。 それはsirupsen氏がGithubのユーザー名をSir…

Golang Weekly #168

GitHub - d4l3k/go-pry: An interactive REPL for Go that allows you to drop into your code at any point. Goでのpry実装。 Rubyを書いていた時にbinding.pryを多用していたので、こちらも使っていきたい。 Benchmarking Go programs, part 2 - Tit Petri…

3連休を使ってしょうもないものを作ってしまった

素敵な3連休、皆様どうお過ごしでしょうか? 意識の高いエンジニア各位におかれましては、きっとエンジニアリングを磨き上げることに腐心なさっていることでしょう。 さて、そんな中「3連休中にアホなもの作りたい」という欲求を抑えきれずにアホなものを…

depでの "is not within a known GOPATH" エラー in gvm

betaのgo1.9をちょこっと弄るためにgvmを導入したのですが、$GOPATHの扱いが $HOME/.gvm/pkgsets/go1.9beta2/global といった独自のものになります。 で、これの何が問題かというと、例えば普段設定している$GOPATHが $HOME/go だった場合には $HOME/go/src …

sqoopでhbaseへのimport時に好きな文字列をRowKeyにする

sqoopを使ってhbaseへimportする際にRowKeyを指定するには --hbase-row-key を使いますが、 通常はcolumnを一つ指定するか、カンマ区切りのリストで複数のcolumnを指定する形になります。 しかし、好きな文字列とcolumnの値を結合してをRowKeyにしたい場合は…

go1.9で追加されるpprofのLabel機能を見てみる

Golang Weekly #167 - 生涯未熟 でも紹介しましたが、go1.9からプロファイリングツールのpprofでLabel機能が使えるらしいのでサラッと見てみます。 前置き このlabel機能は以下のissueでのproposalが採択され、 github.com 提案者のmatloob氏がPRを投げ、go1…

Golang Weekly #167

Profiler labels in Go · Go, the unwritten parts Go 1.9の新機能としてProfiler Labelsが追加されます。 CPUプロファイラの収集データにラベルを追加することが出来るようになり、 例えば一般的なWebサーバにgoroutineでハンドラが分割された /user と /to…

Golang Weekly #166

Golang Weeklyを読むのが最近の楽しみなしょっさんです。 Golang Weeklyは一週間ごとにメールでGo関連のブログ記事をまとめて送ってくれるサービスになります。 Golang Weekly で、自分のメモがてらにオッと思った記事とかを毎週まとめていこうと思います。 …

リモートサーバーのhbaseをクライアントから叩けるようにする

日本語での情報が無かったのでメモ代わりに書く。 リモートサーバーで構築したhbaseに対して、JavaなりGoなり何らかで作ったクライアントからテーブル操作等々できるようにする。 やることは至って簡単で、 hbase-site.xml にPropertyを追加するだけ。 <property> <name>hbas</name></property>…

Golangで雑にメモリ状況を見る

pprof使うほどでもないよなってなったので、こんな感じで雑に。 var mem runtime.MemStats runtime.ReadMemStats(&mem) fmt.Printf("Alloc [%v] \t HeapAlloc [%v] \n", mem.Alloc, mem.HeapAlloc)

UnmarshalJSONを使ってJSONをシュッと変換する

渡ってきたJSONをUnmarshalしようと、こんな感じのコードを書きました。 package main import ( json "encoding/json" "fmt" ) type User struct { Name []byte `json:name` } func main() { var j = `{ "name": "Ken" }` var u User json.Unmarshal([]byte(…

GraphQLを勉強したのでGolangで書いてみた

ここ最近とてもGraphQLが盛り上がってますね! イベントも続々と開催されていたりするので、勢いを感じています。 そんなGraphQLを遅まきながら勉強してみました。 GraphQLとは? 既に様々な記事で論じられている内容なので割愛します。 この記事が個人的に…

僕の心と他人の心

本日付で勤めていた会社を退職致しました。 会社を含めた周りは悪くなく、全ては自分が原因です。 2ヶ月ほど休職していたのですが、その間に「僕という人間は何がダメで今後どのように向き合えば良いのか?」ということを連々と考えたりしましたので、心の…

goroutine使ってゴニョゴニョするCLIツールを作った時の備忘録

備忘録として自分用に書きます。 cobra良いよ 以前までurfave/cli使ってたんですが、「dockerのcliとかcobra使ってたよな〜」とよくcobra見かけるようになったので使ってみた。 $ cobra initでアプリケーションの土台作ってくれるので、煩わしいこと考えずに…

vim-goの入力補完が動かなくなった

.vimrcの整理整頓作業をしていたところ、突然vim-goの入力補完が下記のようになった。 「いやいや、こっちがPanicだよ」と思いつつ、色々と対策を探しました。 対策 そもそも、vim-goの補完にはgocodeが使われており、そちらのISSUEを探したところありました…

kirimoriにVimのExコマンドを実行する機能を追加しました

細々とkirimoriの開発をしております。 今回はkirimori addとkirimori removeをした際に各プラグインマネージャー毎に対応したExコマンドを叩く機能を追加しました。 例えば、Vundleの場合はkirimori addした際に:PluginInstallが、kirimori removeした際に:…

ranger-cdをzshで使えるようにした

rangerを教えてもらったんですが「めちゃ便利だ!」と今更ながら気付いた私です。 さて、rangerにはexamplesというディレクトリの中に様々な便利関数が置かれています。 その中でもranger-cdは、rangerで最後にqで抜けたところに移動してくれるという便利関…

Dockerでとんでもないハマり方をした

ちょっとDockerを触ってみてるsyossan27です。 雰囲気でkirimoriが動くDockerImageを作成する時にとんでもないハマり方しました。 一体何が ホームディレクトリでDockerfile作って、kirimoriのバイナリファイル置いてCOPYでDockerImageにコピーしようとDocke…

golangのパッケージマネージャdepのIssue覗いてみた

今まではglideを使ってたのですが、公式ご謹製ということでdepをこれから使っていこうかなと思いまして、一旦Issueを覗いてみました。 その中でも気になったIssueはこちら。 github.com 「dep initして生成されたmanifest.jsonが空だよ」ってIssueなんですが…

mattnさんのリファクタリングを読み解く

現在絶賛開発中のkirimoriですが、なんとGolang界隈で有名なmattnさんにリファクタリングをして頂くという、とても嬉しい事態がありました✨ kirimoriについてはこちら↓ syossan.hateblo.jp リファクタリング前提でかなり雑に書いていたのですが、めちゃくち…

golangでScanが上手く動かなかったので原因調べてみた

どうも、今日も元気にGolang生活しております。 今回はbufioパッケージにあるScanの話をば。 問題の発生 とあるライブラリを使ってコードを書いていた時に、Scanを実行しても動かないという現象に遭遇しました。 コードは以下のような感じ で、 hoge.txt の…

webpackerを試してみた

Rails5.1からwebpackが標準装備されるということで、試しにRails5.0.1 + webpackerでやってみました。 インストール Rails5.0.1でプロジェクトを作成し、Gemfileに gem 'webpacker', github:'rails/webpacker' としてmasterから取ってくる。(rails webpacke…

kirimoriというコマンドラインツールを作ってみた

久々にGolangでコマンドラインツール作りました。 その名もkirimori(切り盛り)。 github.com 何が出来るの? Vimのプラグインを追加・削除・一覧表示が出来ます。 例えば、 $ kirimori add Shougo/neocomplete と実行することで、指定した .vimrc にVundle…

2017年の抱負

今年の三が日は食っちゃ寝しながらscalaを勉強してたしょっさんです。 去年も抱負を考えたんですが、今年も何か抱負を立てようかなと。 PMとしての経験値を溜める 去年は年末にちょびっとPMとしてお仕事しました。 自分以外のエンジニアを携えてPMをやるのは…

2016年の棚卸し

あともう少しで2016年が終わりそうですね。 今年は色々とやった年だったので、どんなことをやったか自分のために棚卸ししてみます。 1月 2016年の目標 1月には2016年の目標として以下の4つを設定しました。 エロ系サービスを2つ作る Qiitaで1000Contributio…

このAdvent Calendarがひどい! 2016年版

数年前から流行り始めたAdvent Calendar、今年も大盛況だったみたいですね。 色々と良質なエントリが生成される中、「時間が無くて〜」だとか「やっぱり書く意欲が〜」とかクソみたいな言い訳でクソみたいな記事が量産されていくのも事実。 そういうわけで、…

豚肉が20キロ届きました

天気麗らかな本日。朝11時に「ガラガラ」と音を立て、ダンボール2つ分の荷物が台車に乗せられ届きました。 「ん?俺なんか買ったかな」と訝しみながら蓋を開けてみると、そこには大量の豚肉が。 めっちゃデカいダンボールに肉が…肉が… pic.twitter.com/DKxX…

ittanというGemを作りました

seedファイルをいちいち作成して編集するのってダルくないですか?ってことで ittan というGemを作りました。 github.com どんなGemなの? schema.rb を読み取って、seedファイルを生成します。 自分が普段使いしてるのが seed_fu なので、そっち準拠にして…

一人のエンジニアに見る転職の成功・失敗

転職 Advent Calendar 2016 - Qiita の7日目です。 エンジニアにとっての一大イベント、「転職」。 そんな転職の助けになるかどうか分かりませんが、4回転職した平凡なエンジニアの転職談を書き綴ります。 1社目:老舗の下請け会社 関西にある老舗の下請け…

お布団と私と出社芸

出社芸 Advent Calendar 2016の2日目ということで、実際の出社芸の数々をお見せますよ。 1. 二度寝 これは誰もが経験のある、やっちゃった系の出社芸ですね。 人間は睡眠欲には抗えません、仕方ありません。 2. 服がない まぁこれはよくあるやつだとは思う…