詩と創作・思索のひろば

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

Fork me on GitHub

シンプルに運用できるかっこいいスコアカード!

人間は数字が増えていくことに純粋な喜びを感じるところがあるようですが、この性質を利用して子供にやる気を出させることはできないかと、バーチャルなスコアカード(ポイントカード)を作ってみた。イメージはDuolingo的なゲーミフィケーション。 実際に動…

DELE A1に合格した

Geoguessrで強くなりたかった(最近やってないが)のと、あとラテンアメリカ文学が好きで読んでたことがあったのと、ほかにもいろいろタイミングがあって、去年からスペイン語の勉強をはじめていた。途中のマイルストーンとしてDELE A1に合格したので記録。 …

Apache BeamでSlackのエクスポートデータをBigQueryに投入する

同じことをEmbulkでやったネタはこちらです: SlackのログをBigQueryにインポートする(手動) - 詩と創作・思索のひろば Slackワークスペースの管理者であれば、ワークスペースのデータをエクスポートできる。このデータをBigQueryに投入したら面白いかもし…

Angband(4.x系)を日本語化している話

こんにちは。この記事ははてなエンジニアAdvent Calendarの24日目の記事です。昨日はid:todays_mitsuiさん、明日はid:d-haruさんです。いいタイミングで風邪を引いてしまったので、今年も趣味の話です。 ローグライクといえば最近は定義がけっこう広がってき…

Goのテンプレートを静的型チェックする

Goでちょっとしたウェブアプリケーションを書く際、依存を減らしたい気持ちでGoのhtml/templateを使う場面もないわけではない。とはいえ、HTMLを組み立てるのも最近はReact/TypeScriptに慣れきってしまっているので、実行してみるまでテンプレートが正しいか…

ISUCON13に参戦した(カラアゲネイティブ、105,751点、15位) #isucon

追記: 15位でした ISUCON13 まとめ もう何度目か忘れたけど、チーム「カラアゲネイティブ」(Songmu、toricls)でISUON13に参戦。 リポジトリはこちら。 GitHub - motemen/isucon13 toriclsくんが午前中不在であることがわかっていたので、開始前に集まってG…

思い出の本 - Win32 APIオフィシャルリファレンス

あなたのキャリアに影響を与えた本は何ですか? 著名エンジニアの方々に聞いてみた【第三弾】 - Findy Engineer Lab - ファインディエンジニアラボ 寄稿しました。これを書くにあたって、なにか思い出に残ってる本はあるかなー、と考えて最初に思いついたの…

Scrapboxで今週をハイライト

仕事でもプライベートでも週ごとにテンポを作って暮らしているので週番号で暮らしがち。 しかし今が2023年の何週目かっていうのはまったくわからんので、ScrapboxのUserScriptでなんとかしている。 ./2023W46 などへのリンクをハイライトするかたち。 これを…

uConsole Kit R-01を手に入れた

組み立て式のミニパソコン? ことuConsoleが注文したことすら忘れていたころに届いた。今年の1月に注文していたらしいので9ヶ月ほどかかっていた模様。ちゃんと届いたのでよかった。 組み立て時の注意などは https://raspida.com/get-uconsole が参考になる…

0.9999.toLocaleString() => '1'

0.9.toLocaleString() // => '0.9' 0.99.toLocaleString() // => '0.99' 0.999.toLocaleString() // => '0.999' 0.9999.toLocaleString() // => '1' ちょっと驚いたので調べた。 Number.prototype.toLocaleString() - JavaScript | MDN Intl.NumberFormat AP…

Gitでマージ済みのブランチを一括削除する

