投稿記事

無料プランの記事 (64)

いらにか 2022/04/25 12:31

【楽ちん】ブログで対談風テキストを楽に作るためのツール【PowerShell】

オープニングトーク

いら:どうも、いらにかの半身の「いら」です。

にか:どうも、もう半分の「にか」です。ってこれは一体なんですか?

いら:今回は対談風テキストをブログに書き起こすときに便利なツールを作ってみたので、それの話をしようかなと。

にか:なるほど。それで実際にこんなテキストを書いてるのですね。

いら:対談風テキストを書くときって大抵「<名前>:<セリフ>」だよね。

にか:コロン《:》の代わりに余白とかのケースもありますね。

いら:で、大抵のブログってHTML直書き or WYSIWYGって呼ばれる仕組みを採用してるんだけど、名前のところを色つけたりとかボールド表示したりとか、いちいちブログのエディタで操作するの面倒くさいんだよね。

にか:あー、以前「よくわかる道草屋」を作ったときにも苦しめられてましたね
※「よくわかる道草屋」は某サービスの評価試験目的で作られたサイト。スマホじゃないとレイアウトが崩れるのであまり紹介したくない黒歴史。

いら:無駄に思える繰り返し作業が本当にストレスなんだよね。パソコンに出来ることならパソコンにやらせるべきだし。あと、シエル学園シリーズは対談系テキストも書く予定だから、いっそのことツール作っちゃおうってことで作りました。

にか:「作りました」ってすでに過去形なのか(笑)


というわけで始まった今回のブログのネタは、対談風テキストの置換支援ツールのお話です。


ソースコード

基礎ロジックを先に考えるのがめんどくさかったので、先にPowerShellでプロトタイプを組みました。以下、プロトタイプのソースコードです。

Replace-Chacolor.ps1

function Replace-Chacolor {
    param(
        $FilePath,
        [PSCustomObject]$Templates,
        $JsonTemplateFile = ""
    )    
    #TODO: tempalte validationを追加する

    $text = (Get-Content $FilePath -Raw)
    $result = $text

    if ($JsonTemplateFile -ne ""){
        $Templates = Get-Content -Raw $JsonTemplateFile | ConvertFrom-Json
        Write-Debug $Templates[0].Text
    }

    
    $Templates | % {
        $tmp = $_
        $result = $result -replace $tmp.Text,$tmp.ReplaceText
    }

    $result

}

今のところ、ルール(テンプレート)に書かれているTextをReplaceTextに置換するだけの簡易実装です。
本当はルール自体に置換処理のスクリプトを書けるようにもできるんですが、過剰すぎるし、ルール記述が複雑になりそうなので機能を除外しました。

ちなみに、僕はモジュール化してもう少し便利に使っています。


使ってみた様子(デモ)


まずは、テキストを用意します。

text.txt

いら:そういえばテスト設計どう?

にか:うーん、コスト大きいですね。

いら:じゃあ設計後回しでホワイトボックステストにしちゃおう

にか:了解です。ちなみに、この機能ってどれくらいで作れそうです?

いら:うーん、ちょっと10分くらい待ってもらっていい?

~10分後~

いら:だいたい8分くらいかな

にか:わかりました。工数表に記入しときますね。

いら:ついでにDoneって記載しておいて

にか:えっ?

いら:もう作っちゃったから


見積もりよりも先にモノを作ってしまうのが、良くも悪くもいらの性分《タチ》だった・

そしたら、ルールファイル(テンプレート)を作ります。

template.json

[
    {
        "Text" : "いら:",
        "ReplaceText":"<span style=\"color: #ef5350\">いら:</span>"
    },
    {
        "Text":"にか:",
        "ReplaceText":"<span style=\"color: #42a5f5\">にか:</span>"
    }
]

ちなみに、上記はJSONで書いていますがスクリプトにはPSObjectでも渡せるので、好きなコンフィグ形式で設定してPowerShellでPSObjectに変換してから渡しても動きます。

