生涯未熟

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

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界隈ってあんまり勉強会開催されてないんですよね。 なんか好きな言語の勉強会があんまり無い状況ってのも寂しいので、自分でやってしまおう…

lock-freeを考える

考える発端となったのは以下の記事。 stackimpact.com GoのPerformance Turningに関する記事なのだが、気になる項目が。 Favor lock-free algorithms ふむ 冬のLock free祭り safe from Kumazaki Hiroki www.slideshare.net ほう? MutexやSemaphoreで排他制…

最近無性に気になること

突然インターネット上から姿を消したゆーすけべーさんの存在。 去年の5月を境に、スッとインターネット上で見かけなくなったのだが大丈夫なのだろうか?

株式会社はてなに入社しました

株式会社はてなに入社しました ? 株式会社はてなに入社しました - hitode909の日記

映画感想:「ファウンダー ハンバーガー帝国のヒミツ」

thefounder.jp 映画館で予告編を見てから、観たいな〜と思っていたのがやっと実現できました。 一言で言うと レイ・クロックがクズ と叫びたくなるような映画でした。 概要 1954年アメリカ。52歳のレイ・クロックは、シェイクミキサーのセールスマンとして中…

私はこれでSNSをやめました

厳密に言うとSNSの積極的な利用をやめました。 きっかけとしては、人に教えて頂いたこのエントリでした。 dev.to この記事を読んで「たしかに自分はSNSを使って何をしたかったのか?」と考えた末に、メリットよりもデメリットの方が大きいと判断し、やめるに…

未来を感じるキーボード「Tap」を触ってみた

tapとは? こんな感じのキーボードです。 はい、見て分かるように一般的なキーボードとは全く異なる形状をしています。 #どうやって使うの? パッと見では全く使い方が分からないと思いますので、こちらのコンセプトムービーをご覧ください。 こういった近…

TebataというGoライブラリを作りました

最近色々とPubSubのプログラムをGoで書いていて、「こんなライブラリほしいなぁ」と思って生まれたのが、このTebataです。 github.com どういうライブラリ? Tebataは一言で言うと「シグナルハンドラ」です。 Subscriberを作っている時に、よくこういう処理…

make(chan error)のallocate sizeを知る

会社で「make(chan error)ってしたら、何バイト分アロケートするんだろうね?」って話になったので調べました。 調べる こんな感じのコードで調べました。 結果、8バイトという結果になりました。 なるほど〜〜〜〜〜〜