2022年12月25日日曜日

Install SSH Key v2.5.0を公開しました

 めりーくりすまーす🎅🎄🎂

クリスマスプレゼントだよー🎁🧦

というわけで、NASAとかJetBrainsとかAtlassianとか、意外といろいろな場所で使われているInstall SSH Keyの新バージョンがでました。

いろいろな場所で使われるのはとってもうれしいんですが、自動デプロイとかにも関係するツールなので、CIで一通りテストしているとはいえリリースのときは不安です。

2022年12月18日日曜日

TechFeed Expert Night #11に登壇します

 TechFeedという開発者向けのキュレーションサービスがあります。隔週でTechFeed Experts Nightというイベントをやっているのですが、なんと来年1月に開催予定のイベント#11に声がかかりました

TechFeedには「公認エキスパート」というものがあるんですが、公認でもエキスパートでもないワイをどっから見つけたんだ。。。

テーマとかはまだ非公開だと思うのであまり詳しいことは話せないのですがラベルでちょっとネタバレしてます。登壇者同士で話し合うアフタートークというのもあるので、公認エキスパートに囲まれて恥をかかないようにまあなんとかがんばります。

イベントが公開されたらもうちょっと詳しいことを書きます。

2022年12月11日日曜日

そろそろvalue-schema v4が出るよ

 注)まだ出てません。

入力値検証ライブラリーのvalue-schemaについて、そろそろv4の正式版が出そうなので予告です。

現時点の最新版はv4のRC2です。RC1については5月の記事をごらんください。以下ではRC1以降の変更点を解説します。

2022年12月4日日曜日

イーロン・マスクのTwitter騒動に学ぶコミュニケーション

イーロン・マスク(以下「イーロン」)のTwitter買収で色々てんやわんやになってますね。Androidアプリに対するツイートの間違いを指摘したエンジニアが解雇された事件は有名です。

この件に対しての世間の反応は解雇されたエンジニア(エリック・フローンホーファー;以下「エリック」)に対する同情というかイーロンに対する批判が多いような印象を受けます。「誤りを指摘されたイーロンがて逆ギレしてエリックを解雇した」と解釈している人も多いように見えます(個人の感想です)。

ただ、この件はエンジニアが非エンジニア(※)とコミュニケーションを取る時に大事なことが詰まっているように感じるので、どちらが正しいのかといった議論とは別の部分で取り上げてみます。エンジニアに限ったことではないのですが、エンジニアや開発者は特にやりがちな話です。

今回の解雇に正当性があるのかという話は法律の専門家ではないので触れません。

※イーロンもエンジニアだけどね!

2022年11月27日日曜日

JSConf JP 2022が開催されました

 昨日11/26に日本最大級のJavaScriptカンファレンスJSConf JPが開催されました。ここ数年運営を手伝っており、今年も去年と同じくトラックCの司会をやってきました。

セッションの内容とか感想とかは多分参加者のみなさんが詳しくブログに書いてくれると思うので、ここでは運営の裏話を。

2022年11月20日日曜日

偏差値のトリビア

なんやかんやでもうすぐ2022年も終わり。年が明けると恒例の受験シーズンです。どこの高校は偏差値がいくつだ、どこの大学はいくつだと学生の頃に偏差値に悩まされた人はとても多いと思います。現在学生の方は、まさに今悩まされているかもしれません。

ここで突然ですが偏差値に関するトリビアというか小ネタを紹介。

“100人がテストを受けて「99人が0点で1人が100点だったとき」と「99人が99点で1人が100点だったとき」では、100点を取った人の偏差値はどちらも同じ

大差があっても拮抗していても偏差値が同じというのは奇妙に見えるかもしれませんが、数学的にはどちらも同じです。これが現実です

よくよく考えればスケールファクターが違うだけなので当たり前といえば当たり前なんですが、直感的には納得しづらい方もいるかもしれません。というわけで解説します。

2022年11月13日日曜日

プロジェクト管理術(後編)

 前回の続きです。2部作のつもりでしたが予想外にスライドの枚数が多くて3部作になってしまいました。

例によって、前回の記事を見ていない方は先に前回をごらんください。いきなりこの記事を見ても意味がわからないと思います。

それでは続きをどうぞ。

2022年11月6日日曜日

プロジェクト管理術(中編)

 前回の続きです。スライドの画像を載せすぎたせいかブログの編集画面が重くなったので、2回に分けました。

