詩と創作・思索のひろば

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

Fork me on GitHub

Goのswitch文を生成するツール

GitHub - motemen/go-switchgen 昔作ったソフトウェアをちょっとメンテしたシリーズ。Go で switch 文を自動生成したいよーってときに使えるやつです。 case 文が exhaustive になるようにいちいち書いてくのが面倒なので、機械にやらせる。 こんなやつ欲し…

PCを離れたらマイク音量を下げるmacOSアプリを作った

この記事は、はてなエンジニア Advent Calendar 2020の21日目です。昨日は id:tarao による Scalaの依存ライブラリ更新はRenovateでもけっこうイケる でした。明日は id:Krouton です。 みなさん在宅勤務してますか? 私もしています。 仕事も雑談も、とにか…

Google Meet のミュートをツールバーから切り替える拡張を作った

Google Meet Mute Toggler - Chrome ウェブストア こんなやつです。 Google Meet で仕事をすることが多くなった昨今、咳払いや生活音といったよんどころない事情によりマイクをミュートにしたいこともあるわけですが、ミュートボタンは普段隠れていて急に出…

Chromebookを買った

【Amazon.co.jp 限定】Google Chromebook Lenovo ノートパソコン Ideapad Duet 10.1インチ 日本語キーボード WUXGA MediaTek Helio P60T 4GBメモリ 限定スペック 64GB eMMC モデル発売日: 2020/06/05メディア: Personal Computers iPad が使えなくなってしま…

中間証明書のないサーバにアクセスする: 言語別の実装

前回の記事のつづきです。 中間証明書のないサーバにアクセスする - 詩と創作・思索のひろば さて、この方法で信頼できる中間証明書を手元に集めることができたので、これをプログラムから利用するにはどうしたらよいのか、ということを見ていく。 実験した…

Dockerfile をベースイメージの更新に自動で追従させる

前回のエントリで作った Docker イメージ motemen/datastore-emulator は、google/cloud-sdk をベースにしているが、このベースイメージがけっこうな頻度で更新される。とうぜん自分はその追従に手を煩わせる気はなくて、全部自動でやってほしい。 やりたか…

GitHub Actions から Cloud Datastore エミュレータを利用する

盆栽のテストを書くのに Cloud Datastore エミュレータ が必要になったので、GitHub Actions で利用してみた。 大きく分けて方法は2つある。 ジョブ中で明示的に gcloud beta emulators datastore start する setup-gcloud というアクションで gcloud コマン…

中間証明書のないサーバにアクセスする

不特定多数のウェブサイトにアクセスするアプリケーションを書いていると、ときおり SSL 証明書の検証エラーとなる URL に行き当たることがある。が、確認のためブラウザでアクセスしてみると、普通に見れてしまったりもする。そんな事例のひとつ、タイトル…

ghq など、github.com/motemen 下のリポジトリを x-motemen Org に移しています

もうけっこう前のことになりますが、github.com/motemen 下にあったリポジトリの一部を github.com/x-motemen organization に移管しました。コードやバイナリの配布形式によって、ユーザ側で対処する必要があったりなかったりしますが、それぞれのリポジト…

テキストを画面に流していくアプリをElectronで作った

この記事は、はてなエンジニア Advent Calendar 2019の12日目の記事です。 任意のテキストを画面に流していきたいことってありませんか? ぼくはあります。定期的にエンジニアみんなの前でスライドを映しつつ話す機会があって、そんなとき Slack で実況的に…

漢字スライダー

会社では基本的にすべての場でインターネットネームによる運用なんだけど、たまに戸籍ネームが必要になることがあって、そういう時、とても威圧感がある。威圧感はどこからやってくるの? それは漢字の画数の多さだと思う。その着眼のもと、漢字の画数をコン…

GitHub ActionsでRustプロジェクトをクロスビルドしてリリースする

前のエントリではバイナリを GitHub のリリースとして配布しているけれど、これは GitHub Actions でビルドとリリースのアップロードを行っている。いろいろ試行錯誤した結果なのでメモを残しておく。 ビルドに成功してからリリースを作成する、とした違いは…

ターミナルでSlackを読む

Slackはそのクライアントがそれなりに、かなりよくできていて、これでほとんど困ることはないんだけど、そうは言ってももうちょっとプログラマブルに取り扱いたいこともある。 そういう場合にもよいAPIが用意されていて、Real Time Messaging API ってのがあ…

curl でデータを逐次アップロードするには -T (--upload-file) を使う

最近知ってへーとなったのでメモ。標準入力から curl を通じてサーバにデータを送信したい場合、 curl --data-binary @- <url> というのがイディオムだと思うけど、この場合は標準入力から全部読みきってからサーバに接続・送信するので、データをストリーミング</url>…

ISUCON9予選敗退(H::W::A::Abyss::Abyss::Abyss) #isucon

ISUCON9 2日目結果と本選出場者決定のお知らせ : ISUCON公式Blog 日曜日に行われたISUCON9予選に参加し、敗退してきました。前掲の記事の「失格となったチーム」がわたしたちです。チームメンバーは id:t_kyt と id:mechairoi。 去年も予選敗退していて、最…

カレンダーでタスクを管理することとその実装

昔からタスクを次々こなしていくことはすごく苦手で、Todoist とか Remember The Milk とか Google タスクとか Hiveminder とか! を使ってみることはあってもタスクがどんどん溜まっていく一方で、一向に捌ける様子はなく、そういう状態を続けていると TODO…

Go の関数を context 対応するツール

Go

最初から完璧な設計と実装ができているなら苦労はないわけだけど、実際にはそうもいかない。具体的にはある程度の規模になってくると「あーこの関数 context.Context 対応したい!」みたいな気持ちが湧いてくるわけです。context 対応ってのは、第一引数に c…

めかぬか

ピタゴラスイッチの人気コーナー「めかぬか」をHTMLで作ってみた。 mekanuka 書き順つき SVG として KanjiVG というプロジェクトがあった。これのおかげで実現できてる。 SVGのパスをアニメーションで描く方法はなんか有名なのがあるらしい: How SVG Line An…

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リリースパーティー出ない?」と言われて安請け合いしたはいいものの、…

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