日本のガソリン価格が(国際的に見ると)激安な件について

日本の「いやいや今の日本のガソリン価格安すぎだろ補助金なんて出すなよ」と思ったので調べたりしていた。

 

Price Rankings by Country of Gasoline (1 liter) (Transportation)

のサイトによれば1Lあたりのガソリン価格は下記のようになっていた。

  • Mexico ... 1.12$
  • Japan ... 1.22$
  • China ... 1.23$
  • United States ... 1.27$
  • Philippines ... 1.31$
  • India ... 1.32$
  • South Korea ... 1.34$
  • Australia ... 1.43$
  • Spain ... 1.67$
  • United Kingdom ... 1.88$
  • France ... 2.04$
  • Germany ... 2.24$

日本のほうがUSよりもガソリンが安い… このようなことは自分が生まれてから一度もこれまでなかったと思う。割と歴史の転換点にいるような気がする。

続きを読む

CHUWI minibook Xを買おうかどうか悩んでいる

2014年くらいからATOMを搭載しためちゃくちゃ安いWindows8 tabletを中国のメーカーが作り始めた。そこで目立っていたのがCHUWIi, TECLASTの2社だった。過去の自分の記事を検索すると下記のように2016年にHI8 PROというタブレットを買おうかどうか悩んでいたようだ。

CHUWI HI8 PROの購入に踏み切れない - naoya2kの日記

もうあれから6年も経ったのかと思うと愕然とするが、CHUWIもTECLASTもまだ元気にWindowsのモバイルマシンを出し続けてくれているようだ。日本から見るとCHUWIはN系のCeleronを使ったWindows機をメインにしていて、TECLASTはMediaTekあたりの安いチップを使ったAndroidタブレットを主軸に据えているように思える。なお当時個人的に好きだったCubeは少し高性能なほうにシフトしてCore i系を搭載したタブレットやミニPCをいっぱい出している。

 

で、そのCHUWIが昨年後半にminibook Xという10.8インチのノートPCを発売した。これはHuaweiのmatebookというタブレットで使われていたディスプレイを調達してきて作られたもので、そういう部品のチョイスや品質なども含めて良さそうだったが当時なぜか買うのに躊躇してしまった。最近になって1万円ほど値段が下がってきたので買っても良いかなという気がした。なによりこのクラスのPCは買えるときに買っておかないといつジャンルとして消滅してしまうかわからないのだ。なにより魅力なのはこのサイズ感が。レッツノートRZや初代YOGA BOOKよりも少し小さくて、かなりちゃんとした配列のキーボードが搭載されている。そして画面はそれらよりも大きく狭額縁。その代わり890g〜950gくらいとレッツノートRZよりも100〜200g近く重くて、YOGA BOOKと比べると分厚く、電池がきっと持たない。

 

minibook Xの電池容量は26.6Whとのことだが、レッツノートRZの電池は7.6V*4740mHAhだから約36Whだ。これはやはりレッツノートのほうが質実剛健というかデザインよりも軽さや性能を優先していることもあるし、レッツノートRZの場合は上位にSZという850gのマシンがあり、もしRZがこのminibook Xのように890gになってしまったら、
「ええっ? RZってCPUもしょぼく画面も筐体も小さいのにSZより重たいの?」
みたいなことになってしまい存在価値が消滅してしまうというプレッシャーに晒されていたからだと思う。

 

そんでminibook Xの不安点というのはもう端的に言うとファンレスで発熱大丈夫なのか?ということに尽きる。なんといっても僕はこの2年間継続的に放熱がうまくできない場合のCPUの速度低下に悩まされ続けてきたのだ。それでもそこそこ軽くて小さければ唯一無二の存在として重宝するだろうという気はするのだがすでに手元にはGPD microPCがあるのだ。もし発熱で長時間のタスクではmicroPCと同じくらいの性能しか出ない、となったら、重さが2倍あることがネックになりおそらく持ち歩くのはmicroPCとなってしまう(とはいえmicroPCのキーボードで文章入力するのは割とつらいのだが)。そしてもう少し大きくて重くてよければもっといろいろな選択肢がある。