前回の記事を見ていない方は先に前回をごらんください。いきなりこの記事を見ても意味がわからないと思います。

2022年10月30日日曜日

プロジェクト管理術(前編)

 先日社内の勉強会でプロジェクトマネージメントの発表をしたところ、その内容が記事として公開されました。

さくらのエンジニアがマネジメントの知見を共有してみた(前編)

最初の「さくらのIoTにおけるプロジェクト管理術」という偉そうな名前の発表がそれです。上記の記事ではダイジェスト版ですが、実際の発表はもっと長かったのでここで色々補足します。

2022年10月23日日曜日

Fleetが普通にダウンロードできるようになった

 以前にJetBrainsの新しいコードエディター・Fleetの記事を書きました。記事を書いた頃はまだ申請制だったのですが、最近ついに一般公開されました。

ダウンロードはこちらから。

2022年10月16日日曜日

Node.jsのワーカースレッド内でsharpを動かすときの注意点

 以前にNode.jsのワーカースレッドの話をしましたが、今回はこのワーカースレッドでエラーが出てハマった話です。

2022年10月9日日曜日

Dockerコンテナをgraceful shutdownするときの注意点

 前回はNode.jsプロセスのgraceful shutdownについて触れました。今回はそれの続きというか、Dockerコンテナで動かしているプロセスをgraceful shutdownするときの注意点です。

前提として、動かすプロセス自体はgraceful shutdownに対応しているものとします。つまりSIGTERMやSIGINTなどの終了シグナルを受け取ったらgraceful shutdownするように作られているものとします。やり方は前回の記事をご覧ください。

2022年10月2日日曜日

Node.jsサーバーのgraceful shutdownまとめ

 Node.jsでプロダクションレベルのサービスを開発している人にとっては今更感のある、ウェブサーバーをgraceful shutdownする方法について。調べれば色々出てくるんですが、日本語で体系的にまとまっているものが少ない気がしたので。

以下ではコード例をいくつか載せていますが、そのままnodeコマンド(Node.js v15以降)の引数として渡せば実行できます。package.jsonは不要です。Expressなどのhttp.Serverを継承したフレームワークでも同じように動かせるはずです。

2022年9月25日日曜日

Node.jsのワーカースレッドを使ってみた

 え、今更?

はい。めっちゃ今更です。存在は知っていたし使い方も知っていたんですが、今まで使う機会がなくて使っていませんでした。

で、このたび必要に迫られたので使ってみた・・・というわけではなく、そろそろただの知識だけじゃなくて実際に使ってみないとアカンよなぁという感じで使ってみただけです。使ってみたというより動かしてみたと言ったほうが正確かもしれません。

使い方に関しては検索すればいくらでも出てくるので、ここでは省略します。なにか参考になるものがほしい方はとりあえず公式ページをどうぞ。

2022年9月18日日曜日

Fleetを使ってみた

IntelliJ IDEAで有名なJetBrainsがFleetというコードエディターを作っている、という噂をだいぶ前に聞きました。IntelliJ IDEAはAndroid Studioのベースにもなっているので、間接的にお世話になっている人も多いんじゃないでしょうか。

Fleetは「IDE」ではなく「コードエディター」だそうです。正直いって厳密な違いがわかってないんですが、おそらくVisual Studio CodeみたいなもんだろうなというのはFleetのスクリーンショットから誰もが想像したと思います。

現時点ではまだ正式版リリースどころかベータ版の状態でもなく、申請制のパブリックプレビュー段階ということで去年の11月頃に申請してみました。そして先日ようやくプレビュー版のお知らせが届いたのでさっそく使ってみました。というかすっかり忘れていたよ。。。

2022年9月11日日曜日

Node学園 40時限目に参加しました

9月5日に久しぶりにNode学園に参加しました。40時限目です。学校の授業は多くても6時限目くらいまででしょうから、多分居残りで2徹か3徹くらいしてるイメージです。もはやブラック学校を遥かに通り越して漆黒の学校ですね。なんか中二っぽくてかっこいい。

今回はBunがメインテーマです。全然知りませんでした。いや、正確には以前になにかの記事でチラッと見た記憶があるんですが、完全にスルーしていました。

というわけでBunについて簡単にまとめてみます。

2022年9月4日日曜日

ペンクリニック初体験

 ペインクリニックではありません。別に体調が悪いわけではありません。ペンですペン。

