技術情報

.NET MAUI 画像切り抜きサンプル。

jupitrisonlabs.hatenadiary.jp 前回の記事で WinUI3 を使った画像切り抜きサンプルコードを紹介した。どうせなら .NET MAUI バージョンも作って公開しようと思い作り始めたのだが、かなり手こずった😭 github.com 追記:Blazor版も作った。 github.com

C# 画像切り抜きサンプル。

Matrixを使った座標変換を理解できたので、画像切り抜きを題材にサンプルを作成した。 github.com

Alpine Linux on WSL2 と nodenv と Node.js

nodenvを使ってAlpine Linux on WSL2にnodeをインストールする方法。 バイナリでは動かない 事前にanyenvのインストールと、anyenv経由でnodenvをインストールしておく。 nodenv install 18.17.1 上記コマンドを実行してnodeをインストールしnode -vを実行し…

ARMアーキテクチャ搭載PCを求めて・・・

Apple M2 Proチップ搭載MacBook Proのあまりの発熱の少なさに驚愕した影響で、開発向けのArm搭載WindowsノートPCを探し求めた。 Snapdragon 8cx Gen 3搭載機に興味があるが、実用的な機種はほとんどなし x64からArm64に切り替えることへの不安を解消する Cho…

WSL2+Ubuntu 20.04の時刻ズレ解消方法

よく見かける手段。 WSL上で下記コマンドを実行。 sudo hwclock --hctosys これでも直らない場合。UTCになっているときなど。 PowerShellを管理者モードで起動してから以下のコマンドを実行してWSLを再起動。 wsl --shutdown

EdgeやChromeで発生するERR_NAME_NOT_RESOLVEDエラー

普段Edgeを利用しているが、ある日を境にERR_NAME_NOT_RESOLVEDが頻回している。Firefoxでは発生していないため、Edge(やChrome)の問題だ。 解決方法を調べている中でドンピシャの解決方法だったのが、下記質問スレッドに対する回答だ。 support.google.com …

起動に失敗するDocker Desktop for Windows。

ChocolateyでインストールしたDocker Desktopをアップデートすると、たまに発生するDocker Desktopの起動失敗。今回は4.15.0にアップデートしたら発生した。 まずはログを確認。 Start-Process $env:LOCALAPPDATA\Docker\log.txt 起動に失敗した付近の時刻に…

TWAINの処理シーケンス。

TWAINを使ってスキャナを操作するWPFアプリを作っていて、情報源の少なさにかなり苦労した。1週間ほど格闘した中でわかったのは、TWAINはStateによって実行できるコマンドが変わることだ。ここかなり重要だった。 twain.org ここから参照できる仕様書(PDF)で…

BackgroundWorkerでBitmapSourceを扱うときの注意点。

このオブジェクトは別のスレッドに所有されているため、呼び出しスレッドはこのオブジェクトにアクセスできません。 BackgroundWorker.RunWorkerAsyncの引数にList<BitmapSource>型のリストを渡して、BackgroundWorker.OnDoWorkなどでBitmapSourceを取り出して処理を行う場</bitmapsource>…

ThinkPad X1 Carbon(Gen 9) 購入。

Inspiron 13 7300を購入してからまだ1年半も経過していないが、不満点が多く、作業中にイライラすることが多いので買い替えた。 イライラポイント 洗い出したらいろいろ不満点が多かったので、上位5つに絞った。 第1位:タッチパッド操作が固まる いちばんイ…

折れたSTH40Dの補修。

折れやすいと評判のソニー『STH40D』。 www.sony.jp 自分もバッグに入れていたら、重い荷物の負荷がかかったのかヒビが入り、接着剤で直そうとしていたら折れた。 そんな折れやすいけど決して安価ではなく、買い替えをためらってしまう『STH40D』を補修した…

LaravelでManyToMany(多対多リレーション)するときの注意点。

Laravel 8.xの話*1。 readouble.com 上記ページのテーブル構造を例にとると、users.idとroles.idそれぞれをUUIDなどのinteger以外の主キーにすると、中間テーブルにデータを登録するときに片方のidが0になる現象が発生する。 *1:他のバージョンでも同様と思う

ACASISのSSDコピー機がとっても便利だった話。

XPS13(9360)のストレージを『Samsung 970 EVO Plus』に載せ替えるために買ったACASISの『M.2 NVME SOLID STATE MOBILE HARD DISK』という製品。 ACASIS Type c USB 10G NVME M.2 SSD外付けケース to ダブルベースNVMEドッキング装置 対応 M2 SSD Key M オフ…

WSLにPHP7.4.xをインストールする

phpenvを使ってPHP7.4.xをインストールする*1。 このとき、krb5、krb5-gssapi、onigurumaのインストールを求められることがある。 その際は、sudo apt install libkrb5-dev libonig-dev するといいだろう。 *1: WSLはUbuntu 18.04.4 LTS (Bionic Beaver)

自作キーボードに必要な工具類。

下記の自作キーボードを2台作った経験から、制作に必要な工具類を整理。 Quefrency - 60%/65% Split Staggered Keyboardkeeb.io yushakobo.jp 必須 はんだごて 自分は下記の製品を買った。こて台がついている点が良い。30Wのせいなのか、コテ先が温まるまで1…

FF11のために新しいノートパソコンを購入した。

