日頃の行い

個人的な日頃の行いをつらつら書いてます\\\\ ٩( 'ω' )و ////

運転免許証更新が見合わされてる期間に免許が失効してしまって失効手続きをしてきた話

ちょうどいい時期に期限が切れてしまい失効手続きをしてきました。
失効手続きは免許センターでしか行えず、ゴールド免許も普通の免許に戻ってしまい悲しみに暮れるので、ちゃんと有効期限以内に手続きをしましょう・・・
延長手続きを行っていれば、その延長手続きを行った警察署で更新が可能になり、ゴールド免許も続くのでメリットがいっぱいです!!!!()

期限が切れていない人

運転免許証の有効期間の延長(再延長)手続 警視庁

これは東京都ですが、7/22現在でも有効期限の延長を行うことができるみたいなので、
まだ物理的に人が多い場所へ行きたくない人は今すぐ郵送等で延長手続きをしましょう。
物理的に行く場合はもう更新でもいいんじゃないかという感じがありますね。

更新日:2020年7月6日

運転免許証の有効期間の延長手続をすることで、有効期間を3か月延長することができます。 延長手続をした運転免許証の裏面には延長した旨や有効期間が記載され、その日まで車両の運転及び免許更新をすることができます。 延長手続を行わない場合は、有効期間は延長されませんので、有効期間内に免許更新や延長手続を行ってください。

郵送での手続きについてはこっちのリンク

郵送による運転免許証の有効期間の延長手続 警視庁

有効期限が切れてしまった人

失効手続きを行う必要があります。
普段であれば"やむを得ない理由があるなし" × (6ヶ月以内 か 1年以内) + その他で状況が変わるようですね。

郵送による運転免許証の有効期間の延長手続 警視庁

ただ、今の所やむを得ない理由があったものとして失効手続きができるようです。
新型コロナウイルス拡大の終息の定義は一体どういったものなのかわからないので確認が必要そうですが、参考までに。

運転免許証の有効期間の延長(再延長)手続 警視庁

新型コロナウイルスを理由として、有効期間までに更新手続を行うことができず運転免許を失効させた方は、運転免許の失効から最長3年以内かつ新型コロナウイルス拡大の終息から1か月以内であれば、やむを得ない理由があったものとして失効手続をすることができます。

失効手続きの準備

このあたりを参考に持っていくものを集めました。

やむを得ない理由があり、失効後6か月以内の手続 警視庁

マイナンバーカードがあれば全部コンビニで集められるので便利ですね。

失効手続き当日

平日(月曜日)の午前中に東陽町にある江東運転免許試験場へ行きました。

  • ~10:45 到着
    • 可もなく不可もなく、それなりに人がいるなという感じでした。
      • 昼時のラーメン屋に人が並んでいるなぁという感じ
        • 進むのも早いのでラーメン屋ほど並ぶという感じもなかったです。
  • ~11:30 必要物の提出、手数料の支払い、視力検査、一般講習待ち
    • 一番長かったのは視力検査後に一般講習を待っている時間でした
    • 手数料は4,750円でした。
      • 違反講習等で変わるっぽいので+αあったほうが安心かもしれません
  • ~12:30 講習終了
    • 2階の講習部屋から4階の受け取るフロアへ移動
    • 免許をすぐ受け取ってそのまま帰りました。
      • 免許の受け取るフロアでは色んな人が呼ばれるのを待っていますが、講習後の私はすぐ受け取って帰れました。

という感じでトータルで2時間くらいというところでした。
一般講習の入った部屋は私が最後だったので、もしかしたら運が良かったということもあるかもしれません。

行く前にとある免許センターではやばいレベルで並んでるというツイートを見てしまい怯えていましたが、
そんなでもなかったのでよかったです。

まとめ

免許の更新が切れる前に延長手続きだけはやっておこうな!!!
更新切れたらそんなに混んでないから平日いけるなら平日早めに失効手続きしにいこうな!!!

SwiftでJSON文字列をStructのEnumやDate型にbindする

こんにちは、最近Swiftをやっていて、Scalaのコレクション操作が欲しくなってよくないなってなっています。
API等でJSON文字列を受け取って特定のオブジェクトなどにデータを入れたいみたいなのはよくあることだと思うのですが、
Swiftでやったのは初だったのでそのあたりのメモがてらの備忘録です。

SwiftのVersion

$swift --version
Apple Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53)
Target: x86_64-apple-darwin19.5.0

