朝倉 卍丸

シングルモルトスコッチなどのお土産を持ってきた人を助けるのが好きです。サービスの分割が重要ですが、昔ながらの方法でやりたいこともありますよね。

無限クラッシュMacBookのChromeが立ち上がらなくなったので対応

開発環境

2025/12/16

無限クラッシュ!MacBookのChromeが立ち上がらなくなったので対応

ChromeがMacのシステムファイルにダメージを与えている様な記事を見かけて「大変だな〜」と思っていたのですが、自分の所でもMacBook Pro+Chromeの組み合わせで障害が置きました。 macOSが起動しなくなる原因はChromeだった 急に無線LANが繋がらなくなりChromeがローディングしっぱなしになったので、強制終了したところ、Chromeの再起動時に「Google Chromeが予期しない理由で終了しました。」と表示されるようになりました。 エラーアラートか珍しいと思いながら「再度表示 ...

MacBookにSoundflower.pkg開発元が未確認を解除してインストール

開発環境

2025/12/16

MacBookにSoundflower.pkg開発元が未確認を解除してインストール

新しいMacBookを購入した際に、内部音声を録音したかったのでSoundflowerをインストールする事にした所、下記の内容で開けなくなっていました。 "Soundflower.pkg"は、開発元が未確認のため開けません。 古いMacBookのOSであれば環境設定の「セキュリティとプライバシー」画面からGUIベースで「すべてのアプリケーションを許可」という項目があったのですが、どうやらmacOS Sierra以上ではセキュリティ強化の影響で、開発者による署名が行われていないアプリは実行実行出来なくなった ...

シェルのコメントではない#(シャープ)記述$((expression)) [bash]

プログラミング

2025/12/16

シェルのコメントではない#(シャープ)記述$((expression)) [bash]

一般的にコメントアウトする時に「#」を使いますが、たまにシェル内にコメントではない#(シャープ、ハッシュマーク)の記述があります。 これは$((expression))記述内で使える記述で、この場合の「#」はbash独自の機能となり、進数計算をしています。 「#」の左が基数、右が基数での数値を表し、左右の値をもとに10進数に変換した値を出力します。 例えば、10#11は10進数の11を10進数で表示したものなので11、2#11は2進数の11を10進数で表示したものなので3という風になります。当然数値計算な ...

複数行文字列の先頭と末尾にダブルクォーテーションを付け文末のカンマを消す

プログラミング

2025/12/16

複数行文字列の先頭と末尾にダブルクォーテーションを付け、文末のカンマを消す

抽出されたデータをもとに、確認用のSQLを作って抽出の成否を判定したいときに、IN句の条件を生成したいわけですが、抽出データは非エンジニアが見ることが多いため、CSVやTSVのようなエクセルで確認できる形式が多いと思います。 そういったとき、列の情報だけをコピペしてくるとIN句で使うにはクォーテーションをカンマが足りません。 そこで列をコピペした値に、行頭と行末に必要な文字を付けてあげるシェルを毎度使っています。正直業務ではないため、適当に処理をパイプで繋いで出力しているだけです。 word.txtから複 ...

shで特定文字の書き換え(置換)を行う

プログラミング

2025/12/16

shで特定文字の書き換え(置換)を行う

jenkinsでデプロイする時など、何かのタイミングで強引にhtmlやcss,jsなどファイルに含まれている対象文字の書き換えを行いたかったので、とりあえずシェル(#!/bin/sh)で書き換えを行う方法です。 テスト環境用にデプロイするファイル内のtestをtest2にするものとします。 findで書き換えたいディレクトリを探し、xargsで読み込んでコマンドラインを作成、sedコマンドで書き換えを行います。 /指定ディレクトリ/ については、jenkinsでGitを読み込んだ時は ${WORKSPAC ...

全体の総数と年月ごとの総数SQL

データベース

2025/12/16

全体の総数と年月ごとの総数をSQLで求める

説明しづらい状況ですが、データを抽出したい時に、データ全体の総和と、年月単位での件数を同じ出力結果で求めるたい事があると思います。 メインテーブル rest_date id login_flag 2017−04−1 0001 1 2017−04−1 null 1 2017−05−1 null null 2017−06−1 0003 null 2017−07−1 0004 1 2017−07−1 0005 1 サブテーブル rest_date id login_flag 2017−04−1 0001 1 2 ...

データが入っているテーブルにDEFAULT付きのカラム追加SQL

データベース

2025/12/16

データが入っているテーブルにDEFAULT付きのカラム追加

メンテナンス対応で、すでに大量のデータが入っているテーブルに対してカラム追加を行う必要があると思います。 データ量が多いテーブルに対して、DEFAULT値を設定したALTER TABLEを実行すると、全件にデフォルト値が登録されるため、処理時間に不安があると思います。 ALTER TABLE common_table ADD impact_flg char(1) DEFAULT '0'; この際、内部処理の実行順番は、大体のDBでALTER TABLEの後、DEFAULTを設定するUPDATEが実行されま ...

DISTINCTを使わないで重複排除を考えるSQL

データベース

2025/12/16

DISTINCTを使わないで重複排除を考える

SQLのDISTINCTはEXISTSとかGROUP BYでなんとかする事もできます。 DISTINCTは暗黙的なソートがされますが、何のDBを使うにせよ過去のバージョンならともかく、最近のバージョンでは劇的に速度に差が出るほどではないです。 個人的にはDISTINCTを使える抽出条件の方が目くらでさらっと分かるので好きですが、諸事情で使えないケースもあるため手数は考えておきたいです。使用している特定製品がWHERE以下しかSQLを記述することが出来なくて、DISTINCTの代わりが必要ってレアケースの人 ...

直前のコミットの取り消し方法Git

バージョン管理

2025/12/16

Gitで直前のコミットの取り消し方法

他人が触っているブランチと間違えてコミットしてしまった時など、直前のコミットを削除したい時があります。 git pushを取り消すには2つの方法があります。 git revert コミットを打ち消す(履歴は残る) git reset コミットをなかったことにする(履歴は残らない) ややこしいことにgit resetには3つの種類(オプション)があります。 reset --hard:全てをマルっと消す。 reset --mixed:commitとaddを取り消す。 reset --soft:commitのみ ...

Djangoのtemplate(標準)でURLエンコード

プログラミング

2025/12/16

Djangoのtemplate(標準)でURLエンコード

マニュアルがとても見辛いため探すのに時間が掛かってしまいましたが、他言語のテンプレートエンジンと同じ様に、縦線を利用する事で実行内容を記載できます。 valueの部分がURLを記述する部分で、もしURLが"https://www.example.org/foo?a=b&c=d"のような形式だった場合、出力は次のようになります "https%3A//www.example.org/foo%3Fa%3Db%26c%3Dd" {{value|urlencode}} urlencode Escapes a ...