生涯未熟

生涯未熟

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

treeコマンド 〜Rオプションの謎〜

treeコマンド、皆さん知ってますか? そうです、あのファイルやらディレクトリやらを良い感じに木構造で出力してくれるニクい奴です。 こんな感じ さて、そんなtreeコマンドには多くのオプションがあります。 よく使われるのは -L だったり、 -a とかですか…

2018年の棚卸し

2018年もそろそろ終わりですね。 恒例の本年の棚卸しをやっていきたいと思います。 1月 syossan.hateblo.jp 今年の抱負は「つよく いきる」でした。 つよく いきました、よかったですね。 syossan.hateblo.jp homebrewに自作ツール登録しようとして失敗した…

GoでSSH Managerを作成した際の知見

この記事は Go Advent Calendar 2018 の23日目の記事です。 今回は過去に作成したSSH Managerのお話をさせて頂きます。 github.com どんなツールなのか? ざっくり言うとSSH接続情報を管理するツールになります。 今の所パスワード認証のみ対応しております…

Goのあるコードを発端とした衝撃の結末

はい、というわけで今回はGoのあるコードから紡がれるストーリーに纏わるお話です。 一体何が起こったのか? 発端はこのツイートでした。 — しょっさん@ʕ ◔ϖ◔ʔ (@syossan27) December 20, 2018 むむー、一体なんじゃらほい?とGoの当該ソースコードを見たら…

初心者Elmerがクソアプリを作った時に気付いたこと

この記事は Elm Advent Calendar 2018 の17日目の記事です。 今回は初心者Elmerが別のアドベントカレンダーでアプリケーションを作ってみた時に気付いたことをつらつらと書いてみます。 syossan.hateblo.jp github.com 書き始め 以前、Elmに入門してからだい…

ウルヴァリンがハッキングする映画はいいぞ

というわけで、こちらは プログラマーにおすすめしたい映画 Advent Calendar 2018 14日目の記事になります。 君は『ソードフィッシュ』を知っているか? 名前からして何の映画か分からない『ソードフィッシュ』 まずはパッケージ画像を見てみましょう。 キャ…

チャレンジングなことをしてみたらエッチなクソアプリが誕生した

どうも、この記事は クソアプリアドベントカレンダー の10日目のようです。 さて、今年ひり出したクソアプリは エッチなやつです エッチなリンク 業務で触った技術がなんか活かせないかな〜?と考えていたら、何故かエロクソアプリが誕生していました。不思…

GoLandにCassandra対応が来たぞ!!

掲題の通り、GoLand 2018.3でCassandraのDataSourceが使えるようになりましたぞ! おー!Cassandra追加されてーら! pic.twitter.com/IjfkDRZaFI— しょっさん@ʕ ◔ϖ◔ʔ (@syossan27) November 23, 2018 www.jetbrains.com 今までCassandraのGUIツールといえば…

guregu/nullでぬるぬるする

Goでサーバーサイドの開発を行っているとMySQLなどのRDBに接続して、取得した値をJSONで返す機会は多いはず。 そして大概ハマるのが「NULLを許容してJSONで返すのはどうやればいいんだ・・・」というところでしょう。 今回はそんな話をします。 ノーガード戦…

S3にファイルがアップロードされた時にCloudFrontのキャッシュを削除してみる

掲題の通りのことが社で必要になったのでGoでやってみました。 やりたいこと S3に置いた静的HTMLをCloudFrontを通してアクセスする、という形で配信しているシステムがあり、運用する中で静的HTMLを置き換えた時にすぐに切り替わるようにしたいということで…

Elmハンズオンに行ってきた

最近ある方がElmを猛プッシュしているので、Elmハンズオンに行ってきました。 elm-jp.connpass.com togetter.com Elm is 何? Elmはウェブブラウザベースのグラフィカルユーザインタフェースを宣言的に作成するためのドメイン固有プログラミング言語である。…

Ergo42を買った

最近、非常に肩こりが酷くなって「そろそろ分割キーボードってものに手を出すか」って感じになったのでErgo42を買ってみました。 Ergo42とは? Biacco42さんが作製された分割キーボードで、こちらにどういうキーボードなのかの詳細が書かれております。 biac…

buildersconに初参加してきたぞ!

というわけで、以前から気になっていたbuildersconに行ってきました。 どんなイベント? builderscon.io buildersconではトークに関して技術的な制約はありません。 特定のプログラミング言語や技術スタックによるくくりも設けません。 必要なのは技術者達に…

kafka2.0にした時にShopify/saramaでCRCエラーが出る件

皆さん、Goでkafkaやっとりますか?僕はバリバリ伝説な感じでバリバリやっとります。 というわけで、最近kafka2.0がリリースされましたね。 うちでも使うかと2.0にアップグレードしたんですが、見事にsaramaを使ったGo製のProducer/Consumerが死にました、南…

「Docker/Kubernetes 実践コンテナ開発入門」はコンテナ初心者に最高の本だった

Docker/Kubernetes 実践コンテナ開発入門posted with amazlet at 18.08.24山田 明憲 技術評論社 売り上げランキング: 455Amazon.co.jpで詳細を見る 今回ありがたくも初心者枠として「Docker/Kubernetes 実践コンテナ開発入門」のレビューをさせて頂きました…

Sparkにおける不正なCSV読み込みへの立ち向かい方

Apache Sparkを使い、あるデータをHDFSにCSVとして保存し、保存したCSVから読み込んだデータをDBに格納するということを想定して、もし不正なCSVファイルが紛れ込んでいたらどうする?ということを考えていく。 状況 この疑問が生じた発端となった不正なCSV…

ランサーズ開発ランチにお邪魔してきた!

クラウドソーシングで超有名なランサーズさんが、開発ランチという面白いイベントをやっていたのでカツ丼食べたくてブログ枠として参加してまいりました!! lancers-engineer.connpass.com ランサーズ開発ランチ(Lunchers)について このイベントはランサ…

runtime.Goexitを改めて理解する

序文 runtime packageには Goexit() というfunctionがあります。 // Goexit terminates the goroutine that calls it. No other goroutine is affected. // Goexit runs all deferred calls before terminating the goroutine. Because Goexit // is not a p…

「Go言語でつくるインタプリタ」を読んだ

読んだので思ったことを書く。 Go言語でつくるインタプリタposted with amazlet at 18.07.01Thorsten Ball オライリージャパン 売り上げランキング: 9,186Amazon.co.jpで詳細を見る どんな感じの本なのさ? 詳しくはこちら Writing An Interpreter In Goを読…

Cassandraが墓石まみれになり死

TombStoneが出てこなくて、ついTotemと言ってしまった私です。 今回はTombStoneで死んだ話をします。 状況 Apache SparkでCassandraに向けて、1000万件程のデータ を流し込む処理を実行していたのですが、途中で処理が完全に止まってしまい死にました。 何故…

saramaでAsyncProducerを使う時に気を付けなければいけないたったひとつのこと

AsyncCloseを使うな どういうこと? AsyncProducerには AsyncClose Close の2種類がある。 なんの違いが? それぞれのコメント読みましょ。 AsyncClose AsyncClose triggers a shutdown of the producer. The shutdown has completed when both the Errors …

OS Xのnetstatに立ち向かう

ある時、手持ちのMacからTIME_WAITが出てるか調べようと netstat を叩いた所、想定していた挙動と全く違ったので、メモ代わりに書いておく。 何が違ったのか? -p オプションの挙動 TIME_WAITの扱い -p オプションの挙動 これは完全にLinuxとBSD系であるOSX…

入社から一年経ちました

株式会社アイスタイルに去年の6/1に入社してから一年経ちました。 もう30手前になると一年があっという間だなぁ、としみじみ感じております。 何をやったか? ・最初の2,3ヶ月は久々にWindows使った ・雑にScalaやった ・ガッツリGoやってる ・hadoop, hbase…

TIME_WAITを引き起こさないhttp.Getを実現する

大量にhttp.Getするという書き捨てコードを書いていたのですが、途中までは順調に進むのですがあるところから急に通信を行わなくなる、という事態にハマりました。 一体何が? なんじゃこりゃ、というわけでとりあえずコネクションの状況を確認してみたので…

High-performance concurrencyという話をしました

主催をしている勉強会でGoのConcurrencyにまつわる話をしました。 gounconference.connpass.com 最近、Concurrency in Goという本を読んだことに触発され、「並行処理はサラッとこんな感じでやるといい感じになるのでは?」というTipsを本書よりチョイスして…

swaggoが思いの外、素晴らしかった

swaggoがペロッとswagger-uiをアプリケーション内に組み込みたかった願望をサクッと叶えてくれた。 swaggoの概要については@pei0804さんが以下の記事で詳しく書かれているので、細かいところは割愛。 qiita.com 何が良かったか 煩わしいこと抜きで、アノテー…

オライリーのsafariに関するちょっとアレなところ

とある本が読みたくてオライリーのsafariをFree Trialで使っている。 Web上で読むタイプなので、Chromeの翻訳機能使えば洋書でもすいすい読めて使いやすいな、と思ってたのだが一つ重大な欠点を発見した。 それは、Submit Errataが出来ないこと。 Submit Err…

限界を知りたくてひたすら歩いてきた

GW真っ只中。急に自分の限界を知りたくてひたすら歩くことにした。 ただ歩くだけなのも味気ないので、良さげなスポットをある程度調べてから行くことに。 とりあえず一日歩くと仮定して、20キロちょいを目標とした。 正直この時は「ハーフマラソンやと思えば…

クソ雑魚ナメクジの転職ドラフト結果

medium.com この記事読んで、転職ドラフトの結果を書くのも面白いなと思ったので書いてみる。 転職ドラフト自体は第2回から参加しているので、参加した回の結果を記載する。 尚、筆者はクソ雑魚ナメクジエンジニアなので、チョットデキルエンジニアの方々の…

Goの勉強会を開催してみました

エンジニア人生の中で初めて勉強会なるものを主催してみました。 gounconference.connpass.com なんでやったの? Go界隈ってあんまり勉強会開催されてないんですよね。 なんか好きな言語の勉強会があんまり無い状況ってのも寂しいので、自分でやってしまおう…