StringやInt、Arrayのbind

文字列、数字や配列など、jsonにもある型は特段なにもしなくてもbindしてくれますね。
JSONDecoderになにも設定せずDecodableを実装したstructの変数名とkey名を合わせると勝手にbindしてくれました。

import Foundation

let data = """
{
    "a": {
        "b": "xxx",
        "b2": ["xxx", "yyy"]
    }
}
""".data(using: .utf8)!

struct A: Decodable { 
    let a: B
}

struct B: Decodable {
    let b: String
    let b2: [String]
}

let decoder = JSONDecoder()
let t1  = try decoder.decode(A.self, from: data)
print(t1)

実行

$swift main1.swift
A(a: main1.B(b: "xxx", b2: ["xxx", "yyy"]))

Date型のbind

やはりあるあるなのか、JSONDecoderにdateDecodingStrategyというものが用意されていました。
.iso8601フォーマットは既に用意されていて、そのフォーマットならそれを設定しておけば使えるみたいですね。
独自フォーマットにする場合はformattedメソッドにDateFormatterを渡してあげると良いみたいでした。

import Foundation

let data = """
{
    "a": {
        "b": "xxx",
        "c": "2020-07-08T15:00:00+09:00",
    }
}
""".data(using: .utf8)!

struct A: Decodable { 
    let a: B
}

struct B: Decodable {
    let b: String
    let c: Date
}

let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .iso8601
let t1  = try decoder.decode(A.self, from: data)
print(t1)

decoder.dateDecodingStrategy = .formatted({
        let f = DateFormatter()
        f.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
        return f
        }())
let t2  = try decoder.decode(A.self, from: data)
print(t2)

実行

$swift main2.swift
A(a: main2.B(b: "xxx", c: 2020-07-08 06:00:00 +0000))
A(a: main2.B(b: "xxx", c: 2020-07-08 06:00:00 +0000))

Enum型のbind

Enum型はEnum型にDecodableを実装して、文字列を元にしたいのであればStringを継承しておけば良い感じでした。

import Foundation

let data = """
{
    "a": {
        "d": [
            "hoge",
            "fuga",
            "piyo"
        ]
    }
}
""".data(using: .utf8)!

struct A: Decodable { 
    let a: B
}

struct B: Decodable {
    let d: Array<D>

    enum D: String, Decodable {
        case HOGE = "hoge"
        case FUGA = "fuga"
        case PIYO = "piyo"
    }
}

let decoder = JSONDecoder()
let t1  = try decoder.decode(A.self, from: data)
print(t1)

実行

$swift main3.swift
A(a: main3.B(d: [main3.B.D.HOGE, main3.B.D.FUGA, main3.B.D.PIYO]))

かなり簡単でしたね。
これで大体のものはAPIから内部のデータに変換できそうです。
めでたしめでたし。

AstroゲーミングヘッドセットA50の電源が不具合でつかなくて困った話

無線のゲーミングヘッドセットのAstro A50を買って使っているんですが、それが電源がつかなくなり困りました。
ぐぐったら初期化っぽい方法を書いてくれている人がいて、すごく助かったのでそのメモです。

Astro A50はこれ

助かった記事がこちら

http://nepr.info/astro-gaming-astro-astro-sans-fil-a50-gen-3-ps4-pc-%E3%83%8F%E3%82%BA%E3%83%AC%E5%BC%95%E3%81%84%E3%81%9F%E3%80%82/

引用すると、

ネットで検索すると結構海外の方で同じ症状に陥っていたが復旧出来たという書き込みがあり自分も実践してみると何事もなく復旧出来てしまったのでその方法を紹介します。
①電源スイッチをon位置にする(ledランプが点灯しなくてもok)
②ヘッドセッド右側にあるgameボタンとdolbyボタンを同時押しで30秒間押したままにする
この方法(リセット?)で復旧することが出来ました

ゲームボタンがここで

f:id:arata3da4:20200426175133p:plain
Gameボタン

Dolbyボタンがここですね

f:id:arata3da4:20200426175216p:plain
Dolbyボタン

自分のヘッドホンは電源のLEDが一切つかなかったんですが、ここを30秒押したらつくようになりました。
その他なんか充電しても充電が出来ないとかそういうときにここのリセットすると直ったりしたのでよかったです。

こちらもオススメ

arata.hatenadiary.com arata.hatenadiary.com