[TypeScript] 01 Electronアプリの改変 ショートカット変更

[Mac M2 Pro 12CPU, Sonoma 14.5]

最近は麻雀よりも将棋の方に興味が向いています。

AI対局や名局の棋譜並べに最適なShogiHomeというElectronアプリをGitHubから入手して使ってみたのですが、ショートカットで右矢印キーがNEXTではなくLASTになるなど仕様が気になるので、自分用に改変しました。

左矢印がBACK、右矢印はNEXT、上矢印がFIRST、下矢印がLASTになるように割り付けました。

Electronアプリは久しぶりに扱ったため時間を要しました。GUIに特化したフレームワークであるVue.jsについては全くの初見で少々手こずりました。

4ファイル6箇所を書き換えてビルド
ShogiHomeのFork

[Xcode] iOS 18 新仕様への対応 アプリアイコン

[Mac M2 Pro 12CPU, Sonoma 14.5, Xcode 16 beta]

今秋リリース予定のiOS 18からiOSアプリのアイコンが3種類(Light, Dark, Tinted)必要になります。

早速、Xcode 16 beta版で登録してみました。

watchOSアプリを手掛けているデベロッパーであれば文字盤のアクセントカラー対応で洗礼を受けているので、特に混乱はないと思います。

ダークモード用のアイコン(背景が透過度100%)はそのままTintedアイコン(モノトーン)としても使えそうな感じがしますが、多色デザインであれば灰色の濃さで表現するため作り直しということになりそうです。

[Python] 363 カレンダーicsファイルをjsonファイルに変換

[Mac M2 Pro 12CPU, Ventura 13.6, Python 3.10.4]

Googleカレンダーから入手したicsファイルの内容をgpt-4oに見せて、jsonファイルの作成スクリプトを考えさせました。

これまではGitHubなどから使えそうなコードを引っ張ってきたりしていましたが、AIに作らせる方が手っ取り早いです。

今回の場合はicsファイルに記念日が混在していたので、結局自分で手を入れて仕上げることになりました。

import json
from icalendar import Calendar
from datetime import datetime

# アメリカの祝日リスト
us_holidays = {
    "New Year's Day",
    "Martin Luther King Jr. Day",
    "Presidents' Day",
    "Memorial Day",
    "Juneteenth",
    "Independence Day",
    "Labor Day",
    "Columbus Day",
    "Veterans Day",
    "Thanksgiving Day",
    "Christmas Day"
}

def parse_ics(file_path):
    with open(file_path, 'r') as f:
        ics_content = f.read()

    calendar = Calendar.from_ical(ics_content)
    holidays = {}

    for component in calendar.walk():
        if component.name == "VEVENT":
            summary = str(component.get('summary'))
            dtstart = component.get('dtstart').dt
            if isinstance(dtstart, datetime):
                dtstart = dtstart.date()
            dtstart_str = dtstart.strftime('%Y-%m-%d')
            
             # アメリカの祝日リストに含まれているか確認
            if any(holiday in summary for holiday in us_holidays):
                holidays[dtstart_str] = summary

    return holidays

def save_to_json(data, output_file):
    with open(output_file, 'w', encoding='utf-8') as f:
        json.dump(data, f, ensure_ascii=False, indent=4)

if __name__ == "__main__":
    ics_file_path = 'america.ics'  # ICSファイルのパスを指定
    output_json_file = 'holidayUS.json'  # 出力するJSONファイルの名前

    holidays = parse_ics(ics_file_path)
    
    # 日付の昇順で並べ替え
    sorted_holidays = dict(sorted(holidays.items()))

    save_to_json(sorted_holidays, output_json_file)
    print(f"祝日情報が {output_json_file} に保存されました。")
{
    "2019-01-01": "New Year's Day",
    "2019-01-21": "Martin Luther King Jr. Day",
    "2019-02-18": "Presidents' Day",
    "2019-05-27": "Memorial Day",
    "2019-06-19": "Juneteenth",
    "2019-07-04": "Independence Day",
    "2019-09-02": "Labor Day",
    "2019-11-11": "Veterans Day",
    "2019-11-28": "Thanksgiving Day",
    "2019-12-25": "Christmas Day",
<以下略>

[Swift] 73 SwiftUIの特異な仕様 / 選択したカレンダーのイベントをForEach文で表示

[Mac M2 Pro 12CPU, Sonoma 14.3.1]

画像はwatchOSアプリで”日本の祝日”カレンダーの向こう2ヶ月分を表示させたものです。

海の日だけが表示されている普通の画面のように見えますが、実は背景色が黒の空イベント2件分で海の日の下を埋めています。

そうしないと選択していない他のカレンダーの繰り返しイベントが表示されてしまいます。仕様というかOSの完全なバグでしょう。

便利だからSwiftUIを使ってはいるものの、こういった現象に遭遇するとげんなりしますね。コード自体は間違っていないですから、原因究明が大変です。