ここは何?

その昔、東の電話やさんでD-Mailの中の人だった時代にKemaNetというソフトウェアを作っていた人のサイトです。
(ちなみに今は国際的な電話やさんで、法人向け雲【基本】の仕事をしてます。)
(のあと、未来とつなぐ電話やさんの研究所で雲作ったらそれはそれで大変です)
(のあと、再び国際的な電話やさんで別の雲を作りましたがもう雲を作るのは飽きました)
(2018.02.01 ふたたびバリューパートナーな電話やさんの研究所に戻りました)

にスポットライトを当てるためのサイトです。

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

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

<< 2020.7 >>
[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/7/9 (木)

オフラインで依存性を考慮して rpm を dnf (yum) でインストールする

NWが貧弱だったり、プロキシ等々の影響により、dnf/yum で rpm ファイルのダウンロードが何度やってもタイムアウトしちゃったり、そもそも外部NWに接続出来ない時などの備忘録です

ざっくり手順:

dnf の場合

dnf download を使えるようにする(参考:Changes in DNF CLI compared to YUM — dnf latest documentation

[bubka@強いサーバ]$ sudo dnf -y install dnf-plugins-core

Extra Packages for Enterprise Linux Modular 8 - x86_64                                                                374 kB/s | 154 kB     00:00
Extra Packages for Enterprise Linux 8 - x86_64                                                                        814 kB/s | 7.2 MB     00:09
Dependencies resolved.
======================================================================================================================================================
 Package                                        Architecture                 Version                               Repository                    Size
======================================================================================================================================================
Installing:
 dnf-plugins-core                               noarch                       4.0.12-3.el8                          BaseOS                        64 k
Installing dependencies:
 python3-dateutil                               noarch                       1:2.6.1-6.el8                         BaseOS                       251 k
(略)

依存性を考慮して rpm ファイルをダウンロード

[bubka@強いサーバ]$ dnf download --resolve --alldeps java-1.8.0-openjdk-devel

CentOS-8 - AppStream                                                                                                  2.3 MB/s | 5.8 MB     00:02
CentOS-8 - Base                                                                                                       2.3 MB/s | 2.2 MB     00:00
CentOS-8 - Extras                                                                                                      12 kB/s | 6.7 kB     00:00
Extra Packages for Enterprise Linux Modular 8 - x86_64                                                                470 kB/s | 154 kB     00:00
Extra Packages for Enterprise Linux 8 - x86_64                                                                        7.0 MB/s | 7.2 MB     00:01
(1/220): atk-2.28.1-1.el8.x86_64.rpm                                                                                  1.8 MB/s | 272 kB     00:00
(2/220): copy-jdk-configs-3.7-1.el8.noarch.rpm                                                                        1.7 MB/s |  27 kB     00:00
(3/220): elfutils-debuginfod-client-0.178-7.el8.x86_64.rpm                                                            1.4 MB/s |  62 kB     00:00
(略)

全ての rpm ファイルをアーカイブするなりしたあと、ファイル転送やメディアを使って弱いサーバに持って行く

最後に弱いサーバで rpm をインストール

[user01@弱っちいサーバ]$ sudo dnf -y install *.rpm

Last metadata expiration check: 0:06:55 ago on Wed Jul  8 17:21:14 2020.
Package acl-2.2.53-1.el8.x86_64 is already installed.
Package audit-libs-3.0-0.17.20191104git1c2f876.el8.x86_64 is already installed.
Package basesystem-11-5.el8.noarch is already installed.
Package bash-4.4.19-10.el8.x86_64 is already installed.
(略)
Package zlib-1.2.11-13.el8.x86_64 is already installed.
Dependencies resolved.
======================================================================================================================================================
 Package                                    Architecture          Version                                           Repository                   Size
======================================================================================================================================================
Installing:
 alsa-lib                                   x86_64                1.2.1.2-3.el8                                     @commandline                441 k
 atk                                        x86_64                2.28.1-1.el8                                      @commandline                272 k
 avahi-libs                                 x86_64                0.7-19.el8                                        @commandline                 62 k
 brotli                                     x86_64                1.0.6-1.el8                                       @commandline                323 k
(略)
  tzdata-java-2020a-1.el8.noarch                                                xkeyboard-config-2.28-1.el8.noarch
  xorg-x11-font-utils-1:7.5-40.el8.x86_64                                       xorg-x11-fonts-Type1-7.5-19.el8.noarch

Skipped:
  coreutils-8.30-7.el8_2.1.x86_64                                             libcurl-7.61.1-12.el8.x86_64

Complete!

弱いサーバのインストール済みパッケージの状態によっては conflict するかもですが、、、

Error:
 Problem 1: problem with installed package coreutils-single-8.30-7.el8_2.1.x86_64
  - package coreutils-8.30-7.el8_2.1.x86_64 conflicts with coreutils-single provided by coreutils-single-8.30-7.el8_2.1.x86_64
  - conflicting requests
 Problem 2: problem with installed package libcurl-minimal-7.61.1-12.el8.x86_64
  - package libcurl-minimal-7.61.1-12.el8.x86_64 conflicts with libcurl provided by libcurl-7.61.1-12.el8.x86_64
  - conflicting requests
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages)

そんな時は dnf のメッセージを頼りに

 sudo dnf -y install --skip-broken *.rpm

などを試しましょう

yum の場合

依存性を考慮して rpm ファイルをダウンロード

[bubka@強いサーバ]$ repotrack java-1.8.0-openjdk-devel

Downloading GConf2-3.2.6-8.el7.x86_64.rpm
Downloading acl-2.2.51-15.el7.x86_64.rpm
Downloading alsa-lib-1.1.8-1.el7.x86_64.rpm
(略)

全ての rpm ファイルをアーカイブするなりしたあと、ファイル転送やメディアを使って弱いサーバに持って行ったら、、、

[user01@弱っちいサーバ]$ sudo yum -y install *.rpm

Loaded plugins: fastestmirror, ovl
Examining GConf2-3.2.6-8.el7.x86_64.rpm: GConf2-3.2.6-8.el7.x86_64
Marking GConf2-3.2.6-8.el7.x86_64.rpm to be installed
(略)

2020/7/8 (水)

wgrib2 を一発で make する

Ubuntu 20.04, CentOS 7/8, Fedora 32 で確認しています

TL;DR

curl -L  https://gist.github.com/kemasoft-gist/f84841e4b0b7d57e5dbd335118c63275/raw | sh
# または
wget -O- https://gist.github.com/kemasoft-gist/f84841e4b0b7d57e5dbd335118c63275/raw | sh

wgrib2 とは?

GRIB2形式データを処理するプログラムwgrib2(入門編)|お天気データサイエンス|日本気象株式会社

make 時の落とし穴

fortran77 コンパイラ(f77) が必要です

 

2020/7/7 (火)

「地名の最後の一文字」を取りそこねていたので訂正

Stories/2020-07-06 の元ネタは国土地理院データでしたが、これだと一部抜け漏れが出ていました
例)茨城県だと、桜川市、石岡市、水戸市、茨木町、のデータが掛ける(←それ以外もあるけど・・・)