つまり、Replace-Chacolor -FilePath .\text.txt -Template $(someScriptConfig.ps1)みたいにPSObjectのコンフィグを返すPowerShellスクリプトでルールファイルを書いておくことも出来ます。
※ルールファイルをスクリプトで書く黒魔術の便利さはPython使いならよく知ってるはず(多分


ちょっと話が逸れましたが、これをこんな感じで使います。


PS [NIKA-DESKTOP]> Replace-Chacolor -FilePath .\text.txt -JsonTemplateFile ..\template.json       

するとこんな感じに出力が得られます。

<span style="color: #ef5350"><span style="color: #42a5f5">いら:</span></span>そういえばテスト設計どう?

にか:うーん、コスト大きいですね。

<span style="color: #ef5350"><span style="color: #42a5f5">いら:</span></span>じゃあ設計後回しでホワイトボックステストにしちゃおう

にか:了解です。ちなみに、この機能ってどれくらいで作れそうです?

<span style="color: #ef5350"><span style="color: #42a5f5">いら:</span></span>うーん、ちょっと10分くらい待ってもらっていい?

~10分後~

<span style="color: #ef5350"><span style="color: #42a5f5">いら:</span></span>だいたい8分くらいかな

にか:わかりました。工数表に記入しときますね。

<span style="color: #ef5350"><span style="color: #42a5f5">いら:</span></span>ついでにDoneって記載しておいて

にか:えっ?

<span style="color: #ef5350"><span style="color: #42a5f5">いら:</span></span>もう作っちゃったから


見積もりよりも先にモノを作ってしまうのが、良くも悪くもいらの性分《タチ》だった・

あとはコピペするなり保存するなりすればOK。

デモでは名前をカラー表示しているだけですが、アイコンとかに置換するのも出来ます。
意図して作ったわけではないですが、特定の固有名詞を毎回強調表示したりするのにも使えます。

PowerShellなんて使いこなせないよ‼(キレ気味)

需要があればMimiCaにWebアプリとして組み込みます。
(ぼくはもう満足してるからぼくの需要とモチベはない)

WebアプリはUIデザインとか面倒な工数がかかるので、需要が無いと無駄感が強すぎて腰が上がらない……

余談

別にテキストエディタの置換機能で置き換えても大差ないですが、この置換ルールを設定ファイルに記述しておけるのが一番の魅力です。何度も繰り返し使うケースや置換ルールが膨大なケースって、手でそれらをやるのは死にたくなります(ストレスフル)。

置換ルールを読み込ませて、テキストを一括処理する。
置換の際にはルールのロジックを考えなくて良い気楽さがあります。
(ストレスの緩和)

あと、ブログシステムによってHTMLだったりマークダウン記法だったり独自記法だったりするので、「Ci-enならこのルール、はてなブログはこのルール」みたいに管理できるのも非常に便利です。

あとスクリプトになっていれば、「テキストを保存したら置換後のテキストを自動で出力ファイルに生成」みたいなことが簡単に組めるので楽です。


ちなみに、ツールを作りはじめてから記事書き終わるまで3時間30分くらいでした。
(予約投稿なので、別日に書いてます)

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

いらにか 2022/04/25 07:00

【分析】mimicleはDLsiteにどんな影響を与えるか【予想】

どうも、いらにかです。

先日、こんなツイートが流れてきました。

https://twitter.com/mimicleJP/status/1517050567645876224?s=20&t=K6E5APEtWz5URGf6TDpRdA







ぼく「mimicleって誰やねん」





というわけで、mimicleの話をCi-enで語るというアウェー戦のスタートです。

フォロワー以上限定無料

無料プランに入るとモチベーションを支援できます

無料

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

いらにか 2022/04/19 09:28

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

いらにか 2022/04/14 12:00

【ネタ】D○siteのASMR動向を調査するツールを作っている話

みなさん、ご機嫌よう。
いらにかです。


ちょっと技術的な内容になるので、小難しい話が要らない人は《D○siteの情報をシェルでいい感じに扱えるツール》の章まで飛ばしてください。

ことの発端

先日、旧友にPowerShellの魅力を語っていたら「何か簡潔にわかりやすいツール作って記事にしたら?」という話になりました。
以前、QiitaでNimを知ってほしいという記事を書いたことがあって、これが中々に好評だったのでPowerShell版も作ろうかなと。
しかし、NimとPowerShellでは置かれている状況が違っているのでNimを知ってほしいの形式をそのまま持ってくるだけだと微妙だな(面白くないな)と感じていました。



話が変わって、数年前に「改めて考えるとシェルってすごくない?」みたいな悟りを開いてから猛烈にシェルを推してた時期がありました。
確かNimで作る簡易自作シェルを書いてた頃だった思います。
で、シェルの良さを布教するために「Shell Girls」というタイトルで本を書いていました。(未完なので公開はしてませんが)
今では完全にお蔵入りになっていますが、これをベースにしてでも「シェルとソフトウェアの面白さ」を布教するための何かを書きたいとずっと思案していました。




またまた話が変わって、別の友人と少し前に「ASMRの動向云々」みたいな話で盛り上がったことがありました。少し過激な話をしたので詳細は話せませんが、「D○siteのランキングとか人気ジャンルとか色々とデータ解析したいよね」みたいなことをそこで言った記憶があります。
あと、余談ですがまさきふぁんさんがモノラルとバイノーラルの話をしていて、それもあってデータ解析欲みたいなのが少し強くなっていました。
https://togetter.com/li/1867862



要約すると

  1. PowerShellで何かツール作って記事にしたら?という話になった
  2. 以前からシェルを布教する何かを書きたいと思っていた
  3. D○siteのASMR動向を探るためにもデータ解析したいと思っていた

まさか、これらが悪魔合体するとはツールを作る前まで思いもしていなかった。

シエル女子学園シリーズ

Shell Girlsは、名著の数学ガールをパロったOS Girlsのさらにパロディーでした。

あれから数年が経って、詰め込みたい要素とか色々と詰め込んで煮込んだ結果として生み出されたのが「シエル女子学園シリーズ」です。
ただ、ノベル形式だと表現の幅が微妙だなと感じていた矢先にZennのScrapという機能を知りました。雑に書き進められるのが大変素晴らしい。

「PowerShellを知ってほしい」の記事と「シエル女子学園」の記事を書くのに丁度よいなと思った僕は、何故かそれらを融合して同じ鍋に入れてしまいました。

https://zenn.dev/iranika/scraps/62a98fcdfa3742

結果として、シエル女子学園の創作をするとPowerShellの記事にもなるので、我ながら名案だなと思いました。

D○siteの情報をシェルでいい感じに扱えるツール

シエル女子学園のストーリー上、PowerShellでめっちゃスマートなツールをひとつ作ることは以前から目標として決めていました。その開発の様子を物語に書き起こして、開発体験(DX)の素晴らしさも布教する計画です。


そこで「DLsiteの解析ツール作ればいいのでは?」という話にようやく結びつきます。

とりあえず作ってみるかと重い腰を上げて、毎朝1~2時間ちょっと朝活して、4日目くらいで今のベースができあがりました。



このツールはUNIX哲学の思想も色濃く反映していて、なるべくパイプラインで関数同士を繋げることができるように作られています。


そうすることで「ランキングの《偶数》位の作品群から、《ジャンル》を集計して多い順に出力する」といったことも割と簡単にできます。

現状、スクリプトは以下の4つのみです。

  • ランキング情報を出力する
  • 作品IDを渡すと、作品情報を出力する
  • サークル名を渡すと、サークルIDを出力する
  • サークルIDを渡すと、サークルの作品情報の一覧を出力する

一番行数の多いGet-Ranking.ps1でも48行しかありません。

このあたりの詳細は、シエル女子学園の記事にいずれまとめて書きたいと思います。

今後の話

このツールを頒布するのは少し憚られるので現時点ではツールを一般公開する予定はありません。
ただ、ツールの生み出した結果(データ)はいずれレポートなり何かしらの形で皆さんに公開できるようにしたいなと考えています。


これを使ってD○siteの動向をモニタリングしたいと考えているので、何か面白いアイデアを思いついたらぜひコメントをください。TwitterのDMでもOKです。


最後になりますが、アイデアの種を融合させて一石三鳥を狙いに行く姿勢は今後も続きそうです。


PowerShell is パワフル💪✨

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

いらにか 2022/04/08 08:00

【2022年3月】道草恋歌の月例賞発表

みなさん、ご機嫌よう。
少し忙しくなってきたいらにかです。

みちくさびゅあー感謝祭も終盤です。
今年の感謝祭は、投稿予約をたくさんしていて期間中にあまり何もしないことを一つのテーマにしていました。
この記事も4/3日に書いています。4/8日くらいに投稿するはず。


道草恋歌


今回はなんと、ゲスト審査員に「黒縁ナイロールのお客様」をお招きしました。
快く引き受けてくださいました黒ナイさんに心から感謝を。ありがとうございます。

というわけで、道草屋への思いを短歌・俳句で綴る道草恋歌の「黒ナイ賞」と「弥生賞」、「ホワイトデー歌会大賞」の発表です。



黒縁ナイロール賞

こんにちは、ゲスト審査員の黒縁ナイロールです。
頑張って審査します。
「黒縁ナイロール賞」略して「黒ナイ賞」は2作品を選びました。
こちらです。

1位
お客様 呼ぶ声聴いて 振り向けば 聴こえる音の 小さな日常
──左右田蓬華

2位
指先を 貴方みたいに 切れなくて
──オオムラサキさん

さて、今回の「黒ナイ賞」。選考基準は「情景が詩的であるか」としました。それを踏まえてそれぞれの講評を述べます。

左右田さんの「お客様~」は、道草屋作中世界と現実世界の交差についての短歌だと捉えました。この感覚は非常に言語化しにくいものですが、よく挑戦したなぁと思っています。「解説」を見る限り実体験を元にしている歌のようですが、説明口調になっておらず不思議な体験をしたように描写したのは面白いですね。
オオムラサキさんさんの「指先を~」は五七五で切って短歌ではなく川柳の形にしたところが面白いなと感じました。「上手く爪を切れないから、ガタガタになった爪が気になってしまう」や「貴方に切ってもらうため、爪が伸びたままになっている」など、様々な情景が浮かびますね。
お二人とも、詩的でそして素敵です。

最後に総評、あるいは雑感です。
今回は「情景が詩的かどうか」という点から選考を行いました。「情景」に注目して「感情」をスルーしたのは「あえて」です。私には難しかったために触れませんでした。
短歌も俳句も字数が少ない。だから込める感情の量が多いと「くどい」作品になってしまう。一方で、作者の感情を書かずにすべてを「想像の余地」にしてしまうと、「この短歌・俳句を『この私が』作る意味って何?」となってしまいます。このバランス感覚はなかなか一朝一夕では身に付きませんね。
とはいえ、道草恋歌という場所はファンコミュニティ。つまり、個々人の熱量が大きければ大きいほど面白い場所です。だから「詩としての美しさ<<<道草屋への愛」くらいでいいのかなとも思ったりします。
そんなこんなで、黒縁ナイロールの雑感でした。
来月の作品も楽しみにしています!


弥生賞

ーーーー

お客様 呼ぶ声聴いて 振り向けば 聴こえる音の 小さな日常

ーーーー
作者:左右田蓬華
部門:短歌部門
解説:
よく、何も聴いていなくてもイヤホンだけは付けています。時折イヤホンに指が触れたり、ポケットの中で再生ボタンが押されたりして、不意に声が聴こえ始める事があります。呼ぶ声に思わず振り向いても、そこにあるのはいつも通りの、少し小さい音の、小さな日常です。
ーーーー

次点

ーーーー

健やかであれ それはそれとしてまだ雛人形はそのままにして

ーーーー
作者:黒縁ナイロールのお客様
部門:短歌部門
解説:
健やかな成長は祈りたい。
でも、婚期は可能な限り送らせてほしい。

身勝手なお客様です。
ーーーー


ホワイトデー歌会大賞

ーーーー

届かないキャンディひとつ春の宵

ーーーー
作者:黒縁ナイロールのお客様
部門:俳句・川柳部門
解説:
ホワイトデー、遅刻しました。

道草屋で飴というと「あの」シーンが浮かびますね。
ーーーー


総評


弥生賞は黒ナイ賞と被りましたが、歌全体の情景、そして《小さな日常》という体言止めが《左右田さんが確実に見たであろう心象風景》という印象を強めていて、3月の歌で一番刺さりました。大好きです。
次点の黒ナイさんの歌も《身勝手なお客様》という視点が籠もっていて「わかる…」という共感が強く、非常に良い歌でした。
ホワイトデー歌会大賞は《届かないキャンディ》という表現が、すごく好きで選びました。


総評ですが、3月も良い歌が多く、心にグッとくるシーンが何度もありました。
4月も楽しみで仕方ありません。

あとがき

みちくさびゅあー感謝祭の準備に関連して、3月は自分の創作活動について色々と見つめ直していました。
そして、来年も道草恋歌が続いていくために少しずつできることを考えていました。
達成できるかわかりませんが、今年中に道草恋歌の百人一首を作ることを目標の一つにしたので頑張ろうと思います。

まだ思案と試行錯誤の途中ですが、道草恋歌の可能性をみなさんと一緒に広げていけたらなと思っています。



最後に連絡事項です。
4月は歌会を開催しません。5月に本気を出します。
あとゲスト審査員をお呼びしています。お楽しみに。

それでは、4月もよろしくお願いします。

以上。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

7 8 9 10 11 12 13

月別アーカイブ

記事を検索