技術雑文

NixOSをデスクトップで運用する

使い始めて数週間経ったので、NixOSiが何者かなどは置いておいて、今の所の運用について。 システムの部分については/etc/nixos/configuration.nixと/etc/nixos/hardware-configuration.nixに書く。 これに関してはインストール時にテンプレートが置かれてい…

NixOS上でpkg-configを使う

findで使いたい*.pcのあるディレクトリを/nixから探し、PKG_CONFIG_HOMEに入れてビルドしましょう。Rustのws-rsとかもこれでビルドできる

RustのcrossはNixOSで動かない

以上です。だと味気ないので原因を簡単に。 crossとはdockerコマンドをラップしてRustでのクロスコンパイルを簡単に実現できるツールなのだけど、 現行のcrossの実装ではライブラリ、ツールチェーンをホストの環境からイメージ内にマウントすることで実現し…

netlifyでトップとしてindex.xhtmlを置く

github.ioはデフォルトでindex.xhtmlがあればトップページと解釈してくれるのですが、netlifyはそうなりません。 _redirecsを置いて/を/index.xhtmlに飛ばせば解決できます*1。書き換え(rewrite)なのでステータスコードは200です。 / /index.xhtml 200 *1:ht…

STMマイコンが動かない時に疑うこと

ショートっぽい ショートしていないか VCAPとVddが繋がっていないか 書き込めない VREFに電圧は印加されているか 電源ラインは荒れ狂ってないか SWDIO/SWCLKは正しく接続されているか マイコンの向きは正しいか(左下の小さい円が1番ピンのマーク) 書き込め…

Dockerイメージの格納先を(恒久的に)変更する

夏ですね。響け!ユーフォニアムの事を考えて熱波をやり過ごしていますが人間限界があります。 Dockerに/varを圧縮され気がついたらもう200 MiBしか残っていない、そんな経験はありませんか。僕は/varを/とは別で切ってraiserfs載せているので頻繁に起きます…

Tubus Tara用のライトマウントを自作しました

今日は入力イベントがサイドパネルで開いたTweetdeckに吸われない TL;DR フロントバックを自転車に付けると大抵ライトが付かなくなるのでフロントラックに塩ビパイプを固定しました。 本文 自転車にフロントバックを付けると補給食や手袋等を雑に入れられて…

DensanCTF

Writeupです(多分) このとんかつが美味い2019受賞 ykbrさん作問だと一発で分かる。 Google Mapから探したけど分からなくて「水沢駅 とんかつ 温泉卵」と検索したら出てきました。メニューは「半熟卵」なのにこれで見つけるGoogle凄い。 More, more, more 分…

D言語のインラインアセンブラ

人生にはインラインアセンブラが必要なことがありますよね。 D言語にはインラインアセンブラが実装されておりIntelスタイルでアセンブリを書くことが出来ます。 はじめに この記事はD言語 Advent Calenderの12日目の記事です。 遅れての投稿で申し訳ありませ…

OpenSCAD with clojure

この記事は高専Advent Calender 4日目の記事らしいです。 前日はykbrさんのGoでTwitter Botを改良していく記事でした。僕もそろそろコピーを作らないとですね。 Clojure始めました。 キーボードの記事という事になっていましたが、殆どOpenSCADをClojureで書…

NERDTreeで起動時にファイルにフォーカスを移す

試験期間中なのでneovim設定ファイルのコミットが増えてます。 NERDTreeを自動的に起動する 自動的に起動するだけならば以下のコマンドで実現できます。 autocmd vimenter * NERDTree ただこれだと起動時にツリーの方へフォーカスが移り、やや不便です。 そ…

CircleCIでFirebaseのデプロイ先を分ける

forkした自分のリポジトリ(origin)を開発用のプロジェクト、fork元のorganizationのリポジトリ(upstream)は本番環境と分けてCIでデプロイしたい時のメモです。 方法 CircleCIのBUILD SETTING>Environment VariableでCI_MODE等の適当な環境変数を作り、upstre…

sedlexメモ

MinCamlを参考にネストしたコメントの解析を書いていた時のメモ。 ocamllexと違い''では字が読まれないためMinCamlのネストしたコメントをそのまま実装すると''のところで解析が止まりストリームが閉じなくなり死ぬ。任意の字を読みたい時はanyを使う

Menhirのライセンスについて

Menhirで生成したファイルのライセンスが気になったので。 原文 In the following, "THE LIBRARY" refers to the following files: 1- the file src/standard.mly; 2- the OCaml source files whose basename appears in the file src/menhirLib.mlpack and …

M570tをベアリング化しました

Ligicool社製の親指トラックボール、M570tを暫く使っていたのですが時々ボールの動きが物凄く渋くなることがあったためアルミナの支持球をベアリングに置き換えてみました。 kirmav.blogspot.jp 部室に転がってた外形Φ7のベアリングを使い、この方の記事を参…

void[]

D言語にはvoidという関数やメソッドの返り値の型に指定することが出来る値を持たない型があります。void*という何のポインタかは分からないがとりあえずポインタであることを示す型があります。そして、void[]と言う狐につまさたような型があります。 dlang.…

Fcitxに手こずったArch再インストール

少し早めの大掃除とPCにArch Linuxをクリーンインストールしました。 /rootと/varを大きめに取り、swapパーティションを設定しgnomeを入れたまでは良かったのですがfcitxが変な挙動をするようになっていました。 fcitx-gtk3を使うと、アドオンのFcitx XIM Fr…

D言語のオフラインドキュメントのビルド

人権がない(十分に高速なインタネット環境が無い)場合でもD言語のドキュメントが読めるようにビルドしておく方法です。 git clone https://github.com/dlang/dlang.org cd dlang.org # LATEST=の部分は適宜バージョンに合わせて読み替えてください。 make -f…

D言語でclass同士のopEqualsをオーバーロードする

D言語のclass同士の等価比較演算子のオーバーロードは少々特殊です。 structだと struct S { int x; bool opEquals(S s) { return x == s.x; } } と書けますがclassの場合だと class C { int x; override bool opEquals(Object o) { auto c = cast(C)o; if (…

LinuxでCPUの一つが常時使用率100%になる問題

一部のハードウェアにおいて、kworkerが一つのスレッドをほぼ専有してしまうことがLinuxでは結構前から度々起きているようです。症状も様々で、有線LANを使うと発生すると言うもの、動画編集をすると発生すると言うもの、何もしなくても発生すると言うものな…

Arch Linuxをインストールした

今まではLinux Mintを使っていたのですが、pacmanが使いたくなってArch Linuxに変えました。 Windows10,Ubuntu,Arch Linuxのマルチブートにしましたが、予想よりは簡単でした。 ddでUSBにisoを焼く際に間違えてHDDに焼いてしまい構築していたWindows環境とUb…