めりーくりすまーす🎅🎄🎂
クリスマスプレゼントだよー🎁🧦
というわけで、NASAとかJetBrainsとかAtlassianとか、意外といろいろな場所で使われているInstall SSH Keyの新バージョンがでました。
いろいろな場所で使われるのはとってもうれしいんですが、自動デプロイとかにも関係するツールなので、CIで一通りテストしているとはいえリリースのときは不安です。
めりーくりすまーす🎅🎄🎂
クリスマスプレゼントだよー🎁🧦
というわけで、NASAとかJetBrainsとかAtlassianとか、意外といろいろな場所で使われているInstall SSH Keyの新バージョンがでました。
いろいろな場所で使われるのはとってもうれしいんですが、自動デプロイとかにも関係するツールなので、CIで一通りテストしているとはいえリリースのときは不安です。
TechFeedという開発者向けのキュレーションサービスがあります。隔週でTechFeed Experts Nightというイベントをやっているのですが、なんと来年1月に開催予定のイベント#11に声がかかりました!
TechFeedには「公認エキスパート」というものがあるんですが、公認でもエキスパートでもないワイをどっから見つけたんだ。。。
テーマとかはまだ非公開だと思うのであまり詳しいことは話せないのですがラベルでちょっとネタバレしてます。登壇者同士で話し合うアフタートークというのもあるので、公認エキスパートに囲まれて恥をかかないようにまあなんとかがんばります。
イベントが公開されたらもうちょっと詳しいことを書きます。
注)まだ出てません。
入力値検証ライブラリーのvalue-schemaについて、そろそろv4の正式版が出そうなので予告です。
現時点の最新版はv4のRC2です。RC1については5月の記事をごらんください。以下ではRC1以降の変更点を解説します。
イーロン・マスク(以下「イーロン」)のTwitter買収で色々てんやわんやになってますね。Androidアプリに対するツイートの間違いを指摘したエンジニアが解雇された事件は有名です。
この件に対しての世間の反応は解雇されたエンジニア(エリック・フローンホーファー;以下「エリック」)に対する同情というかイーロンに対する批判が多いような印象を受けます。「誤りを指摘されたイーロンがて逆ギレしてエリックを解雇した」と解釈している人も多いように見えます(個人の感想です)。
ただ、この件はエンジニアが非エンジニア(※)とコミュニケーションを取る時に大事なことが詰まっているように感じるので、どちらが正しいのかといった議論とは別の部分で取り上げてみます。エンジニアに限ったことではないのですが、エンジニアや開発者は特にやりがちな話です。
今回の解雇に正当性があるのかという話は法律の専門家ではないので触れません。
※イーロンもエンジニアだけどね!
昨日11/26に日本最大級のJavaScriptカンファレンスJSConf JPが開催されました。ここ数年運営を手伝っており、今年も去年と同じくトラックCの司会をやってきました。
セッションの内容とか感想とかは多分参加者のみなさんが詳しくブログに書いてくれると思うので、ここでは運営の裏話を。
なんやかんやでもうすぐ2022年も終わり。年が明けると恒例の受験シーズンです。どこの高校は偏差値がいくつだ、どこの大学はいくつだと学生の頃に偏差値に悩まされた人はとても多いと思います。現在学生の方は、まさに今悩まされているかもしれません。
ここで突然ですが偏差値に関するトリビアというか小ネタを紹介。
“100人がテストを受けて「99人が0点で1人が100点だったとき」と「99人が99点で1人が100点だったとき」では、100点を取った人の偏差値はどちらも同じ”
大差があっても拮抗していても偏差値が同じというのは奇妙に見えるかもしれませんが、数学的にはどちらも同じです。これが現実です。
よくよく考えればスケールファクターが違うだけなので当たり前といえば当たり前なんですが、直感的には納得しづらい方もいるかもしれません。というわけで解説します。
前回の続きです。2部作のつもりでしたが予想外にスライドの枚数が多くて3部作になってしまいました。
例によって、前回の記事を見ていない方は先に前回をごらんください。いきなりこの記事を見ても意味がわからないと思います。
それでは続きをどうぞ。
前回の続きです。スライドの画像を載せすぎたせいかブログの編集画面が重くなったので、2回に分けました。
前回の記事を見ていない方は先に前回をごらんください。いきなりこの記事を見ても意味がわからないと思います。
先日社内の勉強会でプロジェクトマネージメントの発表をしたところ、その内容が記事として公開されました。
さくらのエンジニアがマネジメントの知見を共有してみた(前編)
最初の「さくらのIoTにおけるプロジェクト管理術」という偉そうな名前の発表がそれです。上記の記事ではダイジェスト版ですが、実際の発表はもっと長かったのでここで色々補足します。
Node.jsでプロダクションレベルのサービスを開発している人にとっては今更感のある、ウェブサーバーをgraceful shutdownする方法について。調べれば色々出てくるんですが、日本語で体系的にまとまっているものが少ない気がしたので。
以下ではコード例をいくつか載せていますが、そのままnode
コマンド(Node.js
v15以降)の引数として渡せば実行できます。package.json
は不要です。Expressなどのhttp.Server
を継承したフレームワークでも同じように動かせるはずです。
え、今更?
はい。めっちゃ今更です。存在は知っていたし使い方も知っていたんですが、今まで使う機会がなくて使っていませんでした。
で、このたび必要に迫られたので使ってみた・・・というわけではなく、そろそろただの知識だけじゃなくて実際に使ってみないとアカンよなぁという感じで使ってみただけです。使ってみたというより動かしてみたと言ったほうが正確かもしれません。
使い方に関しては検索すればいくらでも出てくるので、ここでは省略します。なにか参考になるものがほしい方はとりあえず公式ページをどうぞ。
IntelliJ IDEAで有名なJetBrainsがFleetというコードエディターを作っている、という噂をだいぶ前に聞きました。IntelliJ IDEAはAndroid Studioのベースにもなっているので、間接的にお世話になっている人も多いんじゃないでしょうか。
Fleetは「IDE」ではなく「コードエディター」だそうです。正直いって厳密な違いがわかってないんですが、おそらくVisual Studio CodeみたいなもんだろうなというのはFleetのスクリーンショットから誰もが想像したと思います。
現時点ではまだ正式版リリースどころかベータ版の状態でもなく、申請制のパブリックプレビュー段階ということで去年の11月頃に申請してみました。そして先日ようやくプレビュー版のお知らせが届いたのでさっそく使ってみました。というかすっかり忘れていたよ。。。
ペインクリニックではありません。別に体調が悪いわけではありません。ペンですペン。
かなり前に就職祝いで万年筆をもらいました。パーカーのソネット。万年筆ファンなら誰でも知っている、どこに出しても恥ずかしくない定番中の定番です。
・・・と偉そうなことを言っておきながら万年筆には全然詳しくないのでモデルまではわからないのですが、すでに廃盤になってしまったマーブル模様のタイプです。キャップにちょっとヒビが入ってしまったので補強のために透明なテープを巻いています。
コンピューター関連の仕事をしていて毎日のようにキーボードを叩いている現在でも「紙に書く」という習慣をつけさせてくれた大事な相棒なんですが、数ヶ月前から時々インクの出が悪く、字がかすれることがありました。
修理に出すにも当時の国内代理店を検索しても見当たらないし、そもそももう廃盤だしどうしたもんかなぁと思っていると、ペンクリニックというイベントが全国でちょいちょい開催されているという情報を入手しました。何でも、ペンドクターというかっこいい肩書を持った人が無料で万年筆をメンテしてくれるとか。何それ素敵やん。
関西ではいつあるんだろうと調べてみると、9月3日に大阪難波であるとのこと。ペンクリニックについて調べたのが8月30日。こんな直近であるとはまさに神の思し召し、というわけでさっそく行ってみました。
毎年とある時期になったら定期的に投稿していますが、恵方くん LINEbotというLINEbotがあります。
毎年愛用している方も数多くいらっしゃると思いますが、このたびやんごとなき理由により終了することとしました。
終了時期は明確ではありませんが、おそらく11月以降になるかと思います。
以前ビジネス系SNSのプロフィールにきのこたけのこトラップを仕掛けた話を書きました。あれから半年近く経ってスカウトメールも相変わらずちょいちょい来るんですが、これまでに受け取ったメールをちょっと分類してみました。
ちなみに以下のメールを送ってきた会社は、いずれも1社だけではありません。いかに適当な会社が多いことか。
たとえばこんなテーブル構成&レコードを考えます。
id
, name
, age
このレコード、age
がnull
のレコード(年齢情報が未入力の場合とでも考えてください)は常に先頭にして取得したい場合、どのようなSQLを書けばいいでしょうか。
※このテーブルはただの例です。「年齢は毎年変わるからDBのレコードに含めるのは適切じゃないぞ」というツッコミはよそでやってください。
表題のとおり、8/4(木)にオンライン版CROSS PARTYを開催します。
テーマは「Twitterスペース」です。Clubhouseが火付け役となった音声SNSについて、使いこなし方法とか可能性について語ります。
音声SNSを使ったことがないのにパネリストとして参加するという無謀な挑戦をしてみました。ヘタこいたらごめんなさいね。
今回は「mini」ということで、いつもの壮大な感じではなくサクッと開催してサクッと終わる感じを想定しています。本番は多分秋頃にやりますのでお楽しみに。
先日の記事の関連記事です。
このコードを実行したらどんな出力になるでしょうか。
const values = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; for (const value of values) { console.log(value); // 先頭要素を1つ削除する values.shift(); }
どちらももっともな意見に見えますが、あなたの答えはどちら(orそれ以外の答え)でしょうか。
ちなみに、先日の記事の内容を読んでECMA-262のArray Iteratorの仕様まで目を通した方なら答えられるはずです。
わからない方も、わかったけど答え合わせをしたい方も、こちらからご確認ください。
7/13-15に、函館で開催されたJANOG50 Meetingに参加しました。久々のオフラインイベントです。JANOGに参加するのは今回が初めてで、会社のサービス宣伝と協業先を探すために参加してみました。
日本中のネットワーク関連企業が参加するカンファレンスで、インターネットが壊れたときは大抵この中のどこかが関連していると言っても過言ではないでしょう。
飛行機の都合で前泊&後泊したので、実質7/12-16の一週間近い出張でした。
突然ですが、以下の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の規格の話です。
先日、GitHubが「我々の整備士達よ、感謝する」というブログ記事を公開しました。要約すると「みんなに50万ドルあげちゃうよー」ということらしいです。ちょっと要約しすぎちゃったかもしれませんが。
ほー、ずいぶんと気前ええなぁ。ワシんとこにもちょっとでいいから分けてくれんかなぁと思ってGitHubにログインしてみると・・・
先週の予告通り、Open Source Conference 2022 Online/Hokkaidoに登壇してきました。
タイトル通り割と砕けた感じで、IoT開発の難しいところとそれを新プロダクトがどのように解決するかを説明したつもりです。
来る6月25日、Open Source Conference 2022 Online/Hokkaidoが開催されます。
枠をもらってちょっとお話させてもらいます。
リンク先の通り、IoT開発についてのお話なんですが、まあだいたい会社の新プロダクトの紹介です。
あまり専門的になりすぎないようにIoT開発を完全に理解した人あたりがメインターゲットですが、「開発したことないけど概要くらいは知ってる」という人でも大丈夫です。たださすがに「IoTって何?」という人は聞いても理解できないと思います。
IoT開発に興味ある人はぜひ聞きに来てください。
「パワポってデザインどうしても汚くなるんだよなー」と思いながら発表スライドを作成して、とりあえず下書きレベルで作ったものを部署内のパワポマスターに渡したら、めっちゃキレイなスライドになって返ってきました。
単にこっちのデザインセンスないだけでした。パワポごめんね。君は悪くない。
セキュリティ・キャンプ2022全国大会の選考が先日締め切られました。若いエンジニアのみなさんは未来のIT業界を背負うべく、こういう場所でしっかり学んでいってください。
ワシはもう若くないからええんじゃ。
さて、応募課題の中でちょっとおもしろい問題があったので考察してみましょう。
最近ハマったので記録を残しておきます。まあ例によって原因は単純なミスなんですが、例によって仰々しく書いてみます。。
図のようなネットワーク構成を想定してください。
この状態でA→Bにpingを飛ばすとちゃんと返事が返ってくるのに、逆方向(B→A)は返ってこないという摩訶不思議な現象が発生していました。
補足として、firewalldやufw等のファイヤーウォールは特に入れておらず、ルーティングテーブルも適切に設定されています。
なお、これはクイズではないので、唯一の正解にたどり着く情報が与えられているわけではありません。ただし、よく読めば「ここが怪しいんじゃない?」とわかるヒントは入れてあります。
前回の報告(v3.1.0)からしばらく時間が経ってしまいましたが、入力値バリデーターvalue-schemaがメジャーバージョンアップしました。といっても便利機能が追加されたというわけではなく、一身上の都合でバージョンを上げざるを得なかったというのが正解です。
不具合修正等があるわけではないので、今までv3を使っていた方はそのまま使い続けても問題ありません。
会議のコントロールは難しく、なかなか時間通り終わらないこともあります。特にリモートワークの職場では、「会議室がこの時間までしか使えない」とか「後が閊えている」ということもないので「ちょっとくらい長引いてもいいや」みたいな心理が働くこともあります。
長引く会議というものはだいたいパターンが決まっているので、いくつかの点に注意すればかなりの確度で時間内で終わらせることができるようになります。特に進行役を務めるときはここに書いてあることを心がけてみてください。
突然ですが、コールセンターってだいたい繋がりにくいじゃないですか。何分も待たされてイライラすることはよくあると思います。
限られた人数でたくさんの電話に対応しないといけないし、用件によっては時間もかかるし、コロナ事情で出勤する人の数を減らしている場合もあるし、事情はわかります。
さて、あなたがこんな状況で「UXを改善しろ」と言われたらどうしますか?
ソフトウェアのバージョン番号ってみんな好き勝手につけるじゃないですか。
番号のつけ方にどういうものがあったっけーとふと思って、有名なやつをちょっと調べてみました。新しいネタやためになりそうな考察は特に何もありません。
今回はマニュアルの書き方についてのお話です。
マニュアルの書き方って難しいですよね。何が難しいかって、「製品のことをよく知っている人が、何も知らない人にもわかるように書かないといけない」ということです。つい専門用語を使ってしまうこともあります。
今回は、マニュアルを書くときに気をつけるべきことについてです。
みなさんキーボードカバー使ってますか?気をつけて使っているつもりでもホコリが入ってしまうとかでカバーを使う人もいるかと思います。
そこで今回の話ですが、まあタイトルで既にネタバレしてるんですがカバーそのものではなくて素材の話です。もうちょっと正確に言うと
「(ノートPCの)キーボードカバーは(ウレタンゴムより)シリコンゴム製を使え」
です。
以前、Google Chrome OSを普通のPCで使えるChrome OS Flexが出たという話を耳にしました。我が家にも使わなくなったPCが何台かあるので、Chrome OS初体験も兼ねてちょっと試してみることに。
4月です。慣れないスーツを着た初々しい新社会人を街でよく見かける時期だと思うんですが、こちとらリモートワークで篭りっきりで新社会人なんて誰一人見ていません。
さて、去年経団連から発表があったとおり、(経団連加盟企業の)新卒一括採用が廃止されました。一括採用は世間では批判されることもありますし、事実今回廃止されたのはデメリットが多いということなのでしょうが、逆に言えば今まではメリットが多かったから行われていたということで。
是非は一旦置いておいて、今回は「新卒一括採用のメリット」をまとめてみました。賛同も批判も事情を知ってから。
モリサワからMORISAWA BIZ+ 無償版(BIZ UDゴシック・BIZ UD明朝)がオープンソースで公開されたとのニュースを聞きました。Linuxで自由に使える日本語フォントはあまり多くないので、こういう動きはとてもありがたいですね。
別にフォントが大好物というわけではないんですが、少しでもLinuxの世界を使いやすくするために、さっそくGentoo用のパッケージを作ってみました。
しばらくデスクトップのフォントを変えてニヤニヤしていたんですが、やっぱりデスクトップでは今まで使っていたNoto Sans Gothicを使うことにしました。印刷用の文書作成とかのピンポイントで使う場面はありそうです。
ちょうど1ヶ月前にパスワードの制限が厳しいとハッシュ化していない可能性が高い理由についての記事を書きました。
そして先日携帯キャリアがパスワードを平分のまま保存しているというニュースが流れました。
今回はTwitterから広がったみたいですけど、ぶっちゃけ今更だよね?・・・というツッコミは置いといて、本件について勝手にコメンテーターになってみます。
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
です。
今回はただのネタです。
Code Golfとは別方向の趣向で、予約語を使わないFizzBuzzの実装です。
Array(100).fill(0).map((_,i)=>console.log(++i%15?i%5?i%3?i:"Fizz":"Buzz":"FizzBuzz"))
これでもまだわかりやすい部類の書き方だと思うので、わかりやすさを犠牲にすれば多分もっと文字数は減らせます。
他の言語ではどうなるんだろう。CとかJavaみたいに絶対に実現できない言語もあるけど。
プログラミングスクール生のみなさん、FizzBuzzの課題を出されたらこれを提出してもいいですよ。
以前、イライラするパスワード登録画面5選という記事でこんな趣旨のことを書きました。
パスワードが「8文字以上16文字以下で入力してください」とか「英数字で入力してください」のように制限が厳しいサービスは、パスワードをハッシュ化せずにそのままDBに保存している可能性が高い
生パスワードをそのまま保存する危険性については言わずもがなですが、上記の内容について先日「なんで?」という質問を受けたので、この場でも書いておきます。
みなさん、作ったウェブサービスが吐いているログをちゃんと確認していますか?
サービス監視、ログファイルの出力と集約の設定はやった。でもログの監視をしていなくて、ヤバいエラーが出ていたのに気づかずにユーザーから問い合わせが来て初めて知った・・・みたいなことは割とあるあるです。
これをなんとかした話。とは言っても別に画期的な方法とかではありません。
JavaScriptでバックエンド開発していると非同期処理を使うことが多いですよね。
そこで問題になるのがasync関数に対するawait
のつけ忘れ。まだasync/awaitが使えなくてPromiseオブジェクトに対してthen()
やcatch()
をしていた頃ならすぐ気づいたんですが、単に関数呼び出しにawait
をつけるだけというのは便利な反面忘れやすいです。よくやらかします。
JavaScriptは実行するまでPromiseオブジェクトかどうかわからないからESLintじゃ検出できないよなぁ。TypeScript ESLintならできるんかなぁと思いながらルールを探したらありました。
今まではGentoo Linuxで5.10系のカーネルを使っていたんですが、ちょっと前に5.15系に上げたら急にタッチパッドが使えなくなりました。
そのせいでしばらく5.10系に戻して使っていたんですが、さすがにいつまでもバージョンアップしないわけにはいかないよなぁ・・・と思って原因を調べたところ、原因は意外とあっさり見つかりました。
原因はこちら。
どうやら5.12で設定が分割されて、新しいCONFIG_I2C_HID_ACPI
モジュールがデフォルトでオフになっていたようです。
こいつをオンにして再ビルドをかけたら無事タッチパッドが使えるようになりました。めでたしめでたし。
ウェブサービスを作っていると、大きなファイルを認証付きでダウンロードさせたいけど、ダウンロード処理自体はアプリケーションサーバーを経由したくない場合があります。
それだけならアプリケーションサーバーから300系のリダイレクトを使えばいいんですが、クライアント側に実体のURLを知られたくない場合もあります。
例えばこんな状況。
世の中には色々なウェブサービスがあるわけですが、特にパスワード登録に関してはひどいUIが本当に多いです。
以下に挙げるものは、全て今までに遭遇した実際にあるウェブサービスのパスワード登録画面です。
新年早々のドジというか、昨年最後のドジの話です。
某位置ゲーで、1日に3万歩歩くとはぐれメタルが出るということで大晦日の昼頃から歩き始めました。自分のペースだと、だいたい2時間で1万歩くらいなので3万歩を達成するためには6時間ほど必要です。普段バスや車を使うルートをひたすら歩いていったんですが、特に目的地もなく歩くこと自体が目的でひたすら歩くのは精神的にもきついです。
4時間ほど経過した頃、足の親指の付け根付近に水ぶくれができてそのまま歩くのがしんどくなってきました。3万歩を諦めてバスで家まで帰ろうとも思いましたが、運悪くバスが通らない場所だったたので、水ぶくれの部分が靴に触れないように足の外側に体重をかけた状態で残りの2時間を歩きました。
そんなこんなでどうにか帰宅したんですが、家に帰ってからは足が捻挫したような痛みが激しくなりました。そりゃ2時間もあんな体勢で歩けば無理もない。
多分一時的なものだから明日には治ってるだろうと思って2022年を迎えましたが一向に治らず。正月明けに病院に行って、靭帯損傷の診断を受けました。しばらく家で安静にする生活です。
なお、家についた頃には3万歩にわずかに及ばず、しばらく家の周りをウロウロするという不審者ムーブを繰り返した結果、はぐれメタルを無事にゲットしました。
あけましておめでとうございます。
現在技術アドバイザーとして参画している会社が提供しているウェブサービスは、いわゆるSPA構成でフロントエンドとバックエンドを完全に(リポジトリー単位で)分離しています。
新年一発目は、そんな分離されたサービスをモノレポ化しようといろいろ画策して最終的に諦めた話です。