Thursday, November 12, 2015

1秒差 ?? 是什麼


距地球最近類地行星在哪?僅39光年環境像金星


正看著興致盎然,忽然看到文中 
德雷克·戴明說,「而且,該行星所環繞的紅矮星Gliese 1132距離太陽只有12秒差——在這個距離上天文學家可以進行前所未有的、高度精確的觀測。」

不禁開始好奇 12 秒差是多遠,是光線行進12秒的距離嗎 ? 那 39 光年又代表什麼 ?
秒差距
原來這跟天文距離,等腰三角形,歷史淵源有關,簡單說 1 秒差 約略等於3.261光年 ,而且天文學家喜歡用秒差的單位。
(光年則是光往前行進一年所走的距離沒錯,39光年就代表著我拿起望遠鏡看著39光年外的行星,同時也代表著39年以前的這顆行星現在被我看著,至於現在這顆行星的狀況我需要39年後再拿起望遠鏡才會看到 ~ 哈哈)

不錯,可以多找些天文方面的書來看。

Tuesday, November 10, 2015

Google Photo Storage Space 的研究

發現一件很機車的事情,Google Storage 舊的規定
1. Photo 任一邊大於 2048
2. Video 超過 15Min
會被計入 Storage Space ,

新的規定
1. Photo 大於 16MP
2. Video 不管長度,大於 1080p
會被計入 Storage Space ,

而既有的照片影片,只要是在新規定頒布前上傳的,都是按照舊規定,所以會被記入 Storage Space.

解決方法也很簡單,使用 Takeout 取得所有照片影片後,用 ffmpeg 尋找長度大於 15min 的影片,按建立時間刪除 Google Photo 上的,重新上傳,就行了 .


原本 15.7GB

Thursday, November 5, 2015

如何讓舊的 Ubuntu 可以 apt-get install 更新

所以你做了 apt-get install 然後的到錯誤訊息
404 Not found
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

只因為你的 Ubuntu 太舊了 (old-release)
所以你得這樣做
sudo sed -i -e 's/archive.ubuntu.com\|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
然後就可以 apt-get install 了


How to fix Ubuntu/Debian apt-get 404 Not Found Package Repository Errors (Saucy, Raring, Quantal, Oneiric, Natty…)

 


以下是我要把 RAID ext4 轉回(拷貝) NTFS 的紀錄
以 mkntfs 等工具建完 NTFS 後

mdadm -A -R /dev/md0 /dev/sdc2 將 /dev/sdc2 掛在成 RAID
mount /dev/md0 /mnt/md0
原本是想把檔案逐一拷貝進 NTFS ,後來發現小檔案很多,很費時間,所以就放棄

安裝 fsarchive 將 ext4 打包進 NTFS
http://askubuntu.com/questions/5401/which-tool-to-backup-an-ext4-partition
好不容易在 Ubuntu 上面編譯好,卻發現它沒有提供不壓縮打包的方式,而且從
apt-get install sysstat
iostat -d 1 /dev/sdc
觀察到 22MB/s 的拷貝速度實在太慢了,所以照樣放棄
因為 sdc2 有 1.8T 實在太大,透過 gpartd 嘗試縮小,又發現 e2fsck 實在檢查太久,所以打算用命令列直接縮減 parted

後來想想援救到另一科硬碟也只是要空出原來的硬碟,那乾脆放棄目標硬碟直接將系統碟 Win 7 移過去,所以用 CloneZilla Disk to Disk 將 160G 硬碟轉移到 2T 硬碟
開機變快很多,整體效能變快了
Windows 評分主要硬碟從 4.9 分上升到 5.9 分 ~


然後從 2T 開機後,起始 Virtual Box 跑 Ubuntu Live CD , 將 2T Raid mount 起來發生問題
大概是 mdadm -A -R /dev/md0 /dev/sda2 
出現說沒有 superblock 的訊息
後來想想,應該是在之前 command line resize2fs /dev/sda2 500G 時把 Raid superblock 毀了
所以用 mdadm --create /dev/md0 --level=2 --raid-devices=2 missing /dev/sda2 
就可以重建出 raid superblock
之後嘗試 mount 又失敗,看起來是 ext4 superblock 往前 shifting 順便把原來的 superblock 覆蓋掉
嘗試用 mke2fs -S /dev/md0 只重建 suportblock 跟 group desciptor ,但是也還是不能 mount , e2fsck 會出現一堆詢問,膽顫心驚的按了幾個 y 之後放棄。
嘗試 foremost ... 不好用,似乎什麼都做不了,一開始就嘗試拷貝一整份 1.8T image ... 放棄
嘗試 Testdisk ... 好像也是一樣
後來回頭用 R-Studio (under windows) , Ubuntu VM 就先關了,發現可以看得到檔案,但是檔明有中文的部份通通編碼不正確,本來打算跑 R-Studio 在 Ubuntu 下,後來耐心看了一下 Win 版 R-Studio 的 Tool 選單裏面關於 Filesystem 部份 有可以選擇當遇到 ext/ext2/ext3/ext4 時預設編碼是 OEM ,改成 UTF-8 按下 OK 還是沒效果,退出重新 Open Drive 也還是一樣,最後嘗試整個程式都關閉,重新執行程式後 Open Drive 後看到正確的中文檔名了,勾勾選選後開始放著跑 Rescue .... 




 

Wednesday, November 4, 2015

取出 H.264 motion vector

2010 年 10 月 11 日
當時我研究擷取 Motion Vector 作為物件追蹤,發表在此作一記錄。

I’m modifying the JM14.2 to extract the motion vectors from the surveillance’s compressed H.264 stream.
The last mail I mentioned I could use FFMPEG to extract motion vectors. But I found it may not easy to do, due to the complexity of the code, the code is for decoding and fill the decoded raw to displaying device. I need to remove the irrelevant decoding code.
So, later I googled and found the JM14.2 (H.264/AVC Reference Software) for my further development, I think the license is under ISO/ITU related(it’s not important). Which has more clear code, I can simply comment out the decoding function (decode_one_macroblock()), then still preserving the parsing part of code - parsing a frame, slice and macro-block included parsing motion vectors of all macro-blocks. I’ve cross-compiled JM14.2 to my surveillance and run on it, but I find the JM14.2 is somehow slow, for a D1 resolution video which contains 17frames (1 I-frame and 16 P-frames) it costs about 5 seconds on the surveillance(ARM v4 about lower than 300Mhz). I think I need to tune it and remove the unused part of code. For now I’m using gprof to find the most consuming time part of code.
I expect I will have a motion-vector extraction code work on the surveillance.

The OpenCV I haven’t start.

For the surveying papers work, I recently collects three papers.
1.      Estimating Motion Reliability to Improve Moving Object Detection in The H264-AVC Domain (2009)
比利時的一篇論文
此論文的主要論點是 motion vectors 本身會有很多是 noise  motion vector這會讓以往在這個分割物件領域的演算法花費太多的時間在過濾這些 noise,所以他提出了一個方法可以很有效的過濾 noise,並且耗費很少的 CPU
其中描述很少有論文是 H264 的物件分割,除了 Zeng et.al 的那篇 MRF
此篇論文使用當前frame,前一個 frame與後一個 frame 在相同位置的 macro-blocks,來做相似度比較。
利用比出來的結果來判斷此 macro-block  motion vector 是否是 noise,必且分析是前景或是背景。

實驗:
它拿 MRF 來做比較,可以很明顯的看出來 MRF 有很多誤判的地方,從精準度的測驗數據上看起來比 MRF 好很多

疑問 :
A.它如何從 MRF 那篇論文拿到 Etri_od_A 的影像?
Ans:  google 上可以找到很多連結包含 Etri_od_A,以及PetsD2TeC2

B.它如何進行 MRF 的實驗(除非它有MRF程式碼)?

C.MRF 實驗的三個參數 (Alpha,Beta …) 它在比較實驗中如何決定因為原本MRF論文中沒有說明所定的參數是多少


2.      Moving object detection in the H.264 AVC compressed domain for video surveillance (2009)
此篇論文我很好奇他如何在 video surveillance 上做物件偵測,因為包含截取 MV 以及分割物件,此篇論文還沒有看。這篇論文與1.同一組作者。
本篇論文也是跟  MRF 那篇做比較

疑問:
A.我有可能跟這兩篇論文作者取得相關資源嗎 ? (最好有程式碼)。因為他拿 MRF 做比較,顯示他有拿到 MRF 的程式碼,不然不太可能依照 MRF 論文就寫出對應的程式。

3.      Moving Object Segmentation in H.264 AVC Compressed Domain Using Ant Colony Algorithm (2010)
此篇論文我列入不太重要的論文。
上海大學
使用螞蟻費洛蒙的概念來分割物件,將每一 MV 視為一隻螞蟻,透過在時域上的累計,將一群 MV 分類。
使用的數學式子很複雜但是表達方式過於簡單,無法看懂,實驗三言兩語帶過。
           文中也是利用 JM Reference 來擷取出 motion vector 

   5.所以我參考 Using libavformat and libavcodec 跟 ffplay 的 source code 寫了一個程式。這個程式可以把 video 每個 frame (除了沒有 motion vector 的 I-Frame)的 motion vector 取出來
http://victor.csie.org/2007/06/motion-vector-extraction.html
https://github.com/victorhsieh/motion-vector



Sunday, November 1, 2015

震前 15 秒被嚇醒

APP : 地震防災求援


震前 15 秒被嚇醒,非常大聲的警告音效,慌亂間抓起手機解鎖,看到地震倒數 15 14 13 12 11 .... 3 2 1 ,不曉得往哪裡逃,0 ... 窗外傳來狗吠聲,
伴隨著房子柱子樑間劈里啪啦的聲音 ....

 

Wednesday, October 28, 2015

如何將壞掉的記憶體區域(壞軌) 列入黑名單

http://unix.stackexchange.com/questions/75059/how-to-blacklist-a-correct-bad-ram-sector-according-to-memtest86-error-indicati

我覺得這篇文章好強啊。

先是用 MemTest86+ 測試,這段我覺得沒什麼,畢竟我想知道的是如何在 linux 表列錯誤的區域然後避開。

然後我看到答案是 memmap=10M$800M 代表從 800MB 開始後 10MB 都不要使用。

接著有人提到 Ubuntu 開始支援 BadRam , 主要是在 Grub2 grub.conf 指定
GRUB_BADRAM="0x7DDF0000,0xffffc000" 
就可以說明  0x7DDF0000 and less than 0x7DDF4000 處需要避開,就算 kernel 沒支援,Grub2 也可以處理


然後我看到有人說 Memtest86 2.3 與 1.6 開始,有支援 memmap= 的表列方式,當下覺得真棒,直到我看到這張圖
Memtest86+ showing badram output

心理開始泛愁,這些參數要怎麼保存下來,傳遞到 linux command line or grub.conf 咧 ??

然後有人說,我用手機拍下來,傳進 GIMP  => grayscale => invert => contrast/gamma then hand it to tesseract ${IMG} stdout ..

真是太讚了。

Sunday, October 18, 2015

催生 [地震預警APP]

以今天早上的地震來看好了
以縱波速度 5~7 公里/每秒,這次地震在 n24.85 e122.01 ,距離內湖 50.43 公里,大約可以提前 50.43 / 6 = 8.4 秒,如果加上電腦網路延遲...

應該可以在 5 ~ 6 秒前預警 .. 前提是震央附近就有地震站,而且公開資料,以目前台灣的狀況,要政府做到我覺得很困難,除非是科學家主政吧 ...

但是我們身上都有手機,手機本身就良好的地震站,你會反對說,我的手機常常會被我移動,或是走動時放在口袋裡,怎麼可能知道這時候的震動是地震還是人為造成的。
我的回答是,假設你周遭有上百支手機,都安裝了這個 APP ,所有的手機都在某一刻偵測到劇烈的震動,不太可能是人為造成的,從這點就可以歸結出這個區域的手機群偵測出一個地震。

但是你會問,這 App 不是要地震預警嗎 ? 地震都發生了,手機不用偵測到,我也感覺得到啊,哪來的預警 ?
我的回答是 : 除非你在震央,因為地震波的傳送速度大約 6 公里/每秒,所以你距離震央每增加六公里,你就多了一秒的預警時間,而網路傳遞的速度可以說是無限快(光速),所以你離震央愈遠,就有愈長的預警時間。

你會問 : 那作者為何不趕快寫出這個 App 呢 ?
我的回答是 : 我比較懶,我常常有很多的想法,但都是三分鐘熱度。

這樣一個地震 App ,適合大學生或是研究生當成作業,但是我希望是一個公司在經營,比較有規模,而且安裝的人愈多可信度以及準確性會愈高。

相同概念可參考

How to Get Early Earthquake Alerts on Your Android Smartphone





Monday, October 5, 2015

阿波羅計畫的檔案照片