01.PNG

国土地理院データ以外でどうにかして「とある市区町村に属する町字名を取得」する方法が無いかと探した結果、
API | HeartRails Geo API | 郵便番号/住所/緯度経度データ変換サービス の使い勝手が良さそうなので新たな手順を考えてみました

手順

ざっくり解説

  1. 市区町村一覧を取得する関数を定義しておく
    # 関数定義
    getCities ()
    {
        curl -s "http://geoapi.heartrails.com/api/json?method=getCities&prefecture=$1" | jq -r '.response.location[]|.city'
    }
    
    # 実行例
    export pref=茨城県 # あとあと都道府県名を使うので環境変数に格納しておく
    
    getCities $pref | head -n3
    水戸市
    日立市
    土浦市
    
     
  2. 町域情報を取得する関数を定義しておく
    # 関数定義
    getTowns ()
    {
        case "$#" in
            1)
                curl -s "http://geoapi.heartrails.com/api/json?method=getTowns&city=$1" | jq -r '.response.location[]|[.x, .y, .city, .town] | @csv'
            ;;
            2)
                curl -s "http://geoapi.heartrails.com/api/json?method=getTowns&city=$1&prefecture=$2" | jq -r '.response.location[]|[.x, .y, .city, .town] | @csv'
            ;;
        esac
    }
    
    # 実行例1: 市区町村名のみ指定
    getTowns 大宮 | head -n3
    "139.626988","35.903223","さいたま市大宮区","下町一丁目"
    "139.628315","35.903642","さいたま市大宮区","下町二丁目"
    "139.630028","35.904032","さいたま市大宮区","下町三丁目"
    
    # 実行例2: 市区町村名と都道府県名を指定
    getTowns 大宮 $pref | head -n3
    "140.427461","36.541261","常陸大宮市","宇留野"
    "140.408893","36.563089","常陸大宮市","姥賀町"
    "140.418712","36.542245","常陸大宮市","栄町"
    
     
  3. 2つの関数を使い、ある都道府県に含まれる町域を取得する
    export pref=茨城県; for c in $(getCities $pref); do getTowns $c $pref; done | tee $pref-ichiran-plain.csv
    
     
  4. 町域情報をいい感じに加工して、緯度、経度、地名の最後の一文字、を取得する
    # 前述の手順で作成したファイルを入力
    cat $pref-ichiran-plain.csv | \
    # ダブルクォーテーションを削除
    tr -d \" | \
    # awkでいい感じに編集
    awk -F, -v OFS=, '
    {
      # 町域レベル住所を加工するために変数に格納
      # ただし /(その他)/ にマッチした場合は市区町村レベルの住所を利用する
      if($NF~/(その他)/) a=$(NF-1); else a=$NF
      # 「最後の一文字」に相応しくない文字を消す
      # 例:山本町南五丁目町 -> 「本」より後ろを削除
      # 例:豊田町           -> 「田」より後ろを削除
      # 例:中村             -> 「中」より後ろを削除
      # 例:中村南一丁目     -> 「村」より後ろを削除/いかんともしがたい
      sub(/(町?[東西南北]?[〇一二三四五六七八九十百]+丁目|[市区町村])$/, "", a)
      # 緯度、経度、町域レベル住所、最後の一文字 を出力
      print $0,substr(a,length(a))
    }' >$pref-ichiran.csv # 結果をファイルにリダイレクト
    
     
  5. QGISに $pref-ichiran.csv を取り込んで表示
    02.PNG