かなり前に就職祝いで万年筆をもらいました。パーカーのソネット。万年筆ファンなら誰でも知っている、どこに出しても恥ずかしくない定番中の定番です。

・・・と偉そうなことを言っておきながら万年筆には全然詳しくないのでモデルまではわからないのですが、すでに廃盤になってしまったマーブル模様のタイプです。キャップにちょっとヒビが入ってしまったので補強のために透明なテープを巻いています。

今回の主役、パーカーのソネット(廃盤品)

コンピューター関連の仕事をしていて毎日のようにキーボードを叩いている現在でも「紙に書く」という習慣をつけさせてくれた大事な相棒なんですが、数ヶ月前から時々インクの出が悪く、字がかすれることがありました。

修理に出すにも当時の国内代理店を検索しても見当たらないし、そもそももう廃盤だしどうしたもんかなぁと思っていると、ペンクリニックというイベントが全国でちょいちょい開催されているという情報を入手しました。何でも、ペンドクターというかっこいい肩書を持った人が無料で万年筆をメンテしてくれるとか。何それ素敵やん。

関西ではいつあるんだろうと調べてみると、9月3日に大阪難波であるとのこと。ペンクリニックについて調べたのが8月30日。こんな直近であるとはまさに神の思し召し、というわけでさっそく行ってみました。

2022年8月28日日曜日

【超絶悲報】さようなら、恵方くん LINEbot

 毎年とある時期になったら定期的に投稿していますが、恵方くん LINEbotというLINEbotがあります。

毎年愛用している方も数多くいらっしゃると思いますが、このたびやんごとなき理由により終了することとしました。

終了時期は明確ではありませんが、おそらく11月以降になるかと思います。

2022年8月21日日曜日

スカウトメールの反面教師4選

 以前ビジネス系SNSのプロフィールにきのこたけのこトラップを仕掛けた話を書きました。あれから半年近く経ってスカウトメールも相変わらずちょいちょい来るんですが、これまでに受け取ったメールをちょっと分類してみました。

ちなみに以下のメールを送ってきた会社は、いずれも1社だけではありません。いかに適当な会社が多いことか

2022年8月14日日曜日

圧迫面接の功罪

 就活シーズンになるとちょいちょい話題になりますよね。圧迫面接。今でも一部の業界・業種では行われているところもあると聞きます。

今回は、採用側の経験(採用業務に携わっている経験)および被採用者側の経験(複数の会社を渡り歩いた経験)から、圧迫面接の功罪と、圧迫面接をする場合(会社側)の心構え、される側(応募者)の心構えを紹介します。

ちなみに自分は今まで圧迫面接をされた経験はありますが、した経験はありません。

2022年8月7日日曜日

特定のレコードだけ常に先頭or末尾に固定して残りをソートするSQL

 たとえばこんなテーブル構成&レコードを考えます。

id, name, age

このレコード、agenullのレコード(年齢情報が未入力の場合とでも考えてください)は常に先頭にして取得したい場合、どのようなSQLを書けばいいでしょうか。

※このテーブルはただの例です。「年齢は毎年変わるからDBのレコードに含めるのは適切じゃないぞ」というツッコミはよそでやってください。

2022年7月31日日曜日

8/4にCROSS PARTY online 2022 miniを開催します

表題のとおり、8/4(木)にオンライン版CROSS PARTYを開催します。

詳細

テーマは「Twitterスペース」です。Clubhouseが火付け役となった音声SNSについて、使いこなし方法とか可能性について語ります。

音声SNSを使ったことがないのにパネリストとして参加するという無謀な挑戦をしてみました。ヘタこいたらごめんなさいね。

今回は「mini」ということで、いつもの壮大な感じではなくサクッと開催してサクッと終わる感じを想定しています。本番は多分秋頃にやりますのでお楽しみに。

2022年7月24日日曜日

JavaScriptで配列をループ中に先頭要素を削除したらどうなるのっと

 先日の記事の関連記事です。

このコードを実行したらどんな出力になるでしょうか。

const values = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
for (const value of values) {
  console.log(value);

  // 先頭要素を1つ削除する
  values.shift();
}

  • 先頭要素を削除しようが、valueは配列の要素を1つずつ移動する。ただしループ回数は徐々に減っていくので最終的には元の要素数の半分になる。つまり1, 2, 3, 4, 5を出力
  • valueは配列の内容とインデックスによって決定される。インデックスはループごとに1つずつ増えるので、ループ内で先頭要素を削除した場合はvalueが1つ飛ばしで取得される。つまり1, 3, 5, 7, 9を出力

