同士少女よ敵を撃て

本屋大賞2022を受賞したということで、書店店頭で並んでいた「同士少女よ、敵を撃て」を読んだ

発売が2021年11月ということで、ロシア軍のウクライナ進行を受けて書かれた小説ではないですが、なんというか、すごいタイミングで出てきてしまったな、と思わずにはいられない内容でした。

と言うか、小説ってすごい久しぶりに読んだなぁと改めて思った。
小説、読んでますか?

ビジネス書や技術書と異なり、小説を読む動機は何なんだろう?とふと考えてしまう自分がいる。
物語を楽しむということは、別に悪いことではないとは思うんだけど、本作のように500ページ近い作品になると読み終わるのに非常に時間がかかる。

映画や漫画の場合はそういう意味では簡単に消費できるコンテンツなんだろう。

本の場合、どうしても文字でしかないので、描写は基本的に想像に頼る部分が大きい。読む人によってその部分の振れ幅は出てくるものなので、頭の中を覗いてみると人によってすごいことになっているんだろうなぁと思う。

一方で、ビジネス書を読んだからといって、自分の行動に何かしら影響を与えるくらいのものにあったか、と言われるとなかなか難しい。
もちろん、それは本に問題があったとは限らず、読み手側の問題も多分に含まれているのは間違いない。

好き嫌いは色々あるんだけど、あまり気にせずにあれこれ思いのままに手に取ってみるのが、意外といいのかもしれないと思えてきた

次は何を読もうかしら

データモデリングで頭の体操

今まで、定期購読はしているものの、なかなか有効活用できていなかったWEB+DBプレスですが、今月号は結構読むことができています。
これも通勤の効果でしょうか?

特集の一番目は「実践データモデリング」

私自身、前職では基幹系の業務システムパッケージの開発に従事していたこともあって、題材として登場する「発注」や「出荷」といった業務のデータ構造や業務知識に関しては知らないわけではない。むしろ、一般的に考えると詳しい方なのでは?と思わなくもない。
というわけで、読みながら勉強になるな、と思う反面、やっぱりこのあたりは難しい問題だよな、と思ってしまうんですよね。

ソフトウェアを作る上での複雑さへの挑戦

現在は基本的に大きいプログラムを作るのではなく、責務を適切に分割し、シンプルな単位でのプログラムを組み合わせてシステムを作るのが良いとされている。

これに関して異を唱えるつもりはあまりない

前職でも、パッケージを作ったとしてもバージョンアップを考える必要があり、バージョンアップの際には過去との仕様互換性を保ちながら巨大なプログラムを新しい言語なりで作り直すとか、デスマーチ確定な感じだった。

パッケージのバージョンアップには多大な工数と期間を要し、既存顧客からは仕様の互換性に関して文句を言われ、新規の顧客からは不具合を指摘される。
もうちょっとうまいことできないものなのか。毎回スクラップ&ビルドはもうやりたくないと。

そうではなく小さいプログラムにする。更には責務の分割、モジュールの分割を進めることで、サービスを切り出す。
そしてサービス単位でバージョンアップすることを可能にしていくというのが今の流れで、その最たるものがマイクロサービスなんだと理解している。

本書でのデータモデリングも、単一テーブルにあれこれ詰め込むのではなくて責務を分割統治していくのが基本だ。

システムとして何を優先させるべきなのか

一方で、この方法だとそもそも取り扱う業務数が多い基幹系システムだと、テーブル数がかなりの数になるのでパフォーマンスの懸念は生じてしまう。
テーブル数が多くなることで、一つ一つはシンプルなんだけど、数が多すぎてひよるということもある。

特にパフォーマンスに関してはこだわりが強い人達が多いのも基幹系システムのユーザ特徴だ。
メインフレームCUI画面とWebブラウザを比較して、おそすぎると言われるの辛いよね。

データモデルをシンプルにするということは、基本的には機能もシンプルになっていくものだと理解している。
一方で、一目ですべての情報を把握したい。より多くの情報を画面に詰め込みたい。しかも早く。みたいな要求も当然のようにやってくる。

なぜなら、今がそうだから、みたいな理由で。

