2019-06-22

國民誠實度測驗

這是才剛做出來的實驗,這個實驗是在40個國家的355個城市,放置了17303個俱有
部份透明可以看到內部的皮夾,分成有放錢跟沒放錢的。

皮包裡面也放了用當地語文印製的名片,看起來就是本地人掉的東西,上面有連絡
的方式,放的錢是放當地貨幣。

測試的地方包括銀行、戲院、博物館、郵局、飯店跟警察局等等,做試驗的人故意
拿著皮包到這些地方的櫃台,跟櫃台的人說我在路上撿到這個皮夾,請你們處理,
然後急著就離開沒有留下連絡資料或要求給他收據。

紅色是有放錢的皮包,橘色是沒放錢的皮包



出處: https://science.sciencemag.org/content/early/2019/06/19/science.aau8712

2019-05-31

單一port提供多種protocol

原本每個port有各自專門用的protocol, 像 443是https, 22是ssh,
但有時可能只有一個port可以用, 卻想要分別有多種service, 這時可以藉由sslh
來管理, 會根據request protocol來轉給相對應的service.

最主要的設定在 /etc/default/sslh 而最基本的三行就夠用:
RUN=no
DAEMON=/usr/sbin/sslh
DAEMON_OPTS="\
--user sslh
--listen 192.168.10.5:8000
--ssh 127.0.0.1:22
--ssl 127.0.0.1:443
--pidfile /var/run/sslh/sslh.pid"

這樣當遠端對這台機器的port 8000要求ssh 連線時, sslh 會把封包轉成local
的port 22去找sshd service, 而當遠端對這台機器的port 8000要求https 連線時,
sslh 又會把封包轉給local 的port 443 去找secure http的service.

sslh 是由 systemctl 來控制起降.
如果搭配firewall 讓22 跟443 都不會被外界access, 只有開啟 sslh 後才能access,
這樣安全又增加了一層.

2019-04-20

電子書閱讀機mooink

最近拿到一台mooink+ 7.8inch的電子書閱讀機,比上個月在美國書店看到的kindle
螢幕大,價格也差不多,優點是支援漢字閱讀。

拿到後第一個重點是要連上wifi, 因為接下去它會去update裡面的OS+app(?), 完成後
系統是3.1.4, OS是Android 4.4.2, 這一版內建了萊姆輸入法,不過它的萊姆不能讓
使用者像在手機版萊姆那樣可以自行變更各種相關設定,但好歹也有倉頡可用,比稍早
的版本只有注音好多了。

查了一下手冊,它只能閱讀epub格式檔,於是上網找了幾個電子書檔案塞進閱讀機裡,
就可以看書了。只要用它附的USB線(一頭是mini USB)接上就可以進行檔案傳輸,開啟
任何檔案管理程式,例如pcmanfm, thunar,可以看到MOOINK,就可以用copy/paste
的方式把電腦裡的epub檔塞進mooink+.

打開epub檔案是可以看書,但是問題來了,因為用手指頭點來點去,它都在翻頁,我要
怎麼脫離閱讀的模式?或是在閱讀模式下改變閱讀的設定?

有時不小心隨便點一下,它會出現上下兩個區域可以設定字體大小、目錄、系統、亮度
、搜尋或是回到書櫃。有時出現有時不出現,不是點一下或快速點兩下,也不是長按,
也不是滑動,試了一陣子還是找不出邏輯。

試很久之後,終於找出它的邏輯,就是要點在「中線」就是螢幕正中央的垂直子午線,
用漢字的「中」來比喻的話,如果整個螢幕是一個「中」字,就是要點在「中」字的
中央那一直線上,功能設定的輔助就會出現。

最後來談談epub,網路上灰色地帶很多,可以找到很多中、英文電子書,但有各種不同
格式,只要把它轉成epub格式就可塞進mooink+閱讀,雖然網路上也有很多免費幫你
轉檔格式的網站,但如果考慮隱私權的話,還是自己轉比較安全。

在Linux環境下的calibre這套工具很好用,它除了可以直接閱讀電子書,也可以用來
轉換電子書成為不同格式,但pdf格式不一定能順利轉成epub,轉換的指令是:
ebook-convert aabbcc.pdf aabbcc.epub
其它像是txt、doc都可以轉成epub, 請自行試試.

電子書閱讀機的好處是它很省電,比一般手機、平板省太多了!充一次電,放了幾個
禮拜都還能閱讀。室外閱讀也沒問題。

2019-02-28

Live USB最簡單製做法

現在的BIOS大都支援UEFI boot, 所以製作USB boot disk已經不必再去管MBR,
也就是不必依賴特殊的工具來產生可以開機的USB隨身碟, 只要format 成FAT32
再利用grub2 加上幾個檔案就能開機.

使用Linux最簡單的作法是割第一個partition format成FAT32, 剩下的就做成
單一的第二partition 使用ext3(或ext4) format, 用來存放Linux.

第一個partition 挖兩個目錄, 一個為 /boot/grub/ 下面就放單一個 grub.cfg
即可, 裡面的規格也很簡單
set default=N  (就是以下開機項目的第幾個, 從0開始算)
set timeout=M  (就是沒按Enter之後幾秒開始戴入系統)

menuentry 'Ubuntu 18.04' {
linux /path/vmlinuz.a option1 option2 option.....
initrd /path/initrda.img
}

menuentry 'MX Linux 18.1' {
linux /path/vmlinuz.b option1 option2 option.....
initrd /path/initrdb.img
}

menuentry 'CentOS 7.4' {
linux /path/vmlinuz.b option1 option2 option.....
initrd /path/initrdb.img
}

第一個partition另一個目錄是 /efi/boot/ 下面放一個bootx64.efi 就夠了.