どちらももっともな意見に見えますが、あなたの答えはどちら(orそれ以外の答え)でしょうか。

ちなみに、先日の記事の内容を読んでECMA-262のArray Iteratorの仕様まで目を通した方なら答えられるはずです。

わからない方も、わかったけど答え合わせをしたい方も、こちらからご確認ください。

2022年7月17日日曜日

JANOG50 Meetingに参加しました

 7/13-15に、函館で開催されたJANOG50 Meetingに参加しました。久々のオフラインイベントです。JANOGに参加するのは今回が初めてで、会社のサービス宣伝と協業先を探すために参加してみました。

日本中のネットワーク関連企業が参加するカンファレンスで、インターネットが壊れたときは大抵この中のどこかが関連していると言っても過言ではないでしょう。

飛行機の都合で前泊&後泊したので、実質7/12-16の一週間近い出張でした。

2022年7月10日日曜日

JavaScriptで配列をループ中に要素を追加したらどうなるのっと

突然ですが、以下のJavaScriptコードを実行したら何が出力されるでしょうか。

const values = [1, 2, 3];
for (const value of values) {
  console.log(value);
}

はい、正解です。1, 2, 3の3つが出力されます。

では次のコードは?

const values = [1, 2, 3];
for (const value of values) {
  console.log(value);

  // 最初のループで配列に要素を追加
  if (value === 1) {
    values.push(4);
  }
}

というわけで、本日はECMAScriptの規格の話です。

2022年7月3日日曜日

GitHubからおこづかいをもらった

 先日、GitHubが「我々の整備士達よ、感謝する」というブログ記事を公開しました。要約すると「みんなに50万ドルあげちゃうよー」ということらしいです。ちょっと要約しすぎちゃったかもしれませんが。

ほー、ずいぶんと気前ええなぁ。ワシんとこにもちょっとでいいから分けてくれんかなぁと思ってGitHubにログインしてみると・・・


!!!!????

2022年6月26日日曜日

6/25にオープンソースカンファレンス2022 北海道に登壇しました

 先週の予告通り、Open Source Conference 2022 Online/Hokkaidoに登壇してきました。

タイトル通り割と砕けた感じで、IoT開発の難しいところとそれを新プロダクトがどのように解決するかを説明したつもりです。

2022年6月19日日曜日

6/25にオープンソースカンファレンス2022 北海道に登壇します

 来る6月25日、Open Source Conference 2022 Online/Hokkaidoが開催されます。

枠をもらってちょっとお話させてもらいます。

リンク先の通り、IoT開発についてのお話なんですが、まあだいたい会社の新プロダクトの紹介です。

あまり専門的になりすぎないようにIoT開発を完全に理解した人あたりがメインターゲットですが、「開発したことないけど概要くらいは知ってる」という人でも大丈夫です。たださすがに「IoTって何?」という人は聞いても理解できないと思います。

IoT開発に興味ある人はぜひ聞きに来てください。

「パワポってデザインどうしても汚くなるんだよなー」と思いながら発表スライドを作成して、とりあえず下書きレベルで作ったものを部署内のパワポマスターに渡したら、めっちゃキレイなスライドになって返ってきました。

単にこっちのデザインセンスないだけでした。パワポごめんね。君は悪くない。

2022年6月12日日曜日

通信プロトコルのトリビア

 セキュリティ・キャンプ2022全国大会の選考が先日締め切られました。若いエンジニアのみなさんは未来のIT業界を背負うべく、こういう場所でしっかり学んでいってください。

ワシはもう若くないからええんじゃ。

さて、応募課題の中でちょっとおもしろい問題があったので考察してみましょう。

2022年6月5日日曜日

冗長化されたルーター経由のpingが通らないことがある

 最近ハマったので記録を残しておきます。まあ例によって原因は単純なミスなんですが、例によって仰々しく書いてみます。。

図のようなネットワーク構成を想定してください。

  • 2つのネットワークがある
  • それぞれのネットワーク内にはサーバーがある
  • 2つのネットワークはルーターでつながっている
    • ルーターはVyOSを使っている
    • ルーターは2台あり、冗長化されている(片方が落ちても問題ない)

この状態でA→Bにpingを飛ばすとちゃんと返事が返ってくるのに、逆方向(B→A)は返ってこないという摩訶不思議な現象が発生していました。

補足として、firewalldやufw等のファイヤーウォールは特に入れておらず、ルーティングテーブルも適切に設定されています。

なお、これはクイズではないので、唯一の正解にたどり着く情報が与えられているわけではありません。ただし、よく読めば「ここが怪しいんじゃない?」とわかるヒントは入れてあります。

2022年5月29日日曜日

value-schema v4.0.0-rc.1をリリースしました

 前回の報告(v3.1.0)からしばらく時間が経ってしまいましたが、入力値バリデーターvalue-schemaがメジャーバージョンアップしました。といっても便利機能が追加されたというわけではなく、一身上の都合でバージョンを上げざるを得なかったというのが正解です。

不具合修正等があるわけではないので、今までv3を使っていた方はそのまま使い続けても問題ありません。

2022年5月22日日曜日

会議が長引くとお嘆きのあなたへ

 会議のコントロールは難しく、なかなか時間通り終わらないこともあります。特にリモートワークの職場では、「会議室がこの時間までしか使えない」とか「後が閊えている」ということもないので「ちょっとくらい長引いてもいいや」みたいな心理が働くこともあります。

長引く会議というものはだいたいパターンが決まっているので、いくつかの点に注意すればかなりの確度で時間内で終わらせることができるようになります。特に進行役を務めるときはここに書いてあることを心がけてみてください。

2022年5月15日日曜日

SoftBankコールセンターに学ぶUX改善

 突然ですが、コールセンターってだいたい繋がりにくいじゃないですか。何分も待たされてイライラすることはよくあると思います。

限られた人数でたくさんの電話に対応しないといけないし、用件によっては時間もかかるし、コロナ事情で出勤する人の数を減らしている場合もあるし、事情はわかります。

さて、あなたがこんな状況で「UXを改善しろ」と言われたらどうしますか?

2022年5月8日日曜日

母の日のプレゼント

 本日5月8日は母の日。お母さんへ日頃の感謝を込めて素敵なプレゼントを贈りましょう。

え?何を贈ればいいかわからない?仕方ないなぁ・・・そんな人にピッタリの贈り物を用意しました。

2022年5月1日日曜日

ソフトウェアのバージョン番号について

 ソフトウェアのバージョン番号ってみんな好き勝手につけるじゃないですか。

番号のつけ方にどういうものがあったっけーとふと思って、有名なやつをちょっと調べてみました。新しいネタやためになりそうな考察は特に何もありません。

2022年4月24日日曜日

マニュアルには「文章」を書くな

 今回はマニュアルの書き方についてのお話です。

マニュアルの書き方って難しいですよね。何が難しいかって、「製品のことをよく知っている人が、何も知らない人にもわかるように書かないといけない」ということです。つい専門用語を使ってしまうこともあります。

今回は、マニュアルを書くときに気をつけるべきことについてです。

2022年4月17日日曜日

キーボードカバーはシリコンゴム製を使え

 みなさんキーボードカバー使ってますか?気をつけて使っているつもりでもホコリが入ってしまうとかでカバーを使う人もいるかと思います。

そこで今回の話ですが、まあタイトルで既にネタバレしてるんですがカバーそのものではなくて素材の話です。もうちょっと正確に言うと

「(ノートPCの)キーボードカバーは(ウレタンゴムより)シリコンゴム製を使え」

です。

2022年4月10日日曜日

Chrome OS Flexを試してみた

 以前、Google Chrome OSを普通のPCで使えるChrome OS Flexが出たという話を耳にしました。我が家にも使わなくなったPCが何台かあるので、Chrome OS初体験も兼ねてちょっと試してみることに。

2022年4月3日日曜日

新卒一括採用の意義

 4月です。慣れないスーツを着た初々しい新社会人を街でよく見かける時期だと思うんですが、こちとらリモートワークで篭りっきりで新社会人なんて誰一人見ていません。

さて、去年経団連から発表があったとおり、(経団連加盟企業の)新卒一括採用が廃止されました。一括採用は世間では批判されることもありますし、事実今回廃止されたのはデメリットが多いということなのでしょうが、逆に言えば今まではメリットが多かったから行われていたということで。

是非は一旦置いておいて、今回は「新卒一括採用のメリット」をまとめてみました。賛同も批判も事情を知ってから。

2022年3月27日日曜日

