投稿者: manualmaton Page 30 of 238

ChatGPTによるRubyスクリプト。(対話式パスワード生成)

前回作成したパスワード生成スクリプト。変数で指定するのはCron処理などでは便利でしたが、日常には不向き。

そこで、再びChatGPTに相談し、

以下の要件でスクリプトを作成です。

要件

  • スクリプトを実行する
  • 発行強度を1~3で指定する (空エンターは中)
    • 1:弱 8桁/英数字のみ
    • 2:中 10桁/小文字・大文字・英数字と単純な記号
    • 3.強 12桁/小文字・大文字・英数字と複雑な記号
  • 表示するパスワードの数を数字で指定する (空エンターは4個)

スクリプト

できあがったのがこちら。

  • password_generate.rb
def generate_password(length, complexity, password_count)
  case complexity
  when 1
    chars = [('a'..'z'), (0..9)].map(&:to_a).flatten
  when 2
    chars = [('a'..'z'), ('A'..'Z'), (0..9), ['!', '@', '#', '$', '%', '^', '&', '*']].map(&:to_a).flatten
  when 3
    chars = [('a'..'z'), ('A'..'Z'), (0..9), ['!', '@', '#', '$', '%', '^', '&', '*'], ['-', '_', '=', '+', '<', '>', '?']].map(&:to_a).flatten
  else
    puts "無効な発行強度です。"
    return
  end

  password_count.times do |i|
    password = (0...length).map { chars[rand(chars.length)] }.join
    puts "Password #{i + 1}: #{password}"
  end
end

def get_complexity
  print "発行強度を1から3の範囲で入力してください (デフォルトは2):\n"
  complexity_input = gets.chomp

  complexity = complexity_input.empty? ? 2 : complexity_input.to_i

  until (1..3).cover?(complexity)
    print "有効な範囲で入力してください(1から3): "
    complexity = gets.chomp.to_i
  end

  complexity
end

def get_password_count
  print "表示するパスワードの数を入力してください (デフォルトは4): "
  count_input = gets.chomp

  count = count_input.empty? ? 4 : count_input.to_i

  count
end

puts "パスワードを生成します。"
complexity = get_complexity
password_count = get_password_count

case complexity
when 1
  generate_password(8, complexity, password_count)
when 2
  generate_password(10, complexity, password_count)
when 3
  generate_password(12, complexity, password_count)
end

実行例

ruby password_generate.rb
発行強度を1から3の範囲で入力してください (デフォルトは2):
2
表示するパスワードの数を入力してください (デフォルトは4): 9
Password 1: ILAXRn!O47
Password 2: P^qmiduucK
Password 3: 8ytFezU%fU
Password 4: O!6OFeHgYe
Password 5: Ua&!Ryg039
Password 6: &T@AtiNpWy
Password 7: Jz8jyPbp#3
Password 8: HOWE66ki1I
Password 9: 9WRdsHhk*H

再評価の全文検索プラグイン。(Redmine 5.1検証)

ほぼ一年前、涙を呑んでアンインストールした全文検索プラグイン。

事情が変わったので再評価です。

理由1:プラグインでの支障が無くなった

これを諦めた最大の理由は、knowlegebaseプラグインの存在。

各種文書を記録できるこのプラグインは、導入当初:このプラグインがRedmine 4.2までしか対応していないからバージョンを落として使っていたほどです。

ところが5.0以降では(githubでは)使えないということで開き直ることができました。

knogwlegebaseという足かせがなくなれば、

  • チケットを細かく検索できる
  • 設定によって類似したチケットを表示する

このプラグインは高評価となります。

理由2:文書の保管に適したツールを見つけた

Bookstackを見つけたのが思いのほか大きいです。これによって、Wiki形式の文書のストックをこちらに出すことができます。

こちらも全文検索機能付きでバージョン管理も容易。

「使った当初は諦めたけど、事情やバージョンにより評価が変わる」話でした。

ZENタイル入れ、分割。

この、作ってもらったペンケース。一つだけ難点がありました。

前は収納スペースが複数あったので、その中にZENタイルを分けて入れることができたのですが、今回は収納スペースは一個だけ。

それを解決すべく、用意したのがこちらです。

新しくポーチを追加です。

比較的小さなポーチで、猫柄のためペンケースとも合います。

収納スペースは手帳入れのサイドポケット。後々を見越して拡張性を追加してくれた作り手のセンスが光りました。

保護と装飾。

中古ノートPC、普段使いに耐えうる性能だということが改めて判明したので、更に使い回すための準備を行いました。

PCバッグ

過日の統率者&ボードゲーム会に行く際に見つけたものです。