SoRである基幹システムのユーザは、システムを使って入力することが業務なのではなく、価値を生み出す業務は別にあるという認識は強い。
画面遷移なく、ショートカットキー盛りだくさんで何分でどれだけデータを入れられるかや判断できるかの選手権が行われている。

あれもこれも表示させる画面を超スピードで表示させるには、できるだけテーブルJOINを少なくするような、言ってしまうと下手くそなデータモデルだなぁと言われるようなテーブルになりそう。

それもこれも、個別最適化されたような過去のカスタマイズ遺産みたいなものがだめなんだ!って言うのは簡単なんだけど、ソフトウェアかくあるべきみたいな喧嘩をしてもしょうがないしね。

実際のところ、現代においてもパフォーマンス上やっぱり問題なのだろうか?みたいなところに関してはわからないのだが、こうやって頭の中で考えると言うのは結構楽しいものである。現実は厳しいけれど。

そんなことを思った2022年の夏。皆様はいかがお過ごしでしょうか。

私は元気です

Deno Fresh環境の構築とチュートリアル

少し前になるが、DenoにおけるフロントエンドWeb開発フレームワークとしてFreshがリリースされている

https://fresh.deno.dev/

今月のWEB+DB Press の裏表紙を見たら、Denoが広告を打っていて超びっくりした

せっかくなのでさわりとして、いくつかの情報をまとめた

Denoとは

Node.js の作者であるライアン・ダール氏によって作成された、Node.jsにおける反省点を踏まえて作られたJavaScript 及び TypeScript のランタイム環境

Node.js環境下では、TypeScriptはトランスパイラを通したりビルドしたりする必要があるがDenoはTypeScriptをそのまま実行することができるようになります。

特にNode.jsと比較して強化されているのはセキュリティ周りです。
Denoはデフォルトでサンドボックス内で動作する形を取っているため、明示的にアクセスを許可してあげないとファイルシステムなどへのアクセスの確認が頻発したりします。

Fresh

TypeScriptのランタイム環境としてのDenoは、それはそれでTypeScript使いに取ってはいいものに見えましたが、Webフロントエンド開発は別に用意する必要がありました。

ところが、今年の7月にDeno用のフルスタックWebフレームワークとしてFreshをリリースしました

ちなみに、8/16現在でバージョンは1.0.2
できたてホヤホヤですな

Freshの特徴としては Islands Architecture を採用しており極力SSRで処理を行う形でクライアント側でのJavaScript配信を行わないような思想のようです

Islands Architecture
https://www.patterns.dev/posts/islands-architecture/

環境構築とチュートリアル

せっかくなので環境はDockerを使ってやろうと。
このあたりは、あちこち参考にさせていただきながらやっているのでツッコミどころは満載かも知れないが、誰かの役に立てればと思いDockerFileを公開する

FROM debian:stable-slim

WORKDIR /var/www/html

RUN apt-get -qq update \
  && apt-get -qq -y install curl zip unzip \
  && curl -fsSL https://deno.land/x/install/install.sh | sh \
  && apt-get -qq remove curl zip unzip \
  && apt-get -qq remove --purge -y curl zip unzip \
  && apt-get -qq -y autoremove \
  && apt-get -qq clean \
  && echo 'export DENO_INSTALL="/root/.deno"' >> ~/.bash_profile \
  && echo 'export PATH="$DENO_INSTALL/bin:$PATH"' >> ~/.bash_profile

CMD ["/bin/bash", "-c", "source ~/.bash_profile && bash"]

チュートリアルに関しては公式を参照

Getting Started
https://fresh.deno.dev/docs/getting-started

Denoでは、Deploy先としてDeno Deployというエッジ環境を提供してくれているので、Githubと連携させたりしてPush=Deployの環境の構築も簡単にできた。

チュートリアルがうまくいかない?

Deno の Web フレームワーク Fresh チュートリアル
https://zenn.dev/azukiazusa/articles/fresh-tutorial

チュートリアルを用意してくれている人もいたので、こちらもやってみた。
ただ、スタイルの適用が何故かうまく行ってくれずに困っている

https://krote–ample-resh.deno.dev/blog

