ここは何?

その昔、東の電話やさんでD-Mailの中の人だった時代にKemaNetというソフトウェアを作っていた人のサイトです。
(ちなみに今は国際的な電話やさんで、法人向け雲【基本】の仕事をしてます。)
(ちなみに今は未来とつなぐ電話やさんの研究所で雲作ってます。たらそれはそれで大変です)

にスポットライトを当てるためのサイトです。
(本当は単に自分メモなんですが)

最近では 鮨ドラ の普及活動なんかもやっているそうです。

お知らせ(主に物欲)

新ドメインhttp://kemasoft.net/2010/07/29
http://kemasoft.info/
さらに旧http://kemasoft.ddo.jp/

海外旅行中にうっかりドメイン失効したことは内緒である。

更新頻度が高めのもの

玄箱玄箱/obsolated
裏窓裏窓/MDIE
お気楽スクリプトお気楽スクリプト/rfriendsの暫定対処
lifehacklifehack/CATVのFMラジオ再送信は周波数が違う
備忘録やネタ備忘録やネタ/2010-12-27-xperiaがSIMを認識しない

Blogっぽいもの(ほぼ、物欲日記)

<< 2020.5 >>
[Stories]
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

2020/5/19 (火)

Windows10/Linux/Lakka のトリプルブート

そんなことしなくても、USBメモリブートでいいじゃん、という声が聞こえてきそうですがまぁ・・・

おおまかな順序

  1. Windows10をクリーンインストール
  2. Linuxを後追いでインストールし、Linuxのブートローダーでデュアルブート状態にする
    • 今回は lubuntu 20.04 を使った
    • イマドキのLinuxインストーラだと、パーティションサイズ変更とか、ブートローダーへのWindows10起動メニュー作成を簡単な操作でやってくれるので便利
  3. Lakka をUSBメモリにインストールし、一旦USBブートさせて終了させる
  4. 別のUSBメモリでパーティションツール(gparted liveとか)を起動し、先程の「LakkaのUSBメモリ」のパーティションをPCのHDD/SSDにコピーする。以下例
    • 参考(さっきと同じ):『Lakka(Retroarch)』とWindows10をPCでデュアルブート | WorldWideEDEN
    • gparted を USBメモリで起動
    • PCの既存パーティションのどれかを縮小し、空き領域を作成する
      • Lakka のUSBメモリサイズより大きくとること
    • (option) 空き領域を全部拡張パーティションにする
    • Lakka のUSBメモリの2つのパーティションを先程作成した空き領域にコピー
  5. Linuxのブートローダを編集し、Lakkaのブートメニューを作る

最終的なパーティション

デバイス   起動  開始位置  最後から    セクタ サイズ Id タイプ
/dev/sda1  *         2048   1187839   1185792   579M  7 HPFS/NTFS/exFAT
/dev/sda2         1187840 366727167 365539328 174.3G  7 HPFS/NTFS/exFAT
/dev/sda3       434311062 500115455  65804394  31.4G 83 Linux
/dev/sda4       366727168 434309119  67581952  32.2G  5 拡張領域
/dev/sda5       366729216 367777791   1048576   512M  6 FAT16
/dev/sda6       367779840 434309119  66529280  31.7G 83 Linux

Linuxブートローダ(grub2)

最近はパーティションラベルが変わっているようです

$ cat /etc/grub.d/40_custom

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "Lakka (on /dev/sda5)" {
        search --set=root --label LAKKA --hint hd2,msdos1
        linux /KERNEL boot=LABEL=LAKKA disk=LABEL=LAKKA_DISK quiet
}

2020/5/18 (月)

エフエムプラプラ/FM++

どうしてもこれを聞きたかったのです

エフエムプラプラはなかなかの強敵のようで、そう簡単にはツールが見つからなかったのですが世の中には賢い方々がいらっしゃるようでとても助かります

てことで、こいつをコンテナ化してみました

Dockerfile

FROM alpine
MAINTAINER Nobuhiro Oki

ARG http_proxy

RUN apk add tzdata ffmpeg py3-pip    \
    && adduser -g '' -h /rec -D rec  \
    && pip3 install websocket-client \
    && wget -O- https://pastebin.com/raw/gQ0Ay2aN    \
      | tr -d '\r'                                   \
      | sed '1s/python/&3/' >/usr/local/bin/fmplapla \
    && chmod a+x /usr/local/bin/fmplapla

WORKDIR /rec
USER rec
ENV HISTFILE=''

WORKDIR /usr/local/bin
COPY rec.sh rec

ENTRYPOINT ["sh","/usr/local/bin/rec"]
CMD ["-h"]

rec.sh

#/bin/sh