MORISAWA BIZ UD ゴシック/明朝のGentooパッケージを作ってみた

 モリサワからMORISAWA BIZ+ 無償版(BIZ UDゴシック・BIZ UD明朝)がオープンソースで公開されたとのニュースを聞きました。Linuxで自由に使える日本語フォントはあまり多くないので、こういう動きはとてもありがたいですね。

別にフォントが大好物というわけではないんですが、少しでもLinuxの世界を使いやすくするために、さっそくGentoo用のパッケージを作ってみました。

しばらくデスクトップのフォントを変えてニヤニヤしていたんですが、やっぱりデスクトップでは今まで使っていたNoto Sans Gothicを使うことにしました。印刷用の文書作成とかのピンポイントで使う場面はありそうです。

2022年3月20日日曜日

パスワードを意図的にハッシュ化しないケースについて

ちょうど1ヶ月前にパスワードの制限が厳しいとハッシュ化していない可能性が高い理由についての記事を書きました。

そして先日携帯キャリアがパスワードを平分のまま保存しているというニュースが流れました。

今回はTwitterから広がったみたいですけど、ぶっちゃけ今更だよね?・・・というツッコミは置いといて、本件について勝手にコメンテーターになってみます。

2022年3月13日日曜日

CodeのGentoo用パッケージを作ってみた

Codeというソースコードエディターがあります。Visual Studio Codeや、そのOSS版 Code - OSS のことではありません。

elementary OSに付属しているエディターです。なんとまぎらわしい

elementary OS自体知らない人も多いかもしれませんが、UbuntuベースでmacOSっぽい見た目のOSです。

このCodeはVSCodeのようにElectronベースではなく、Vala言語で書かれてネイティブコードにコンパイルされるエディターです。あまり有名じゃないためなのかelementary OS用に書かれたためなのかわかりませんが、Gentoo Linux用のパッケージがなかったのでオレオレリポジトリーに追加してみました。

パッケージ名はapp-editors/codeです。

2022年3月6日日曜日

ビジネス向けSNSのプロフィールを更新した

 ふーん、あっそ

と言われそうなタイトルですが、記事にしたのは理由があります。

2022年2月27日日曜日

JavaScriptで予約語を使わないワンライナーFizzBuzz

今回はただのネタです。

Code Golfとは別方向の趣向で、予約語を使わないFizzBuzzの実装です。

Array(100).fill(0).map((_,i)=>console.log(++i%15?i%5?i%3?i:"Fizz":"Buzz":"FizzBuzz"))

これでもまだわかりやすい部類の書き方だと思うので、わかりやすさを犠牲にすれば多分もっと文字数は減らせます。

他の言語ではどうなるんだろう。CとかJavaみたいに絶対に実現できない言語もあるけど。

プログラミングスクール生のみなさん、FizzBuzzの課題を出されたらこれを提出してもいいですよ

2022年2月20日日曜日

パスワードの制限が厳しいとハッシュ化していない可能性が高い理由

以前、イライラするパスワード登録画面5選という記事でこんな趣旨のことを書きました。

パスワードが「8文字以上16文字以下で入力してください」とか「英数字で入力してください」のように制限が厳しいサービスは、パスワードをハッシュ化せずにそのままDBに保存している可能性が高い

生パスワードをそのまま保存する危険性については言わずもがなですが、上記の内容について先日「なんで?」という質問を受けたので、この場でも書いておきます。

2022年2月13日日曜日

ヤバいエラーには早く気づきたい

みなさん、作ったウェブサービスが吐いているログをちゃんと確認していますか?

サービス監視、ログファイルの出力と集約の設定はやった。でもログの監視をしていなくて、ヤバいエラーが出ていたのに気づかずにユーザーから問い合わせが来て初めて知った・・・みたいなことは割とあるあるです。

これをなんとかした話。とは言っても別に画期的な方法とかではありません。

2022年2月6日日曜日

JavaScriptで非同期処理のawaitつけ忘れを防ぐ

 JavaScriptでバックエンド開発していると非同期処理を使うことが多いですよね。

そこで問題になるのがasync関数に対するawaitのつけ忘れ。まだasync/awaitが使えなくてPromiseオブジェクトに対してthen()catch()をしていた頃ならすぐ気づいたんですが、単に関数呼び出しにawaitをつけるだけというのは便利な反面忘れやすいです。よくやらかします。