踏ん切りをつけた jupitrisonlabs.hatenadiary.jp 踏ん切りがつかず、ずーっとどうしようか悩んでいたところ、ヨドバシカメラのサイトで安くなっていた型落ちの『Dell G7 15(7588)』を見つけた。お値段は113,280円。 www.dell.com

OCN光を解約してNTT東に事業者変更したらルーターを交換してもらえた。

先日、下記の記事を書いた。jupitrisonlabs.hatenadiary.jp このあとOCNとはいろいろやり取りをしたが、結局ルーター変更には対応してもらえなかった。ひかり電話対応ルーターが諸悪の根源だと思っていたので、OCN解約、ひかり電話解約、アナログ回線の加入…

フレッツで『RV-440KI』が家にきた方はハズレガチャを引いたと思え。

RV-440KIの下にNECのIX2105をつないで、L2TPを利用したリモートVPN環境を構築しようと考えていたが、物理的に不可能なことがわかった。 L2TP/IPsecは、500番ポート/4500番ポート/ESPプロトコルを使用するのだが、RV-440KIではNAPTによるポート変換はできるも…

自作LANケーブル(カテゴリー6)作成のコツなど。

カテゴリー6のLANケーブル作成にさんざん失敗して得た知見をもとに、作成におけるコツを紹介したい。 必要な工具 いろんなサイトで紹介されているが、下記が揃っていればよい。 ニッパー ケーブルの先を切りそろえるのに持っているとよい。自分は下記のプラ…

WSLをUbuntu 18.04にしたときのROOTディレクトリ。

2021/1/20 追記 PCのデータ移行をしていて気がついたが、WSL2になると仮想ディスク($ENV:UserProfile\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx)に変わっていた。 $ENV:UserProfile\AppData\Local\…

dateコマンドで『年月』を取得するときに気をつけたいこと。

以下は「YYYY-mm-dd」形式で与えられた引数から、その日付が所属する月を表示するスクリプト。 #!/usr/bin/env bash ARG=$1 YM=$(date "+%Y-%m" -d "${ARG}") echo ${YM} exit 0 ファイル名を「get-ym.sh」として、下記のように使う。 $ sh get-ym.sh '2018-…

Vimで垂直分割して空ファイルを編集するショートカットキーは存在しないの?

ヘルプ見ると水平分割についてはショートカットキーの記載がある。 CTRL-W n CTRL-W CTRL_Nヘルプの続きに垂直分割について触れられているが、 :[N]vne[w] [++opt] [+cmd] [file]としか書かれていなかった。 自分で設定ファイルにショートカットキーを定義す…

EC-CUBE3とAuto ScalingしたEC2とlsyncd+rsyncd

EC-CUBE3のコンテンツ同期 やりたいこと EC-CUBE3をEC2に構築しているが、管理機能とユーザー機能でインスタンスを分けているので、管理機能からページ更新などの更新処理が行われたら、ユーザー機能のEC2に更新したコンテンツを反映したい。 構成 EC2の構成…

Font Awesome 5 Proを購入した。

アプリのワイヤーフレームを制作していて、アイコンに関してはFont Awesomeを使おうと思い公式サイトを訪れた。 そしたら、『9月はFont Awesome Proを$40でゲットできる最後のチャンスだよ!』的なダイアログが出るもんだから、ある程度Free版と内容を比較し…

XPS 13がスリープから回復できない問題。

ロック画面にしてそのまま一晩放置しておくことが日常茶飯事なのだが、まれにその状態から回復できないことがある。こういうときは電源長押しして再度電源を押すと起動画面から始まるのだが、ああ・・・前日の作業状態が消えた・・・と落胆してしまう。 なん…

RazorEngineでHTMLメールとテキストメールのテンプレートを作成する。

RazorEngineを使ったメールテンプレート作成方法。antaris.github.ioテンプレートに埋め込むモデルを定義する。 namespace MailApp.Models.Mail { public class Template { public string Name { get; set; } } } テンプレートファイルを指定して、その中身…

New XPS 13が修理から戻ってきた。

修理から戻ってきたのは2週間前。だいたい修理に2週間ぐらいかかった。 修理内容はSSDの交換で、OS入れ直したとなった。 以下、セットアップした内容である。 基本方針 Chocolateyでインストール可能なものは、すべてChocolateyでインストールする。 https:/…

wslttyを使用したときのホームディレクトリの位置

C:\Users\[Windows User Name]\AppData\Local\lxss\home\[Linux User Name] エクスプローラーから探しても「lxss」が見つからないので、ホームディレクトリにおいてあるファイルでエクスプローラーから検索をかけて発見した。 余談だがwlsttyの設定ファイル…

BoW(wsltty)のrailsコマンドで「Error: Command 'rails' not recognized」が発生したときの対処法

Bash on Ubuntu on Windows(wsltty)上にrbenvでRoRの環境を作り、rails cやrails g model hogehogeを実行したら以下のエラーが発生した。 $ rails c Version: 2.0.1 Usage: spring COMMAND [ARGS] Commands for spring itself: binstub Generate spring base…

Bash on Ubuntu on Windows(wsltty経由)はletter_opener_webを使う

Railsの開発でメールを送信するときに便利なletter_opener。 github.com ただBash on Ubuntu on Windows上だとブラウザが開けないので、送信されたメールの内容が確認できない。 そこでletter_opener_webを使う。 github.com まずはGemfileに以下の記述を追…