write ahead log

ロールフォワード用

Excelファイルを読み書きするプログラミング言語を作った

できたのはコレ。折角作ったのでMSペイントで雑なロゴも作ってみたり。。。 github.com ドキュメントも書いたし、技術的に興味のある方はGitHubへどうぞ。 残念ながら技術的にはすごいものではないけれど(buggyだし)。 何を使って作ったか 言語の処理系とし…

ブラウザで動くアウトラインエディタを作った

Vue.jsをもうちょっと触っといた方がいいかな, ぐらいの軽い気持ちで作っていたけどNetlifyだと無料で配信できるし公開しておく. bonsai-outliner.netlify.app どう見たってWorkFlowyとかDynalistを使う方が良いのだが, ショートカットをUnixキーバインドっ…

Vagrantのubuntu(ubuntu/bionic64)で12ステップで作る組込みOS自作入門の環境を作った時のメモ

h8writeとターミナルアプリは諦めてホストOSのものを使った. (Windowsでteratermとkz_h8write) VirtualBoxからUSBやシリアルポートを使う方法もあるようなのだけど, どうもうまくいかない. USB Type-Cしかないマシンなのでその影響が出ている気がしないこと…

Laravel Duskで要素数を数えたり現れる順序をテストしたかった

直接的なアサーションがなかったから作った. TestCaseでuseして使うtraitにしてみた. たぶんMacroを用意するのが正当なアプローチだと思うんだけど, 調べるの面倒で雑に書いてしまった. myAssertElementsCountIs($browser, 'tbody>tr', 1); */ p…

シェルスクリプトの中で一時的に別ユーザで実行したい

なんか毎度ググるからメモ. sudo su - user <

Laravel duskでinput type dateの入力を行いたい

なんかチョットハマったので. <input type="date" id="due_date"> に対してこうやりたいんだけど, どうもうまくいかない. ->type('#due_date', '2020-01-01') 調べるとこうやるらしい. ->keys('#due_date', '2020', '{tab}', '01', '01') 微妙に面倒.

Laravelでテストする時にパスワードの更新を確認する

パスワードのハッシュを確認するメソッドを毎回忘れる. // Hashファサードがいるよね use Illuminate\Support\Facades\Hash; // 普通の項目は以下でテストできる $this->assertDatabaseHas('users', [ 'name' => '更新した名前', 'email' => '更新したメール…

Laravel Duskでテストする時に毎回ログアウトしたい

