電子竹林:Blog2

Tech関係、はてなダイアリーから移転済み...

「はてなダイアリー」から「はてなブログ」移行へのメモ

  1. 標準的なインポートをやってみる -> (問題点) (id:zom-1:20200819#p1といった#を使うリンクが正しくされない -> MT形式でのインポートに変更
  2. はてなダイアリーでMT形式でエクスポート、はてなブログでインポートをやってみる -> (問題点) エントリー数が大きすぎてインポートできない、サポートに連絡するが返事がなかなか来ないので自力でやることにする -> Pythonで簡単なプログラムを書いて、1000ずつに分割する
  3. はてなダイアリーでMT形式でエクスポート、1000ずつに分割してはてなブログでインポートをやってみる -> (問題点) 同じ日にエントリーがある場合、すべての時間が 00:00:00になっているために上書きされ、1日1エントリーしか書き込まれない -> Pythonで簡単なプログラム作って、複数のエントリーがある場合は最初00:00:001、二つ目は00:00:002 のようにする。同時にリンクを http://d.hatena.ne.jp/zom-1/20200819#p1 など#のリンクがある場合に https://zom1.hatenablog.com/entry/2020/08/19/0001" に変更する。http://d.hatena.ne.jp/zom-1/20200819/ の場合には https://zom-1.hatenablog.com/archive/2020/08/19 にしておく
  4. 以上でとりあえずOKみたい

変換したプログラムは適当だけどこんな感じ

import re

# replace link :  http://d.hatena.ne.jp/zom-1/20190101#p2 -> https://zom-1.hatenablog.com/entry/2019/01/01/0002
pat1 =  r'http://d.hatena.ne.jp/zom-1/([1-2][0-9][[0-9][0-9])([0-1][0-9])([0-3][0-9])#p([0-9]+)'
repl1 = r'https://zom-1.hatenablog.com/entry/\1/\2/\3/'+('000000'+r'\4')[-7:]  ## @@ 
# replace link 2:   http://d.hatena.ne.jp/zom-1/20190101/ -> https://zom-1.hatenablog.com/archive/2019/01/01
pat2 = r'http://d.hatena.ne.jp/zom-1/([1-2][0-9][[0-9][0-9])([0-1][0-9])([0-3][0-9])/'
repl2 = r'https://zom-1.hatenablog.com/archive/\1/\2/\3'

outFileCount = 0 # output file number 
entryCount = 0 # entry number of one file
outName = 'hatena_' + str(outFileCount) + '.txt' # hatena_1.txt , hatena_2.txt ...
outFile = open(outName, "w", encoding='utf-8')  
print(outName)

with open("hatena.txt", "r", encoding='utf-8') as mtFile:
  theDay = '' # dummy
  entryCountOfTheDay = 1 # dummy
  for line in mtFile:
    if line == "--------\n": # top of entry @@
      entryCount += 1

      # entry size check, entry size problem (max 1000)
      if entryCount >= 1000: # next out file
        entryCount = 0
        outFile.close()
        # new file
        outFileCount += 1
        outName = 'hatena_' + str(outFileCount) + '.txt'
        print(outName)
        outFile = open(outName, 'w', encoding='utf-8')

        # DATE check, same day problem
    if line[:5] == 'DATE:':
      if theDay != line: # entry of another day 
          entryCountOfTheDay = 1
          theDay = line
      else: # entry of same day
          # DATE: MM/DD/YYYY 00:00:nn AM , nn=entryCountOfTheDay
          entryCountOfTheDay += 1
      # 1st entry 0001, 2nd entry 0002 ....
      line = re.sub(r'00:00:00', '00:00:'+('0'+str(entryCountOfTheDay))[-2:], line)

    # link check
    ret = re.subn(pat1, repl1, line)
    if ret[1] != 0: # ret is not None:
      line = ret[0]
    ret = re.subn(pat2, repl2, line)
    if ret[1] != 0: # ret is not None:
      line = ret[0]

    # output
    outFile.write(line) 
  outFile.close()

pyboard到着

ArudinoのPython版みたいなpyboard、↓から注文で1週間ほどで英国より郵便で到着。

https://micropython.org

USB接続すればストレージとして見えて、main.pyを書き直すだけで動く。驚くほど簡単で、開封からLチカまでマジ30秒。

f:id:zom-2:20150210155912j:image:w360

右上)pyboard、右下)Arudino、左)Raspberry Piの比較写真。本体はかなり小さい。

