カテゴリー: ガジェット Page 29 of 89

手持ちの品と百均グッズによる情報カードの携帯システム-2-。

昨日に続いて、「情報カード(京大式カード)」をどうやって携帯するかの話。

答えは自分の手持ちにありました。

自家製ファスナーケース

こんな布製のケースがすでにありました。

大きさはこの通り。余裕があるのでカードが取り出しにくくなることもありません。

収納

ここに、折れ曲がりを防ぐために硬質ケースと合わせて挟み込みます。

間仕切りもついているので空いたところにペンを入れられると至れり尽くせりです。

これで、準備はほぼ整いました。

実際に持ち歩いてどうなるか、どう運用していくかはこれからです。

百均グッズによる情報カードの携帯システム-1-。

数日運用して「これは継続して使いたい」と思った情報カードによる記録システム。

気軽に携帯できる仕組みはできないかと探していたところ、百均にて見つけました。

収納・携帯システム

見つけたものは

  • B6ファスナーケース(2段ファスナー)
  • B6硬質ケース

の2つ。元々のサイズがB6なのでピッタリ入ることは証明済み。

収納

単にカードだけを入れると鞄の中で曲がってしまう可能性が大きいために、カードケースを下敷きとしています。

もう一つのファスナーはペン入れとして。この紙と合わせて書き味が非常に良かったプレピーをセレクト。

これで、出先でもある程度の携帯性を持たせつつ、それなりの速度でカードを取り出すことができるようになりました。

改善したい機能

  • ケースはマチ付きにしたいです。ちょっと取り出すときに引っかかります。
  • 静電気で張り付くことがあるので、メッシュ地辺りを検討したいです。

ChatGPTによるシェルスクリプト。(DNSレコード問い合わせ)

運用時に多用するdigコマンド。オプション入力が面倒なので、スクリプトをChatGPTに書いてもらいました。

スクリプトの動き

  1. ドメイン名をプロンプトで入力させる。
  2. どのレコードを問い合わせるのかをプロンプトで表示。
  3. 2の結果に従い、結果を返す。

スクリプトの内容

  • dns.sh
#!/bin/bash

# ドメイン名の入力を求める
read -p "ドメイン名を入力してください: " query

# 入力が未設定の場合の処理
if [ -z "$query" ]; then
    echo "エラー: ドメイン名が設定されていません。"
else
    # Aレコードの問い合わせ
    a_record=$(dig +short A $query)
    if [ -z "$a_record" ]; then
        a_record="未設定です"
    fi

    # TXTレコードの問い合わせ
    txt_record=$(dig +short TXT $query)
    if [ -z "$txt_record" ]; then
        txt_record="未設定です"
    fi

    # MXレコードの問い合わせ
    mx_record=$(dig +short MX $query)
    if [ -z "$mx_record" ]; then
        mx_record="未設定です"
    fi

    # レコードの問い合わせの種類を選択するプロンプトを表示
    echo "問い合わせるレコードの種類を選んでください:"
    echo "1. Aレコード"
    echo "2. TXTレコード"
    echo "3. MXレコード"
    echo "4. A / TXT / MXレコード"

    # レコードの種類をユーザーに選択させる
    read -p "選択してください (1, 2, 3, または 4): " record_type

    # ユーザーの選択に応じて問い合わせ結果を表示
    case $record_type in
        1)
            # Aレコードの問い合わせ結果を表示
            echo "Aレコード: $a_record"
            ;;
        2)
            # TXTレコードの問い合わせ結果を表示
            echo "TXTレコード: $txt_record"
            ;;
        3)
            # MXレコードの問い合わせ結果を表示
            echo "MXレコード: $mx_record"
            ;;
        4)
            # A / TXT / MXレコードを表示
            echo "Aレコード: $a_record"
            echo "TXTレコード: $txt_record"
            echo "MXレコード: $mx_record"
            ;;
        *)
            # 無効な選択が入力された場合のエラーメッセージ
            echo "無効な選択です。1, 2, 3, または 4 を入力してください。"
            ;;
    esac
fi

入力後、

chmod +x dns.sh

で実行権を付与。

実行例

./dns.sh 
ドメイン名を入力してください: google.co.jp
問い合わせるレコードの種類を選んでください:
1. Aレコード
2. TXTレコード
3. MXレコード
4. A / TXT / MXレコード
選択してください (1, 2, 3, または 4): 4
Aレコード: 142.250.199.99
TXTレコード: "v=spf1 -all"
MXレコード: 0 smtp.google.com.

今後足したい機能

  1. 問い合わせ先のDNSサーバの変数指定
  2. レコードを増やす
  3. 空エンター時の挙動

など、伸ばす余地はあります。