2020/7/6 (月)

デイリーポータルZのあの地図を作りたい

地名の最後の一文字だけで地図をつくると地形が見える :: デイリーポータルZ っぽいものを作る手順を考えました

あると好ましい知識

参考教材

作り方

ざっくり手順

  1. 基盤地図情報ダウンロードサービス から(全項目じゃなくて)「市町村の町若しくは字の境界線及び代表点」をお好きな単位でダウンロードします(都道府県くらいがおすすめ)
    01.PNG
     
  2. ダウンロードしたファイル(大抵は複数になると思います)をFGDVで読み込みます
    1. FGDVはここからダウンロード出来ます
      02.PNG
    2. FGDVで新規プロジェクトを作成して先程ダウンロードしたzipファイルを読み込みます
      03.PNG
       
  3. FGDVで読み込んだデータをシェープファイル形式でエクスポートします
    04.PNG
     
  4. QGISでシェープファイル「町字の代表点」を読み込ませ、geojson形式でエクスポートします
    05.PNG
     
  5. JQ等を利用して地名の最後の文字と緯度経度の組み合わせでCSVファイルを作成します
    # QGISで出力したgeojsonファイルを入力にする
    cat ibaraki.geojson                                                                                   |\
    # geojsonファイルから必要なものだけ抽出し、csv形式で出力
    #   行政コード:  あとで茨城県のみ抽出するために使う
    #   coordinates: 町・字レベルの住所の代表点の緯度経度
    #   名称:        町・字レベルの住所
    jq -r '.features[] | [.properties."行政コード", .geometry.coordinates[], .properties."名称"] | @csv' |\
    # ダブルクォーテーションを削除
    tr -d '"'                                                                                            |\
    # 行政コードを利用して特定の都道府県を抽出
    #   茨城: 08 で始まる
    #   埼玉: 11 で始まる
    grep '^08'                                                                                           |\
    # 地名の最後の一文字を作り出す
    # 入力(-F)、出力(-v OFS)ともにカンマ区切りにする
    awk -F, -v OFS=, '
    {
      # 町・字レベル住所を加工するために変数に格納
      a=$NF;
      # 「最後の一文字」に相応しくない文字を消す
      # 例:山本町南五丁目町 -> 「本」より後ろを削除
      # 例:豊田町           -> 「田」より後ろを削除
      # 例:中村             -> 「中」より後ろを削除
      # 例:中村南一丁目     -> 「村」より後ろを削除/いかんともしがたい
      sub(/(町?[東西南北]?[〇一二三四五六七八九十百]+丁目|[町村])$/, "", a)
    }
    # まれに「最後の一文字」が残らない場合があるので、それを除外
    # 例:○○市 北町一丁目 の場合、町・字レベル住所=北町一丁目 となり前段の処理で全て削除される
    $NF{
      # 緯度、経度、町・字レベル住所、最後の一文字 を出力
      print $2,$3,$4,substr(a,length(a))
    }' >filtered.csv # 結果をファイルにリダイレクト
    
  6. QGISでCSVファイルをインポートします
    06.PNG
     
  7. シンボルとラベルを設定します
    1. シンボル(なし)
      07.PNG
    2. ラベル(単一定義)
      08.PNG

