タイダログ

もっと怠けますか? (y/n)

PowerShell の Cmdlet を F# で書く

副題「PowerShell + F# でフォルダサイズの一覧を取得する」

1, 2年前に PowerShell の Cmdlet を F# で書けると知り、挫折を繰り返すこと幾星霜(2年ですね)、ついに成功したので手順やつまずいた点などを残します。

推し×推し。尊い

全面的にこちらのページを参考にしています。ロゴが天才的。

medium.com

  • 作業環境
  • 開発に必要なもの
  • この記事で扱う内容
  • 完成品
  • 手順
    • 作業用ディレクトリを作成
    • ソリューションとプロジェクトを作成
    • ソリューションにプロジェクトを紐付け
    • PowerShell Cmdlet 作成用のライブラリを追加
    • Cmdlet のコードを書く
    • Build & Publish
    • PowerShell で実行
  • フォルダサイズを取得する Cmdlet
    • 新しいファイルにソースコードを書く
    • プロジェクトファイルを編集する
    • ターミナルを閉じてビルド
    • 説明
  • 結び
  • 参考
続きを読む

F# で文字列の一致度を測る

「そうだ、F# で文字列の一致度を測ってみよう」たったそれだけ言い残すと、たいだはパソコンの中に入っていったのです。

ということで、文字列同士の一致度を測定するプログラムを F# で書いてみました。イメージとしては、

  • 「たいだ」と「たいと」の一致度は約66%
  • 「たいだ」と「たこ」の一致度は40%
  • 「たいだ」と「まじめ」の一致度は0%

のようなことです。

指標としてジャロ類似性 (Jaro Similarity) およびそのアレンジ版を使用しました。というか、単にジャロ類似性を F# でやりましたというだけです。Matthew A. Jaro 氏、ありがとうございます。

  • 作業環境
  • コード
  • 実行結果
  • 説明
  • ジャロ・タイダログ類似性
  • 結び
  • 参考
  • 更新
続きを読む

プログラミングで情報Ⅰを学ぶ

情報Ⅰの授業でプログラミングを学ぶ(=プログラミングが目的)ということではなく、プログラミングを通して情報Ⅰの内容を学ぶ(=プログラミングは手段)ということを考えてみました。

コードはPython版とVBA版を載せています。F#版も載せようか……。

実践報告ではなく、あくまで考えてみただけですので、やってみたら上手くいかないかもしれません。ご了承ください。すでに実践されていたらぜひ教えてください!

随時更新します。

  • 作業環境
  • 情報社会の問題解決
  • コミュニケーションと情報デザイン
    • 文字のデジタル化(文字コード
    • 画像のデジタル化(RGB値)
  • コンピュータとプログラミング
  • 情報通信ネットワークとデータの活用
  • 結び
  • 参考
  • 更新
続きを読む

RGB値から色相変換するツールを作った

RGB値と変化量を入力すると、色の雰囲気を保ったまま次々と色相を変化させるツールを F# + Fable で作りました。

既存の色に合う色を探すのに使えます。また綺麗な色の組み合わせを見て心を落ち着ける効果も望めます。

以下のサイトの「色いろいろ」です。

taidalog.html.xdomain.jp

  • 作業環境
  • 完成形
  • 効能
  • 動機
  • コード
  • 結び
  • 参考
続きを読む

GAS で Classroom を一括操作する

Microsoft Teams でチームの一括作成・削除やメンバーの一括追加・削除などを行うには PowerShell と管理者権限が必要ですが、Google Classroom では GAS だけで可能と知り、試してみました。

個人の Google アカウントでも Classroom って使えるんですね。それはクラスと呼べるのか……?

(2024/02/12 追記)
スクリプトのバージョンアップに伴い、該当箇所を更新しました。端的に言うと操作手順が半分くらいに減りました。
(2024/02/12 追記ここまで)

  • 作業環境
  • 機能
  • 初期設定
  • 完成形
  • 各種機能の説明
  • 結び
  • 参考
  • 更新履歴
続きを読む

手探りで始める Fable (F#)

夏で開放的な気分になって、何でもできる気がしてきたので、部屋に篭って Fable を始めてみました。

fable.io

具体的には、以前 JavaScript で書いたものをわざわざ F# で書き直して、それを FableJavaScript にトランスパイルするという、最高にクールな取り組みです。

それがこちらです。

taidalog.html.xdomain.jp

なんとかできました!

taidalab Version 2.0.0

Thank you F# and Fable!

Languages on GitHub!

  • 作業環境
  • 動機
  • つまずいた点
    • HTMLElement 型からの型変換
    • 関数の定義順序
    • モジュールの依存関係
    • array[0] ではなく array.[0]
    • return false;
    • <input> での Enter 押下で <button> クリックと同じことをしつつ、ページを更新しない方法
    • NodeList は List ではない
    • DOMTokenList も List ではない
    • mutable を避ける
    • string から char list への型変換
    • レコードのフィールドに関数を持たせる
  • JavaScript -> F# の変換
  • 結び
  • 参考
  • 更新履歴
続きを読む

手探りで始める SPA (JavaScript)

この度、手探りで SPA を始め、「完全に理解した」ことをここに宣言します。

作ったものはこちらです。

taidalog.html.xdomain.jp

taidalog.hatenablog.com

これが SPA (Single Page Application) の定義に当てはまるかよくわかりませんが(これを Web Application と呼んでいいものかっていうことね)、まあ Single Page であることは確か (Single Page de Arukoto wa tashika) ですので、胸を張って宣言したいと思います。

私は SPA を「完全に理解した」と。

で、ここまでの成果や課題などを書き連ねるのが今回のテーマです。

  • 作業環境
  • taidalab のページ構成
  • ファイル構成
  • ページ遷移
    • 一般論
    • taidalab での実現方法
  • リロード対策
  • リロード対策(完成)
  • 404.html 無しで Not Found ページを表示する
  • 結び
  • 参考
  • 更新履歴
続きを読む