なんか毎回ググってる気がするからメモっとく. 場合によっちゃDuskTestCase.phpに入れてもいいかもしれない. public function setUp(): void { parent::setUp(); // 毎回ログアウトするためクッキーを消す foreach (static::$browsers as $browser) { $brows…

CentOS7にLaravel6 + Postgresを構築する時にやった設定メモ

忘れるし. vagrantで構築する時の. ユーザはvagrantで. provisioning.shとか作れって話だけど. ロケールがvagrantのboxにないのでlibcを入れなおす sudo yum reinstall -y glibc glibc-common ロケールとタイムゾーンの設定 sudo localectl set-locale LANG=…

Laravel6系でmigrationのchangeを使おうとしたらエラーが出た

こんなエラーが出た. Symfony\Component\Debug\Exception\FatalThrowableError : Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found doctrine/dbalを入れれば良いという情報はたくさん見つかるのだが, Laravel6だとうまく動かなかった. どうもdoctrin…

pg_dumpでオブジェクトを削除(Drop)するSQLを一緒に出力したい

こんな感じで「-c」オプションを使えばよいらしい.(--cleanの別名っぽい) 「--if-exists」を使うとその名の通り「if exists」を付けてくれてより良い感じ. pg_dump -c --if-exists db名 > dump.sql

PowershellでmdbファイルをExcelにするスクリプトを書いた

仕事で使いそうだったので. 出来ればこんなの使いたくない. ####################################################################### # 概要 # mdbファイルを開いてテーブルの内容をExcelへ出力する # 書式 # export-mdb.ps1 [mdbファイルへの相対パス] […

Powershellでmdbファイルを開いてテーブルの一覧を得る

2020年にもなってMDBファイルを触ることになるとは思わなかった. PowerShellは便利だ. 使うときにはこの辺のコンポーネントが必要だと思う. Microsoft Access Database Engine 2016 Redistributable ######################################################…

OpenSSHを使ってSFTPの設定をする

OpenSSHさえ入っていれば設定だけでSFTPサーバも兼ねる事ができる. お手軽で良いのだけど, 設定をたまにしかしないので忘れるのでメモ. よくある設定 CentOS7では /etc/ssh/sshd_config に以下の様な内容を追記してやる. #Subsystem sftp /usr/libexec/opens…

Laravelでフォームのチェックボックスを作るときにoldを使いたい時

なんかいつも忘れるというかハマるんだよね. is_doneはDB上はbooleanとして. <input type="hidden" name="is_done" value="0"> <input type="checkbox" name="is_done" value="1" id="is_done" @if (old('is_done', $production_plan->is_done ? '1' : '0') === "1") checked @endif > <label for="is_done">完了 </label> テーブルみたいな明細構造でも同じ考え方で大丈夫.(当たり…

Laravelのリクエストバリデーションで除外IDを指定する

unique使うと更新時に問題になるんだけど, ignoreというメソッドがいつの間にか追加されている. これを使えば「更新対象レコードのidを除外してuniqueチェック」ができるけど, 更新対象レコードのidをフォームリクエスト内でどうやって取得するのかわからな…

Laravel(Eloquent)で実行するSQLを確認したい

O/Rマッパーは便利なんだけどパフォーマンスとか考えると生のSQLみたい事がよくある. というか生SQLの方がわかりやすいことも正直多い.... ということで生のSQLを出す方法を調べた. 1. toSqlを使う ちょっと見るにはシンプルでよい. $query = $User::where('…

javascriptで小数の切り捨て・切り上げ・四捨五入を桁数指定で行いたい

ちょこっと使いたい時があるので. 大きな桁数などで精度の問題があるのは承知の上. 雑に書いた割にテストしてないからバグってるかも. /** * 有効桁数を指定して小数点切り捨て処理を行う * val: 切り捨てる値 * digits: 丸めて残す桁数 */ function digitsF…

Laravelのmigrationで複数列にユニークキーを指定する方法

毎回ググってる. ユニーク制約を追加する時. $table->unique(['列1', '列2'], '制約名'); ユニーク制約を削除する時. $table->dropUnique('制約名'); 制約追加時の制約名は任意指定のようだけど, 後で削除することを考えると指定しておいたほうがわかりやす…

Laravelのmigrationで外部キーを消すときの指定方法

なんかパッとわからなかったのでメモ. Laravel6では動いた. 多分5とかでも動く. $table->dropForeign('[外部キーを取り除くテーブル名]_[外部キーを取り除く列名]_foreign');

Laravel6でページネーションのテストする時に困った事

メモ書き. ハマった点は assertViewHasにはpaginate()の結果を渡してやる必要がある(これはまぁそうだよね) assertViewHasに渡すデータはwithでeagar loadingしたデータを渡す必要がある それっぽいコードを書くと、以下ではダメで // 検索結果が昇順でソー…

clang-formatを使う

golangに慣れるとコードフォーマッタが欲しくなりますね. C, C++でスタイルを適当に合わせたい時にはclang-formatというものがあります. インストール $ sudo apt install clang-format 設定ファイルを作る .clang-formatというファイルを作っておくとそれに…

goとvueでtodoアプリを作った

コードはここ. github.com デモはここで動かした.Heroku最高. https://github.com/twinbird/vue-go-todo 「低レベルプログラミング」を斜め読みして疲れたので, 「バー」っと書いて「ドーン」と動くものを触りたくなったから作った. 仕事でもいつかは使うだ…

VSCodeで拡張子txtもMarkdownとしてプレビューしたい

まず設定ファイルを開く. ctrl+, から右上のアイコン「設定(JSON)を開く」をクリックしてconfig.jsonを開く. config.jsonを開いて以下を追加. "files.associations": { "*.txt": "markdown" } 社内文書だと.md知らない人も多いので.txtの方が無難だったりす…

配管を作って学ぶGit

この記事はGit Advent Calendar 2019の記事です. ———————————————————— 最近, 仕事でコードを書いてない... そんな所にPro Gitをちょうど読み終わったので, Gitを作ることにしました. toy-gitという個人プロジェクトです. このプロジェクトの最終目標は自作…

AppEngineのローカル開発環境を外部からアクセスできるようにする

GAE

Google App Engineのローカル開発環境をローカル以外からアクセスしたいことがあったので. (こんなことする人滅多にいないだろうけど...) dev_appserver.py app.yaml --host=0.0.0.0 --enable_host_checking=no

git bash(mintty)からでもpg_dumpしたい

ちょっと考えればわかりそうな事だったんだけど, メモしておく. git bashやmsys2でpg_dumpを使おうとするとWindowsには疑似端末がない影響なのか, うまく動作しない. (とはいえ,最近は状況が変わってきたようだけど.) マイクロソフト、Windows 10にUNIX系OS…

詳解Unixプログラミングのサンプルコードを動かす環境を作る

Ubuntu18.04で. とりあえずbuild-essential入れりゃいいんだろと思っていました. $ sudo apt install build-essential APUEのサイトからサンプルライブラリを手に入れる ここで配布されているのでダウンロードします. # ダウンロード $ curl -OL http://www.…

WSLのUbuntuでsshしたら接続先の操作が文字化けする

WSL上のlocale設定していなかった. 日本語使わないと気づかんなぁ. WSL上の.bashrcに以下を追加. export LANG=ja_JP.UTF-8 export LANGUAGE=ja_JP.UTF-8 export LC_ALL=ja_JP.UTF-8 続いてlocaleを生成して設定. $sudo locale-gen ja_JP.UTF-8 $sudo dpkg-re…

laravelでdusk使う時にやること

毎回忘れるから雑にメモ. HomesteadでなくCentOSの場合 chromeを入れてやる必要がある. vi /etc/yum.repos.d/google-chrome.repo [google-chrome] name=google-chrome baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch enabled=1 gpgcheck=1…