おまけ

地理院地図タイル(色別標高図、明治期の低湿地)と組み合わせると面白いです

2020/7/1 (水)

ラジコで停波を迎えるとどうなるか?

昨日、FM PORT -79.0MHz- 新潟県民エフエム放送 が停波、閉局しました

県外からラジコプレミアム+Amazon Echoで聴いていましたが、停波後の動きが特徴的だったのでここに記しておきます

現在、ホームページにアクセスすると全て thankyou.html にリダイレクトされますが、なぜか オンエア局検索 は現時点(2020/07/01 12:48 JST)でも有効です

モーニングゲート をはじめ数々の楽しい番組を届けてくれた FMPORT の歴代パーソナリティそして歴代スタッフの皆様に感謝です、またどこかで!

2020/6/28 (日)

さよなら FM PORT

大好きなFMラジオ局が6/30で停波してしまうので、ここ1週間は暇さえあればラジコプレミアムにかじりついています

https://twitter.com/hashtag/fmport

2020/6/24 (水)

PukiWikiのyoutubeプラグインをスクレイピング

便利に使わせて頂いております(作者に感謝!)
PukiWikiのyoutubeプラグイン改良版2020。HTML5対応 -【車中泊まとめWiki】(PC版)

このページから youtube.ini.php を取り出すには
HTMLソースを取得し、文字実体参照部分をデコード、HTMLタグを取り去ったのち '<?php' から '?>' で括られた部分を取得します

準備

url='https://syachuhaku.fxtec.info/index.php?PukiWiki%E3%81%AEyoutube%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E6%94%B9%E8%89%AF%E7%89%882020%E3%80%82HTML5%E5%AF%BE%E5%BF%9C'

その1:perl

sudo dnf -y install perl-HTML-HTML5-Entities
curl -s "$url" | perl -MHTML::HTML5::Entities -pe 'decode_entities($_)' | sed -n '/<?php/,/?>/p' >youtube.ini.php

その2:w3m

sudo dnf -y install w3m
w3m -dump "$url" | sed -n '/<?php/,/?>/p' >youtube.ini.php

これら2つはほぼ同じものが得られますが、
行末スペース(例:31行目)、タブ文字(例:33-36行目)の扱いが違うようです

youtube-plugin.png

2020/6/23 (火)

sleep をカウントダウンする(と、ちょっと楽しくなる・・・かも?!)

という時、こんなことしますよね?

vagrant@ubu20:~$ sudo reboot
vagrant@ubu20:~$ Connection to 192.168.33.20 closed by remote host.
Connection to 192.168.33.20 closed.
[nobuoki@e130 ~]
$ sleep 30s; ssh ubu20 # ★★★ 30秒後に ssh を仕掛けて、今のうちにトイレに行く! ★★★

# 暫く経つと・・・

Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-37-generic x86_64)

(略)

Last login: Tue Jun 23 08:36:36 2020 from 192.168.33.1
vagrant@ubu20:~$

たまに早く帰ってきちゃうと sleep の待ち時間がつまらないですよね・・・

そこでカウントダウンさせてみました!

シェル関数に登録

ctd(){ for t in $(seq $1 -1 1); do echo -ne "\r$t "; sleep 1; done; echo -e "\r0"; } # countdown

わかりやすく書き直した

$ type ctd
ctd は関数です
ctd ()
{
    for t in $(seq $1 -1 1);
    do
        echo -ne "\r$t ";
        sleep 1;
    done;
    echo -e "\r0"
}

これで超楽しいカウントダウンライフがあなたのものです!!

2020/6/21 (日)

rfriends で録音した m4a ファイルを ffmpeg で mp3 に変換するあれこれ

ラジコプレミアムユーザーの私は rfriends という録音ツールを永いこと愛用させてもらってます

デフォルトで m4a 形式で保存してくれるので、そこから様々な機器や用途(倍速再生とかとか)に合わせて ffmpeg でファイル変換するのが好みです

普通に mp3 変換する(とワーニングが出るので消す)

 ffmpeg -i 旅ラジ_20200530.m4a 旅ラジ_20200530.jpg

これでも全く問題無いですが、ワーニングが出ます

ffmpeg version 4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 10 (GCC)
(略)
Stream mapping:
  Stream #0:1 -> #0:0 (mjpeg (native) -> png (native))
  Stream #0:0 -> #0:1 (aac (native) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
[swscaler @ 0x5650834f3080] deprecated pixel format used, make sure you did set range correctly ★ココ
[mp3 @ 0x5650833bd740] Frame rate very high for a muxer not efficiently supporting it.          ★ココ
Please consider specifying a lower framerate, a different muxer or -vsync 2                     ★ココ
Output #0, mp3, to '旅ラジ_20200530.mp3':
  Metadata:
    major_brand     : M4A
    minor_version   : 512
    compatible_brands: isomiso2
    TIT2            : 旅ラジ-出発進行!_20200530_0530
    TPE1            : 茅野正昌
    TPE2            : RKB
    TALB            : 旅ラジ-出発進行!
    comment         : multi:旅ラジ-出発進行
    TCON            : timefree
    TDRC            : 2020-05-30
    TRCK            : 22
    TSSE            : Lavf58.29.100
    Stream #0:0: Video: png, rgb24(progressive), 480x300 [SAR 1:1 DAR 8:5], q=2-31, 200 kb/s, 90k fps, 90k tbn, 90k tbc (attached pic)

ワーニングを消すには -vsync 2 を追加します

 ffmpeg -i 旅ラジ_20200530.m4a -vsync 2 旅ラジ_20200530.jpg

アートワークを jpeg 形式に変換する

上記で変換した mp3 ファイルのアートワークは png 形式になっています

$ ffprobe 旅ラジ_20200530.mp3
ffprobe version 4.2.2 Copyright (c) 2007-2019 the FFmpeg developers
  built with gcc 10 (GCC)
(略)
  Duration: 00:15:00.05, start: 0.023021, bitrate: 129 kb/s
    Stream #0:0: Audio: mp3, 48000 Hz, stereo, fltp, 128 kb/s
    Metadata:
      encoder         : Lavc58.54
    Stream #0:1: Video: png, rgb24(pc), 480x300 [SAR 1:1 DAR 8:5], 90k tbr, 90k tbn, 90k tbc (attached pic) ★ココ
    Metadata:
      comment         : Other

アプリケーションによっては jpeg 形式でないと都合が悪いものもあるようで、そんなときは -c:v mjpeg オプションを追加します

 ffmpeg -i 旅ラジ_20200530.m4a -vsync 2 -c:v mjpeg 旅ラジ_20200530.mp3

変換後のファイルを ffprobe で見てみると

(略)
  Duration: 00:15:00.05, start: 0.023021, bitrate: 128 kb/s
    Stream #0:0: Audio: mp3, 48000 Hz, stereo, fltp, 128 kb/s
    Metadata:
      encoder         : Lavc58.54
    Stream #0:1: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), 480x300 [SAR 96:96 DAR 8:5], 90k tbr, 90k tbn, 90k tbc (attached pic) ★ココ
    Metadata:
      comment         : Other

mp3tag で見るとこうです

tabi-01.png

音声トラックのみを取り出す

map で音声トラックのみを変換対象に指定します
画像を含まない(変換しない)ので -vsync 2 や -c:v mjpeg オプションは不要です

 ffmpeg -i 旅ラジ_20200530.m4a -map 0:0 旅ラジ_20200530.mp3

ファイルサイズを小さくしたい場合には良いかもしれません

参考情報

旅ラジって何?

RKBラジオ(福岡)の鉄道をテーマにした15分番組です

県外のかたは、めちゃめちゃ感度の良いアンテナを使うか、ラジコプレミアムでお楽しみ頂くのが良いと思います

動作確認した環境

fedora 32 です

$ uname -a; ffmpeg -version | head -n1
Linux e130 5.6.13-300.fc32.x86_64 #1 SMP Thu May 14 22:51:37 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
ffmpeg version 4.2.2 Copyright (c) 2000-2019 the FFmpeg developers

2020/6/19 (金)

最近の Ubuntu/CentOS/Fedora で stone をインストールする

td;dr

CentOS 8, Ubuntu 20 (Focal) で確認済みです

  curl 'https://gist.githubusercontent.com/kemasoft-gist/db7ff1114c2f07d01ca6203d3ed84fe8/raw/a97baf073cbc7aaa87edbe1ed7cffc3f97c5fa15/install-stone.sh' | sh -x

install-stone.sh - Gist

stone とは?

社内ネットワークでプロキシを云々するためにかれこれ10年以上、お世話になってます。感謝!

わざわざビルドするのはなぜ??

パッケージががが・・・

というのは些末な理由で、本当の理由は

だったりします

その他

スクリプトでは CVS リポジトリ のソースファイルを使用しているので、例の有名な -D_GNU_SOURCE オプションを気にする必要がなくておすすめです(Makefile に修正が加わっています)

2020/6/17 (水)

さくらのレンタルサーバでAlexaスキルを実行する

Amazon Echo (Alexa)でのジュークボックス・スキルの開発:手持ちのmp3ファイルを音楽再生したい
のスキルサーバ、データサーバをさくらのレンタルサーバにデプロイしてみました。

解説がとても丁寧なので、素直に手順通りに進めていけば良いですが、うっかり忘れそうなことをいくつか記載します。

エンドポイント

