老害の入り口

取引先で35年間軽作業に従事していたオバちゃんが退職することになった。 その作業を新人君が引き継いだのだけど、その新人君、先月だけで3回も大きなミスをして、「ミスがあっても大きな事故に至らないシステム作りを」みたいなことをその新人君が声高々に…

Pythonの例外ハンドラはローカル変数のスコープを破壊する

dev.thanaism.com 草 pythonはやばい。理解に苦しむ挙動が多くてつらい。たとえば以下のコード def inverse(a): if a == 0: raise ValueError('0で割ることはできません') return 1 / a def main(): e = 0 try: e = inverse(2) except ValueError as e: prin…

自炊

恐ろしい。なぜ日本人は自ら人生をハードモードに設定してもがき苦しむのか。アメリカではレンチンは重労働というのが常識であり、冷凍餃子をフライパンで焼くなどしようものなら君はとても料理が得意なんだね!と褒められるであろう togetter.com そもそも…

homebrewでSFMono Squareのビルドが失敗する

私はプログラミング環境で、SFMono Squareというフォントを使用している。このフォントはhomebrewでインストールできるのだけど、fontforgeがないとエラーになってインストールに失敗してしまう事がある。 原因は過去にfontforgeをインストールした時のpytho…

Rubyで長い文字列を複数行に分けて書く

こんなケース 長い文字列を複数行に分けて書きたい 得られる文字列に改行や不要な空白が含まれないで欲しい 美しくインデントされたコードになって欲しい ヒアドキュメントだったり+で連結したり色々方法があるのだが、Rubyでは以下の記法が推奨されるらしい…

CSSのauto-phreaseを試してみる

信じられない改行のドライオレンジを購入 pic.twitter.com/1K3CW0alhA— seatrus (@seatrus) 2024年1月4日 このポストを見て、CSSのword-breakプロパティの新しい値auto-phraseを使うと日本語でもいい感じに改行できるという話を思い出したので試してみた aut…

Dockerがiptablesに穴を開ける件について

インターネットから直接接続できるホスト上でDBを運用しないというのは大前提だけど、小規模なサイトを運用しているとそうもいってられない qiita.com iptablesの前にまず0.0.0.0でバインドするの避けるべき Dockerで何も考えずに-p 5432とか指定して起動し…

Rails 7.1アップデート後にautoloadのエラーで起動しなくなった

