Sunday, December 25, 2016

Bypassing Torrent Block

Can't seem to access your favourite torrent sites lately? Getting an error page that says "Access to this website has been disabled"? That's your tax dollars at work. (Sort of.)

As requested by Foxtel and Village Roadshow, the Australian Federal Court has ordered the major ISPs (Telstra, Optus, iiNet, Dodo, TPG, etc.) to block access to 5 torrent sites, specifically:



From what I've read, Foxtel and Village Roadshow will have to pay the ISPs $50 for every domain that is blocked. Any new domains that they want blocked will have to go through the courts.

Based on my experience, Telstra and Optus are using DNS blocking. Simplest workaround is to use another DNS server, instead of your ISP's. Change your WiFi/Ethernet connection's DNS server configuration to point to for example, Google's DNS servers, 8.8.8.8 and 8.8.4.4. Problem solved.

Saturday, December 24, 2016

2 DS in 2 Days

No, not a 2DS. What I meant was, I somehow managed to get two DS consoles in two days.

So my kid saw me playing on my Nintendo DS Lite, and he wanted one for himself. Had a quick look on eBay and Gumtree. Would you believe these things are still selling for around $50 to $100 (from DS Lites to DSi's and DSi XLs)?

Anyway, found this guy on Gumtree selling his DSi and DSi LL relatively cheap ($20 and $30, respectively). Reason why they're cheap is because they're Japanese consoles, and there's no way to switch the language to English (Yes, I checked.) They should be able to take in any region cartridge and you should be able to just play away. Between the two, I decided to get the LL. (Bigger is always better.) I probably would've also bought the other one, if only he can find it. Instead of buying game cartridges, I went to oz3ds.net and bought myself an R4i Gold 3DS flashcart. True, there are cheaper alternatives out there, but I was told this is the gold standard.

Now that I think about it, I should've bought a DS Lite (since I already have an extra R4 DS just lying around), instead of buying the DSi LL, plus the flashcart. So this time I started looking around for a DS Lite. Found one for sale on Gumtree for $5. By the time I inquired, price has gone up to $20 ("due to popular demand"). I guess a lot of potential buyers got turned off by the price increase because I managed to snag it. Heck, even comes with an M3DSReal flashcart. Not the best, but hey, it's free. For the latest firmware, go here or here.

Tuesday, December 20, 2016

Downloading Brightcove Videos

Got some Brightcove webinars from work that I need to download, but finding it quite challenging. Most of the blog posts talk about disabling Flash, enabling developer tools, then setting device emulation and/or user-agent spoofing to Apple iPad.

Logic here is that Brightcove typically transports videos via Flash, as this makes saving videos for offline very difficult. By spoofing the device as an Apple iPad, the theory is that the Brightcove player should fallback to HTML5 mode and we should then be able to save the file as mp4.
So the steps are:

  1. Disable Flash via chrome://plugins
  2. Go to Developer Tools (Ctrl-Shft-I), and switch to Apple iPad mode.
  3. Go to Network tab and filter for mp4.
  4. Reload the page (F5) and wait for the mp4 link to show up.


What I noticed is that disabling the Flash plug-in doesn’t really help. I’m not seeing any mp4 URL. Other blog posts talk about rtmp hacking. Again, I don’t see any reference to rtmp on the Network tab.

Now that I think about it, Brightcove probably doesn’t even use Flash anymore, as almost everyone else is now using HTML5 for video streaming. A closer look at the network traffic shows that the Brightcove player is sending over binary blobs of video using xhr (XMLHttpRequest/Response). It’s possible that the player is not falling back to mp4 mode because it assumes the Apple iPad (and Safari) can handle HTML5 XHR. To test my theory, I switched the device emulation to Google Nexus 4, and this time the tricked worked just fine – even without disabling Flash. On the Network tab, I can see the mp4 link, which can be copied and pasted to your favourite downloader.

While this worked for now, there’s no telling what Brightcove might come up next. For reference, below are some blog posts on what other people have done.

Using rtmp:
http://johntantalo.com/blog/extracting-video-from-brightcove-player-with-rtmpdump/
http://forum.videohelp.com/threads/354508-Brightcove
http://www.benfrancom.com/2016/03/17/download-brightcove-videos.html
http://mrbluecoat.blogspot.com.au/2013/11/download-brightcove-videos-tutorial.html
https://www.reddit.com/r/techsupport/comments/2ro9vn/need_help_downloading_embedded_video/

Using mp4 fallback:
http://grumblesmeckerecke.blogspot.com.au/2015/01/how-to-download-brightcove-videos.html
http://words.bombast.net/download-brightcove-videos/
http://www.mikewebguy.com/2013/08/20/save-brightcove-videos-from-google-chrome/
https://tjkelly.com/blog/how-to-download-brightcove-video/

Sunday, December 11, 2016

Nougat on Grouper

Who would believe that the Nexus 7 (2012) 32GB WiFi tablet is still selling for $200 on ebay?! I mean, this thing is already 4 years old! I found someone selling it for $35 on Gumtree, so I immediately snatched it up.

Latest factory image for nakasi (a.k.a. grouper) is Android 5.1.1 (LMY47V). A check on XDA-Developers show that there's an unofficial AOSP 7.1.1_r4 Nougat build for it, so guess which one I went for?

Before anything anything else, given that this is a stock device, you have to first unlock the bootloader, root, and install a custom recovery. All these are done with WugFresh's Nexus Root Toolkit. Just tell NRT what Nexus device you have, and on what software level, and it will take care of downloading all the files that you need from the Internet. Remember to enable USB debugging on the device first!

If NRT/adb cannot detect your tablet when connected to your PC's USB port, you might have to download and install the Nexus 7 USB drivers:
https://developer.android.com/studio/run/win-usb.html
https://androidmtk.com/download-google-nexus-usb-drivers

If the drivers won't install properly on Windows 8.1 or Windows 10, you might have to disable Driver Signature Enforcement:
https://www.youtube.com/watch?v=Z6HbmjXONuk

Download ROM, 7.1 pico Gapps, and SuperSU here:
http://forum.xda-developers.com/nexus-7/development/rom-android-7-aosp-grouper-t3467514
Gapps have to be pico or else it won't fit in the /system partition given the size of the ROM.
With SuperSU, we'll be doing a systemless install (via recovery) to prevent potential bootloops.

In summary, here are the steps:
  1. Enable USB debugging on N7 (via Developer Options) and connect to PC via USB.
  2. Using NRT, unlock bootloader. Takes a loooong time for the N7 to boot up. Have patience.
  3. Enable USB debugging again.
  4. Again using NRT, root and install customer recovery.
  5. Boot to recovery using NRT's Advanced Utilities.
  6. Wipe --> Factory Reset. You might also want to Format Data if you want to start fresh with no leftover crap.
  7. Reboot to system. At this point, you can copy the ROM, Gapps, and SuperSU zips to the device via MTP.
  8. Again, boot to recovery using NRT's Advanced Utilities.
  9. Flash ROM and reboot to recovery.
  10. Flash Gapps and reboot to recovery.
  11. Mount the /data partition, if not already mounted.
  12. Open Terminal and enter the following command: # echo "SYSTEMLESS=true" >/data/.supersu
  13. Close Terminal and flash SuperSU.
  14. Reboot system.
Enjoy that Nougat goodness on your grouper!

Tuesday, November 22, 2016

Downloading Vimeo Videos

Downloading videos from the Internet for offline viewing is getting harder and harder.

For YouTube videos, I usually just cut and paste the URLs onto Dirpy for easy downloading. For the trickier ones that don't actually show you the video URL, you can simply let the video play out, then pick it off from the browser cache folder. Of course, that assumes you know where the cache folder is and which of the hundreds of files is the video stream that you're after. (I usually base it on the filesize and timestamp.)

Some of the video sites are now onto this. While streaming, the video file saved as chunks in the cache folder. If you don't know how to merge the multiple files, then there's no way for you to play them back again.

Another way video sites beat offline downloaders is to obfuscate the video source. Even if you view the page source, you're not going to find any file reference anywhere. In the end, the browser needs to know where the pull the video stream from, so it must be there somewhere. One way I discovered of getting around this is to use the "inspect element" option. By highlighting the actual video window/iframe, I was able to narrow down to the relevant section and search for the video URL. After that, it's just a matter of pasting the URL onto JDownloader, and letting it do its magic.

Friday, November 4, 2016

周杰倫 - 明明就

周杰倫 - 明明就

作詞:方文山
作曲:周杰倫
編曲:黃雨勳
製作人:周杰倫

伴奏版



*
糖果罐裡好多顏色
Tang guo guan li hao duo yan se
微笑卻不甜了
Wei xiao que bu tian le
你的某些快樂
Ni de mou xie kuai le
在沒有我的時刻
Zai mei you wo de shi ke

**
從故事記的城市裡
Cong gu shi ji de cheng shi li
我想就走到這
Wo xiang jiu zou dao zhe
海鷗不再眷戀大海
Hai ou bu zai juan lian da hai
可以飛更遠
Ke yi fei guang yuan

***
遠方傳來風笛
Yuan fang zhuan lai feng di
我卻在意有你的消息
Wo que zai yi you ni de xiao xi
深怕為愛守著秘密
Shen pa wei ai shou zhe mi mi
而我為你守著回憶
Er wo wei ni shou zhe hui yi

[Chorus]
明明就不習慣牽手
Ming ming jiu bu xi guan qian shou
為何卻主動把手勾
Wei he que zhu dong ba shou gou
你的心事太多 我不會說破
Ni de xin shi tai duo wo bu hui shuo po
明明就他比較溫柔
Ming ming jiu ta bi jiao wen rou
也許他能給你更多
Ye xu ta neng gei ni geng duo
不用抉擇我會自動變朋友
Bu yong jue ze wo hui zi dong bian peng you

Repeat *

Repeat **

Repeat ***

Repeat Chorus

明明就 明明就明明就他比較溫柔
Ming ming jiu ming ming jiu ming ming ta bi jiao wen rou
也許他能給你更多
Ye xu ta neng gei ni geng duo
不用抉擇我會自動變朋友
Bu yong jue ze wo hui zi dong bian peng you

Thursday, November 3, 2016

周杰倫 - 說了再見

周杰倫 - 說了再見

作詞:古小力、黃淩嘉
作曲:周杰倫
編曲:鍾興民



*
天涼了 雨下了 妳走了
Tian liang le, yu xia le, ni zou le
清楚了 我愛的 遺失了
Qing chu le, wo ai de, yi shi le
落葉飄在湖面上睡著了
Luo ye piao zai hu mian shang shui zhao le

想要放 放不掉 淚在飄
Xiang yao fang, fang bu diao, lei zai piao
妳看看 妳看 看不到
Ni kan kan, ni kan, kan bu dao
我假裝過去不重要 卻發現自己辦不到
Wo jia zhuang guo qu bu zhong yao, que fa xian zi ji ban bu dao

Repeat *

**
說了再見 才發現再也見不到
Shuo le zai jian cai fa xian zai ye jian bu dao
我不能就這樣失去妳的微笑
Wo bu neng jiu zhe yang shi qu ni de wei xiao
口紅待在桌角 而妳我找不到
Kou hong dai zai zhuo jiao er ni wo zhao bu dao
若角色對調妳說好不好
Ruo jiao se dui diao ni shuo hao bu hao

Repeat **

說了再見 才發現再也見不到
Shuo le zai jian cai fa xian zai ye jian bu dao
能不能就這樣忍著痛淚不掉
Neng bu neng jiu zhe yang ren zhe tong lei bu diao
說好陪我到老 永恆往那裡找
Shuo hao pei wo dao lao, yong heng wang na li zhao
再次擁抱一分一秒都好
Zai ci yong bao yi fen yi miao dou hao

Repeat *

妳的笑 妳的好 腦海裡 一直在繞
Ni de xiao ni de hao nao hai li yi zhi zai rao
我的手 忘不了 妳手的溫度
Wo de shou wang bu liao ni shou de wen du
心碎了一地 撿不回從前的心跳 身陷過去我無力逃跑
Xin sui le yi di jian bu hui cong qian de xin tiao, shen xian guo qu wo wu li tao pao
說再見 才發現再也見不到
Shuo zai jian cai fa xian zai ye jian bu dao
能不能就這樣忍著痛淚不掉
Neng bu neng jiu zhe yang ren zhe tong lei bu diao
說好陪我到老 永恆往那裡找
Shuo hao pei wo dao lao, yong heng wang na li zhao
再次擁抱一分一秒都好
Zai ci yong bao yi fen yi miao dou hao




Wednesday, October 19, 2016

周杰倫 - 手寫的從前

周杰倫 - 手寫的從前

作詞:方文山
作曲:周杰倫
編曲:黃雨勳



這風鈴 跟心動很接近
Zhe feng ling gen xin dong hen jie jin
這封信 還在懷念旅行
Zhe feng xin hai zai huai nian lue xing
路過的 愛情都太年輕
Ru guo de ai qing dou tai nian qing
你是我想要 再回去的風景
Ni shi wo xiang yao zai hui qu de feng jing

這別離 被瓶裝成秘密
Zhe bie li bei ping zhuang cheng mi mi
這雛菊 美的像詩句
Zhe chu ju mei de xiang shi ju
而我在風中等你 的消息
Er wo zai feng zhong deng ni de xiao xi
等月光落雪地
Deng yue guang luo xue di
等楓紅染秋季等相遇
Deng feng hong ran qiu ji deng xiang yu

*
我重溫午後 的陽光
Wo zhong wen wu hou de yang guang
將吉他斜揹 在肩上
Jiang ji ta xie bei zai jian shang
跟多年前一樣
Gen duo nian qian yi yang
我們輕輕的唱
Wo men qing qing de chang
去任何地方
Qu ren he di fang

**
我看著你的臉
Wo kan zhe ni de lian
輕刷著和弦
Qing shua zhe he xian
情人節卡片
Qing ren jie ka pian
手寫的永遠
Shou xie de yong yuan
還記得廣場公園 一起表演
Hai ji de guang chang gong yuan yi qi biao yan
校園旁糖果店
Xiao yuan pang tang guo dian
記憶裡在微甜
Ji yi li zai wei tian

***
我看著你的臉
Wo kan zhe ni de lian
輕刷著和弦
Qing shua zhe he xian
初戀是整遍 手寫的從前
Chu lian shi zheng bian shou xie de cong qian
還記得那年秋天 說了再見
Hai ji de na nian qiu tian shuo liao zai jian
當戀情已走遠
Dang lian qing yi zou yuan
我將你深埋在 心裡面
Wo jiang ni shen mai zai xin li mian

微風需要竹林 溪流需要蜻蜓
Wei feng xu yao zhu lin xi liu xu yao
鄉愁般的離開 需要片片浮萍
Xiang chou ban de li kai xu yao pian pian fu ping
記得那年的雨季 回憶裡特安靜
Ji de na nian de yu ji hui yi li de an jing
哭過後的決定
Ku guo hou de jue ding
是否還能進行
Shi fou hai neng jin xing
我傻傻等待
Wo sha sha deng dai
傻傻等春暖花開
Sha sha deng chun nuan hua kai
等終等於等明等白
Deng zhong yu deng ming deng bai
等愛情回來
Deng ai qing hui lai
青春屬於表白
Qing chun shu yu biao bai
陽光屬於窗台
Yang guang shu yu chuang tai
而我想我屬於 一個擁有你的未來
Er wo xiang wo shu yu yi ge yong you ni de wei lai

紙上的彩虹
Zhi shang de cai hong
用素描畫的鐘
Yong su miao hua de zhong
我還在修改 回憶之中
Wo hai zai xiu gai hui yi zhi zhong
你的笑容 該怎麼去形容
Ni de xiao rong gai zen me qu xing rong
為思念醞釀的痛
Wei si nian yun niang de tong
夜空霓虹
Ye kong ni hong
都是我不要的繁榮
Du shi wo bu yao de fan rong
或許去趟沙灘
Huo xu qu tang sha tan
或許去看看夕陽
Huo xu qu kan kan xi yang
或許任何一個可以想心事的地方
Huo xu ren he yi ge ke yi xiang xin shi de di fang
情緒在咖啡館
Qing xu zai ka fei guan
被調成一篇文章
Bei diao cheng yi pian wen zhang
徹底愛上你如詩一般
Che di ai shang ni ru shi yi ban
透明的淚光
Tou ming de lei guang

Repeat **

Repeat ***

Repeat *

Repeat **

Repeat ***

周杰倫 - 楓

周杰倫 - 楓

作詞:宋健彰(彈頭)
作曲:周杰倫



烏雲在我們心裡擱下一塊陰影
wu yun zai wo men xin li ge xia yi kuai yin ying
我聆聽沉寂已久的心情
wo ling ting chen ji yi jiu de xin qing
清晰透明 就像美麗的風景
qin xi tou ming jiu xiang mei li de feng jing
總在回憶裡才看的清
zong zai hui yi li cai kan de qing

被傷透的心能不能夠繼續愛我
bei shang tou de xin neng bu neng gou ji xu ai wo
我用力牽起沒溫度的雙手
wo yong li qian qi mei wen du de shuang shou
過往溫柔已經被時間上鎖
guo wang wen rou yi jing bei shi jian shang suo
只剩揮散不去的難過
zhi sheng hui san bu qu de nan guo

緩緩飄落的楓葉像思念
huan huan piao luo de feng ye xiang si nian
我點燃燭火溫暖歲末的秋天
wo dian ran zhu guang wen nuan sui mo de qiu tian
極光掠奪天邊 北風掠過想你的容顏
ji guan lue duo tian bian bei feng lie guo xiang ni de rong yan
我把愛燒成了落葉
wo ba ai shao cheng le luo ye
卻換不回熟悉的那張臉
que huan bu hui shu xi de na zhang lian
緩緩飄落的楓葉像思念
huan huan piao luo de feng ye xiang si nian

為何挽回要趕在冬天來之前
wei he wan hui yao gan zai dong tian lai zhi qian
愛你穿越時間 兩行來自秋末的眼淚
ai ni chuan yue shi jian liang hang lai zi qiu mo de yan lei
讓愛滲透了地面
rang ai shen tou le di mian
我要的只是你在我身邊
wo yao de zhi shi ni zai wo shen bian
在山腰間飄逸的紅雨
zai shan yao piao yi de hong yu
隨著北風凋零 我輕輕搖曳風鈴
sui zhe bei feng diao ling wo qing qing yao ye feng ling
想 喚醒被遺棄的愛情
xiang huan xing bei yi qi de ai qing
雪花已鋪滿了地 深怕窗外楓葉已結成冰
xue hua yi pu man le di shen pa chuang wai feng ye yi ji cheng bing

周杰倫 - 髮如雪

周杰倫 - 髮如雪

作詞:方文山
作曲:周杰倫



狼牙月 伊人憔悴
Lang ya yue yi ren qiao chui
我舉杯 飲盡了風雪
Wo ju bei yin jin le feng xue
是誰打翻前世櫃 惹塵埃是非
Shi shui da fan qian shi gui Re chen ai shi fei
緣字訣 幾番輪迴
Yuan zi jue ji fan lun hui
妳鎖眉 哭紅顏喚不回
Ni suo mei Ku hong yan huan bu hui
縱然青史已經成灰 我愛不滅
Zong ran qing shi yi jing cheng hui Wo ai bu mie
繁華如三千東流水 我只取一瓢愛了解
Fan hua ru san qian dong liu shui Wo zhi qu yi piao ai liao jie
只戀妳化身的蝶
Zhi lian ni hua shen de die

妳髮如雪 淒美了離別
Ni fa ru xue qi mei le li bie
我焚香感動了誰
Wo fen xiang gan dong le shui
邀明月 讓回憶皎潔
Yao ming yue rang hui yi jiao jie
愛在月光下完美
Ai zai yue guang xia wan mei
妳髮如雪 紛飛了眼淚
Ni fa ru xue fen fei le yan lei
我等待蒼老了誰
Wo deng dai cang lao le shui
紅塵醉 微醺的歲月
Hong chen zui wei xun de sui yue
我用無悔 刻永世愛妳的碑
Wo yong wu hui ke yong shi ai ni de bei

Rap:
你髮如雪 淒美了離別
Ni fa ru xue qi mei le li bie
我焚香感動了誰
Wo fen xiang gan dong le shui
邀明月 讓回憶皎潔
Yao ming yue rang hui yi jiao jie
愛在月光下完美
Ai zai yue guang xia wan mei
你髮如雪 紛飛了眼淚
Ni fa ru xue fen fei le yan lei
我等待蒼老了誰
Wo deng dai cang lao le shui
紅塵醉 微醺的歲月
Hong chen zui wei xun de sui yue

啦兒啦 啦兒啦 啦兒啦兒啦
啦兒啦 啦兒啦 啦兒啦兒啦
銅鏡映無邪 紮馬尾
Tong jing ying wu xie zha ma wei
妳若撒野 今生我把酒奉陪
Ni re sa ye jin sheng wo ba jiu feng pei

周杰倫 - 可爱女人

周杰倫 - 可爱女人

作词:徐若瑄
作曲:周杰倫
编曲:周杰倫



想要有直昇機 想要和妳飛到宇宙去
xiang yao you zhi sheng ji xiang yao he ni fei dao yu zhou qu
想要和妳融化在一起 融化在銀河裡
xiang yao he ni rong hua zai yi qi rong hua zai yin he li
我每天每天每天在想想想想著妳
wo mei tian mei tian mei tian zai xiang xiang xiang xiang zhe ni
這樣的甜蜜 讓我開始相信命運
zhe yang de tian mi / rang wo kai shi xiang xin ming yun
感謝地心引力 讓我碰到妳
gan xie di xin xi yin li / rang wo peng dao ni

漂亮的讓我面紅的可愛女人
piao liang de rang wo mian hong de ke ai nü ren
溫柔的讓我心疼的可愛女人
wen rou de rang wo xin teng de ke ai nü ren
透明的讓我感動的可愛女人
cong ming de rang wo gan dong de ke ai nü ren
壞壞的讓我瘋狂的可愛女人
huai huai de rang wo feng kuang de ke ai nü ren

漂亮的讓我面紅的可愛女人
溫柔的讓我心疼的可愛女人
透明的讓我感動的可愛女人
壞壞的讓我瘋狂的可愛女人

想要有直昇機 想要和妳飛到宇宙去
想要和妳融化在一起 融化在銀河裡

我每天每天每天在想想想想著妳
這樣的甜蜜 讓我開始相信命運
感謝地心引力 讓我碰到妳

漂亮的讓我面紅的可愛女人
溫柔的讓我心疼的可愛女人
透明的讓我感動的可愛女人
壞壞的讓我瘋狂的可愛女人

漂亮的讓我面紅的可愛女人
溫柔的讓我心疼的可愛女人
透明的讓我感動的可愛女人
壞壞的讓我瘋狂的可愛女人

世界這樣大而我而我只是隻小小小的螞蟻
shi jie zhe yang da er wo er wo zhi shi zhi xiao xiao xiao de ma yi
但我要盡全力全力全力保護妳
dan wo yao jin quan li quan li quan li bao hu ni

漂亮的讓我面紅的可愛女人
溫柔的讓我心疼的可愛女人
透明的讓我感動的可愛女人
壞壞的讓我瘋狂的可愛女人
漂亮的讓我面紅的可愛女人
溫柔的讓我心疼的可愛女人
透明的讓我感動的可愛女人
壞壞的讓我瘋狂的可愛女人
漂亮的讓我面紅的可愛女人
溫柔的讓我心疼的可愛女人
透明的讓我感動的

Monday, October 3, 2016

Recipe 2017.03.10 - Pan-Seared Scallops

The secret to perfect pan-seared scallops is to make sure the scallops are dry, or else they won't burn/brown.

The recipe is simple enough. Add olive oil and butter to a saute pan and bring to medium heat. Once hot enough, add the scallops, making sure they're not overcrowded. Salt and pepper the scallops. Sear for 1.5 minutes on each side, or until nicely caramelized. Avoid turning them over and over as they cook. For additional taste, squeeze over some lime juice.

Tuesday, September 13, 2016

WinISO

Why can't everyone just use one standard disc image format?

So I got hold of a bunch of disk images that end in bin, cue, img, sub, and ccd. Was looking for a software that can convert them all to iso, so I can mount the disc (natively) on Windows 10. Google recommended WinISO, CloneCD, Magic ISO Maker, and PowerISO, among others. Most of them turned out to be shareware.

Tried installing version 4.2.0.2 of CloneCD, but Win10 is "unable to load the CloneCD device driver". Kept asking me to reboot, which I just did.

After some evaluation, I settled on WinISO, specifically Free WinISO Maker (WinISO 5.3). Heck, they installer even comes with the regkey. Handled all of the image files I threw at it.

Saturday, September 10, 2016

CM11 for the Ainol Novo 7 Aurora II

It's been a while since I've used the Ainol, as I have probably five other tablets lying around. The next time I looked at it, Android was complaining about "Encryption unsuccessful". It would boot into custom recovery, do some wipe, and boot back into the same error message. The Ainol Novo 7 Aurora II has been running CM10.2. I reckon it's time to upgrade it to CM11.

The procedure from the CM11 (4.4.2) thread looks simple enough.

  1. Download and install TWRP recovery.
  2. Copy the CM11 ROM, gapps, and compatibility zip onto the microSD card (and insert into tablet).
  3. Power on tablet while holding down the VOL- button.
  4. Once booted to the custom recovery, enter "Wipe" menu and swipe to perform a factory reset.
  5. Flash/Install the ROM, gapps, and compatibility zip.
  6. Select "Reboot system".

Did the normal wipe, but TWRP unable to mount /data partition. So, I did a "Format data", then used "Advanced wipe" to wipe everything except the SD-ext. Did another wipe/factory reset, and this time it didn't complain. So, there's a new boot animation, which is a good sign. And the Cyanogenmod logo started spinning, and it kept on spinning for the next 10 minutes. That can't be right. Did another flash with the same results. Went back to the tried and tested CM10.2. Same spinning logo.

This time even Format Data is giving me I/O errors. And seems like the partitions are in ext3 instead of the expected ext4. Something must have gone terribly wrong. The tablet is as good as bricked. As a last resort, I turned to the Aurora II Unbrick Kit 2.0.

Instructions to prep the kit:

  1. Run USB Image Tool as administrator to flash the microSD card.
  2. Choose "Device Mode" in the drop-down menu.
  3. Choose your microSD card on the left panel.
  4. Click the "Restore" button.
  5. Choose "Aurora II 0607 Image.img" in the pop-up window, then click Ok.
  6. Wait until the image recovery is finished.


At this point you'll have a 500MB microSD card with 4 files:

  • factory_update_param.aml
  • g06refe3-ota-eng.chengnan.tan.zip
  • u-boot.bin
  • uImage_recovery

To continue:

  1. Insert the prepared microSD card into your tablet.
  2. Connect the power adapter to your tablet.
  3. Turn the tablet on by pressing "Power" and "Volume -" simultaneously.
  4. Wait until the auto-update is finished, at which point the tablet will reboot.
  5. Remove the microSD card prior to next boot or else tablet will be flashed again.

In my case, flash was completed, but tablet still refuses to boot up properly. Next step is to copy the aml_autoscript to the microSD card and repeat the flash. The "aml_autoscript" is a NAND scrubbing tool to format your internal memory. Note that the forums advise using aml_autoscript as a last resort.

This time, the tablet was able to boot up (to the Chinese ROM) after the flash. With the confidence knowing I can recover from a bad/corrupted/incorrect partition, I proceeded to install Troy's CM11.

First step was to install the TWRP recovery to NAND (via the microSD card). The stock Android recovery gives me an error about invalid/wrong signature, plus the ff. errors:
E:Bad bootloader arguments
"(null)"
E:unknown volume for path [/udisk/factory_upgrade_param.aml]
E:Can't mount /udisk/factory-update-param.aml

No matter; there's more than one way to skin a cat. Simply extract uImage_recovery from the TWRP zip and copy to the root directory of the microSD card, then try again. This time, the tablet booted into TWRP instead of the stock Android recovery. Just to be sure that the partitions are all good and clean:

  1. "Wipe" "Format Data"
  2. "Wipe" "Advanced Wipe"  "System", "Cache", and "Dalvik Cache"
  3. "Wipe" "Factory Reset"

...then flash these zips (in order):

  • TWRP-v2.6.0.0-aurora2_elf2_crystal-ext4.zip
  • cm-11-20140716-UNOFFICIAL-elf2.zip
  • gapps-kk44-core-amlogic.zip
  • aurora2-cm11.0-multiuser_compatibility-rc1.zip

All good!

Friday, August 26, 2016

SecureCRT - Send Input to Multiple Tabs

This SecureCRT feature basically allows you to send input (commands) to multiple tabbed sessions. This is neat, time-saving feature if you have to run the same procedures on a group of servers, e.g. account creation, statistics collection, etc.

For this to work:

  • sessions need to be grouped. Just drag and drop separate session windows into one single tabbed window. OR select a session folder and click on the Connect button to launch all sessions within that folder.
  • chat window nees to be visible. View --> Chat Window

If there is a specific tabbed session that you want to exclude from the input broadcast, just lock them from the File menu or tab menu.

From the chat window, right-click and choose Send Chat to All Sessions. Input/Command is sent to the remote sessions when you press ENTER. You can prepare multiple lines of commands in the chat window by using the CTRL+ENTER key combination.

Friday, August 12, 2016

Movie 2016.08.12 - Edge of Tomorrow

Just from the trailer, I wasn't too impressed going into the movie. I mean, with a Groundhog Day-type scenario, anyone can win the fight against the aliens. And then, there's Tom Cruise.

Having come in contact with the blood of an Alpha, Major William Cage (Tom Cruise) gains the power to live another day every time he dies. Together with Sargeant Rita Vrataski (Emily Blunt), who used to also have this power, they try to figure out a way to get through the daily grind, and locate the Omega, which controls the whole alien Mimic army. Of course, there were some funny moments when Cage first realizes he's in an endless deja vu. Then, the obligatory romance when Cage falls for Vrataski when he gets to know her more and more.

On the day that Cage gets the long-awaited vision and pinpoints the location of the Omega, he gets injured and after a blood transfusion, loses his power to reset the day. Back to Day 1, with no power to reset, he and Vrataski, with the help of the the J Squad, head for The Louvre on a suicide mission to neutralize the Omega. Against all odds, Cage manages to blow up the Omega, and with another dose of alien blood, he goes back in time to witness the defeat of the aliens.

Not too much heavy acting required from the leads. The members of the J Squad are pretty much disposable. I quite liked the moral lesson that human perseverance and tenacity eventually win out. Despite knowing the eventual failed outcome, just having a go at it again and again might make the difference. And if you try hard enough, she might even tell you her middle name.

Wednesday, July 27, 2016

Softmodding the Wii

Got hold of a refurbished Nintendo Wii console system from EB Games for $28. Proceeded to hack it for maximum gaming pleasure.

Lots of ways to hack the Wii, but the easiest, cheapest way to go is diskless softmod. For this, I used ModMii by XFlak. For n00bs like me, ModMii will do (almost) everything for you. It comes with a graphical front-end for point-and-click convenience. Choose what options you like, and type in the Wii MAC address. The required installers and patches are then downloaded on-the-fly from the internet and packaged nicely for you, ready to be copied over to the SD card and/or USB drive. Then it's all just a matter of connecting the media to the game console and following the custom-generated guide.

In my case, I just want the Wii soft-modded and a USB loader installed, so I can play my game backups.

  1. First step is to install the Homebrew Channel (HBC) via BootMii. Copy all the necessary files onto the SD card. Boot the Wii with the SD card inserted. Go to the Messageboard, navigate to Yesterday, then click on the envelope with the bomb icon. This runs the Hackmii installer, which will install the HBC and Bootmii as IOS. In some cases, Hackmii doesn't run after clicking on the envelope. Make sure the SD card is formatted as FAT32 and not write-protected. If that doesn't work, try another SD card.
  2. Once HBC is installed, first thing you want to do is do a NAND backup of the Wii, in case something goes wrong and you need to do a restore. Within HBC, press the Home button, then select Launch BootMii. You'll be presented with four icons. Press the Power button on the Wii (not the remote) to go to the last icon, then press Reset button to select. Press Reset again to choose the first option and start the NAND backup process. Copy the BootMii folder, nand.bin and keys.bin from the SD card, and keep them somewhere safe.
  3. Next, we run the IOS236 installer from the HBC. If this doesn't work, run the Simple IOS Patcher instead.
  4. Install Priiloader to enable some system menu hacks.
  5. Install Multi-Mod Manager and install all the WADs that ModMii has downloaded.
  6. That's it. The Wii is now soft-modded.

Like everything else, there's a YouTube video on how to do this if you need further clarification.

All that's left to do is to copy your game backups (ISO or WBFS) to the wbfs folder of your USB stick/drive. This is best done using a WBFS manager like Wii Backup Manager. This tool can convert between different file formats. It can also split game backups that are greater that 4GB.

At this point, you're probably saying, "I've misplaced most of my game discs. Where can I find game backups?" Your best bet is to check with your favourite torrent sites. Also try wiiuiso.com. Between ISO and WBFS, choose the latter as they're always smaller in size, as they only contain the game partition, and not the full disc dump. You might even come across some games in WIA (Wii ISO Archive) format, which is even more compressed. For these, you'll need WIT (Wiimms ISO Tools) to decompress into WBFS. Command syntax is: wit copy game.wia game.wbfs

By the way, the Wii has two USB ports. Make sure your USB drive is connected to the "outer" USB port. From the main menu, run the USB loader and play away.

Friday, June 24, 2016

HP Deskjet 3520 Won't Print Black - Solved

The other day I noticed that my black printouts are getting fainter and fainter. So I switched to printing in colour, while I want for the replacement cartridge to arrive. I installed the new ink cartridge, and my first black printout turns out blank. Not faded or faint - the page is totally blank. I thought maybe it takes a while for the ink to go through the system, so I printed a few more sheets - still blank. Printed a few test pages with colour and grayscale. They all came out fine, except for the parts where there's supposed to be black ink.

A quick Google search tells me this is quite a common problem. Some suggestions:
 - Reseat the cartridge as it might not be installed properly.
 - Run multiple passes of "clean printhead" as it might be clogged.
 - Check the vent of the cartridge as it might be clogged. In my case, I noticed that the whole upper sticker/label on the cartridge was peeling off, so I taped it back on to provide a better seal/suction.

As part of my troubleshooting, I put back the old cartridge as it should be good for at least one or two pages. Still blank, so definitely nothing to do with the cartridge. At this point, I'm thinking the firmware/software must've decided NOT to allow black and white printing for some reason. Did a partial reset using this procedure from YouTube, then did a couple of "print status report", "print qualit test report". At one stage, I started getting black print again. Then the printer said ink is low and cartridge requires replacement. Put back the new cartridge I bought, and everything is good from then on.

Monday, June 6, 2016

MD5 Checksum

Lots of ways to generate md5 checksum for a file. Easier to do on Linux than Windows. Just run md5sum.
Normally, I would download and install software like:

If your system is locked down with no admin rights to install new software, try the built-in CertUtil utility in Windows.
Syntax: certUtil -hashfile pathToFileToCheck [HashAlgorithm], where HashAlgorith can be MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512

Sunday, April 10, 2016

Recipe 2016.04.10 - Scrambled Eggs

I hear you saying, surely everyone knows how to make scrambled eggs. Anybody can make scrambled eggs, but not everyone can make great scrambled eggs.

Ingredients:
  • 4 eggs
  • 1/4 cup milk
  • salt and pepper
  • 2 tsp. butter
  • shredded cheese
Steps:
  • Beat eggs, milk, salt and pepper until thoroughly mixed.
  • Heat butter in non-stick skillet over medium heat. Pour in egg mixture. Sprinkle some shredded cheese.
  • As egg mixture begins to set, gently pull the egg across the pan with a wooden spatula. Continue pulling, lifting, and folding eggs, until no visible liquid egg remains. Remove from heat. Serve immediately.

Pro-tips:
  • Do not allow the butter to burn, or this will discolour the egg.
  • Do not stir the egg mixture for the first 20 seconds. Lift and fold every 10 seconds afterwards.
  • Pull the cooked  outer edges IN towards the center. Uncooked eggs will flood the area you just pulled back.
  • Never leave a surface in contact too long with the skillet or it will become overcooked.
  • Don't overcook. Remove pan from heat when egg softly set and slightly runny. The retained heat in the pan will continue to cook and firm up.

Saturday, April 2, 2016

Cyanogenmod on Samsung Galaxy Tab GT-P1000

Picked up a stock Samsung Galaxy Tab (GT-P1000) still running Froyo. That's a quite a novelty nowadays. Quick check on the Cyanogen website shows that KitKat nightlies are being built for this tablet. There's even a Marshmallow-based OmniROM for it on xda developers, but I don't it's stable enough to run on the tablet. So KitKat it is.

CyanogenMod installation instructions here:
https://wiki.cyanogenmod.org/w/Install_CM_for_p1

First thing to do is to get the Froyo device updated to Gingergead. For the complete instructions, check out this YouTube video:
https://www.youtube.com/watch?v=iI79j97R4qw
Basically, you install the Samsung USB drivers, so your tablet will be recognized by your PC. Download Odin and the Gingerbread image, and flash it to the tablet. In detail:
  1. Download the Samsung USB drivers from here: http://www.androidrootguide.com/download-samsung-usb-driver-samsung-device-drivers, and install on PC.
  2. Download the Odin flasher and stock Gingerbread 2.3.3 ROM from here: https://docs.google.com/open?id=0BzJut_BZm8NTUjc1OVl6VzRsa0U, and unpack on PC. (Archive password is vio)
  3. Put the tablet in download mode by holding the VolDown button when powering up the tablet.
  4. Run Odin. Use gt-p1000_mr.pit as the PIT file. Use GB_Stock_Safe_v5.tar as the PDA file. In my case, I used the modem.bin file under JPZ modem as the Phone file.
  5. Once everything is set up, connect the tablet to the PC. If the USB drivers are installed properly, Odin should detect the tablet automatically, with the correct COM port.
  6. Click on Start.
  7. Once flash process is complete, Odin will indicate PASS, and device will reboot automatically. Disconnect tablet from the PC. Power down the tablet.
  8. This time, go into recovery mode by holding the VolUp button while powering up the tablet.
  9. Using the volume buttons, go to the "wipe data/factory reset" option and press the Home button to select.
  10. Then, select "wipe cache partition" option.
  11. Then, select "reboot system now".
First boot takes a relatively long time. Once done, you now have a stock Gingerbread Galaxy Tab.

For the second part, we'll be installing ClockworkMod Recovery on the tablet. Full instructions here: http://theunlockr.com/2012/05/07/how-to-root-and-flash-the-clockworkmod-recovery-on-the-galaxy-tab-p1000-running-gingerbread/.

Pretty straightforward after we've gone through the first part though. Download the ClockworkMod Recovery tar file from here: http://www.mediafire.com/?q8s0wnj1s6109gc, then flash it to the tablet using Odin, while the tablet is in download mode. Make sure the Re-Partition tickbox is unchecked. Use the downloaded CF-Root-TAB7_XX_OXA_JQ1-v3.3-CWM3RFS.tar file as PDA.

Third part is to install CM11.
  1. Download the latest p1 nightly build from here: https://download.cyanogenmod.org/?type=nightly&device=p1
  2. Download the OpenGapps Android 4.4 pico package from here: http://opengapps.org/?download=true&arch=arm&api=4.4&variant=pico (Don't bother getting the bigger packages like micro or even nano because they won't fit on the P1000's system partition.)
  3. Set up the tablet to use the USB connection for mass storage, instead of Samsung Kies.
  4. Transfer the nightly build and the gapps package to the tablet.
  5. Boot into recovery mode using the VolUp + Power buttons.
  6. Select the option to "wipe data/factory reset".
  7. Select "install zip from sdcard".
  8. Select "choose zip from sdcard".
  9. Select the CM11 file you transferred and confirm to flash.
  10. Repeat above steps starting from step 7 to flash the gapps package.
  11. Select option to reboot system.
In my case, I ran into a bit of issue. After step 11, the system keeps going back to the recovery menu. After some headscratching, I realized that Step 9 was happening too fast. What's happening was, the first flash actually installs a newer version of the CWM recovery, but didn't actually flash CM11. So, when I did the second flash for gapps, CM11 wasn't even there. What I did then is, once presented with the newer CWM recovery after step 9, I had to flash the CM11 file again, before proceeding to step 10.

Once done, you now have CM11 KitKat running on your Samsung Galaxy Tab.

Saturday, March 19, 2016

Booting to Sony Vaio's BIOS

So the wife's Sony Vaio VPCSD has been running Windows 8.1 for a few years now and it's getting a bit long in the tooth. About time to upgrade to the latest and greatest Windows 10. I already have the installer on a USB stick. All I have to do now is to change the boot order to USB.

For the life of me, I can't remember how to get into the BIOS. Some quick Googling tells me to press the Assist button instead of the power button when booting up. Didn't help - went straight to Windows. What I noticed is that after restart, Windows 8.1 boots up very quickly. There's seemingly no time for you to press any of the function keys. I didn't even see any type of splash screen which would normally tell you which button to press to access the BIOS or the startup boot menu.

The Internet forums say to try holding F2 during bootup, or F8, or F11. I must've restarted the laptop more than 30 times, and using all of the function keys to no avail. Boot from DVD drive definitely works, but the Windows 10 won't fit on the standard 4.7GB DVD disk, so no point.

After hours of experimentation, I finally nailed it. Restart the laptop, then quickly press Esc. Once the Insyde H2O logo pops up, press F2 to access the BIOS setup pages.

Thursday, February 18, 2016

Movie 2016.02.18 - The Perks of Being a Wallflower

Read the book, now watched the movie. As usual, I prefer the book over the movie, as it has more content. As the story is being narrated by an introvert through letters to an anonymous friend, I feel the book's the better medium. Nothing wrong with the movie version though. It's a faithful adaptation of the book, given it was written and directed by the author (Stephen Chbosky). A few portions were removed here and there, but that didn't alter the main story much. For readers of the book, like me, the feeling is that Chbosky merely translated the book to the big screen, and left it at that, which is a bit of a letdown. Not sure what I was expecting, but I was hoping for more.

Story is about an introverted loner with mental issues going through his freshman year. He made a few good senior friends who helped him come out of his shell. First high, first girlfriend, first theatre performance, first dance, first kiss from a girl, first kiss from a guy, first breakup. Ended the year with an epiphany of what's the likely cause of his mental problems, so hopefully it's all smooth sailing from then on.

Some choice quotes from the book/movie:
  • We accept the love we think we deserve.
  • You see things. You keep quiet about them. And you understand. You're a wallflower.
  • But because things change. And friends leave. And life doesn't stop for anybody.
  • You can't just sit there and put everybody's lives ahead of yours and think it counts as love.
  • And in that moment, I swear we were infinite.
  • So I guess we are who we are for a lot of reasons. And maybe we'll never know most of them.
  • Try to be a filter, not a sponge.
  • Nobody felt sad as long as we could postpone tomorrow with more nostalgia.
  • It's nice to have things to look forward to.
  • I don't know the significance of this, but I find it very interesting.
  • And I closed my eyes because I wanted to know nothing but her arms.
  • And I guess I realized at that moment that I really did love her. Because there was nothing to gain, and that didn't matter.

Thursday, February 11, 2016

Passwordless SSH Login

There comes a time when you're managing so many servers and you're typing in the passwords every time you log on, and the passwords keep on changing, and you think, wouldn't it be nice if you can log on to all your hosts securely without typing in passwords?

With SSH keys you can. Basically you use a key generator to generate a key pair - a public key and a private key. The public key is copied/installed on the remote host. The private key you keep on your local client. You then configure your SSH client to use public-key authentication, based on your private key, instead of passwords. As passwords are never sent across the network, this method is more secure (and convenient).

On Linux systems, you'd be generating the keypair using ssh-keygen. On Windows, I used PuTTYgen. By default, PuTTYgen will save the private key using its native format. There is an option to export the private key in OpenSSH and ssh.com formats though, so they can be used with other applications. I tried the OpenSSH private key generated by PuTTYgen, and it does work with another SSH client like SecureCRT. On SecureCRT, go to Options --> Global Options. Click on SSH2, then under "Public key", select "Use identity or certificate file", and enter the file location of your private key. To start using public-key authentication, go to session properties. Under SSH2, escalate PublicKey to be the first authentication method. (Interestingly, the PuTTY private key works with SecureCRT v7.x, but not with v6.x. Go figure.)

For PuTTY, load your saved session, then go to Connection --> SSH --> Auth. Configure "Private key file for authentication", then save your session. Obviously, you have to do this for all your saved sessions.

SecureCRT also has the capability to generate SSH keypairs (under Tools). The key generation wizard gives you the option of two private-key formats: VanDyke Private Key format or OpenSSH Key format. If you plan to use the OpenSSH private key generated by SecureCRT with PuTTY, you'll have to convert this first to the proprietary PPK format using PuTTYgen.

Friday, January 15, 2016

Lunch at Shiki

That's Shiki, the Japanese restaurant in Circular Quay; not Shakey's. With 31 years in the business, it must be good. For Japanese food, we normally go to our usual haunt - Manmaruya. However, since we received a voucher from the SIL, we decided to give Shiki a try.

Got there 15 minutes after opening. We were the first customers. Got a nice little table near the windows, which offered a great view of The Rocks and the food stalls. An hour later, the restaurant started to fill up, but still not full. I reckon the price of the dishes had something to do with that. The "lunch time special", which is a three-course meal costs $65. The deluxe lunch box, which comes with two mains, costs $38, so we went for the latter. The wife chose wagyu beef yakiniku (extra $7.50) and tempura prawn and vege. I had the ocean trout teriyaki and chicken kara-age. Deluxe lunch box also includes 2 kinds of sashimi (salmon and tuna), soft-shell crab, 3 pieces of spicy rolls, salad, fruits, and miso soup.

Specialty of the house is the pink salt BBQ. Basically, a slab of Himalayan pink salt is heated atop a burner, and that's what you use to grill your beef or seafood. $48 gets you 100 grams of premium wagyu beef slices, which you cook on your own. I must say this is the best-tasting beef I've had - soft, tender, juicy, a little salty, melts in your mouth.

In summary, accessible location, great views, excellent service, great food, albeit a bit expensive. I was so full, I decided to walk back to the office, instead of taking the bus.