不過,這樣是沒有美觀的考量,但已經滿足開機的需求.
(如果更懶,可以整支USB 只有一個FAT32 partition, 但就沒有ext的好處可用)

再來就是第二個partition, 只要空間夠大, 可以放無數個Linux版本,例如:
ub1804 用來放 Ubuntu 18.04
mx181  用來放 MX Linux 18.1
cent74 用來放 CentOS 7.4

第一個partition另一個目錄是 /efi/boot/ 下面放一個bootx64.efi 就夠了.

不過,這樣是沒有美觀的考量,但已經滿足開機的需求.
(如果更懶,可以整支USB 只有一個FAT32 partition, 但就沒有ext的好處可用)

再來就是第二個partition, 只要空間夠大, 可以放無數個Linux版本,例如:
ub1804 用來放 Ubuntu 18.04
mx181  用來放 MX Linux 18.1
cent74 用來放 CentOS 7.4

在第一個partition 的grub.cfg 裡怎麼控制要開機進哪個Linux, 關鍵在於
1.指定系統所在的partition
2.指定系統所在的目錄

指定partition
Ubuntu用uuid=xxxxxxxxxxxx
MX Linux用buuid=xxxxxxxxxxxx
CentOS用root=live:UUID=

指定Linux目錄
Ubuntu用live-media-path=
MX Linux用 bdir=
CentOS用rd.live.dir=

squashfs壓縮的系統檔預設檔名
Ubuntu是filesystem.squashfs
MX Linux是linuxfs
CentOS是squashfs.img

重點都提到了!哈

2019-01-01

Roland AE-05 連接Linux

拿到一支Roland AE-05(Aerophone Go), 從說明書看,它可以透過藍牙跟手機連接,
然後利用手機來設定AE-05,或是用手機接受AE-05來播放額外的MIDI音源,因為
AE-05內建只有11種音源(包括一組打擊樂器),如果用手機可以播放額外幾十種音源,
不過這時要把AE-05本身的音量關到零。

首先遇到的問題就是手機無法連上AE-05的藍牙,裝了Aerophone Go APP也是連不到,
經過確認是安鳳無法連AE-05,只能用哀鳳或哀Pad連!(需要iOS 11或以上)

把AE-05透過USB線插到電腦後可以看到VID/PID

lsusb
Bus 006 Device 002: ID 0582:01d1 Roland Corp.

cat /proc/asound/cards
 0 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0xd4500000 irq 30
 1 [AE05           ]: USB-Audio - AE-05
                      Roland AE-05 at usb-0000:00:1d.1-1, full speed

cat /proc/asound/AE05/usbid
0582:01d1

cat /proc/asound/AE05/usbmixer
USB Mixer: usb_id=0x058201d1, ctrlif=0, ctlerr=0
Card: Roland AE-05 at usb-0000:00:1d.1-1, full speed

dir /dev/snd/by-id/
total 0
lrwxrwxrwx 1 root root 12 12月 30 20:33 usb-Roland_AE-05_FFFFFFFEFFFF-00 -> ../controlC1

以上確認Linux能夠看到Roland AE-05的device, 再來檢查一下是否能收到AE-05送過來
的訊號?

aconnect -i
client 0: 'System' [type=kernel]
    0 'Timer           '
    1 'Announce        '
client 14: 'Midi Through' [type=kernel]
    0 'Midi Through Port-0'
client 20: 'AE-05' [type=kernel]
    0 'AE-05 MIDI 1    '

指定 port 20
aseqdump -p 20

這時按AE-05的鍵或是吹氣出聲,都會從螢幕上列出一大串MIDI的值
 20:0   Control change          0, controller 2, value 95
 20:0   Control change          0, controller 11, value 95
 20:0   Control change          0, controller 2, value 90
 20:0   Control change          0, controller 11, value 90
 20:0   Control change          0, controller 2, value 82
 20:0   Control change          0, controller 11, value 82
 20:0   System exclusive           F0 41 10 00 00 00 4E 12 00 27 34 2C 00 00 00 79 F7
 20:0   System exclusive           F0 41 10 00 00 00 4E 12 00 27 34 2F 00 0F 64 03 F7
 20:0   Control change          0, controller 2, value 90
 20:0   Control change          0, controller 11, value 90
 20:0   Note on                 0, note 47, velocity 100
 20:0   Note off                0, note 45, velocity 0
 20:0   System exclusive           F0 41 10 00 00 00 4E 12 00 27 34 2C 00 00 00 79 F7
 20:0   System exclusive           F0 41 10 00 00 00 4E 12 00 27 34 2F 00 0F 60 07 F7
 20:0   System exclusive           F0 41 10 00 00 00 4E 12 00 27 34 2C 00 00 00 79 F7
 20:0   System exclusive           F0 41 10 00 00 00 4E 12 00 27 34 2F 00 0E 60 08 F7
 20:0   Control change          0, controller 2, value 82
 20:0   Control change          0, controller 11, value 82
 20:0   Note on                 0, note 65, velocity 100
 20:0   Note off                0, note 47, velocity 0
 20:0   System exclusive           F0 41 10 00 00 00 4E 12 00 27 34 2C 00 00 00 79 F7
 20:0   System exclusive           F0 41 10 00 00 00 4E 12 00 27 34 2F 00 06 60 10 F7
 20:0   System exclusive           F0 41 10 00 00 00 4E 12 00 27 34 2C 00 00 00 79 F7
 20:0   System exclusive           F0 41 10 00 00 00 4E 12 00 27 34 2F 00 06 40 30 F7
 20:0   Control change          0, controller 2, value 74
 20:0   Control change          0, controller 11, value 74

還未解決的問題是能否吹奏AE-05 讓腦裡來播出各種MIDI?