クッション地が入っているキャリングケース。

この、13.3型が余裕ではいるサイズを備え、

持ち手が収納できるのでインナーとしても手提げとしても利用可能です。

マウス、アダプターの収納スペースも有する破格の500円商品でした。

天板装飾

こちらはお約束のシール貼り。

緑をベースにした装飾です。パームレストにフィットするサイズのものがあって助かりました。

汚れをある程度隠し、自分のものだと主張もできるので、これは割と必要な措置でした。

ノートPCの追加アクセサリ。

こちらの中古Let's note、OSの設定が完了したので持ち歩くための準備を行いました。

Bluetoothスピーカー

AnkerのSoundcoreです。デタッチャブルという構造上、スピーカーが弱かったので買い足すことにしました。

小型ながら迫力のサウンドで、バッテリー駆動というのもポイントが高いです。

Bluetoothマウス

ホイールパッドに不慣れなのでマウスも追加。色が好みであることと、消耗品であると割り切ったものを選びました。

上記2つ、出先での検証は間を置いてから書ければいいなと思っています。

ペンケースのハードポイント。

こちらに素敵な機能が備わっていました。

ストラップやキーホルダーを付けられる留め具です。

作成者の「色々と飾りたいでしょう」という心遣いに感謝すると共に、早速、

取り付けです。熊の爪は昨年、温泉に訪れた折に買ったものだったりします。

こういう、思い入れの小物やらが側にあると、モチベーション維持に発揮してくれます。

2024年2月最初の統率者&ボードゲーム。

回してきました。

統率者戦『工匠の主任、ウルザ』

https://barrel.reisalin.com/books/7380a/page/20231203

リストはここから変わらずです。

印鑑、旅人のガラク等から順調に加速していき、場が完全に膠着したところに

決まればラッキー的に仕込んでいた

  • 覇者シャルム
  • ファイレクシアの変形者
  • マリオネットの達人

が決まり、無限での勝利。このデッキ、今まで買ったことがなかったので初の快挙を成し遂げた感じです。

ワーリング・ウィッチクラフト

購入したときは2人でしか遊んでいませんでしたが、4人で回す機会に恵まれました。

4人だとこちらの思惑と異なる形で勝敗が決まるので、『アズール』と同じように人数でプレイ感が変わるゲームです。

これに関しては高評価も戴いたので、改めてレビューをしていきます。

補充と買い足し。

かなり保ったものが底をついたり予想外のペースで買う羽目になったり。

『ハリー・ポッターとアズカバンの囚人』原書

今年の目標、『ハリー・ポッター』シリーズ全てを原文で読むも、

  1. 賢者の石
  2. 秘密の部屋

それぞれ読み終え、三作目『アズカバンの囚人』に進みました。

当初の予定では1月中に『賢者の石』を読み終え、2月獣に読み終えれればと思いましたが、想定は読むペースの方が早かったという。

プリンタ用紙とインク

また、情報カードの活用で出力する機会が一気に増えましたので、この機会にプリンタ用紙・インクを補充。

印刷を多用することもあるだろうということで、このタイプにしておいて助かりました。

書庫と在庫を足した買い物です。

Redmine 5.1でのリマインダー設定。

概要

Redmine 4.1と同じような仕組みが構築できました。

前提

Redmineでメール送信ができることです。

手順

スクリプトを作成します。

  • ファイル名 `redmine_reminder.sh`
  • スクリプト内容
#!/bin/sh

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

cd /home/www-data/redmine
# 自分が格納しているRedmineのルートディレクトリ
bundle exec rake redmine:send_reminders days=7 RAILS_ENV=production
# この例では7日前に通知します。days=nの部分を変えることで日数を指定できます

作成後、以下を実行して実行権限を付与します。

sudo chmod +x redmine_reminder.sh

  • Crontab編集
sudo crontab -l -u -root
  • 記入例
30 15 * * * /path/to/script/directory/redmine_reminder.sh
# スクリプトを格納したディレクトリを指定します

編集後、指定した時刻にメールが送られてくれば成功です。

ペンケース、新調。

10年以上にわたって使っていたペンケース。こちらのへたりや汚れが目立ってきたので、どうしたものかと思っていたところに

作ってもらいました。大きなペンケースです。

マチは十分に広がり、そのままペントレーとしても使えます。

  • 容量
  • 視認性
  • 機能性

バッチリで文句なしです。

それ以上に嬉しいのが、

以前作ってもらった手帳ケースと同じ生地ということ。鞄の中でも見つけやすく、机でも存在感が増します。

Page 30 of 238

Powered by WordPress & Theme by Anders Norén