こうしてます。 git for-each-ref --merged HEAD --no-contains HEAD 'refs/heads/**' --format '%(refname)' \ | while read s; do echo "$s $(git rev-parse "$s")"; git update-ref -d "$s"; done git branch を使ったやり方が一般的なようだが(Google調…

Goのテーブル駆動テストではテストケースの定義位置を知りたいのでライブラリを書いた

Go言語でテストを書く際のベストプラクティスとして、テーブル駆動テスト(Table dirven tests) というのが推奨されている。ようはデータとふるまいを分離しましょうという話で、正直わざわざ名前をつけるようなものでもなかろうという気持ちもないではない…

Vimmer、Visual Studio Codeを使う

まだ汚れを知らない若者だったころに「プログラムはね、これを使って書くんだよ」と言われて以来Vimは友達だと思ってずっと(15年くらい)使ってきたが、最近は、とくに新しく何かを書くときにはVSCodeを使うようになってきた。コードを書く間隔が広がってき…

7sProキーボードを組み立てた

meishi2キーボードを作ったのち2年ほどかけてErgoDashを完成させたのだけど、使ってみるとめちゃくちゃ使いづらく、Column Staggeredなレイアウトは自分に合わないということがわかった。検分してみるとQを薬指で打っていたりと、指使いの癖があるらしい。わ…

C/C++のコードを静的解析する(clang-tidyのカスタムチェック)

C/C++のソースコードに対して、独自のlintを行いたくなるシチュエーションもときどき発生しますね。 この問題については、現代ではClangにLibToolingというライブラリがある。これによって、Clangの資産を使ったC/C++の静的解析・リファクタリングツールを作…

リーダーシップについて

リーダーシップというと、カリスマ的な魅力をそなえた人物が輝かしいビジョンを指し示し、大衆を率いていく……というドラマチックな光景を思い描いてしまうものだが、実地で求められるリーダーシップとはそういうもの(だけ)ではない。というか、そうであっ…

漢字のラストN画クイズを作った

正式名称をなんというのかわからないが! 「二字熟語のそれぞれの漢字の最後のN画だけ描かれたものから元の熟語を当てるクイズ」です。 たとえばこういう問題。使用している漢字は小学一年生レベルです。 ⼉二 答えは…… 先日 簡単ですね! というウェブアプ…

2022年、毎週ブログを書いた

ハッピーホリデー! これははてなエンジニアアドベントカレンダー2022の 25 日目の記事です。昨日は id:yutailang0119 の WEB+DB PRESS Vol.132 特集2 「iOS 16最前線」に寄稿しました #wdpress でした。海賊スタイル、いい命名ですね。 さて掲題の通り、2022…

2022年に作ったもの16(セルフレビューあり)

2015年にも同じ趣旨の記事を書いていた。このときはこんな感じで毎年20個くらいはなんか作るんだろうなとかイノセントに考えていたけど、そうは問屋が卸さず、大して生み出せてない年が続いてきたが、今年はそれなりに作ったんじゃない? と思えたので、振り…

HuggingFace Transformers を AWS Lambda で動かすサンプル

前の記事 の最後に載せていたライブデモは AWS Lambda にデプロイしていた。公式の解説記事(Hosting Hugging Face models on AWS Lambda for serverless inference | AWS Compute Blog)だとモデルを EFS にキャッシュさせることになっているけれど、Docker…

ポケモンタイプ相性チェッカをSvelteで作り直した

タイプ相性チェッカとは昔作ったこれ。 ポケモンタイプ相性チェッカ(SV対応) なのだけど前回の記事が2014年で大昔だった。このあととくにメンテもせず、「サンムーン対応」、「剣盾対応」……などと新タイトルにあわせて title タグだけ更新する日々を送って…

GPT-2でブログ記事のタイトルをTogetterまとめ風にする「面白いのでやってみて」

オレ定義だけど Togetter まとめ風というのはこういうやつ。 散歩で急にシロクマと会っても食べるのは肉だけにしたほうがいい「肝臓1gに含まれるビタミンAが致死量を超える」 - Togetter まとめタイトルの終わりに誰かのツイートの引用を挿入する、という形…

自作したRISC-V向けCコンパイラでセルフホストまでこぎつけた

低レイヤを知りたい人のためのCコンパイラ作成入門 まさに低レイヤのことが分かっておらず、以前から気になっていたこの本。取り掛かってみたところ思いのほかスイスイ進められて、勢いに乗ってセルフホスト(自分が書いたコンパイラで自分自身をコンパイル…

Chrome仕事術

いろいろ工夫した結果、最近 Chrome さばきが良くなってきた気がするので、やっていることを書いておく。 タブが必要になる時刻でグループ化しておく 忙しい一日の予定を立てる際に、あらかじめ必要な資料・会場をタブで開いて時刻を打っておくと便利。終わ…

今年の進捗プログレスバーSVG

個人的に一年の様子を Scrapbox に書いているのだけど、今年もけっこう終わりに近づいたなってことを視覚的に知りたいので SVG でプログレスバーを提供することにした( /daiiz/今日 のような感じ )。以下のような感じで今年の進捗が見えてくる。@year_prog…

Baba Is You をクリアした

追加レベルパックはまだですが……。ルール改変型倉庫番パズルの Baba Is You の全ステージをクリアした。一晩やっても進捗がでない日もある、非常に難しいパズルだった。買ってからいちおうのエンディング(スタッフロールを見る)まで休み休み1年、そこから…

コードレビューのときに見ているところ

あるときコードレビューするときにどういうところ見てるんですか? と訊かれてたしかに自分でもあまり言語化したことはなかったな、と気づいたので簡単に書いておく。 変更意図が要求に沿っているか そもそも実現しようとしていることが、ユーザやプロダクト…

gotest.tools でテストスナップショットをインラインに記録する

テキストや何らかのデータ構造(プログラムを含む)を生成するタイプのコードを書いているときはスナップショットテストが便利で、 とりあえず一度スナップショットを生成してみる 生成されたものを人間が検分する 以降はスナップショットが壊れないように・…

SlackのログをBigQueryにインポートする(手動)

Admin 限定技だけど、Slack にはデータのエクスポートという機能があって、ワークスペースのパブリックチャンネルの会話データを zip でダウンロードすることができる。これがまあまあ便利な代物で、通常なら API を叩きまくらないと得られない諸々の情報を…

graph-gophers/dataloaderはv7でgenericsに対応している

GraphQL における N+1 問題の解決の機構として Dataloder と呼ばれるものがあるが、Go でこれを行うときは gqlgen + graph-gophers/dataloader という組み合わせがよく使われるようだ。後者は gqlgen の公式ドキュメントからも参照されているので、gqlgen を…

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