【VSCode】ユーザスニペットが素晴らしい件

「よし、新しいコード組もう!」と思ったとき、前に作ったコードをエディタで開いてコピペしてくるって事がとにかく多い。俺の場合は特に、いろいろなプログラミング言語を横断的に使ってるせいで「あれどう書くんだったっけ?」ってなる事がガチで多い。

そんな痴呆ボーイにとってマジで助かるのが、VSCodeにくっついてる「ユーザスニペット」機能だ。スニペットってのはなんかっつーと、少ない記述で短いプログラムを呼び出せる素敵なサムシング。こいつを使わない手はなかろうもん。
続きを読む 【VSCode】ユーザスニペットが素晴らしい件

【Go】ファイルの更新日時を表示奴


特定のフォルダ以下の、特定の拡張子のファイルを拾い上げて、CSVでファイル名と更新時刻をリスト化したい。わざわざ専用プログラム作らなくても、もっと楽な手段あるじゃろ・・・とか思いつつも、ちょうどいい機会なので、Goの勉強がてら作ってみることにした。

docinfo.exe -walkdir ./sample -extension doc,xls,xlsx,xlsm,pdf > list.csv

go buildして作ったexeを、こんな感じで使いたい。-walkdirで指定したフォルダ以下の、-extensionで指定した拡張子のファイルを検索して、そいつの更新日時を一覧でCSV出力する。

かばん.doc,2018-04-13
サーバル.pdf,2018-07-22
ラッキービースト.xlsx,2019-04-11

出力結果はこうなる。もちろん、txtとか対象外のファイルは出力されない。

2期?知らない子ですねぇ・・・

イカソース。
続きを読む 【Go】ファイルの更新日時を表示奴

【Go】てきとーなコマンドラインツールを作ってみる


今週からお仕事でGoを使い始めた。といっても「A Tour of Go」を軽く流し読みした程度からのスタートだ。まあどんなプログラミング言語でも基本は一緒だから、なんとかなるっしょ。

とりあえずなんかテキトーな課題が無いと勉強になんないので、2つのファイルをぶちこんで簡易的に比較する処理でも作ってみる事にした。というか、Windowsだとcompだとかfcだとかのコマンドあるので、完全に車輪の再発明だけれども…
続きを読む 【Go】てきとーなコマンドラインツールを作ってみる

【BAT】特定の文字列を含む(含まない)ファイル名を抽出して変数にぶちこむ

Windowsバッチ、苦手だから極力使いたくないンゴねぇ。それでも使わにゃいかん場面も稀によくある。まぁ泣き言いっても始まりゃしねえので、今の俺にできるのは、忘れないようにメモしておくだけじゃろう。

ある条件下で、ビルドされた成果物を使いまわしていろいろなチェックにかける必要がでてきたのだが、厄介なことに、出力されるバイナリのファイル名は毎回ランダムなものになる。共通しているのは拡張子だけ。しかも、デバッグ用とリリース用のバイナリが同時出力されるので、そのうちリリース用のみを拾い出さなければならない。
続きを読む 【BAT】特定の文字列を含む(含まない)ファイル名を抽出して変数にぶちこむ

BOMつきUTF-8をJSON.parse()で読み込めなかった

なんか最近いろんな言語でJSON扱う敷居が低くなってきたので、ファイルでデータを受け渡す時も割とJSONを使ったりする。こないだ他の人が作ったアプリが吐き出したJSON読む案件があって、こちとらElectron(Javascript)でデスクトップアプリ作ってるので、ファイル読み込んでからJSON.parse()すれば楽勝じゃね?てな感じでサクッとfs.readFile()やってみたわけですよ。

Uncaught SyntaxError: Unexpected token  in JSON at position 0

そしたら「ファイルの先頭に変なんあるよ!!」っぽい事を言われてパースしてくんない。まさかJSONのデータフォーマット腐っとるんちゃうか?と思ってチェッカーに入れたけども、問題なし。不審に思いながら、バイナリエディタでファイル開いてみたところ、データの先頭に「EF BB BF」が入ってた。うわぁ、BOMつきUTF-8だこれ!

続きを読む BOMつきUTF-8をJSON.parse()で読み込めなかった

Electron(+Vue.js)で外部アプリの進捗を表示する