JavaScriptは実行するまでPromiseオブジェクトかどうかわからないからESLintじゃ検出できないよなぁ。TypeScript ESLintならできるんかなぁと思いながらルールを探したらありました。

2022年1月30日日曜日

Linuxカーネルを更新したらタッチパッドが使えなくなった

 今まではGentoo Linuxで5.10系のカーネルを使っていたんですが、ちょっと前に5.15系に上げたら急にタッチパッドが使えなくなりました。

そのせいでしばらく5.10系に戻して使っていたんですが、さすがにいつまでもバージョンアップしないわけにはいかないよなぁ・・・と思って原因を調べたところ、原因は意外とあっさり見つかりました。

原因はこちら

どうやら5.12で設定が分割されて、新しいCONFIG_I2C_HID_ACPIモジュールがデフォルトでオフになっていたようです。

こいつをオンにして再ビルドをかけたら無事タッチパッドが使えるようになりました。めでたしめでたし。


2022年1月23日日曜日

アプリケーションは300系リダイレクトするけどクライアントは実体を受け取れるようにする方法

 ウェブサービスを作っていると、大きなファイルを認証付きでダウンロードさせたいけど、ダウンロード処理自体はアプリケーションサーバーを経由したくない場合があります。

それだけならアプリケーションサーバーから300系のリダイレクトを使えばいいんですが、クライアント側に実体のURLを知られたくない場合もあります。

例えばこんな状況。

  • ECサイトでダウンロード商品を扱っていて、ダウンロードファイル自体はアプリケーションサーバーとは別のサーバーにある
  • 商品を購入済みの人にだけダウンロードを許可したいので、商品購入済みかどうかをダウンロード前にアプリケーション側でチェックしたい
  • でもダウンロード処理自体にはアプリケーションサーバーを経由したくない(例えば、ダウンロードのためにPHPのreadfile()とかで別サーバーのファイルを読みたくない)
  • かといってアプリケーションサーバーから300系リダイレクトをするとクライアントにファイルの実体のURLが知られてしまうので、リダイレクトはやりたくない(S3の署名付きURLのような上等なものは使えない)
つまり「ダウンロード要求をアプリケーションが受けるけど、アプリケーションからは実体を返したくない。でもクライアントには実体を届けたい」という困ったちゃんな要望。

2022年1月16日日曜日

イライラするパスワード登録画面5選

 世の中には色々なウェブサービスがあるわけですが、特にパスワード登録に関してはひどいUIが本当に多いです。

以下に挙げるものは、全て今までに遭遇した実際にあるウェブサービスのパスワード登録画面です。

2022年1月9日日曜日

6時間歩いて靭帯を痛めた

新年早々のドジというか、昨年最後のドジの話です。

某位置ゲーで、1日に3万歩歩くとはぐれメタルが出るということで大晦日の昼頃から歩き始めました。自分のペースだと、だいたい2時間で1万歩くらいなので3万歩を達成するためには6時間ほど必要です。普段バスや車を使うルートをひたすら歩いていったんですが、特に目的地もなく歩くこと自体が目的でひたすら歩くのは精神的にもきついです。

4時間ほど経過した頃、足の親指の付け根付近に水ぶくれができてそのまま歩くのがしんどくなってきました。3万歩を諦めてバスで家まで帰ろうとも思いましたが、運悪くバスが通らない場所だったたので、水ぶくれの部分が靴に触れないように足の外側に体重をかけた状態で残りの2時間を歩きました

そんなこんなでどうにか帰宅したんですが、家に帰ってからは足が捻挫したような痛みが激しくなりました。そりゃ2時間もあんな体勢で歩けば無理もない。

多分一時的なものだから明日には治ってるだろうと思って2022年を迎えましたが一向に治らず。正月明けに病院に行って、靭帯損傷の診断を受けました。しばらく家で安静にする生活です。

なお、家についた頃には3万歩にわずかに及ばず、しばらく家の周りをウロウロするという不審者ムーブを繰り返した結果、はぐれメタルを無事にゲットしました。

2022年1月2日日曜日

ウェブサービスをモノレポ化しようとして諦めた話

 あけましておめでとうございます。

現在技術アドバイザーとして参画している会社が提供しているウェブサービスは、いわゆるSPA構成でフロントエンドとバックエンドを完全に(リポジトリー単位で)分離しています。

新年一発目は、そんな分離されたサービスをモノレポ化しようといろいろ画策して最終的に諦めた話です。