Pandora Pocket

IT系と日常系の備忘録。三日坊主。

前職ではSVNばかり戯れていたので(もとはVSSだったのでこれでも進歩したほうだった)Git初心者なひつじです。
絶対まとめておかないとまた後で調べなおすことになるのでメモメモ。

Gitだと以前コミットした場所まで

git reset

を使えば戻すことができます。

で、今回このコマンドで戻した際、うっかり二回実行してしまって戻したくないところまでワーキングツリーを戻してしまいました。

続きを読む

AzureFunctionsのlocal.settings.jsonファイルといえば

 {  
   "IsEncrypted": false,  
   "Values": {  
     "FUNCTIONS_WORKER_RUNTIME": "<language worker>",  
     "AzureWebJobsStorage": "<connection-string>",  
     "AzureWebJobsDashboard": "<connection-string>",  
     "MyBindingConnection": "<binding-connection-string>"  
   },  
   "Host": {  
     "LocalHttpPort": 7071,  
     "CORS": "*"  
   },  
   "ConnectionStrings": {  
     "SQLConnectionString": "<sqlclient-connection-string>"  
   }  
 }  

Azure Functions にデプロイして実行する前に、ローカル コンピューターのコマンド プロンプトまたはターミナルで Azure Functions をコーディングしてテストする方法について説明します。
[はてなブックマークで表示]

のような感じで設定情報が保存されてます。

続きを読む

最近Calibreという電子書籍の管理ソフトを使ってます。

このソフトでKindleの電子書籍を管理してるんですが、私はタイトル欄には書籍名と巻数のみだけ、それ以外の情報は消しておきたいというポリシーがありまして、元のタイトルはカスタム列を作成してそちらに入れるようにしています。

こんな感じで。

が、たくさんデータがあるといちいちタイトル欄からコピーしてカスタム列にコピーして・・・ってのが面倒。

なので、Calibreのコマンドを利用して、一気にカスタム列にコピーするソフトを突貫で作りました。

Calibreの特定のカラム内の値を別のカスタムカラムに一括コピーする. Contribute to Ovis/CalibreBulkCopyMetaDataConsole development by creating an account on GitHub.
[はてなブックマークで表示]

App.config側にCalibreのパスやライブラリパス、コピー先のカラム名、コピー元のカラム名を指定してやると、コピー先カラムに値が書き込まれていない場合にコピー元カラムの値を取得して、コピー先カラムに書き込むだけ。

また、コピー元カラムにコピー先カラム内で利用されている値が含まれている場合に、その値を書き込む処理もフラグを変更したらできるようにしてます(CopyWhenIncludedFlg)。
上の画像でいうレーベルというカラム、単行本レーベルを登録しているんですけど、これも一個一個入れるのが面倒なので、タイトル欄に入っているならそれをコピーして入れておきたいから実装した次第。
実装が糞なので、「ビッグコミックス」と「ビッグコミックススペシャル」みたいなものだとビッグコミックスのほうが採用されちゃうこともあるんですが、まぁいいや。

MarkdownファイルをPDFにするとき、普段はVSCodeのMarkdown-PDFプラグインを使ってるんですが、大量のMarkdownファイルがあるときに一個一個PDFにするのが面倒。

MarkDown変換コマンドラインツール「Pandoc」を使う

node.jsを使ってmarkdownファイルからPDFファイルに変換してくれる「markdown-pdf」を見つけました。今回はmarkdown-pdfを利用して、PDFのスタイルシートをカスタマイズしたり、gulpタスクで一括変換できるものを作ってみましたのでご紹介します。
[はてなブックマークで表示]

このあたりを使えばいいんでしょうけども、せっかくなので作ってみようと思いまして。

続きを読む

PCが常時2台稼働し、NASも2台稼働させ、夏冬はエアコンをかけっぱなしという生活を続けているので、...
[はてなブックマークで表示]

以前中部電力から別の電力会社に切り替えるため、スマートメータを取り付けてもらったんですが、スマートメーターって電力会社との通信だけでなく、個人に対して通信もできるようになってるんですよね。(HEMSとか)

今の電力会社は電力情報をAPIでくれないので(くれる電力会社あるんだろうか)、日々の電力消費量を見るためにはサイトを見る必要があるんですが、スマートメーターから取得できるならそれで確認できるなということで、試してみることにしました。

続きを読む

Azure Functionsで動かしていたプログラムがあるんですが、(たぶん実装が悪いのだけど)課金が結構な額となってしまい、またDBを使うとなるとそれはそれでよい金額となってしまいます。

というわけでAzure Functions用に作っていたプログラムを.NET Coreのコンソールアプリとして置き換えて、Google Compute Engine上のLinuxで動かすことにしました。

続きを読む

.NET CoreではShift-JISがそのままでは利用できない。

.NET Frameworkで作成していた時は問題なく動いていたプログラムをそのまま移植すると、

ArgumentException: 'shift_jis' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.

と怒られる。

対策

エラーメッセージにある通り、カスタムエンコーディングを登録してやる必要がある。

NuGetからSystem.Text.Encoding.CodePagesを参照し、

コードのどこか(Shift-JIS処理するより前)に下記を挿入。

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

これでShift-JISが正常に利用できる。

UWPとかやっていた方からしたら基本的な知識なのかも。

いい加減Shift-JISを利用したサイト滅びてくれないかな・・・。

音楽データベースのMusicBrainzからデータを引っ張ってくるときの備忘録。
[はてなブックマークで表示]

前の記事でまとめたMusicBrainzを用いて、CDドライブに挿入されているCDの情報を取得するプログラムを書いてみました。

TrackIDなどを計算する部分は面倒なのでライブラリを利用しています。

CD/DVDドライブに挿入されている音楽CDの情報をMusicBrainzから取得する簡易プログラム - Ovis/GetCDInfoConsole
[はてなブックマークで表示]

簡易プログラムなので例外処理は特に入れてません。
CDが入っていない状態だと例外を吐きますのでご注意を。