STM32F405RG, 168 MHz Cortex M4 CPU

1024KB flash ROM, 192KB RAM

Micro USB, Micro SD card slot

3軸加速度センサ (MMA7660)、RTC

4 LEDs, リセットスイッチ、ユーザースイッチ

f:id:zom-2:20150210160135j:image:w360

一緒に買ったもの

右下) LCD and touch-sensor £25.0

左) Bluetooth module £7.2

f:id:zom-2:20150210160841j:image:w360

入っているケース。サイズ的にSDカード二枚のものの流用か? (右)

コネクタ部分に切り込みを入れればそのままケースに使えない事もない。ケースの上下をニッパで切ってみたもの(左)

f:id:zom-2:20150210162404j:image:w240

もうちょっと切り込めばLEDも見える

f:id:zom-2:20150205212357j:image:w360

3Dプリンタでケースを作ってみた、ぴったり、下ケースのみだけど

データは↓

http://www.thingiverse.com/thing:330311

USB-WiFi

手元にあったWiFi USBアダプタGW-USNnano2-Mを差して再起動してWiFi Config(GUIの)を動かしてみたら、何もせずに動いた。ScanしたNetworkにパスワード入れたらそのまま動く。起動時に自動的にConnectするようにすればEthernetが不要になるが、やり方はまだ不明(追記:一旦設定すればEthernetを外しても起動時にWiFiで接続してくれるみたい)

Raspberry PiとMacをX-Windowで接続

  • X-Window経由でつなげても今の所ありがたみが薄かった(vncを主に利用中)
  • X-Windowでつなげるには、MacのXquartzを起動、XquartzのxterminalからsshでRPiに接続(ssh -X pi@10.0.1.3 とかでX11 forwardingを有効に)、RPiに繋がったxterminalから例えば、"midori &"でWebブラウザmidoriがMacのXquartz上に表示

Raspberry PiとMacをVNCで接続

  • vncのインストールは"sudo apt-get install tightvncserver"
  • VNCサーバーの起動は例えば "vncserver :1 -geometry 800x600 -depth 24"、これでポート5391でつながる
  • Mac側からこのVNCサーバーにつなげるにはFinderの移動/サーバーへ接続で"vnc://10.0.1.3:5901"など(IP=10.0.1.3の場合)

Raspberry Piに関するメモ

○ 注意点

  • デフォルトのユーザーはname=pi、password=raspberry、rootはパスワード無し
  • SDカードのコネクタのサイド部分が非常に脆い、(カード入れたままケースに入れて割った)
  • SDカードコネクタが割れたら短期的にはダブルクリップで挟むのが手っ取り早い ショート注意
  • SDカードが書き込み禁止(下側)になっていると起動しない(当たり前)
  • 電源のUSBは"USB-micro"(miniじゃない)、900mA必要でiPad用アダプタ流用でOKだった
  • 黒ケース(CASE-BLK)に入れるとLEDが見えないのでちょっと不便、最初は透明の方がいいかも
  • 基盤上のLEDの意味は次の通り(基板内側から)
    • ACT : SDカードの読み書き
    • PWR : 電源オン
    • FDX : Ethernet全二重の時
    • LINK : Ethernetのリンク確立
    • 100 ; Ethernetが100Mで接続の時
  • 起動時に設定(raspi-config)が出るが、これは後で"sudo raspi-config"で起動出来る、とりあえずsshだけはenableにしておいた方が便利
  • startxでX-Windowが起動してGUIが有効になる

Mac OS X Lion 10.7.4のトラブル

Mac OS X Lion 10.7.4 にアップデートしたら、Proxy経由(パスワード付き)でのアクセスで

とりあえず解決方法を教えてもらった。「キーチェーンアクセス」の環境設定→証明書で、OCSP、CRLを「切」にする。とりあえずこれで解決するみたい