あなたのアカウント.sakura.ne.jp を使う場合、証明書は「ワイルドカード証明書」にします。
(curl -v https://あなたのアカウント.sakura.ne.jp/ とかやると分かります)

 wrap

myjuke.php

データ・サーバのURL

  1 <?php
  2 error_reporting(0);
  3
  4 define('MP3URL', 'https://あなたのアカウント.sakura.ne.jp/配置したディレクトリ/mp3.php?'); // ★ココ★
  5 define('NORMAL', 'N');
  6 define('SHUFFLE', 'S');

スキルID
「Alexa Developer Console」のスキル一覧にある「スキルIDの表示」で調べて書き写します

 11 // 必須チェック(証明書以外)
 12 if ($envelope['context']['System']['application']['applicationId']
 13                 // スキルIDは修正必須です。このままだとエラーになります。
 14                 // スキルIDをシングルクォートで囲ってください。
 15                 // 例:'amzn1.ask.skill.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
 16                 != 'amzn1.ask.skill.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx') {  // ★ココ★

パスワード文字列(例として SECRETPASSEWORD にしてみます)

117         public function url() {
118                 $uts = time();
119                 $param = 'cat='.$this->cat.'&num='.strval($this->num).'&state='.strval($uts);
120                 // パスワード文字列は修正必須です。このままだとエラーになります。
121                 // データ・サーバのプログラムと同じパスワードをシングルクォートで囲ってください。
122                 $sum = sha1('SECRETPASSWORD'.'cat'.$this->cat.'num'.strval($this->num).'state'.strval($uts));  // ★ココ★
123                 $envelope = MP3URL.$param.'&sum='.$sum;
124                 return $envelope;
125         }

mp3.php

パスワード文字列(myjuke.phpと合わせます)

 18 // パスワード文字列は修正必須です。このままだとエラーになります。
 19 // ジュークボックス・スキルのプログラムと同じパスワードをシングルクォートで囲ってください。
 20 $sum = sha1('SECRETPASSWORD'.'cat'.$myCat.'num'.$myNum.'state'.$myState);  // ★ココ★
 21 if ($sum != $mySum) {
 22         return;

2020/6/16 (火)

uwsc で SENDSTR で入力できないダイアログ

例えばこういう奴は SENDSTR では入力できません

win-sec-dialog.png

そんな時は KBD を使えばいいです

// ダイアログを見つける
id = getid("Windows セキュリティ", "Transparent Windows Client")
CTRLWIN(id, ACTIVATE)

// これは失敗する(何も入力されない)
// SENDSTR(id, "Pwd2020")

// パスワード "Pwd2020" に相当するキーストロークを KBD で送る
KBD(VK_SHIFT, DOWN      )
KBD(VK_P,   CLICK,   100)
KBD(VK_SHIFT, UP,    100)
KBD(VK_W,   CLICK)
KBD(VK_D,   CLICK)
KBD(VK_2,   CLICK)
KBD(VK_0,   CLICK)
KBD(VK_2,   CLICK)
KBD(VK_0,   CLICK)

// 最後に Enter キーを入力
KBD(VK_RETURN,CLICK)

2020/6/14 (日)

LaVie/VersaPro のタッチパッドをLinuxでON/OFFする

lubuntu 20.04 で確認しています。

dmidecode の出力結果(抜粋)

       Manufacturer: NEC
       Product Name: PC-VK17TGSCJ
       Family: LaVie/VersaPro

xinput list の出力結果(抜粋)

&#9121; Virtual core pointer                          id=2    [master pointer  (3)]
&#9116;   &#8627; ETPS/2 Elantech Touchpad                  id=14   [slave  pointer  (2)]

デバイス "ETPS/2 Elantech Touchpad" を制御すれば良い
こんな感じで alias 登録しておくと pad-on/pad-off でそれぞれ On/Off の切り替えが出来る

alias pad-off='xinput set-prop "ETPS/2 Elantech Touchpad" "Device Enabled" 0'
alias pad-on='xinput set-prop "ETPS/2 Elantech Touchpad" "Device Enabled" 1'
alias pad-status='xinput list-props "ETPS/2 Elantech Touchpad"'

他にも pad-status (xinput list-props) で様々なパラメータを確認することが出来るので、用途に合わせて xinput set-prop で値を変更すると幸せになれます。

参考:Disable touchpad while typing in LXQt - Ask Ubuntu

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/3/12 (木)

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

.htaccess にこれ入れる

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

参考


添付ファイル: fileKemaSoftBETA.png 108件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-03-24 (日) 07:44:02