Alder Lake-Nがそろそろ出てきそうだというのも躊躇する理由になっている。minibook XのCPUであるCeleron N5100のTremontコアと比べてAlder Lake-NのGracemontコアは分岐予測が強化されており、L1キャッシュが32KB→64KBに増量され、リオーダーバッファもTremontの208から256にパワーアップして、同一クロックで20%高速化されているとのことだ。結局のところ新しいものが出てくるのを待つか今買うかは、今使うのかどうかというところにかかっているんだけど…って考えるとあんまり使う時間もないし要らないかも。

キャンドゥの550円のイヤホンがわりとすぐに壊れた件

4月に買ってちょっとお気に入りになっていたキャンドゥの550円のイヤホンHDBT36BKだが電池があんまり持たないという欠点がすぐ明らかになった。

まあビデオ会議とかに使ってるとすぐ電池切れになるね。これはどのヘッドセットもそうなんだけどマイクとイヤホン両方動くから普通のA2DPだけの時よりも断然すぐに電池が無くなっちゃう。ビデオ会議はだらだら続くので、通勤時間に音楽を聴くには十分な電池持ちであってもテレワーク需要には全然足りないという。

そして充電が安定していない感じになってしまった。microUSBを挿しても充電されたりされなかったりするようになった。充電が必要で電池持ちが悪い機械になにより重要なのは、電池の充放電に関しての安定性である。使っていないときにも電力が使われていて使いたいときには電池が常にない状態であるとか、充電したつもりがされてないとか、そういうことがないかどうかが大事なのだが、こいつはいつうまく充電できるのかよくわからんという感じだった。ケーブルを選ぶのかもしれんなと思い充電できるケーブルで毎回決まった充電器に挿して充電するようにしていた。

 

 

そうこうするうちにその比較的安定して充電できていたケーブルと充電器の組み合わせでも充電できなくなってしまった。分解してみてもよくわからんがUSBケーブルをつないだ状態でUSBコネクタのあたりをぎゅうぎゅう押してみると充電ランプが点いたり消えたりするので接触不良感がある。これでは使い物にならんから捨てるかとも思ったが試しにダメ元でUSBコネクタのハンダを盛りなおしてみたら充電できるようになった。

 

 

やったぜ復活した。と思って2日間使ってたらまた充電できなくなってしまった。コネクタ部に力がかかるとハンダがすぐに剥がれてしまうのだろうか。コネクタ部にストレスがかかっても大丈夫なようにプラリペアなどを盛ったりすればいいのだろうか? でもそれでうまくいくとも限らない。ケーブルを選ぶところをみるとコネクタ内部もなにかおかしいような気がしないこともない。550円のイヤホンをそこまで頑張って復活させる意味もないのでもう捨てるべきだという気がした。

 

 

ちなみにHDBT35BKのマニュアルには

イヤホンの電圧が3.3V以下の場合30秒ごとに「Please charge」と音声が流れ、3.0V以下の場合「Power off」と音声が流れます。

という奇妙に細かい記載があってちょっと面白いと思った。音声が流れるだけで電源断にはならないのか? みたいなところとかも。

 

「技術的負債を設計スキルで解消しよう」なんて思わなくなってる

ここ20年ずっと大規模ソフトウェアを開発してきて、特に最近はクソみたいなプロジェクトに3~4回連続で関わっているので技術的負債を解消どころかどんどん負債を作っていくだけの毎日となっている。

 

 

きっと若くてデザインセンスのあるような人が後から見たら僕が関わったコードはひどい設計で技術的負債がいっぱいでそして「俺なら全部作り直してクリーンな設計で保守性のあるコードにできて今後のメンテナンスも属人性なくできる」みたいに思ってしまったりするのだろう。

でも実際にはそう思った人たちが作っても、全然うまく動作するプロダクトを作れなくて、でもローンチが迫ってくるのでなんとかしてくれる奴を募集して、それで毎回プロダクトはなんとかできるんだけどだいたい汚い感じになっているので、次に、どうやら全部を作り直したくなるのでこれを繰り返してしまう、ということのようだ。

 

 