情報カードの収納。(B6ケース)

こちらの収納については公式を利用しました。

カードボックス

情報カード用のクリアボックスを購入。

B6をそのまま入れるタイプのため、大きさのインパクトは相当なもの。逆に言えば、ここに放り込みさえすれば「なくなる」という心配はないでしょう。

インデックス

インデックスもついでに手に入れました。箱と一緒のために柔軟性は抜群です。

今後の展開

上述したように、予想外の大きさ。そして早速、「これをメインとしたアナログの記録システム」が確立できそうな予感。

専用の保管スペースや携帯方法など、課題は山積みです。

オフライン版チケット。(情報カード)

ペンと紙の速度で、Redmineのチケット管理をやってみたいと思い、導入です。

情報カード(B6版)

試したのはこの情報カード。いわゆる「京大式カード」と同サイズのものです。

こちらにしたのはリング穴が通っているので後々の分類・整理がしやすいという目論見。

大きさの比較はこんな感じです。

最初の印象は「こんなに大きくて持て余すのではないか?」

でしたけど、試し書きしてすぐに問題ないと判断しました。

第一印象

表面が罫線で裏面が方眼紙なので、アイディアをまとめやすく、ちょっとした絵や図面を書くのにも向いています。

万年筆の乗りがとても良かったのは嬉しい誤算でした。

このように、

  • とりとめのないこと
  • 後でデジタルで「チケット」として残すもの

何よりも「アナログとデジタルの橋渡し」として役立ってくれることを期待です。

Future has’nt been written yet. (『Back to the Future』×ほぼ日コラボ)

この段階では、カバーは使い続けたいと言ったものの、「もっと使いたいデザインのものが出て来た」ため、これは撤回です。

Back to the Futureコラボ手帳

https://www.1101.com/store/techo/ja/magazine/contents/loft_bttf/ag8mbxqle.html

このニュースを目にして、購入です。

自分の思考フレームの一部となっている映画だけに、「早く発売日が来ないか」と待ちわびていた逸品でした。

オリジナルカバー

こちらのカバーは作品を象徴するアイテム、デロリアン。真ん中に次元転移装置も記されています。

栞にあしらわれているのは「1.21ジゴワット」の電力を供給するために使われた落雷を表しています。

ウィークリー

ウィークリーにあしらわれているのは、これまた作品の(二つ目の)代名詞と言うべきホバーボード。

カバーオンカバー

専用のカバーオンカバーもありました。次元転移装置の

  • 目的時間
  • 現在時間
  • 前回タイムトラベルした時間

をそれぞれ示しています。

手帳カバーに更に被せることで、更に雰囲気たっぷりです。

曜日を判別するmot_d。(Ubuntuシェルスクリプト)

概要

サーバにターミナル経由でログインした際に表示されるメッセージ、motd(Message of the Day)。

「特定の日時・曜日をを判別して、その条件を満たしたときにメッセージを表示することはできないか?」

ということでシェルスクリプトを書いてみました。

動作を確認した環境

  • Ubuntu 20.04

スクリプト内容

  • /etc/update-motd.d/02-Friday_Check(または既存のupdate-motdに追記します)

※管理者権限で追記する必要があります。

#!/bin/bash

# 現在の言語ロケールを保存します。
original_locale=$(locale | grep "LANG=" | cut -d= -f2)

# ロケールを英語に修正します。
export LANG="en_US.UTF-8"

# ロサンゼルス(カリフォルニア)の曜日を調べます。
day_of_week=$(TZ="America/Los_Angeles" date +"%A")

# 金曜日だった場合のみメッセージを表示します。
if [ "$day_of_week" == "Friday" ]; then
    echo "Today is Friday in California."
fi

# 元の言語ロケールに戻します。
export LANG="$original_locale"

追記後、

sudo chmod +x /etc/update-motd.d/02-Friday_Check

として、実行権限を付与してください。(既存スクリプトに追記する場合はその限りではありません)

スクリプトの動き

サーバにログインした際に

  1. 現在の言語ロケールを保存します。
  2. 言語ロケールを英語に修正します。(曜日の変数をFridayに固定しているため)
  3. タイムゾーンをチェックして、カリフォルニアで金曜日かどうかを判別します。
  4. PST(太平洋標準時)/PDT(太平洋夏時間)で金曜日の時間帯に
  5. Today is Friday in California. を表示します。
  6. 最後に、保存された言語ロケールへと戻します。

まとめ

今回は単に文字列を判別するだけ。ですが、月末時の処理や保守更新などの応用が利きそうです。

Linux:シェルスクリプトで天気表示。

概要

Linuxのコマンドラインで天気を知りたい状況があったので、簡単なスクリプトを書きました。

前提

  • Linux機がインターネットに繋がっていること。
  • ansiweatherがインストールされていること。

Ubuntuでのansiweatherインストール方法

以下のコマンドを実行します。

sudo aptitude install ansiweather
# 筆者の好みでaptitudeを用いています。必要に応じてaptを使ってください。

スクリプト

  • getweather.sh

以下の内容を教義・信仰に沿ったエディタで記載します。

#!/bin/bash

# ユーザーに都市名を尋ねる
echo "都市名を入力してください:"
read city

# ansiweatherコマンドを実行して天気情報を表示
echo "ansiweatherの情報:"
ansiweather -l "$city"

# curlコマンドを使用してwttr.inから天気情報を表示
echo "wttr.inの情報:"
curl wttr.in/"$city?lang=ja"
  • 実行権限付与
chmod +x getweather.sh

スクリプトの動き

  • スクリプト実行
./getweather.sh
  • 実行結果

都市名を入力します。(Tokyo, Londonなど)

入力後、以下のように1行で現在の天気の概要、アスキーアートで3日の予報が出てきます。

Ubuntuでプロンプトの挙動を変更(ちょいハマり-1-)。

ちょっとハマっていること

LinuxのCUI操作で、

  1. プロンプトの内容を「ユーザ名@ホスト名 カレントディレクトリ」に変更する。
  2. 一般ユーザの場合はプロンプトを緑にして\&で表記。
  3. rootに昇格した場合はプロンプトを赤にして#で表記。

という挙動にしています。

RockyLinuxの場合:OK

以下の内容を /etc/bashrc に組み込めばOKでした。

if [ "$PS1" ]; then
  if [ "$(id -u)" -eq 0 ]; then # rootユーザの場合
    PS1='\[\e[0;31m\][\u@\H \W]#\[\e[0m\] '
  else # 一般ユーザの場合
    PS1='\[\e[0;32m\][\u@\H \W]\$\[\e[0m\] '
  fi
fi

Ubuntuの場合:NG

ところが、Ubuntu系は

  1. 上記の設定を/etc/bash.bashrcに追記してもプロンプトの動きが想定通りとならない。
  2. source /etc/bash.bashrcと実行すると、設定が反映される。

これは相当面倒です。ログイン時に別のスクリプトか何かでこれを実行すればいいのでしょうが、新しいユーザを作成した場合など不都合が生じます。

Ubuntuでのワークアラウンド

取り急ぎ、当初の目的である「一般ユーザと特権ユーザでプロンプトの色や記号を変える」を優先させます。

ログインユーザ(一般ユーザ)の設定ファイル

  • ~.bashrc

末尾に以下を追記します。

# 一般ユーザ向けのプロンプト設定
if [ "$PS1" ]; then
  if [ "$(id -u)" -eq 0 ]; then # rootユーザの場合
    PS1='\[\e[0;31m\][\u@\H \W]#\[\e[0m\] '
  else # 一般ユーザの場合
    PS1='\[\e[0;32m\][\u@\H \W]\$\[\e[0m\] '
  fi
fi

rootの設定ファイル

  • /root/.bashrc

末尾に以下を追記します。

# rootユーザ向けのプロンプト設定
if [ "$PS1" ]; then
  PS1='\[\e[0;31m\][\u@\H \W]#\[\e[0m\] '
fi

これで当面の問題は回避できましたが、根本的な解決には至らず。

もう少し調査が必要です。

Redmineに「どこでもポップアップ」実装。(View_Customize_Pluginのサンプルコード)

非常に便利なサンプルがあったので導入しました。

参照先

https://github.com/sk-ys/redmine-view-customize-scripts/blob/master/html/popup_anywhere/popup_anywhere.md

前提

  • Redmineの「View_Customize_Plugin」が稼働していることが前提です。
  • Redmine 4.2でも動作を確認しました。

インストール方法:

https://atelier.reisalin.com/projects/zettel/knowledgebase/articles/31

挙動

このようなチケット一覧で、任意のリンクにカーソルを合わせて「Ctrl+クリック」するだけ。

このようにポップアップ。

連続するチケットに対しても、ブラウザの戻る/進むをやらずとも閲覧が可能になります。

導入方法

  1. 管理者権限でRedmineにログインします。
  2. 管理>表示のカスタマイズ>新しい表示のカスタマイズをクリックします。
  3. 以下を設定していきます。

設定後、「有効」にチェックを入れて保存。

備考

このredmine_shortcutsとは凄まじいシナジーを誇ります。

ポップアップ→「E」で編集することで、ブラウザを遷移させることなくチケットのちょっとした編集や追記が可能になります。

Page 29 of 89

Powered by WordPress & Theme by Anders Norén