usage() {
  cat <<...
${0##*/} - netwok radio recorder

Parameters:
  REC_MIN     : recording duration [minute]
  REC_SEC     : recording dulation [second], override REC_MIN
  REC_STATION : radio statuon url  (default: radioheart / Sanjo, Niigata, Japan)
  REC_PREFIX  : output file prefix (default: radioheart <= same as REC_STATION )
  REC_TZ      : TimeZone for timestamp of output file name (default: Asia/Tokyo)

Note:
  - all parameters must be given by environment variable.
  - recording file is placed on /rec (\$HOME directory of 'rec' user)
    - if you use 'root' user in container, output directory is /root

Example:
  rec ラヂオは&#12316;と while 30min, output /tmp directory of docker-host
    docker run --rm -v /tmp:/rec -e REC_MIN=30 rec-fmplapla rec

  after into the container, execute 'rec' command
    docker run -it --rm -v /tmp:/rec sh
      (in container's shell) 
        export REC_MIN=30
        export REC_PREFIX=SATOCHIN
        rec

  same as above, using 'env' command
    docker run -it --rm -v /tmp:/rec sh
      (in container's shell) 
        env REC_MIN=30 REC_PREFIX=SATOCHIN sh /usr/local/bin/rec

  show station list
    docker run --rm rec-fmplapla -l

...
}

# station list
station_list() {
wget                    \
  -q                    \
  -O-                   \
  https://fmplapla.com/ \
| grep                \
  -oE                 \
  '(href|alt)=[^> ]*' \
| awk                         \
  '/^alt=/{print a,$0}{a=$0}' \
| awk                                     \
  -F'["/]+'                               \
  '/\/.*\//{printf "%-20s %s\n", $2, $4}'
}

# when 1st parameter is executable...
command -v $1 >/dev/null 2>&1 && exec $@
[ -x $1 ] && exec $@

# station list
[ "$1"_ = "-l_" ] && { station_list; exit 0; }

# help
[ "$1"_ = "-h_" ] && { usage;        exit 0; }


# parameters
duration_min=${REC_MIN:-1}
duration_sec=${REC_SEC:-$(expr $duration_min \* 60)}
station_id=${REC_STATION:-radioheart}
file_prefix=${REC_PREFIX:-"$station_id"}
TZ=${REC_TZ:-Asia/Tokyo}

rec_filename=$HOME/${file_prefix}_$(env TZ=$TZ date +%Y%m%d-%H%M).m4a

# recording
set -x
fmplapla \
  --station "$station_id" \
  --time "$duration_sec" \
  | \
ffmpeg \
  -loglevel quiet \
  -i pipe: \
  -c libvorbis \
  -acodec aac \
  -f mp4 \
  "$rec_filename"

build

$ podman build . -t rec-fmplapla
(略)

$ podman images rec-fmplapla
REPOSITORY               TAG      IMAGE ID       CREATED          SIZE
localhost/rec-fmplapla   latest   2e70db1ce15b   52 minutes ago   119 MB

crontab

0 6,20 * * * podman run --rm -v ~/Downloads/rec:/rec -e REC_STATION=radioheart -e REC_MIN=60 -e REC_PREFIX=さとちん電波 rec-fmplapla rec

station list

$ podman run --rm rec-fmplapla rec -l
fmhanabi             FMはなび
fmnemaline           FMねまらいん
fmasmo               FMあすも
bikkifm              Bikki-FM
fmaozora             FMあおぞら
radioheart           ラヂオは&#12316;と
fmtokamachi          FMとおかまち
(略)

2020/3/12 (木)

さくらのレンタルサーバに gitprep

.htaccess にこれ入れる

SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

参考

2020/3/11 (水)

Create Link にいつも書くやつ

参考:
Create Link - Chrome ウェブストア

2019/5/31 (金)

windows用のuconv

ICUを使う

MSYS2だとmingw-w64-x86_64-icu

pacboy -Sy mingw-w64-x86_64-icu

2019/5/30 (木)

tmux(<2.9) のconfigをまるっと tmux 2.9 向けに変換する

wget https://gist.githubusercontent.com/tbutts/6abf7fb5b948c066bf180922fb37adcf/raw/198f744327a9924febdd11677f044a4ecd3f3c96/tmux-migrate-options.py && (tmux show-options -g; tmux show-window-options -g) 2>&1 | sed 's/^/set-option -g /' | python tmux-migrate-options.py /dev/stdin

元ネタ:

tmux v2.9 マイグレーションガイド 〜 tmux をv2.9 に上げたらinvalid option エラーが出た - Qiita
https://qiita.com/TsutomuNakamura/items/663b8e456768f29e37ed

2017/5/17 (水)

蕨市と空港の関係

新千歳空港 is bigger than 蕨市

warabi-in-shin_chitose-1.png

検証

1ha = 0.01km^2

なので、

719ha > 5.11km^2

出典:wikipedia

shin-chitose-square.png

出典:google

warabi-square.png

成田、いい勝負!

narita-warabi.jpg

世界最大の空港、キング・ファハド国際航空@サウジアラビアに挑む蕨市

warabi-in-king_fahd.jpg

浦和、いい勝負だよね〜

urawa-in-narita.jpg

2014/6/3 (火)

raspberry pi (raspbian) で webdav

 sudo a2enmod dav
 sudo a2enmod dav_fs
 sudo a2enmod auth_digest

を忘れるな。

2014/2/17 (月)

カンミ堂 ココフセンカード ストライプ CF−5004

2014/2/16 (日)

OGKカブト KG-7W ウインターグローブ

2014/2/15 (土)

iPhone4Sのバッテリー交換

2014/2/12 (水)

おぐ羅 羽田空港店 (ギンザ オグラ) - 羽田空港第1ビル/おでん

20140212.jpg

2014/2/6 (木)

ボルダースポーツ

意外とスポーツ用品店なのに売ってないことが多いので、
楽天の送料無料は超助かります。

2014/2/3 (月)

キャタピラン(伸縮型靴紐) 75cm

2014/2/2 (日)

柴又100K〜東京⇔埼玉⇔茨城の道〜

柴又100K〜東京⇔埼玉⇔茨城の道〜

とりあえず、100km 申し込んでおきました。

前回大会(2013年)の様子はこちら
東京・柴又100K

次の15件>>

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS