Magnolia Tech

いつもコードのことばかり考えている人のために。

USB Type-Cケーブルを巡る長い旅路の果てに

定期的にUSB Type-Cケーブルの買い物メモをアップデートしているので、2024年秋版

とりあえず"全部"入りのThunderbolt4ケーブルとUSB4ケーブル

0.8mから1.0mくらいの「データ転送」「モニタ接続」「給電」の3つの機能が全部必要なら、PCのUSBポートの規格に合わせたケーブルを選ぶ

  • 「Thunderbolt4」と書かれていれば「Thunderbolt4」ケーブルを選ぶ
  • 「USB4」「USB 3.x(3.1 or 3.2)」と書かれていれば「USB4」ケーブルを選ぶ

Thunderbolt4であれば「⚡︎4」といったマークがコネクタに描かれているので、あとで「このケーブル何の規格だっけ?」となることがない。また、USB4ケーブルであれば規格名ではなく転送速度を示す「40Gbps」や「20Gbps」といったマークが描かれているので、こちらも後で迷うことがない。

最近はUSB PD EPRという、最大240Wまで給電をサポートする規格が登場し、こちらもUSBケーブルであれば転送速度と合わせて「240W」とサポートしている規格が描かれている(Thunderbolt4ケーブルの場合は、メーカーにもよるが何らかのマークが印字されている...Cable Matters社のケーブルだと、ケーブルに印字がある)。

まだサポートしている機器は少ない(16inch MacBook Proとか)一方で、値段もそれほど変わらないので、とりあえず選んでおいてもいいかな、くらい(そもそも新製品だと逆に100Wまで、というケーブルがだいぶ減ってきました)。


ただし、1.0mを超える2.0mなどのケーブルの場合は注意

  • USB4の場合は2.0mの場合は最大転送速度が下がる(20Gbpsとマークが入っている)
  • Thunderbolt4ケーブルの場合はアクティブケーブルとなり、一部サポートしていない機器がある

前者はそもそもそこまで速い機器が必要なことも少ないので、問題になることは少ないでしょう。一方でモニタ接続には影響が無いので、長めのモニタケーブルが欲しい場合は有力な選択肢になります。ただ、2.0mでも40Gbps対応!と描かれているケーブルもあります...実際にその転送速度が出るかは判りません

後者はThunderbolt4ポートが備わっている機器であれば当然問題ないですが、USB 3/4のみのポートにThunderbolt4ケーブルを繋ぐ場合は注意が必要です。

また、最近Thunderbolt5ケーブルが販売され始めましたが、サポートしている機器を見かけないので、当分は気にしないでいいでしょう(値段も高いし)。

電源ケーブルとしてケーブルを選ぶ

給電のみ、つまり電源ケーブルとしてだけの用途であれば、USB 2.0/転送速度480Mbpsと書かれてるケーブルが一番安価なのでお勧め。

ただし、ケーブルのコネクタにUSB 2.0という規格を示すマークはないので、「何も書かれていなければ2.0」と考える方が良さそう。

USB PD規格に対応したケーブルは、給電の能力別にだいたい以下の3種類があり、当然給電能力が上がるに連れて高くなっていく。

  • 60Wまで
  • 100Wまで
  • 240Wまで

240W対応は現状ではそこまで対応した機器は多くないので、迷ったら1.8m〜2.0mの100W対応を買っておくのがお勧め。

また、50m未満の短いケーブルの場合は、60Wまでの対応が多いが、ここまで短いと主にスマホとモバイルバッテリーの接続などの用途が多いと思われるので、十分(たまに100W対応もあるけど、わざわざ選ばなくても)。


あまりに規格の種類が増えすぎて完全に意味不明な状態になってきていますが(更に80GbpsをサポートするUSB4 version2まで...)、普通に使うだけなら、とにかく利用する機器の規格に合わせたマーク入りのケーブルを買う、給電用の電源ケーブルと割り切ってUSB 2.0のケーブルを買う、刻印が無いものはきっとUSB 2.0だと考える、正体の分からないケーブルは使わない、くらいの気持ちでいいと思いました。

常に「即答」できる準備を心がける

突然のメンション、なんだろう...と思ったら、たしかにそんな話を以前したし、覚えていてもらって嬉しい。

自分は昔から、”「いまどういう状況?」という問いかけがいつ来ても1分くらいでポイントを掴んで即時に説明する”ということを心がけていて、ある意味それこそが自分の一番のスキルではないか、と思っている...みたいな話をしたことがある。


仕事を早くやるためには、「早くできるように練習する」か、「あらかじめ前倒しでやっておく」の二つくらいしか方法はない(あとはスコープを狭めるとか、そういう話もあるけど、ここでは割愛)。

ただ、後者に関して何でもかんでも前倒しで事前にはできないので、せめて思考実験で「もし自分がこれを聞かれたら何と答える?」という手札をたくさん用意しておくのはすごく有効で、それだけでも全体が早く進んでいく。

まさにこんな話で「突然セッティングされた」といっても、実際には組織やプロジェクトの状況を観察していく中で、発生が予想できるなんていくらでもある。そんなときに、「自分がやると思ってなかった」ではなく、「自分がやるとしたら何をやるか、どうやるか」という前提で思考実験をやっておけばすぐに答えられる。


と言ってもいきなりできるようにはならないので、例えば社会人1〜2年目くらいの人には「2〜3個上の先輩が何を重要視しているか、どんな振る舞いをしているか観察して、どうすれば2〜3年後におなじことができるか?実際にその年になったときにできるようになっているか振り返ってみよう」と言うことがある。

これは”組織やプロジェクトの状況を俯瞰して見るための訓練”で、経験の少ない人がいきなり広い視野、高い視座を獲得はできないので、まずは目標とする先輩の言動、価値観に注目してみる、というスコープの狭め方なのです。


というわけで、せめて「自分が聞かれたら何と答える?」「自分がやるならどうする?」といった「考える」というのは予めやっておくといいよ、という話でした。

『Rustの練習帳』でコマンドラインツールを作る感覚を身につける

最近、立て続けにRsutに関する話になったので、さすがに一度ちゃんと勉強しておこうと思って、『Rustの練習帳』を元に練習を始めた。

echocatheadwcuniqと、伝統的なUNIX由来のコマンド群を、Rustで実装するとどうなるか?をひたすら繰り返す演習問題集。

その実装の過程で必要になるRustの機能がちょっとずつ増えていくように構成されているところがミソ。

Rustの使い方としてコマンドラインツール実装に使われる例が増えてきたけど、この本でも扱っているclapというライブラリがよくできていて、確かに一番面倒臭い引数の処理をここまで面倒見てくれるなら、メモリ安全云々の前にいい感じ。

一方で、演習問題に使ったコマンドの数が多く、「もう少しまとめても良かったのかも...」という感想は正直ある...clapによるオプション引数の解析機能の実装を繰り返しているうちに、「これはclapの練習帳では?」という気持ちにもなってきたところもある。

で、あまり全体を見ないで頭から進めていった結果、最後の日本語訳者による補足で「clapAPIが大きく変わりました」と出てきて、「マジか!」と思ってしまった。


Rust、ライブラリのドキュメントも異様に充実しているし、chatGPTにエラーメッセージを与えれば割と原因の推測が的確に返ってくるし、NeoVimとLSPサーバとの連携はしっかり作り込まれているし、そもそもエラーメッセージがとにかく親切。

2024年のプログラミング環境はこう有って欲しい、というベンチマークになるなーって思った。


全般的にとっかかりとしてはゴールが明確で、非常に良い本ですね。

意外と厚めの本なので、これを全部解く、というより、いくつか解いて、「なるほどー」となったら、さっさと自分が実装したいコマンドの実装に取り掛かった方が理解は進むと思いました。

Scalaわいわい勉強会 #3【東京】へ参加してきた、楽しかった、最高だった

scala-tokyo.connpass.com

久しぶりのScalaのイベント「Scalaわいわい勉強会 #3【東京】」に参加してきました

いやーディープなScalaの話が聞ける場所は貴重なので、最高でした


会場は乃木坂のWeWork!

開始時間を完全に間違えて18:30スタートだったのに、19:00に会場到着 (しかも、参加者に送られてはずのWeWork入館メールを紛失してしまい、運営の方に開けてもらって入場...ありがとうございました)

残念ながらちょうど一つ目の発表が終わったところで完全に聞き逃してしまいました

さいわい、スライドが公開されていました

speakerdeck.com

コード同士の合成がシステマチックにできるところがScalaの最大のメリットだと思っていて、ただそれがちょっと複雑な構造になってくると逆に読み解くのが難しくなったり、ネストしたデータ構造を分解して詰め直すコードばかりになってきて、「スッキリ書きたい!」という気持ちが湧いてくるのですが、そんな時にちゃんと対応したライブラリが用意されているのが更にScalaのいいところじゃないかと思っていて、それがよく分かるスライドでした。

(その分、言語のコンテクストをしっかり読み解いていく知識が必要にはなるんですけどね...)


次はOpenTelemetryのScalaライブラリであるotel4sを使った話

docs.google.com

といってもメインはScala3のマクロの話だったので、より興味深く聞いていました


次はZIOを使ったストリームETLの話

speakerdeck.com

この辺は全然知見がないので、なるほど便利そう、という感想しか言えないんですけど、きちんと勉強するぞ!と思いました


その後、LTが続き、懇親会へ

Scalaはいいぞ!イベントはいいぞ!みんなPHPカンファレンスYAPC、ScalaMatsuriへ行こうぜ!という話をしました

最近なかなか都内でもScalaの話を聞く機会がない中、都内在住ではない二人(@tanishiking@windymelt)が遠路はるばるやってきて開催してくれているのが有難い

少しでも盛り上がりに貢献して、続くように応援していくぞ!!

みんなもScalaを書こうぜー

(でも会場でよく飛び交った言語名はRustでしたね...)


これは会場のWeWorkの廊下のかっこいい壁画

Thunderbolt 5ケーブルを買った

Thunderbolt 5ケーブルを買った

Amazon.co.jpでThunderboltケーブルを検索すると必ず上位に表示されるCable Matters社製のものを購入。

というか、今日時点で普通に買えるThunderbolt 5ケーブルはCable Matters社製に限られる模様。

Thunderbolt 5って何?という話は、インテルのサイトを見るのが一番分かりやすい。

www.intel.co.jp

目につくのはデータ転送速度が80Gbpsになり、最大240Wの給電まで対応しているところ...しかし、実際には、使っているPCがmacにしろ、Windowsにしろ、Thunderbolt 4のポートしかないので、少し安いThunderbolt 4ケーブルで十分なのだけど......

ケーブルを買う機会もめったにないので、なんとなく新しい規格にしておいた。

Thunderboltケーブルの良いところはコネクタに規格が分かるように刻印がされていところ。最低要件が割と高めに設定されているので、刻印を見て規格さえ分かれば、どんな機能に対応しているのか、非常に分かりやすい。

更に、Cable Matters社のケーブルには給電能力の最大値も分かるように刻印がされていて、親切。Thunderbolt 5の規格上は140W対応が必須で、240Wはオプションなのです(ただ、Amazonに出てくる写真ほどは印字は鮮明ではないですね)

パッケージよりもケーブルに印字されている情報量が多いってどういうこと???

ラインナップは、1.0mと、0.3mがありますが、今回はモニタ接続用に買ったので、1.0mにしました。

1.0mはモニタ接続、0.3mはストレージなどの接続用に良さそうです。

製品ページによると0.5mもラインナップにあるようですが、残念なことに日本のAmazonには売ってないようです。

とはいえ、普通に使う分にはThunderbolt 4で十分だと思います(そもそもThunderbolt対応のストレージは高いので、そうそう買うことも無いと思うし...)

zshで画面右端にgitのブランチ情報を表示する

zshで画面右端にgitのブランチ情報を表示する

右端に出ていた方が邪魔にならなくて良くないですか

.zshrcに以下の内容を追加しておきましょう

autoload -Uz vcs_info
precmd_vcs_info() { vcs_info }        # vcsのを表示する関数
precmd_functions+=( precmd_vcs_info ) # promptが表示される度にこの関数が実行される
setopt prompt_subst                   # プロンプトの変数展開を有効にする
zstyle ':vcs_info:git:*' formats '%b' # ブランチ情報だけを表示する
RPROMPT=\$vcs_info_msg_0_             # 右端にvcsの情報を表示する

zshの入門記事、意外と少なくて、WEB+DB Press Vol.83を割と読み返している

大吉祥寺.pmというイベントの振り返り「ノベルティ・ポスター編」

去る2024年7月13日に「大吉祥寺.pm」というイベントを開催した。

kichijojipm.connpass.com

振り返りブログを書き始めたら、何文字書いても終わらなくなったので、分割することにしました。

今回は、ノベルティ・ポスター編です。


大吉祥寺.pmのコンセプトとして、ノベルティや、会場の作り込みは最小限にする、というのが有りました。

最初はTシャツや、トートバッグ、パンフレット、バックパネル...色々な制作物を考えたのですが、制作費用、搬入や廃棄、余った時の扱いなど、いろいろな要素を考慮した結果、「参加者も、運営も、持ち帰る際に邪魔にならないレベルに限定する」ことにし、制作するものは「ポスター」「名札」「ステッカー」「おみくじ」の4つになりました。

ポスター

会場に来られた方が「イベントに来たぞ!」とアピールできる写真が撮れる場所を用意しておくと、TLがきっと賑やかになるはず、という発想から、会場入口に掲載するポスターを作成しました。

この目論見は成功し、みんながX(Twitter)上にポスターの写真をアップして頂きました。レポートブログなどでも登場し、キービジュアルとしての役割を果たしてくれました。

今回、大吉祥寺.pmの開催にあたっては id:akiko-pusu さんに10周年バージョンのロゴをデザインいただいたのですが、このロゴデータをベースに id:kondoyuko さんにポスターとしてのデザインに仕上げてもらいました。

daily-postit.hatenablog.com

ロゴデータはこちらに有りますので、ぜひスライドなどにロゴを掲載する際には、こちらをお使いください(これ、事前に登壇者の方に連絡できていなくて、失敗したーと反省しました)。

github.com

なお、このポスターは1枚のみ作りましたが、イベント終了後、当日のスタッフにもらわれていって、今は自宅に飾られているそうです。いいですね!

名札

こちらも10周年バージョンのロゴを中心に、大吉祥寺.pm登壇者の一人でもあるyumemi narawaさんにデザインいただきました。

最大のこだわりのポイントは、「ランチに食べたいもの」を書く欄を大きく取ることで”知らない人同士が一緒にランチに行くきっかけを作る”です!

せっかくのイベント参加なので、一人でも多くの人と交流するきっかけになった方がいいですからね。

また、裏面にはタイムテーブルなどのイベント情報ページへのリンク集(QRコード付き)が用意されていて、別でパンフレットを用意せずに済むようにしました。荷物は少しでも少ない方がいいですからね。

あと、実は最大の拘りポイントは名札ケースです。このケースは、紐が2ヶ所離れたところを通す形式になっているので、裏返りづらい作りになっています。

イベント参加でよくある「あーこの人誰だっけ?名札は....あー裏返っている!!!」という悲劇を少しでも減らすための工夫点です。

こちらの名札ケースを購入しましたが、実は制作物の中でもお金がかかったのが名札ケースです。お手元にあるみなさん、ぜひオリジナルの名札を作って、イベントなどで再利用してあげてください!

ステッカー

名札などはどうしてもイベント参加が終わると使わなくなってしまうので、せっかくのロゴを活かし、かつずっと残るものを用意しよう、ということでステッカーを作成し、参加者全員へ配布しました。

目立つところに貼っておくと、大吉祥寺.pmへ参加した思い出が蘇ること間違いなしです!!

ちなみに自分は941さんを真似して、PCのカバーの上から貼っています。

大吉祥寺みくじ

大吉祥寺...大吉...おみくじ...という、自分のとても安易な発想で企画された「大吉祥寺みくじ」。

当日は、速攻で「これは大吉しか入って...」「そこは言わない約束です」というやりとりが行われていました。

内容は、最初にChatGPTに「エンジニア向けのおみくじ、どんな内容?」と聞いてサンプルを作り、それを元にスタッフみんなでアイディアを出し合いました。

その内容をもとに、yumemi narawaさんにデザインいただき、最後はオフラインのスタッフミーティングの場で、印刷されたものを切り取って、折り畳み、糊付けを行いました。

つまり、全部スタッフのお手製なんですよ!!

ちなみに全部で8種類有ります。参加者同士で見せあって、違いを楽しんでもらえるように意外とバリエーションが用意されていたのです。


このように、ノベルティを小さいものに限定することで、邪魔にならず、小さなカバンでも持ち帰れるように工夫しています。

作り込まれた、たくさんのノベルティもカンファレンスの醍醐味だし、とても嬉しいのですが、搬入・搬出・廃棄も大変だし、参加者も持ち帰る際の荷物になると大変なので、このような方針としました。

残ったものもスタッフが持ち帰る上でも小さいと、カバン一つに入ります。撤収の負荷を下げるのもイベントの工夫の一つなのです。


今回、印刷物はすべて「グラフィック」さんを利用しました。

www.graphic.jp

入稿データのチェック機能もあるし、納期も早いし、安心して利用することができました。おすすめです。