このあたり、フロントエンド開発はからっきしなので、ちょっと詰まってしまったなぁ。
開発者ツールで見る限りでは、想定した通りのclassが割り当てられているようにみえるんだけど。。。

まだまだですねぇ
教えて、偉い人。

Gartner先進技術ハイプ・サイクルと社内タレントマーケットプレイス

Gartnerが出しているハイプ・サイクル。
これの先進技術に関するものが公開されていました

Gartner Identifies Key Emerging Technologies Expanding Immersive Experiences, Accelerating AI Automation and Optimizing Technologist Delivery
https://www.gartner.com/en/newsroom/press-releases/2022-08-10-gartner-identifies-key-emerging-technologies-expanding-immersive-experiences-accelerating-ai-automation-and-optimizing-technologist-delivery

先進技術ということもあって、そのどれもが黎明期~過度な期待のピーク期という扱い。これら技術が幻滅期やそれ以降のフェーズへの生き残りをかけた戦いがこれから始まるわけですね。

先陣を切っているものが「Cloud Data Ecosystems」ということで、若干他のラインナップからするとここに並ぶのかな?という気がしないでもないです。
NFTに関しては、あと2~5年で安定期に入るとGartnerは予想しているんですね。

どの技術が実際に今後のキーとなるのか、ハイプ・サイクルからそれを導き出すというのはあまり現実的ではないかもしれないけれど、少なくともここに載っている内容に関しては、ある程度何を指し示しているのか、ということに関しては知っておくに越したことはないと考えている。

そういう意味で、ちょっと気になったものとしては「Internal Talent Marketplaces」というキーワードだ。

Internal Talent Marketplaces

正直あまり聞き慣れていない言葉ではあった。
デロイトのページがよく書かれているので読んでみた

社内に労働マーケットの考え方や手法を持ち込み、人材のキャリアやスキルを可視化・拡張し、柔軟に配置転換をしながら育成、活用するマネジメント・プラットフォームのあり方

https://www2.deloitte.com/jp/ja/pages/human-capital/articles/hcm/internal-talent-marketplace.html

タレントマネジメントは、ここ数年で随分といろいろな企業で話を聞くようになった。私が所属している会社でも、タレントマネジメントツールを導入している。
一方で、タレントマネジメントがちゃんとできているのか?という点や、そもそもなんでタレントマネジメントが必要なのか?ということに対して有効な動きを取ることができていないのが実情でもあるように感じる。

実際のところ、社内マーケットプレイスというものはどこまで有効なのだろうか?

プロジェクト単位にメンバーを公募。つまり社内のタレントマーケットから探し出して~というと、連続性のないプロジェクトであればいいかもしれないが、連続性のあるプロジェクト・業務の場合、どうしてもこれまでの業務知識なり経験というものがあると嬉しい状態になる。

もちろん、メンバーを固定化させたほうがいいというわけではなく、門出は開いておき流動性は持たせたい。
ただ、流動性をもたせ過ぎるとオンボーディングが大変になる。

また、全部のプロジェクトが同じ期間で区切りがあるなんてことはないだろうから、タイミングにも左右されるようになるんだろう。

一方で、新しいことへ挑戦するという風土みたいなものは培われるだろう。
また、そういった高いメンタリティでプロジェクトへJOINするのであれば、実際のところそこまで大きな問題にはならないのかもしれない。

つまりは、それだけ成熟した。レベルの高い組織であれば成り立つということなのかな?とも思った。全員売れ残りみたいな社内マーケットになり、有用なメンバーは全部外部調達(外注)なんてシャレにならないよ。

タレントマネジメント

社内マーケットプレイスに到達するのは一足飛びには難しいかもしれないけど、タレントマネジメントとして、自分が培った技術や知識を可視化して、それを自分が従事したいプロジェクトへアピールしていくという考え方はとても大事だとは思う。

日々の業務におわれていると、なかなか今この業務が自分のなんのスキルアップにつながる可能性があるだろうか?ということに関しては埋もれていってしまう。

また、それらを意識して仕事をするのとしないのとでは、明確にスキルアップ速度が異なると考えている。
そういう意味でも、もう少ししっかりとタレントマネジメントに関しては実施していく必要があるだろうな、と考えた。

なんとか乗り切った!

前回の投稿でお伝えした通り、妻がコロナ陽性となったわけですが、その後、3男が発熱、陽性。残った子供と私で抗原検査キットを試してみたところ、私以外が全員陽性という状態でした。

もはや、家の中は魔界!

というわけで、この1週間は基本的に私が食事当番。
(陽性者が作ったものを食べるのは流石にアウトだろうと)
できるだけ隔離する意味も含めて、台所に私以外が立ち入ること禁止にしたので、必然的に洗い物だとかそういった系統は私が担当。
子供たちの相手は、熱が下がった妻がやっていくというフォーメーション

買い物も、基本的に外に出ていいのは私だけなので私が担当。。。

何度となく、完全に隔離できていないのでいずれは私もかかるのだろうと思っていましたが、今日、もう一度抗原検査キットで検査しても陰性を継続していました。

熱は、もはや誰もない状態であり、濃厚接触者としての隔離期間もなんとか明けることなので、ようやく明日から出社することができそうです。
1週間、まるっと休んでしまった。。。

しかし、今のコロナウィルスは感染力が強いという話だったけど、意外となんとかなるもんだなぁ。。。と。
3月末に感染したことで、免疫みたいなものがついているからなんとかなったのだろうか?
でも、娘は今回2回目だし、よくわかりませんね。。。

再びコロナ感染(家族)

第7波ということで、日々感染者数が記録を樹立しているわけですが、我が家でも2回目となる感染となりました。
今回は妻です。

ぶっちゃけ、最近私が都内に毎日出勤しているので、一番確率的に高いのは私経由ではあるんでしょうけれど、現時点では症状が出ているのは妻のみ。

簡易的に隔離はしているものの、これから家庭内感染という形で広がっていかないかが心配です。
3月末に私が罹患した際は、基本的に私は部屋にこもっている形で家事育児は妻に任せている形でしたが、今回は私がその役目を担わないと行けないということで。。。大変です。

今日はとりあえず休暇を頂いたので対応できましたが、仕事+育児+家事となると、ちょっとどう回していったものか頭が痛くなりますね。

妻の偉大さを改めて感じるばかりです。

これから家庭内感染が広がらないように注意しつつ、なんとか頑張って過ごしていかなければ!!

Audibleお試し中

前々から気になっていたAmazonが提供しているAudibleが3ヶ月無料ということでお試し中です

もともと、音声コンテンツとしてはPodcastやVoicyを愛用しているのでAudibleにも注目していたのですが、サービスへの申込み+書籍代がかかるというところでちょっと二の足を踏んでいたのですよね。

気づいていなかったのですが、Audibleは今年の1月に刷新し、定額聴き放題プランに移行していたのですね。これは、試してみるのには絶好の機会!ということで早速申し込んでみた次第です

聞いてみたのは以下の書籍の音声版

他にもちょこちょこと聞いています。

ながら聞きすることができるので、時間や場所を選ばない。通勤時間や散歩、ジョギング中に聞くことが出来るのはいいです。
ちなみに、1.5倍速くらいで聞いているので、しっかり時間を取って本を読むよりも進むことができます。

Kindleとの使い方の違い

私はKindleで本を読むときは気にかかった部分をアンダーラインを残したりして、後にその部分をサマリして眺めたりするような使い方をしていました。
Audibleの場合、音声に対してのそういった注釈的な行為はできず、ながら聞きしているためメモを取るような場面でもなく。。。となると扱いがだいぶ違います。

ながら聞きしているために本に対して100%集中しているわけでもないことを考えると、実はくり返し聞くということがいいのではないかと考えています。
頭への刷り込みですね。

また、やはり読み手による違いも気になるところです。
これに関しては、もう少しあれこれと聴き比べてみて違いを考えたいところです。
どうしても、例えば先に上げた厚切りジェイソンさんの著書の場合だと、あのハイテンションを期待してしまいますよね。
文面でもそれがにじみ出てますし。
とは言え、読み手がものまねのように読むわけにもいかず、強弱はつけるものの、という形になります。

これ自体は決して悪いという話ではないですが、例えば小説のようなものの場合、どういう読み方をしている人がいるのだろうか?というところは気になります。

読み放題のラインナップには、小説はもちろんライトノベルまで幅広い分野が揃えられているので、聞いてみようかな~と思っています。

音声コンテンツといろいろな付き合い方が出てきて、いいですね。
そのうちAIが読み上げるようなものも出てきて、それが一つの劇のような形で展開されることもあるのかもしれません。

どんなふうにこの分野が発展していくのか、楽しみです

アクアラインマラソンに挑戦するにあたって

少し前にこんな投稿をしました

実は、しばらくしてから忘れた頃にこんなメールが。。。

いや、2次抽選なんて話あったっけ。。。?
個のメールが届いたのが、1次抽選結果の約一ヶ月後ということで、完全に頭の外で別の大会を探し始めていたところ。驚きのニュースですね。

とは言え、せっかくの参加の機会を頂いたのでもちろん申し込み。
11月が楽しみです
楽しみではあるものの不安要素盛りだくさんなんですよね

RTO

このところ暑い日が続いていたこともあるのですが、最近長距離を走ることが体力的に辛くなってきています。これまでは週末に20キロ超走っていたのが10~16kmくらいで音を上げるように。

水分補給とか、暑さ対策とか。しっかり考えないといけないな、と思いながらも大した手を打っているわけではないので、行けないですね。
いっその事、瞬発力を鍛える方にトレーニングを変えていくのもありなのかもしれません。

そしてRTO(リターン・トゥー・オフィス)です

正確に言うと、7月からお客様先で業務をすることになって、通勤が発生しています。
通勤で電車に揺られるということも、ずいぶん久しぶりのことだなぁと思いながらも、この往復の時間取られるのが非常に痛いです。

これまでは平日の朝、始業前に6~7km走るのを習慣化させていたところが一気に0に。
朝は家を7時前に出て、家に帰るのは20時近辺。更にそこから少し雑務をして。。。となるとちょっと平日は厳しい。

そりゃ往復で4時間位使っていればそうなるわな。。。ってところです

とは言え、この部分が変えられないのであれば、この環境下で出来ることを考えるしかありません。いやぁ、厳しい

今の候補としては、帰宅後に何かをするのは正直厳しいので、業務終了後に客先周辺で軽く汗を流すとかそういうことかなぁ?

感染者数も増えてきているし、色々と思うところもありますが頑張って生きてます(なんだそれ)

乾いているか

先週はちょっとイマイチな一週間だったなぁとシミジミと思ったわけです。

前週まで、仕事が忙しくてちょっと疲れが溜まっていたところではあったのですが、先週は打って変わって余裕があったわけです。
余裕があった割に、なにか、前に進めることができた気がしていない。
なんだか無駄に過ごしてしまったなぁ、と感じたわけです。

では、その前の週までの忙しい毎日はどうだったのかと言われると、忙しかったには忙しかったのですが、前に進んだのか?に関しては非常に疑問が残る感じがします。

結局のところ、忙しい日々を過ごしていたとしても、それが前に進むことができているかと言うと、必ずしもそうではない。
無駄かと言われると無駄でもないんだけど、結果がついてきていない状態とも言える。

乾き

では、何が出来るとこの、「無駄に過ごしてしまったなぁ」という感覚が無くなるのか。
どういう状態が自分にとって「充実した日々」足り得るのか?ということに関しては、非常に悩ましいテーマだといつも思うわけです。

将来の目標だとか、達成すべきゴールだとか

わかりやすいそう言ったものを持つことができればそれに向かって動くことは出来る。
そういった、一種の「乾き」のような「飢え」のような。そう言った気持ちがずいぶんと薄れてしまっているように感じる。

社会的な成功を考えるのであれば出世だったり給与アップだったりするものなのだろう
技術者として考えるのであれば、世界的なカンファレンスに登壇したり、OSSへのコントリビュートなどになるのかもしれない

後輩には偉そうなことを言っておいて、自分自身としてはそういったことに対しての強い憧れみたいなものはなく、まるで諦めてしまっているのではないだろうか?と、自分で自分を疑いたくもなる

