write ahead log

ロールフォワード用

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…

golangでHTTPヘッダを追加した時のメモ

リバースプロキシを使うことが多いだろうから, net/httpで書いたサーバがそのまま外に出る事は少ないと思うけど. App Engineがね.(設定とかでいい感じにしてくれるんですかね?) 書いたコード こんな感じでラッパーを作って. /* * HTTPヘッダを送出するように…

Homestead上でlaravelのdusk使おうとしたらFailed to connect to localhost port 9515: Connection refusedって言われる

結論としてはchromeとchrome-driverに必要なライブラリが入っていなかったからっぽい. Homesteadって全部入りではないのか... っていうか以前のバージョンなら問題なく動いた気が...なぜなのだ... # 直接実行するとchrome-driverがそもそも動作しない $ ./ve…

Win32 APIを使ってC言語でテトリスを作った

作った. github.com 前回コンソールで作ったのでGUIにしてみた. twinbird-htn.hatenablog.com でも途中でメンドクサクなって全然カラフルじゃないしボタンもない. Win32 APIに触ってみたかったので作り始めたが, 作ってわかったことは.NETとWin Formsは偉大…