全部作り直したくなる理由はわりと簡単で、最後になんとかした人たちは外注で、「俺なら全部作り直してクリーンな設計で保守性のあるコードにできる」と思った人たちは完成させれなかったくせにそれを反省せず、最後になんとかした人たちの「技術力が低かった、あるいは旧態依然とした開発スタイルで開発したのが原因」みたいなことを大きな原因の一つとして掲げてしまうからなんだ。

じゃあ次は新しい開発スタイルで最初から最後までやろう! って結論になるだろ。

 

でも実際には違うんだ。新しい開発スタイルでいけると思ったくせに開発失敗したから旧態依然としたスタイルの組織にお願いせざるを得なくなってしまったんだ。なぜ失敗したんだ? これも簡単で素人ばっかり集めたからだ。素人って言うと言い過ぎか。でもちょっと知ってるくらい(僕らのプロダクトの20%くらいを知っている程度)のくせに「完璧に理解した」と思い込んでる人たちがだいたい偉そうにしてるんだ。

  • 開発期間が3~4年にわたる超巨大なプロジェクトの、全体のごく一部分だけを1年間担当しただけの人が経験者として厚遇されたりしている。ずっとかかわってきたと主張している人たちもやっぱりごく一部分だけしか見ていない。上流しかやってない人とかは最後にどのようにしてどれくらい膨大なリソースを費やして細かい仕様をFIXさせることができたのかがわかってない。
  • そしてそんな人たちが音頭を取って決めた開発プロセスはもう最初から破綻しているんで、そこに期待をもって集まってくる人たちも当然素人が多い。
  • 結果的に「誰でもいいから完成させることのできるやつ」を血眼になって探して、そいつらには「リソースが足りないならいっぱいアサインしてやるから(ただし技術レベルは問えない…緊急事態になっているので抱き合わせでいろんな奴が来てしまう)とにかく完成させろ」という指令が下るんで、全体のレベルが低くてもなんとかできちゃうプロセスを採用せざるを得なくなる

こんなのトップマネジメントの問題以外の何物でもない。だれか一人が設計力を磨いたところでどうしようもないだろ。だいたいこのレベルになってくると、もう採用する技術についても「どういうレベルの技術者なら集めることができるから、その人たちにも扱えるxxを採用しておくか」みたいな判断が必要になるはずだし、「末端は遅いPCを使わされているからこの重いツールの採用はしちゃダメだな」みたいなどうでもいいことにも気を配らないといけない。

だんだん話がそれてきた。とにかく巨大なプロダクトで全体がわかることなんてほぼないので、「完璧に理解しているエキスパートチームを集めて最初からクリーンに作る。しかも期限内に」というのは、人類には不可能なのではないだろうかという気がしている。僕らにできることは、メインストリームに向けては「一度血反吐を吐いて作られた完成品を、そのまま継続してメンテしていく中で部分的にきれいにしていく」ということだけだ。

そして本当にきれいなものが作りたければメインストリームじゃないスカンクワークみたいなところでちゃんと完成品に近いところまで機能を作り込んでいくべきだ。だいたいみんな、それをやっているつもりだったんだ。でもだいたいにおいてそういうプロジェクトって「2年でほぼ完ぺきに動作するプロトタイプを作って見せますよ」と宣言させられて、でも2年後には良くて全体の5%くらいしかできてなくて(だってプロダクトを作るリソースの1/20くらいしか投入されてないからね)、なのに「もう技術的にはほとんど完成してるんです」と宣言せざるを得なくなって、上層部が「なるほど技術的にできているんなら次のメインストリームはこいつをベースにしよう」って判断してしまい冒頭の流れになる。やっぱりトップマネジメントがクソだとしか言いようがない。

 

 

でもたぶん「旧態依然としたプロセスでデスマーチを繰り返している組織」vs「新しいプロセスと新技術でそれを一新しようとする組織」当然前者は疲れているし難しいことをいっぱい経験してきているし平均年齢も高いので保守的なことしか言えず、後者は難局にあたった経験が少ないために自分達の優位性を声高らかに主張してくる。日本の組織の経営陣がここで前者を選ぶのは難しいかもしれない。

ゴールデンウイーク前にキャンドゥで550円のBTイヤホンを買ったが良かった

基本的に有線を使いがちな僕はBTイヤホンをメインにはあまり使っていなかった。そして無線を使いたいときには5年くらい前に買った2000円くらいの安いBTイヤホンを使っていたのだけど、最近ちょっと事故があってそのイヤホンが行方不明になった。別に有線イヤホンはいっぱいあるのでBTイヤホンがなくても平気と言えば平気なんだが無線がいざというときに使えるとそれはそれで便利なので、BTイヤホンが無くなり少し不便を感じていた。

 

 

そしてゲオの完全ワイヤレスを買おうか2ヵ月くらい悩んでいたんだけど踏ん切りがついていなかった。あるとき別の用事でキャンドゥに行くと550円という超安価なBTワイヤレスイヤホンが売っていた。HIDISCのHDBT36BKという型番のやつ。

 

 

 

この値段だったらいくら地雷でも買うべきだよねと思い買った。

 

家に帰って使ってみると普通に使えそうな気がした。耳の部分がアルミで作られておりなんだか高級感があるしコンパクトで良い。スイッチとかマイクがついている部分はちょっと大きめでBulkyな感じでイマイチだけど、そのおかげかボタンが押しやすくLEDが見やすいのは良い。音質はSBCにしか対応してないがそれなりである。

 

HIDISCのWebページにはこの型番はなく、一つ前のHDBT35BKは存在していた。

HIDISC WIRELESS STREO Bluetoothイヤフォン HDBT35BK | HIDISC 株式会社磁気研究所

 

スペックを比べてみると、35BKはバッテリーが80mAhなのに対して36BKは60mAhである。そして35BKの音楽再生時間は「最大4時間」だが36BKは「約2.5時間」となっており電池がしょぼくなっているようだ。でも550円だしどうでもいいよね。

 

 

ちなみに、なくなっていたBTイヤホンは、これを買って家について、カバンから36BKを出す直前に発見されました。。

あまりわかってないくせにRGBでグラデーションするのは間違いでHSLが正解だと思うのはやめてほしい

2つの色の間のグラデーションにlinear-gradientを使ったときにグラデーションが汚ないのは、大抵の場合ガンマカーブを考えずにグラデーションをかけているからであって表色系の問題ではない。色相に沿ってグラデーションをかけたい場合はもちろんあるだろう。でもそうじゃない場合にも色相を回すのが正しいと思ってしまうのは良くない。

 

ガンマカーブとはなにか。それはEIZO株式会社の解説ページなどを見てほしい。

第7回 "曲線美"が色再現性の決め手になる?――液晶ディスプレイの「ガンマ」を知ろう | EIZO株式会社

 

CSSのlinear-gradientはRGB値をリニアに変化させる。ところが今のPCはRGBで指定された値とディスプレイに表示されるピクセルの明るさがリニアに対応しない。ディスプレイのガンマがWindows標準の2.2になっている場合、RGBに指定する0~255の値に対して実際に表示される明るさは下記のようになっている。

RGB値 明るさ(%)
0 0
64 5
128 22
192 54
255 100

 

単純にCSSにlinear-gradientを指定して赤100%→緑100%にグラデーションすると下記のようなかんじになるんだけど、もちろん中央がくすんで汚い。

linear-gradient(to right, #ff0000, #00ff00);

 

 

でもなこの中央がくすんでしまう理由は、この中央の色が「赤50%、緑50%の微妙な色」だからなのではなく、上の表を見てくれればわかるように「赤22%, 緑22%のめちゃ暗い色」だからなんだ。つまり左から右にいくにしたがって、一旦輝度が減少して、中央を超えたところから輝度が増加する、というヤバい表示になってしまっているからなんだ。

 

まともなグラデーションを表示したい場合には上のEIZOのページに書かれているように、ガンマ特性に合わせて色情報を調整したグラデーションをかけてやる必要がある。

f:id:naoya2k:20220411025516p:plain

EIZOのページの解説

 

じゃあどうすればいいのか。上にある表の逆バージョンの、明るさからRGB値を探せる対応表をつくって中間調を持ち上げたグラデーションをつくってやればいいんだ。

明るさ(%) RGB値 HEX値
0 0 0
25 135 87
50 186 BA
75 223 DF
100 255 FF

これによれば、中央は#808000ではダメで、#BABA00であるべきだということだから、これを指定してやる。

linear-gradient(to right, #ff0000, #e08800, #baba00, #88e000, #00ff00)

 

 

上のグラデーションと比べて断然良くなってるし、これでわりと自然なんじゃないか。

 


 

最近何度か話題になっていた下記のようなページではHSL色空間を使うのが正しいというようなことが書かれていた。

qiita.com

f:id:naoya2k:20220411031623p:plain

でも僕はこれは違うと思うんだよなあ。だって真ん中のところ明るすぎるじゃん。不自然じゃん。真ん中の色は#ffff00だろ? #ff0000→ #ffff00→ #00ff00にしてるじゃん。平坦な道を行きたいのに完全に峠を登って下るみたいなことになってんじゃん。

これが「いい感じ」と思えるような人、そしてこういう効果を狙ってやってるならこれはこれでいいんだけど、でもこれが「正しい」って思っちゃうのは、ダメだ。

 

 


 

途中が完全に灰色になってしまうので不評な青→黄色のグラデーションも試してみよう。素のlinear-gradientではこうなる。

linear-gradient(to right, #ffff00, #0000ff)

 

 

ガンマを考慮した場合はこうだ。

linear-gradient(to right, #ffff00, #e0e088, #bababa, #8888e0, #0000ff)

 

 

これは全然それなりに正しい感じになっていて*1、でも中央の色は完全に灰色の#bababaなんだ。だから、グラデーションが不自然なのは、灰色が出現するからじゃなくて、リニアにグラデーションできてないからなんだ。

 

もちろんこれよりも色相を回してグラデーションをさせた下記の記事のようなもののほうが自然だというのであれば、それでもいい。でも僕は個人的には「黄色→青のグラデーション」に下のような緑や水色が出てくるのは、美しいかどうかはともかく、正しくないし、違うと思うんだよなあ。

 

f:id:naoya2k:20220411032540p:plain

グラデーションの中央がグレーに濁ってしまう仕組みをくわしく解説、美しいグラデーションをCSSで実装する方法 | コリス

 

 

 

*1:ここで微妙に弱気なのは、ガンマ補正を代表点5つの折れ線で妥協してしまっていることと、本当はRGBから計算された輝度、つまり 0.299×R + 0.587×G + 0.114×B がリニアに変化していてほしいんだけど、それができている確証がないからだ

社員を再教育してソフトウェア開発をさせるという話に思う

もにょる。

 

[B! 教育] デンソー、学び直しで1000人を「転身」 ソフト技術者に

 

このようにコメントした。

デンソー、学び直しで1000人を「転身」 ソフト技術者に

「事務をやってた1000人を学び直しでイラストレーターに転身させます」というのはダメそうだと誰でもわかるのに、なぜこれはできると思ってしまうのだろう。

2022/04/08 07:33

b.hatena.ne.jp

 

あなたがどこかの会社にイラストを発注するとしよう。学生の頃から絵を描いてきた人ばかりを集めている会社にこれまでは発注していた。という状況だったのに、30歳を超えてから絵を描く勉強を始めたような人が1000人も居る会社に、安心して頼めるだろうか。僕はムリだ。まあしかしもちろん他のソフトウェア開発の会社も未経験OKでばんばん新卒や中途を雇っているので似たようなものだ。だからソフト技術者には転身できると思われているし実際できる。

 

とにかく今の日本ではソフトウェアは安心して発注することができない。