生涯未熟

生涯未熟

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

2017-01-01から1年間の記事一覧

2017年の棚卸し

あともう少しで2016年が終わりそうですね。 今年も色々やったので、棚卸ししてみます。 1月 syossan.hateblo.jp Vimプラグインマネージャーとしてkirimoriというのを作りました。 2017/12/28現在、13starも頂けて嬉しく感じております。 syossan.hateblo.jp …

俺が本当のクソアプリを見せてやる

クソアプリアドベントカレンダー、皆さんの投稿見ましたよ。 何なんですか!皆「やれこんな技術で作ってみた」だの「クソアプリ〜〜〜」と言って面白かったりだの!! 「俺が本当のクソアプリを見せてやる」 GitHub - syossan27/shitit: なにこれ? うんこ…

仮想通貨マネージメントツールを作りたい人生だった

アイスタイルアドベントカレンダー19日目です。 皆さん、仮想通貨好きですか? 僕は大好きです。お金が勝手に増えるから はい。 仮想通貨を買ってしまうと毎日チャートが気になってしまうことでしょう。 しかし大っぴらに見ていると怒られるかもしれません。…

pecoっぽいものを作りたい人生だった

Go3 Advent Calendar 2017の16日目です。 皆さんはGo製のツールで好きなツールといったらなんでしょうか? 色々あるかと思いますが、僕はpecoがいちばん好きです。 ということである日に「そうだ、pecoっぽいものを作ろう」という欲求がムクムク湧いてきまし…

今年買ってよかった吸引力の変わらないアレ

はい、吸引力の変わらないアレが今年の最&高でした。 何故買ったのか 上京をきっかけに適当な家電・家具を揃えなきゃ!と焦っていたところ、適当に転がっていたクソ安い東芝の掃除機を購入。 掃除の度にティッシュをセッティングし、更にゴミを何一つ吸わな…

スタートアップテクノロジーを退職して半年が経ちました

退職者 Advent Calendar 2017の3日目です。 株式会社スタートアップテクノロジーという20人規模の渋谷にある会社から、株式会社アイスタイルに転職して半年が過ぎました。 「何故退職したのか?」という部分は以前投稿しましたので、今回は違う観点から色々…

.zsh_historyにおける非ASCII文字の扱いについて

この3連休、夢中でコーディングしてあるツールを作っている最中、.zsh_historyの特異な挙動を発見しましたので書き残しておきます。 一体何が起こったのか? Goでツールを作っていたのですが、.zsh_historyを読み込んでファイル内容を出力したところ以下の…

優秀なプログラマになるには

コード書け!!!!!!!!!!!!!!!!!!!!!!

fsnotifyは何故Vimで動かないのか?

という掲題ですが、まさにハマったことなのでメモ代わりに記事として書いておきます。 一体何が? Goでファイル監視をしようと思いライブラリを探した結果、fsnotifyというライブラリを発見しました。 github.com 「Star数も多いし、こりゃいいや。使っちゃ…

OSS builderという話をしました

ltlovers.connpass.com というイベントで「OSS builder」という話をしてきました。 Oss builder from Shota Inoue どういう内容か 大体の骨子はスライドに書いてある通りなのですが、OSS活動する中で学んだことを文字に起こしてみました。 特に以下の3つは…

wikipediaの寄付のお願いを非表示にするchrome拡張

作りました👌 chrome.google.com 実装はめっちゃ簡単でdisplay: noneで非表示にしてるだけ、以上。 5分くらいで実装できたので楽ちんでした。

Elasticsearchのbulk APIのMaxファイルサイズを探る

elastic searchと書くとElasticsearchに怒られることを知った今日此の頃。 今回はElasticsearchのbulk APIにどのくらいのサイズのファイルを突っ込めるのか探っていきます。 bulk APIに関する公式ドキュメントはここ www.elastic.co 一言で言うとbulk import…

Golang Weekly #174

GitHub - awalterschulze/goderive: Next generation code generator for go Goでよく使う関数をgenerateしてくれるジェネレーターツール。 例えば、 と書いて、goderive ./... することで、同パッケージ内に以下のようなコードが吐かれます。 このような感…

fluent-plugin-kafkaを使ってkafka streamsでアレコレするのはまだ出来ないよという話

最近、Apache財団に囲まれながらアレコレやってる私です。 今回はfluentdのkafkaプラグインであるfluent-plugin-kafkaを使って、kafka streamsが出来なかったお話をば。 何をしたかったのか fluentdでログを監視しつつ、変更があればfluent-plugin-kafkaを使…

Golang Weekly #173

How I landed my first contribution to Go GoへのContributeを初めてやってみた話。 筆者の方はこちらの動画を見て「やってみよう!」となった様子。 動画を見てみると、物凄く丁寧にGoのContributeの方法を説明してありました。 この方のように、Goのライ…

Golang Weekly #172

Typed nils in Go 2 | Dave Cheney Goのnilについてハマったことは誰にでもあるはず。 そんなnilについての記事です。 この記事中のコードをもし自分が書いた場合、サクッと比較対象のnilを (*T)(nil) としてしまうのだが、どうするのがベストプラクティスな…

関数の自己参照とオプションデザイン

この記事はRob Pike氏の commandcenter.blogspot.jp を翻訳したものになります。 ※Rob Pike氏より翻訳の許可は頂いております。氏に多大な感謝を。 私は自分が書いているGoのパッケージのオプション設定に対して良い方法を度々試してきました。 オプションを…

Golang Weekly #171

A Million WebSockets and Go – freeCodeCamp ロシアの電子メールサービスを扱っている巨大企業、Mail.RuでのWebSockets ✕ Golangの話。 約300万のオンライン接続があるようなサービスで、メールのポーリングには1秒間に約50,000件のHTTPリクエストが含まれ…

Go1.9に追加されるtype aliasを使って遊んでみる

Go1.9で追加されるtype aliasに無限の可能性を感じたので、ちょっと遊んでみます。 type aliasとは? types aliasは型のエイリアスです。 ちょっとそれだけでは雑な説明なので、コードを見てみましょう。 基本的なシンタックスはこんな感じです。 named type…

Golang Weekly #170

Go 1.9 Release Candidate 1 is released Go1.9のrelease candidateがリリースされました! インストール方法はこちらから godoc.org Go1.9には大きな言語仕様の変更として、型エイリアスとFMA(融合積和演算)が実装されます。 型エイリアス 型エイリアスに…

Golang Weekly #169

Toward Go 2 - The Go Blog 来ましたGo2! 1年後にリリース予定のGo 1.12から徐々に後方互換性のある機能をリリースしていき、1.20から後方互換性のない機能をGo2.0に入れ、1.20から2.0に移行しやすくしたいという流れになるみたいです。 他にもGoの開発プロ…

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>…