備忘録やめた

備忘録として使用していたけどやめた.このブログに載せてあるコードのライセンスは別途記載がない限りWTFPL OR NYSLです.

国際送金メモ

一次情報 www.jp-bank.japanpost.jp そもそも国際送金を利用した理由 学会への参加費をカードで支払うことができなかったため.どうやら同じようなトラブルが他の参加者でも頻発していたらしい. 国際送金をした場所 地元の本局の郵便局窓口.最寄りの郵便局…

vlcメモ

デバッグ方法 Firefoxやmpvなどで再生できるか.特にmpvはログがターミナルに表示されるため,これを確認することも有効. CDの再生に失敗する 権限の問題があるかもしれない./dev/sr0の権限を確認する. 音が鳴らない OSを再起動する イヤホンを抜き差しす…

`listify`の仕組みがわからない

はじめに sybのlistifyの仕組みがわからない. 注意 この記事ではbaseやsybよりコードを引用している.それらのコードはBSD-3-Clauseでライセンスされている. baseのライセンス sybのライセンス .cabalファイル cabal-version: 2.4 name: tmp-7DsxMlggVR ve…

Gitのリビジョン指定でWindows式のパスは使用できない

Git

前に作成したKritaのGitドッカーが手持ちのWindowsで使用できないという問題を調査していたところ,どうやらgit showでWindows式のパスを指定していたけれども,リビジョンには存在しないというエラーが出た。 実験してみた。以下はWindowsのcmd.exe上で実行…

Windowsでコマンドをターミナルから実行してstdoutやstderrの出力を見る

Krita(や大多数のプログラム)は一部の情報をstdoutやstderrに出力する。どういうわけか,cmd.exeやPowershellでのstartではそれらの出力を見ることができなかった。msys2ではexec /path/to/exe/fileで出力を見ることができた。 msys2のターミナルからKrita…

追加することはかんたんでも,削除するのは難しい

@worldに登録されているパッケージAの依存パッケージは,Aがアンインストールされたあと,emerge --depcleanでアンインストールすることができる. 例えばvirtual/wineはapp-emulation/vine-vanillaに依存している. %equery --no-pipe --no-color g wine * …

++++++++++[>+++++++>++++++++++>+++++++++++>++++++++++++>+++<<<<<-]>+.>+.>.<.>++++.<----.>++.<++++.>>>++.<+.<-----.>----.<+++.>>.<<<---.>.<-.++++++++.>----.<---.>>.<<---.>---.>>.<<<.>++++.<+.+.>>>.<<<+.>+++.---.--.>>.<<<-----.>+.>>.<<-----.++++.<.++++++.--

++++++++++[>+++++++>+++++++++++>+++>++++++++++++>++++++++++<<<<<-]>.>++++.---.--.>++.>+.<<++.>>----.<<+++.>.>>+++++.++++.------------.++++++.--.<<.>-.<<---.>.>>----.<<.>>+.<--.>-.<<<------.>>----.<<---.>>+++++++.>++.<<<+++++.>.>>.<<<++++.>…

KritaでGitを使うためのプラグインを作成した

github.com TL; DR はじめに 各ソフトウェア等のバージョン インストール 使用法 Kritaのプラグインの開発について 感想 TL; DR 上記リンクのREADMEを読んでください. はじめに 最近お絵描きを始めたのですが,難しいですね.お絵描き自体の技術もそうです…

Kritaのスクリプトのメニューから何も現れないときの解決法

正直理由を説明できないので,自己責任でお願いします. pip uninstall PyQt5 これで解決できた. 背景 Kritaのメニューにある「ツール→スクリプト」の先が何も出なかった.ターミナルからKritaを実行してみると, %krita QObject::startTimer: Timers canno…

`cabal install`の複数パッケージに対する挙動

weeder,hlint,stylish-haskellをまとめてインストールしようとする.このときhindentも一緒にインストールしようとするか否かでインストールされるstylish-haskellのバージョンが異なった. hindentなし %cabal install weeder hlint stylish-haskell --dr…

Haskellにおける`%`

CとかRustにおいて%は剰余を意味するが,Haskellでは剰余を求めるのにmod関数を使う. で,Haskellでは%は使われないかと言われるとそうではなく,これは分数を構成する関数となっている.この関数はbase 4.16.1.0の時点でData.Ratioに含まれている.この関…

卒業ってより生還 〜電通大よさらば!我がB4堂々退場す〜

いえーい 電通大を卒業することが確定した.ばんざーい. 1年前期 東工大に落ちて他も色々落ちて,後期でここに入学することになった.それもきっかけが母親による「電通大がいいんじゃない?」の一言で,説明会やオープンキャンパスに参加することもなかっ…

Windowsインストーラインストールバトルで突っかかったところまとめ

はじめに steamVRをGentoo上で動かそうとしてうまく行かず,オンボロ32bitWindowsマシンを使ってやろうとしてやっぱり失敗したところで,友人氏により大学のライセンスを使ってWindowsを入手できるという情報をもらったので,余っているストレージを使ってWi…

安定版Rustでの自作OSの試み

はじめに この記事は自作OS Advent Calendar 2021並びにRust Advent Calendar 2021の14日目の記事です. Rustを使用してOSを自作する場合,Nightlyの使用が前提とされている雰囲気を感じます.有名なチュートリアルであるWriting an OS in RustでもNightlyの…

WACOM One DTC133 + Gentooのメモ

