詩と創作・思索のひろば

ドキドキギュンギュンダイアリーです!!!

Fork me on GitHub

git submodule をキャッシュで高速化する

Git

目下新マシンの開発環境をセットアップ中なんだけど、clone しないといけないリポジトリがけっこうたくさんある。このリポジトリ群っていうのが git submodule によってモジュールを共有していて、つまり同じリポジトリを何度も fetch してくることになる。…

GitHub の通知メールで、クローズやマージされたものにラベルをつける

Google Apps Script でメールの自動アーカイブの続編です。 https://github.com/motemen/gas-gmail-scripts/blob/master/dist/label-github-issue-status.js GitHub のリポジトリにやってくるイシューや Pull Request って、対応する心的コストがばかにな…

Google Apps Script でメールの自動アーカイブ

メールってやつはプッシュ型のタスク生成・情報取得ツールとしてすげー便利に使ってるのですが、受信トレイを綺麗に保つのには不断の努力が必要で、放っておくとすぐに管理不能な状態にまで膨れあがってしまう(いちおう、いわゆる Inbox Zero を理想として…

Spreadsheet に送信したスピードキュービングの記録を Slack や Pixela に連携する

ご機嫌いかがでしょうか。以前作ったタイマーアプリ fuTimer はスピードキュービングの測定記録をスプレッドシートに送信できるんですが、 記録をスプレッドシートに保存できるスピードキューブ用タイマーアプリを作った - 詩と創作・思索のひ…

Tensorflow.js で notMNIST 学習済みモデルの文字認識

Udacity の Deep Learning 講義 を途中までやって、ははーんこれが CNN ね〜、という気持ちになった。 課題 4 では Tensorflow で CNN に notMNIST を学習させるのだけど、なかなか思ったとおりに精度が上がらない一方、層を増やすたびに重みやバイアスの変…

記録をスプレッドシートに保存できるスピードキューブ用タイマーアプリを作った

これです。 https://motemen.github.io/futimer/ そしてリポジトリはこちら。 GitHub - motemen/futimer: Web-based speedcubing timer 数ヶ月前からスピードキューブをはじめている。バラバラの状態に(スクランブル)されたルービックキューブをいかに早く…

ハッカーズチャンプルー2018で、『ソフトウェア開発と私』という発表をしました #hcmpl

6/30 に行われたハッカーズチャンプルー2018で、『ソフトウェア開発と私』という話をしてきました。もともと id:anatofuz さんのお誘いで、ネタは Perl やコミュニティに関する話であればなんでも、ということだったのですが、考えているうちにこれは自分の…

AWS AppSync で時刻のソースをエポックミリ秒として扱いたい

サーバレスで GraphQL したかったので AWS AppSync に入門してみた。スキーマを書いてデータソースとリゾルバを追加して……というフローでずいぶんさくさくと進むんだけど、タイトルに書いたとおり時刻をエポックミリ秒として扱おうとすると困ってしまった。 …

Google スライドでプレゼンテーション時にフォントが変わってしまう事象のワークアラウンド

表題の件、みなさまもお困りのことが多いと思います。 日本語のフォントもなんだかダサくなってしまうし。わかりやすい例だと以下のように、スライドの編集時には見えていた絵文字がプレゼンテーションモードでは豆腐になってしまうわけですね。 今回紹介し…

パッケージ指定で "go run" する

Go

ちょっとしたコマンドラインツールを作ってるときはよく go run main.go するんだけど、作業ディレクトリが main.go から離れてしまうと go run $GOPATH/src/... みたいなことをする羽目になり、ちょっとありがたくない。ファイルが増えてくると go run *.go…

Ether を送金した人だけコンテンツを閲覧できる Ðapp を書いた

Ethereum はブロックチェーン上でアプリケーションを動かせる(スマートコントラクト)ってので興味を惹かれて、どんなことができるのか調べてたんだけど、感じを掴むために一つ書いてみた。 やりたいことは、ウェブページに送金ボタンがあって、そこから特…

Go 1.10 Release Party in Tokyo で go test, go vet に入った変更の話をしました

Go

Go 1.10 Release Party in Tokyo - connpass 「Go 1.10 ツール周辺の CL を読む」という話をしました。 Go 1.10 ツール周辺の CL を読む - Google スライド Songmu さんに「モテメン、Goリリースパーティー出ない?」と言われて安請け合いしたはいいものの、…

作業ログと履歴をシンプルに共有できる furoshiki ってツールを書いた

おはようございます。この記事ははてなエンジニアアドベントカレンダー2017の25日目の記事です。昨日は id:alpicola さんによる 社内で機械学習ハッカソンを開催しました でした。 サービスのデプロイをはじめとして、チーム内の開発者が共通して担当すべき…

ISUCON7本戦で3位でした(ソン・モテメン・マサヨシ)

いろいろあって、本戦からだいぶ時間が経ってしまいました。チーム全体としての流れはSongmuさんが書いてくれているので、自分の視点でどうだったかな〜というのを時系列を無視して思い出しつつ書きます。 チームは、会社(はてな)の同僚で組んだ Songmu, m…

チャンネルを使って、決まった数のリソースをgoroutine間で共有するパターン

Go

生成が重いリソース(や重い処理の実行権)を goroutine 間で共有し使いまわすようなパターンです。よく知られていて名前がついていそうだけど、ぐぐっても分からなかったので書いておく。 コネクションプールに近い感じで、最初にリソースを生成したあと、…

最近のGoプロジェクトのMakefile

Go

最近は仕事でも新しくGoのプロジェクトをイチからはじめることが増えてきて、コピペ元が欲しくなるので、スナップショットとして残しておきます。とくに Go でウェブアプリケーションを書くような場合を想定していて、npm エコシステムにも乗っていきます。 …

prchecklist でリリース Pull Request のチェックフローをスムーズに行う

背景 GitHub を使った開発では、 master ブランチがいつでも本番に出せる状態として、 master から切った develop ブランチを開発のベースとし、 各フィーチャは develop から切って develop にマージし、 リリースのタイミングで develop を master にマー…

go get gobin.cc/PROGNAME でプログラムをゲットできる URL shortener っぽいサイトを作った

Go

夏休みの自由研究です。 ghr を go get したいんだけど作者の e の数って何個だったっけ……と悩んでいたらそもそも違う ID でした、けどそれも思い出せない! って経験ありませんか? たいていの場合、プログラム名だけは覚えていて、その正確なパスまでは覚…

GraphQLのレスポンスJSONに対応するstructからクエリを生成できるgo-graphql-query

Go

このあいだ GitHub が公開していた GraphQL API が便利そうだったので使おうと思ったのだけど、求めたライブラリがなかったので作った次第です。 ここで GraphQL についての説明はしませんが、結果の JSON とクエリが同じ形を持っているのが便利で美しいです…

指定された型からswitch文を生成するgo-switchgenと、そのコーディング動画

Go

GitHub - motemen/go-switchgen ある日 Go で reflect パッケージを使ったプログラムを書きたい! と思い立ち、となると reflect.Kind で swtich したいわけで、ありうる case 節を全部書きつくすのは大変だ、というわけで switch 文を生成する簡単なプログ…

GoogleカレンダーとSlackステータスをワンクリックで連携できるアプリをGoogle Apps Scriptで書いた

Googleカレンダーで現在進行中のイベントをSlackステータスに反映させるようにしておくと、チームメンバーに、移動中や不在やミーティング中といった状況を自然に共有できるので便利ですね。そのように設定している人も多いと思います。 似たアイコンが並ん…

はてな記法 ⇔ Markdownコンバータ(pandoc のはてな記法対応)

最近の若者ははてな記法を書けないらしい……などと言っているだけではアレなのでコンバータを書いてみた。リストを書こうとして見出し(*)になっちゃうんですよね。あるある。 タイトルにあるとおり、pandoc という有名なマークアップコンバータにはてな記法…

YAPC::Kansai 2017 OSAKAで『はてなシステムの考古学』というトークをおこないました #yapcjapan

先日開催された YAPC::Kansai 2017 OSAKAで、『はてなシステムの考古学』というタイトルで発表しました。 スライド中のリンクが効かないのであまり意味がないのですが、一応 Speakerdeck にも上げてあります: はてなシステムの考古学 / History of developme…

go-sql-driver/mysql の接続に SOCKS5 プロキシを利用する

Go

Go では proxychains みたいな方法が利用できないので、プログラム側で対応してやる必要がある。Go で SOCKS5 プロキシを利用する - 詩と創作・思索のひろば と同様に golang.org/x/net/proxy を利用して実現できる。 import ( "database/sql" "net" "golang…

Google Apps Script を使ってブックオフオンラインで購入した書籍を Google Spreadsheet に記録する

今年は読んだ本をちゃんと記録していくぞ! と思ったものの読書管理系のサービスは記録が面倒で続かないことが目にみえている。とりあえず買った本だけでもどこかで一覧できればよいのでは? ということで、Gmail に届くレシートから Google Spreadsheet に…

今年詠んだ句ベスト50

はてなスタッフアドベントカレンダー2016の23日目の記事です。昨日は id:yulily100 の『坦々ポテサラという暴力について』でした。 今年の仕事始めの日に、同僚が俳句を詠んでいる話を聞いたのがけっこう面白かったので、自分もはじめてみることにしました。…

エンジニアがチームで価値を発揮するために気をつけたいこと

この記事は、はてなディレクターアドベントカレンダー2016の17日目のエントリです。(昨日は id:daiksy の『嫌われない勇気』でした。) id:motemen です。過去には立ち上げ期の Mackerel チームのディレクターをしていましたが、当時のことは 過去の記事 に…

直感的なグラフを簡単に作れるウェブアプリ

を作った。どうぞご利用ください。 The Beautiful Graph Maker 下の画像のようなグラフを簡単に生成できます。 から になったことがひと目でわかりますね。説得力もあるのではないでしょうか。 矢印やY軸のラベルはクリックで変更できます。 実装には Elm …

なぜプレゼンで失敗するのか

自分も大方の人間と同じように人前で喋るのは苦手で、可能であれば避けたいと思っているけれど、一方でこの業界で生きのこる方法のひとつとして避けられないものでもあると思っている(ので苦しい)。若かりしころ手痛い失敗をしたこともあって、かなり苦手…

Google App EngineでGoを動かすときに知っておくべきこと(ソースコード・ビルド編)

Google App Engine(GAE)で Go 製のウェブアプリを動かしたかった話。いっぺん動かしてみると GAE/Go はウェブアプリを動かす環境としてはとてもいい。ただ、中途半端な知識だけで始めると開発者としてはつまずくことが多かったので、分かりにくい点をまと…

はてなで一緒に働きませんか?