阿波羅計畫的檔案照片

其實還蠻壯觀的,就什麼都拍,什麼都沒放過,所有的細節。
看一看其實可以想想這是一種工作,去一趟月球,做了很多的事情。
就好比你跟隨著一群英雄,穿越時空遊歷其中,然後就明白其實英雄也只是平凡人,只是時機不同就成了英雄。

照片很好看,很棒 !

參考

阿波羅登月成功後,NASA 和阿姆斯壯從此一帆風順了嗎?

作者  | 發布日期 2015 年 10 月 05 日 分類 天文 , 航太科技










Sunday, October 4, 2015

自製鳳梨酥




網路上查找鳳梨酥食譜,看到鳳梨醬要煮五個小時,這絕不是我韌體工程師會做的事情(而且浪費能源)。

糖200g,奶油55g,難吃的土酸鳳梨一顆,忘了秤重。再加約兩三碗水下去瓦斯爐煮一下後,進壓力鍋,加壓完成後強制洩壓,倒進炒菜鍋瓦斯爐大火收乾,快乾時翻炒避免燒焦,小火,倒進碗裡放冰箱,睡覺。

切鳳梨時,貪吃的大鬼報到,塞給他一口土鳳梨 : [很酸很難吃吧 ] , 點點頭跑掉。
煮好鳳梨醬被我塞了一口,一直吵著要吃要吃,一直魯超久,不給 ! 給我睡覺去 ! (吃太多糖就不用睡了,一直跳)









這邊沒有收得很乾,就睡覺去了。隔天去六福村玩,沒動冰了兩晚。
第三天取出再收乾一次,發現真的很油,所以又多了把油瀝乾的手續,但實在沒耐性,火開得大了點,鳳梨醬有點癟乾的狀態。(心理在想,這吃起來實在不健康,又是糖又是奶油)



看著食譜還要折甚麼方模,大小隻又在旁邊吵來吵去,不折了 ! 趕快烤烤要出門回阿公家,加緊腳步 !
餅皮的趕製,其實省略很多步驟,大部分都是急就章,


  1. 牛油,沒糯米粉,糖粉看成糖,加熱攪了老半天根本不會融化還一直冒泡,起司粉直接用起司條代替 (因為覺得起司粉很貴)。
  2. 瞪著不會融化的糖粒,再看一遍食譜,抓出抽屜裡的糖粉,加大約 2/3 食譜的量,這餅皮一定會過甜。
  3. 冷卻到常溫,沒時間,整個炒菜鍋浸到洗水藍加速冷卻。
  4. 加蛋(石安牧場超貴蛋) 兩顆 (搞不懂食譜一顆半的蛋,那剩下的半顆怎麼辦 ?) ,琪恩的奶粉(成長配方),低筋麵粉,但是沒中筋麵粉,所以全用低筋。
  5. 其實桿到後來,砂糖粒也不見了,可能自己跟麵粉溶化了吧,搞不懂 ...
拿著麵糰問芊佑這是不是跟學校的一樣,芊佑做過鳳梨酥應該可以指導我一下,結果跪著包了一個膝蓋痛,一直哀哀叫撤退。
還是自己包餡吧,包完放鐵盤上看它自己又軟禢掉不成形,實在是很無言,我實在沒那美國時間做勞作包厚紙板弄方模,想說錫箔紙包一圈捏一下應該撐得住 !

其實是蠻醜的,應該也很符合我的風格
包到後來,餡多出太多,所以有幾顆的餡料超多,吃完應該一整個腦充血血糖過高,會一直原地跳跳跳吧。不管 ! 先進烤箱再說,沒時間了!





 















170 度烤 12 分鐘,照著食譜取出要翻面,靠 ! 整個黏在上面是要怎麼翻,用力夾就分裂,算了 ! 放棄,繼續烤。
溫度上調 200 度 , 沒時間,請給我加快熟成。
又過了 6 分鐘,看到冒泡了,調低 170 度
有了上次的經驗,曉得烤熟時,餅皮不是硬的,是冷卻下來才會變硬,而且內餡已經沸騰撐破餅皮在冒泡,所以見好就收,免得又出現上次烤餅乾烤焦的情形。















後來果然變硬了,還有沒有考過頭燒焦,不然就完了。



烤完後雖然覺得好吃,但直覺這熱量驚人,所以趕緊分送大家品嘗,幫忙分攤一下熱量消耗。