つまらない

それでも、まだ現状を「つまらない」と思えている。

現状に対して「満足している」となると、それはそれでゴールなわけで、そこからの成長というものは、自発的には難しいのではないかと思う。

もちろん「つまらない」と言っているだけでは何も変わるわけもないのだから、自分の行動を変えていく必要があるんだよな。

という、当たり前の結論に毎度のこと行き着くわけで、詰まるところは成長できていない気がするわけだ。

今週のわたしはちょっと違うぞ!?と、言えるように頑張ろう

FlexiSpot があたった!

というわけで、

昇降デスクいいなー。高いなー。なんかキャンペーンやってるなー。ポチッとこうかなー

程度ののりで応募したキャンペーンが見事にHITしてしまい、昇降デスクのFlexiSpotが大当たりしました!
いや、何がおきるかわからない。。。まじで

これで私もシャレオツなワーキングスタイルをエンジョイできるぜ!ってニコニコしながら妻に報告したら、「まじでこいつ何考えてんだ。どこ置くんだ?それ」って顔された。

到着~開梱

まずはその重さと大きさにビビる。
考えてみると応募する際に大きさとか全く確認せずに応募しているわけで、ひとしきり置く場所を考えた結果、子供部屋に置くことにした。

本来であれば、私の部屋に置きたいところであったが、大きさが思いの外大きく、天板サイズ的にちょっと無理があった。

FlexiSpotの公式ページでは天板のサイズとしていくつか用意されていて、今回届いたものは一番大きい160x70x2.5ということだった。

昇降デスクを子供部屋に置くということは、多少もったいない気もするが、子供部屋は私の部屋の隣でノートPC持っていくことも出来る。
更に、我が家は中2~小2まで幅広い年代の子供がいるので、広いスペースと高さを変えることが出来るのは良いのではないか?と考えたのだ。

組み立て

組み立てに関しては付属のレンチとプラスのドライバーがあれば殆どは出来るが、一箇所。天板をつけるところでは電動ドライバーが必須なように感じた。

また、天板をつけるところ(ステップ4)あたりから、説明書の説明書きが急に分かりづらくなる。
ここでは、Youtubeに組み立て動画がおいてあったのでこちらを参照したほうがわかりやすかった

とは言え、躓くポイントがあるとすると、天板を取り付ける際に電動ドライバーが必要なところ。
天板を取り付ける前に、ネジ穴を保護しているカバーを外してから天板を取り付けること。
また、ケーブルカバーをどう取り付けていいのか分かりづらかったところくらいかな。

足が非常に重いので、組み立てることはできても女性が机を起こすのは結構たいへんかも知れない。

完成!

ネジ穴カバーを付けたまま天板を取り付けてやり直したりと、ちょっと手間はかかったけど無事に完成。写真は一番低いモードで。。。

一番高くするとずいぶんと上まで上がることがわかる。
これは楽しい。

二段ベッドがあるところにおいているので、非常に狭く感じなくもないけど、色合い的にはそれほど圧迫感を感じないのでとてもいい感じだ。
(ケーブル周りが汚いのは後でなんとかしないと)

そして何よりも天板が広いので、これまで小さめの机で勉強していた子どもたちからすると二人分の机ができたような感じになる。

何よりも上げ下げが出来るというのは、子供心をくすぐるようで、暫くの間子どもたちが興味津々だった。
多分、気分的には秘密基地に近い感覚なんだと思う。
妻は、「絶対これ、男の人が考えているよね」なんて冷めたことを言ってるが、気にしない。
いいじゃないか、かっこいいぞ。なんか基地からなにか発信するような音楽流れないかな。

夜に覗いてみると早速長男と次男が新しい机の使い心地を見るべく勉強していた。
こういったかっこいい机を手に入れると、もう少し周りを整備したくなってしまう。
特に、電源やケーブル周りはもう少しなんとかしないと行けないな。。。

このあたりは、ネットを徘徊して良い活用事例を参考にして組み上げていきたいところ。

良いものをいただけて、大変感謝。
ありがとうございます!