Rails 7からautoloadの仕組みがzeitwerkに完全移行したそうだ。 zeitwerkはファイル名から定数名を推測するという仕組みになっているらしい。例えば、自動ロードパスに置かれているhoge_fuga/piyo.rb というファイルからはHogeFuga::Piyo という名前の定数(…

libavif.15.dylibがなくてPHPが起動しない

brewでインストールしたphpがエラーで動作しなくなった dyld[22661]: Library not loaded: /opt/homebrew/opt/libavif/lib/libavif.15.dylib Referenced from: <87C1A268-34E4-396F-8BBC-D5591064E333> /opt/homebrew/Cellar/gd/2.3.3_5/lib/libgd.3.dylib R…

cache-control: no-storeが効かないケースがある

Firefoxで以下の場合にcache-control: no-storeが効かない。 htmlが1.cssを呼び出し、1.cssは2.cssをimportしている 1.cssにはmax-ageなどを指定してキャッシュさせる 2.cssにはno-storeを指定してキャッシュさせない こうすると1.cssのキャッシュが有効な間…

今のIT人気からは考えられないと思いますけど、2000年頃の就職氷河期には、プログラマやSEなどのITエンジニアは一生年収300万(当時年収300万は下層階級の象徴のような言葉だった)で他人に使われるだけの負け組の仕事とか、まともな就職先のない理系学生の…

trait bounds were not satisfied

RustのChronoライブラリ(v0.4)で以下のようなエラーが出た the method `format` exists for struct `DateTime<Tz>`, but its trait bounds were not satisfied the following trait bounds were not satisfied: `<Tz as chrono::TimeZone>::Offset: std::fmt::Display`rustcClick for f</tz></tz>…

splitのlimit

"a,b,c,d".split(",", 2) は aと b,c,d に分割されるのを期待してるんですが、各言語どうでしょうか? Ruby irb(main):001:0> "a,b,c,d".split(",", 2) => ["a", "b,c,d"] JavaScript > "a,b,c,d".split(",", 2) [ 'a', 'b' ] Go package main import ( "fm…

「全て真なら真」と空配列の話

集合論とか難しい話をしなくても高校1年レベルの数学が分かれば納得できる話です。 高校数学で「全ての要素が真ならば真」という命題は「偽の要素が1つもなければ真」という命題に等しいという事を学びます。後者ならallやeveryのような関数に空配列を渡す…

社畜脳

togetter.com 遅刻すると余裕を持って行動しなさい!!と怒る一方で、遅れる危険を回避して前泊し余裕を持った行動を取ろうとすると普通の感覚ではない、と批判するような支離滅裂な思考、これを社畜脳と言います 社畜脳はリスク回避を社員個々の努力に依存…

keychronのbluetooth接続とLEDについて

バックライトLEDをオフにしたい fnキーとライトキーを同時押し Bluetooth接続時の電池の持ちが悪くなるのでオフにしておくといい bluetoothの接続が遅い mac側のbluetoothをオフにしてオンにしてみる keychronキーボードを電源をオフにしてみる

リファクタリングとか

自社開発メガベンチャーをわずか半年で鬱退職した雑魚エンジニアの話 当事者の一方の意見だけで判断するのはよくないのだが、これはマネジメントの問題であってリファクタリングの是非というのは問題の本質ではないと感じた。今自分にできることはリファクタ…

ml-stable-diffusionの不具合対応

前回まで ml-stable-diffusionの準備 アニメ風画像を生成 今回は不具合への対応を行う。 長いプロンプトを入れるとエラーになる問題対策 オリジナルのプログラムでは、プロンプトを出力フォルダ名として画像を書き出すため、プロンプトが長すぎるとフォルダ…

ml-stable-diffusionでckptのモデルを使用する

Apple Silicon MacでAI画像生成の続き 今回はcpkt形式で配布されているモデルをml-stable-diffusionで使用する方法について、アニメ風イラスト生成に特化したSakuraMix-V2というモデルを例にして解説します。 cpkt形式のモデルを直接CoreML用モデル(mlpacka…

Apple Silicon Macで画像生成AI Stable Diffusionを動かす

stable diffusionはNVIDIA GPUのCUDA向けのtext-to-imageモデルであるが、AppleがCoreML向けにカスタマイズしたml-stable-diffusionを公開している。 ここではml-stable-diffusionをApple Silicon Macで動作させる手順を記載する。このテキストの想定レベル…

docker compose upでCLIツールのコンテナを起動しないようにする

次のようなdocker-compose.ymlを考える services: mysql: image: mysql:8.0.30 restart: always volumes: - mysql_data:/var/lib/mysql mysql-cli: image: mysql:8.0.30 volumes: - ./docker/mysql:/opt/mysql working_dir: /opt/mysql command: ["mysql", "…

技術ブログを書く意味がなくなってきた

技術ブログはたとえレベルが低くてもそれを必要とする人間がいるかもしれないのでインターネットに公開する意義があると思っていたのだが、私が書く程度の内容であればChatGPTに教えてもらえるので意味が半減したと感じている 元々そんなに多く書いているわ…

SwitchBot Hub 2のmatter対応について

赤外線リモコンはmatter対応ではありません つまりリモコン操作の冷房、テレビ、シーリングライトなどをiPhoneのhomeアプリから操作できるようにはなりません。matterに対するのはカーテンレールなどHub 2に接続するSwitchBotの機器と、Hub 2が内蔵している…

ChatGPT

一生ChatGPTで遊んでいる 課金していたので見事にインシデント対象となり、OpenAI社からのお詫びのお便りを受け取った。悲しみ クソ真面目な文章を普通に書かせても面白くないがネコ語で頼むと注文すると、〇〇だにゃ!とか出力するのでオススメ

JavaScriptでBase64

ブラウザのJavaScriptで文字列をBase64でエンコード、デコードする方法 btoa(String.fromCharCode.apply(null, new TextEncoder().encode("猫"))); "54yr8J+QiA==" new TextDecoder().decode(new Uint8Array(Array.from(atob("54yr8J+QiA==")).map(s=>s.char…

VSCodeのインラインヒントの色を直す

VSCodeのインラインヒント(inlay hint)は、関数やメソッドの引数・返り値の型やiotaで定義された定数の値などを表示する機能である。便利なのだが比較的最近入った機能であるためかテーマによっては適切な色が設定されていない。 これは規定のテーマだが、…

forEachかmapか、どっちでもいいなんて事はない

これはどっちでも良くないですし、趣味でもありません。変換処理ならmapを使うべきです。 エンジニアちゃんたちがコードレビューで喧嘩してるから何かと思ったら、「オブジェクトの変換処理をforEachで愚直に書くよりMapで書いた方がスマートだ」とかそんな…

MacのThunderbolt 4とThunderbolt/USB 4

MacBook AirとMacBook ProはいずれもThunderboltポートを搭載しているが、表記が異なっている 左がMacBook Air、右がMacBook Pro、Thunderbolt/USB 4とThunderbolt 4は何が違うのか 先に結論 MacBook ProのUSB-CポートはThunderbolt 4とUSB4に対応している。…

Configuration file is marked world-inaccessible

Ubuntuのsyslogにこんなログが出ていた Configuration file /etc/systemd/system/hoge.service.d/secret.conf is marked world-inaccessible. This has no effect as configuration data is accessible via APIs without restrictions. Proceeding anyway. s…

目標設定はしない方が良い

測定は有効であるが、手段と目的を正しく設定し測定結果の評価を正しく行わなければ逆に弊害となる。正しくないデータ、正しくない解釈が正しい結果を導くことはない。 有害な測定の身近な例が目標設定による評価制度。社員のパフォーマンスを測定するために…