最近はElectronでデスクトップアプリ作ってるのだが、どうしても他の言語で作られたアプリを呼び出さにゃいかん感じになった。大抵の言語で外部プロセスを呼び出す仕組みはあるものだけれど、Node.jsの場合は「child_process」とかいうモジュールを読み込んでくればそれっぽい事が実現できるらしい。

まあ外部アプリを呼び出すだけなら良いのだけど、その外部アプリが結構重い処理をやってるので、バックグラウンドで動いてるかどうかをElectron側で表示したい。ということは、外部アプリが標準出力に出している内容を何らかの手段でフックして、そいつをリアルタイム表示すればよさそう。というわけで、絶賛お勉強中のVue.jsと組み合わせて試してみた。
続きを読む Electron(+Vue.js)で外部アプリの進捗を表示する

Vue.jsでしょぼいメニューを作った

さいきんVue.js大好きおじさんになりつつあるのだけれども、メニューっぽいものを実装するところで詰まった。jQueryだとメニュー関係のプラグインが豊富にあるのでテキトーやっててもよかったのだが、Vue.jsだとよくわかんない感じ。

小一時間WEBの海を泳いでかっこいいメニューのサンプルを見つけても、「どれどれ」とソースコード眺めてみたらハイレベルすぎて俺みたいなクソザコナメクジには到底理解できないことが分かった。うーん、こりゃ困ったぜ。

といったところで、とりあえず車輪探しは諦めて、自分でサクッと作ってみる事にした。そして手を動かした結果、「すまん・・・俺の実力ではこれが限界だ・・・!」と胸を張って謝れる程度のしょぼいメニューが出来上がったので、ここに残しておこうと思う。
続きを読む Vue.jsでしょぼいメニューを作った

Vue.jsで要素をドラッグして動かす


Vue.jsを使って、練習がてら要素をドラッグして動かすやつを作った。べつに要素はdivで作った箱でもなんでもよかったのだけれど、ちょうど最近SVGを使って遊んでるので、なんとなくLine要素で作った×でも動かしてみることに。
続きを読む Vue.jsで要素をドラッグして動かす

Vue.jsでDOM要素を増やす(&JSFiddleおためし)


▲パワポで描いたJSFiddleのロゴ(パチもん)

最近Vue.jsを始めたのだけれど、動的に要素を追加するにはどうすればいいんだろうかという所で小一時間悩んだ。jQueryだと何も考えずにappend()なり使ってペペペペッてやってたんだけどね。ちょっと調べてみると、Vue.jsではappendTo()とかいうのがあるかと思ったらバージョン2からは削除されててネイティブAPI使えだとかいう話になってるみたい。

しかしせっかくVue.js使ってるんだし、もうちょいなんかこう・・・スマートに実装できないもんかね?ググり回ってもトレンドなお作法がよく分からんので「JSFiddle」ってやつで試行錯誤しながらやってみた。

JSFiddleってのは、WEB上でサクッと組んだコード(HTML/CSS/JS)がサクッと動かせるサービスで、ブログへのコード貼り付けも簡単にできる。しかも、jQueryだとかVue.jsだとかの有名所のライブラリなんかは、「script src=・・・」とかわざわざ書かなくても、予め「このライブラリのこのバージョン使うかんね!!」って設定しとけば、勝手にロードしてくれる。うほっ、超べんりー。
続きを読む Vue.jsでDOM要素を増やす(&JSFiddleおためし)

C#でJSONのデシリアライズ


このご時世、兎にも角にも猫も杓子もJSONだよな。Javascriptだったら何も考えずに使えるんだけれども、C#でJSONなデータを受け渡す時にちょっと詰まったので、その時に試したことをメモしとこう。

今回俺がやりたかったのは、JSONデータのデシリアライズだ。もう俺みたいなおっさんになってくると横文字がよく分からんくなってくるのだが、「デシリアライズ」ってのはJSONオブジェクトを手元で使いやすいように復元する作業のことを指すようだ。

C#でJSONを扱うには、標準ライブラリでもできなくはないのだが、「Json.NET」とかいうのが評判良さそうなのでそいつを使ってみることにした。Json.NETはNuGet(パッケージマネージャ的なやつ)でサクッと導入できるが、もし宗教上の理由とかでNuGet使えなくてもゴリ押しでDLLを直接インポートで問題ないだろう。
続きを読む C#でJSONのデシリアライズ