環境 Linux localhost 5.10.76-gentoo-r1 #2 SMP Sat Dec 11 20:20:43 JST 2021 x86_64 Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz GenuineIntel GNU/Linux Screen 0: minimum 320 x 200, current 3840 x 1080, maximum 16384 x 16384 HDMI-1 connected 1920…

かな入力を使おう

この記事は,UEC Advent Calendar 2021の11日目の記事です.前日の記事はユーキさんの留年最高! 〜無能の就活日記〜でした. heart-relation.hatenablog.com 概要 キーボードで日本語を入力する時,大体の方がローマ字入力方式を使用していると推測していま…

Stable RustでUEFIバイナリを作成する

はじめに Rustにはx86_64-unknown-uefiというターゲットが存在しますが,このターゲットに対するcoreライブラリなどの標準ライブラリは提供されていないため,cargoの-Z build-std=coreなどのオプションを用いて自分でこれらのライブラリをコンパイルする必…

Gentooのobjcopyのターゲットにefi-app-x86_64を追加する

sys-devel/binutilsのmultitargetUSEフラグを有効にする. sudo euse -E multitarget -p sys-devel/binutils objcopy --helpのターゲット一覧にはなぜか登場しないが,コマンドは成功する.つまり,--target=efi-app-x86_64を指定できる. > objcopy --help …

execシステムコールは既存のファイルデスクリプタを保持する

つまり,次のプログラムは,lsコマンドの出力を標準出力に出すのではなく,foo.txtに書き込む. #include <fcntl.h> #include <stdio.h> #include <unistd.h> int main(void) { close(STDOUT_FILENO); int fd = open("foo.txt", O_CREAT | O_WRONLY, 0644); if (fd != STDOUT_FILENO) { p</unistd.h></stdio.h></fcntl.h>…

自身をメモリの下位1MBに読み込むカーネルには,GRUB2は対応していない

GRUB2のマニュアルの1.4より引用. Only kernels loaded at 1 megabyte or above are presently supported. Any attempt to load below that boundary will simply result in immediate failure and an error message reporting the problem. 1MBより下には…

1GBページでのページングはPDPTの13-29ビットがReservedになる

1GBページでのページングでは,4KBページでのページングとは違い,ページディレクトリやページテーブルを使用せず,PDPT (Page-Directory-Pointer-Table) が物理アドレスを格納します.この物理アドレスは,1GB単位である必要があります. 丁度今,仮想アド…

MRI検査体験記

はじめに この記事は,UEC Advent Calendar 2020の(33-4)-(3+3+4)日目の記事です. この記事は個人の体験記です.実際の症状などについては専門家の指示を仰いでください. Who am I? twitter.com MRI検査を受けた経緯 数年前から,時時頭が痛くなる症状があ…

USBキーボードドライバを作成した

この記事は,自作OS Advent Calendar 2020 - Adventarの13日目の記事です. USBキーボードドライバを実装しました. 主に読んだもの www.intel.co.jp xHCIの仕様書です. booth.pm USBキーボードドライバの作成手順が載っています. www.usb.org USB3.2の仕…

LaTeXのソースコードのコンパイル時にbashスクリプトを走らせる

この記事は,UEC2 Advent Calendar 2020の一日目の記事です. はじめに レポート作成中に,結果やコードの誤りに気付いて,コードを修正して,コンパイルして,実行して,結果を修正する,というプロセスを改善します.コードの修正は自分で行ないますが,そ…

`offset`ではなく,整数型にキャストして演算する

OSを書く場合などでは,しばしばあるアドレスを基準とした相対アドレスが必要となる場合があります.例えばVideo RAM(VRAM)へのアクセスでは,VRAMの開始アドレスを基準として,アクセスしたい画面上の座標と,解像度を用いて最終的なVRAM上の番地を確定し…

ExactSizeIteratorを使う

コード play.rust-lang.org 解説 RustのIteratorはsize_hintという,イテレーションの回数の上限下限を返すメソッドがありますが,イテレーションの回数が確定している場合,素直にlenメソッドが欲しい場合があります.ExactSizeIteratorではlenメソッドが提…

cargo: `--out-dir`でバイナリの生成場所を変更する

コード Nightlyが必要です. cargo build --out-dir . -Z unstable-options 実行すると,カレントディレクトリにバイナリが生成されます.--out-dirはunstableなので,-Z unstable-optionsが必要です. 参考 doc.rust-lang.org

GOPを楽に取得する

コード uefi-rsを使用しています. fn fetch_gop<'a>(system_table: &'a SystemTable<Boot>) -> &'a mut gop::GraphicsOutput<'a> { let gop = system_table .boot_services() .locate_protocol::<gop::GraphicsOutput>() .expect_success("Your computer does not support Graphics Out</gop::graphicsoutput></boot>…

i3のウィンドウ操作をVimと一致させる

i3

~/.config/i3/config 以下のように編集する. # change focus bindsym $mod+h focus left bindsym $mod+j focus down bindsym $mod+k focus up bindsym $mod+l focus right # move focused window bindsym $mod+Shift+h move left bindsym $mod+Shift+j move…

i3wm: 前回のセッションを復元する

i3

コード save_layout.sh #!/bin/bash for i in $(seq 1 10) do i3-save-tree --workspace $i|sed '1d'|sed -r '/^ *\/\// {/"class"/!d}'|sed 's/\/\///g'|sed '/"class"/ s/,$//g' > ~/.config/i3/workspace_$i.json done load_layout.sh #!/bin/bash i=1 # …