2020年も残すところあと数日。みなさんにとって2020年はどんな1年でしたか?
やっぱり一番印象に残るのは新型コロナウィルスでしょうか。コロナの影響で世界中が大混乱ですが、プライベートでもいくつか大きなイベントがありました。
2020年も残すところあと数日。みなさんにとって2020年はどんな1年でしたか?
やっぱり一番印象に残るのは新型コロナウィルスでしょうか。コロナの影響で世界中が大混乱ですが、プライベートでもいくつか大きなイベントがありました。
諸事情により、SoftBank/DoCoMo/KDDIマルチキャリア対応のSIMをPCに挿してネットワーク通信をしたいという欲求に駆られました。
というわけでSIMを挿せるUSBドングルを探したらPIXELAのPIX-MT100というドングルを見つけました。これをLinuxで使うためのメモです。
数ヶ月リリース候補版で引っ張りまくったパラメーター検証ライブラリー、value-schemaの正式版がようやくリリースされました。
詳しい使い方はQiitaに書いていますが、これまでと基本的に変わっていません。
Deno用のインポートパスは https://deno.land/x/value_schema@v3.0.0/mod.ts です。Qiitaの記事も意外とLGTMがついているので、Node.js / Denoを使っているみなさんはぜひ使ってみてください。
ウェブサービスを開発していると、集計とか課金とかでバッチ処理を行いたい場合が出てきます。
バッチ処理は冗長化のために複数のホストマシンに起動設定しているけど、実行はどれか1つだけで行いたいという場合もあると思いますが、その方法をいろいろ調べてみました。
まあ今さらかよって話ですが。
このブログはGoogleのBloggerを使っていますが、ソースコードを書きづらいのでMarkdownベースのブログシステムに移行したいと思っています。
静的サイトジェネレーター含めて使いやすいものを探し中。
デザインセンスが皆無なので、デフォルトで素敵なデザインを使えるものがいいですね。
先日、株式会社Lean on Meの外部技術顧問になったという記事を書きました。ここの会社ではエンジニア採用や採用後の1on1などの業務も行っています。
以前にもエンジニア採用についての記事を書きましたが、今回はちょっと趣向を変えて面接官がやってはいけないことを書いてみます。
一応言っておきますが、詐欺とか殺人とかの面接官じゃなくてもやってはいけないやつじゃないですよ。んなこと言わなくてもわかってますよね。
障碍者支援のeラーニングシステムSpecial Learningを開発している株式会社Lean on Meの外部技術顧問になりました。開発もやりつつエンジニア採用や育成、開発部の組織づくりなどをお手伝いします。
テクニカルアドバイザーと技術顧問のどっちを名乗ろうか悩んだんですが、後者のほうがなんかドスが利いていそうなのでこちらを名乗ります。
CROSSというイベントがあります。
毎年、横浜の大さん橋で開かれている1000人規模のオフラインイベントですが、今年は流石にオフラインというわけにはいかずオンラインで開催しました。
その運営スタッフとしてなんやかんややってきました。
ウェブサービスの経営陣には、新しい機能を開発してナンボという意識があるんじゃないでしょうか(※個人の感想です)。
まあ間違ってはいないんですよ。ウェブサービスは流行り廃りが激しく、世間で騒がれているサービスが翌年には閑古鳥が鳴いているという状態も珍しくありません。そんな中で生き残るには、便利な機能を次々と発表していくのも戦略です。
が、それと同じくらい、いやそれ以上に安定稼働させることが重要です。
先々月、PCを新調したときに「スペック的にはKDEの2つや3つ余裕で動かせる」と書きました。
完全にKDEは重いという先入観からの発言だったんですが、最近のKDE Plasmaはめっちゃがんばってるらしいですね。場合によってはXfceよりも消費メモリが少ない場合もあるとか。いやー古い知識で語ってしまい申し訳ない。
でもCPUリソースはXfceよりかなり消費するみたいです。
今度マシンをクリーンインストールするときがあったらKDEも候補に入れようかなと思いました。
あと古い知識で語ると老害扱いされるので気をつけなきゃなぁ。
…という記事をさくらのナレッジに寄稿しました。その1はコールバック編です。
非同期処理でつまづくプログラマーが多い中、いかにPromiseをわかりやすく説明しようかと考えた結果、Promiseを実装しちゃえという結論に達しました。
Promiseの実装例としてはbluebirdとかcore-jsとかpromisejs.orgなんかが有名ですが、これらはES2015へ準拠している代わりに内部で細かな調整を行っているため初学者が読んでスラスラと理解できるものではありません。
そこで、厳密に準拠しない代わりに最小限のコードのみで実装したオレオレPromiseを作り、さらに初学者にも理解しやすいように実装の過程をコミットログに残してみました。
もうちょっと正確に説明すると、
-r
でモジュールを指定している
こういう条件が重なったときに "Cannot find module"
というエラーが出てプロセスを起動できないことがあります。2番目の条件は必須かどうかわかりません。
なんのことかと言うと、https://github.com/shimataroとかhttps://twitter.com/shimataro999みたいなURL構造のことです。Facebookもそんな感じですね。
ぶっちゃけ、よくそんな無茶苦茶な構造を技術リーダーが許したな、というのが正直な感想なんですが、みなさんはどうでしょうか。
Gentoo LinuxでVPNを繋ぐときにちょっとハマったので、忘れないようにメモ。
以前(一年以上前)からこの問題には気づいていたのですが、それまではGentooでVPN接続をする切実な理由が特になかったので放置していました。
要するに今は切実な理由があるということです。
今、仕事でウェブサービスの信頼性向上のためにいろいろやってます。
もう少し具体的に言うと、サービスの障害にいかに対応していくかという点です。タイトルに「ウェブサービスの」と書きましたが、別にウェブサービスに限った話ではありません。もっと一般的な(IT以外の分野にも)言えることですが、仕事柄ウェブサービスに多く関わっているのでこう表現します。
今回は、障害対応関連について現在取り組んでいることをツラツラと書いていきます。とは言っても、きちんと対応している人・組織にとっては別に目新しい内容は何もありません。目からウロコが落ちるようなことも多分ありません。
そのへんを踏まえてお読みください。
さくらインターネットが主催する「さくらの夕べ Tech Night #2 Online」というイベントに登壇してきました。ゆうべはおたのしみでした。
オンラインで登壇するのは初めてなので、オフラインより逆に緊張しました。オーディエンスに圧倒されなくて済むはずなのに。
$ git commit error: gpg failed to sign the data fatal: failed to write commit object
gpg --list-keys
を実行してみたら鍵の有効期限がちょうど切れていました。
npm install
のような下準備もpackage.json
のようなメタファイルも何もなく、ソースファイルをコピペするだけでそのまま動かせるのが手軽ですね。
朝起きて「11時に出勤します」とメールするだけここまで簡単ではなくなりました。
- uses: actions/checkout@v2.0.0のようにタグ名を指定します。