作者: Hui-Hong YOU

  • 解釋 bsnes 超任模擬器,為何需要用到 3GHz CPU 才能跑的好文

    剛剛讀到 [Accuracy takes power: one man’s 3GHz quest to build a perfect SNES emulator],bsnes 作者 byuu 解釋 bsnes 為了追求精準模擬,因此需要用到 3GHz CPU 才能跑的精彩好文。推薦給對於超級任天堂有愛的朋友。

    基於「讓超任遊戲軟體原汁原味忠實呈現」的「數位典藏」執念,bsnes 的作者才會想要另外寫一支追求精準模擬的超任模擬器。雖然說超任的實機到現在還是很好找,但是再過個十年、二十年,可能就難說了;屬於消耗品的手把也是要考慮的。屆時,硬體可能已經難尋,但是透過像 bsnes 這樣的模擬器,軟體仍得留存,且完整重生。

  • 從一條北宜直鐵,看盡各方嘴臉

    北宜直鐵重新規劃 宜花叫好

    【聯合報╱記者熊迺群、羅建旺/連線報導】

    交通部規劃的三條北宜直線鐵路路線已經出爐,全案獲得重大進展,可望帶動地方產業發展,尤其這條鐵路一旦完工,更有助於對於解決國道五號塞車的問題。宜蘭及花蓮縣一片叫好聲,宜蘭房地產業者振奮:「大利多!」花蓮觀光業者則呼籲政府:「直線鐵路快點蓋吧!」

    北宜直鐵興建案在民國95年送交環評大會審議時,被評定為不應開發而胎死腹中,經過立委林建榮爭取另提新路線送審,獲交通部同意重新選擇替代路線,三條替代路線已經出爐,有機會讓北宜直線鐵路起死回生。

    三條路線的方案一,從台北南港到宜蘭頭城,長37.3公里,搭太魯閣號要33分鐘,建設成本506億元;方案二台北南港到宜蘭大溪,長49公里,39分鐘,396億元;方案三南港到大溪,但經七堵、瑞芳、雙溪,長59.9公里,47分鐘,340億元。

    全案還要經過環境影響評估,林建榮建請交通部採取第一案及第二案,兩案並陳,讓環評委員有兩條路線可以選擇,增加日後通過環評的機會。

    #
    # 也就是刻意忽略第三案,再挖洞給環委跳。
    #

    太平洋房屋礁溪加盟店副理張永德說,直線鐵路若通車,台北到宜蘭不到40分鐘,肯定會有更多人到宜蘭,人潮就是錢潮,不論是觀光客或想搬到宜蘭住的人增多,會帶動直鐵宜蘭端出口,也就是頭城鎮地區的產業發展與房地產活絡。

    #
    # 北宜高通車時,你們也是這麼說的。
    #

    宜蘭縣政府地政處長邵治綺說,交通便利,對宜蘭發展幫助很大,像頭城鎮烏石港區段徵收用地,縣府在下個月、明年都將展開標售作業,未來的發展潛力更好。

    #
    # 官府、民代、建商、房仲黃金連線!
    #

    興建北宜直鐵,有助解決國道五號塞車問題。「塞車,表示有使用需求,應加速開闢才對啊!」花蓮觀光休閒協會理事、洄瀾薯道負責人劉瑞祺表示,不單是花蓮人期盼的蘇花改要趕快蓋,通往東部幹線的北宜直線鐵路也要儘速興建,甚至高鐵都有需要,「塞車現象」印證了民眾有通行的需要。

    不過縣府認為,雪山隧道到民國104年就會飽和,籌建北宜直線鐵路耗時11年,緩不濟急,應該縮短行政程序與工期。

    #
    # 看到這裡,我為公共工程品質再度冒冷汗。
    #

    宜蘭李姓縣民建議,在直線鐵路通車前,應該改善好地方的交通無縫接駁系統,不要讓遊客將來搭了40分鐘的火車到宜蘭,卻要等上一小時的公車到旅遊景點,那失去直線鐵路的意義了。

    #
    # 升斗小民都知道的癥結,政客卻都不知道,或故意裝作不知道。
    #

    【2011/08/10 聯合報】

    # 估計再過不久,就會有人上門來留言說我「不愛宜蘭」了。

  • 重申一次:我反對北宜直鐵

    也就是說僅僅為了在假日減少 6 分鐘、多走 276 輛車,我們要多付 108.3 億,而且這工程要等至少 11 年才完成,是這樣嗎?

    喂,陳歐珀,台大環工博士,你倒是說說看啊!?

    北宜直鐵規劃 民進黨推南港→頭城

    【聯合報╱記者吳淑君/宜蘭報導】

    北宜直線鐵路今天要公布路線評議結果,民進黨議會黨團昨天搶先表態,要方案一,從台北南港到宜蘭頭城的路線,縣議員江聰淵說,他們得到側面消息,國民黨中央傾向方案二,他們呼籲國民黨不要忽視宜蘭人的權益。

    北宜直鐵在民國95年沒通過環評,胎死腹中,雪隧通車後每到假日就塞爆,加上蘇花改已經動工,106年通車後,雪隧雪上加霜,立委林建榮爭取上千萬元重新選線,避開有環評爭議的路線。

    立委林建榮上周就通知9日要在縣議會開記者會,和鐵改局局長許俊逸共同宣布北宜直鐵最新進度和替代路線評議結果,民進黨議會黨團、縣黨部主委黃適超和立委候選人陳歐珀昨天早上卻臨時通知要開記者會,搶先表態。

    陳歐珀說,北宜直線鐵路是宜蘭對外的任督二脈,蘇花改5年後完工,雪隧一定塞得更嚴重,最有效的是方案一,他進國會一定會推此方案。

    北宜直線鐵路第一方案規劃從台北南港經下坑口到宜蘭頭城,經過兩座16公里、15.5公里的隧道,頭城車站要高架,經費490.1億元,工期11年,行車只要33分鐘,預期假日可減少雪隧車流1343輛;方案二從台北南港到宜蘭大溪,工期11年,經費381.8億元,要39分鐘,減少雪隧車流1067輛;方案三現有鐵路截彎取直,340億元工期9年。

    【2011/08/09 聯合報】

  • Pindah,用 Mirah 來寫 Android 程式

    Pindah: Tools for building Android applications with Mirah

    用類 Ruby 語法的 Mirah 來寫 Android 程式。

    安裝筆記:

    1. 安裝 JRuby (1.6.3) (其實我早先還蠻抗拒使用非 MRI 的…)
    2. 將 $JRUBY_PATH/bin/ 加進 $PATH
    3. 將 $ANDROID_SDK_PATH/tools/ 加進 $PATH
    4. 安裝 pindah (jruby -S gem install pindah)
    5. 跑 jruby -S gem update 升級 JRuby 底下的 Rake (0.9.2)
    6. 安裝 Apache Ant
    7. pindah create org.example.hello hello_world HelloActivity
    8. 修改 $JRUBY_PATH/lib/ruby/gems/1.8/gems/pindah-0.1.2/templates/build.xml,將 <mirahc src=”${src}” destdir=”${classes}”> 修正為 <mirahc dir=”${src}” destdir=”${classes}”>,否則網上兩個範例 (Ferrante, Garrett) 都會編譯失敗。(但是預設的 Hello World 範例卻能正常 build?)
    9. cd hello_world
    10. jruby -S rake debug 測試能否 build 出 apk
    11. 打開 emulator,以 jruby -S rake install 安裝至 emulator
  • 一個改善 Drupal 管理後台效能的 MySQL 設定參數

    讀取模組列表時,系統龜速在跑,用 top 觀察 MySQL, Apache 並沒有狂吃 RAM,硬碟卻狂轉,等上至少十幾秒才會看到列表結果。調整過以下這個屬於 [mysqld] 的參數,情況大幅改善,主要作用是要 InnoDB engine 善用還很充裕的 RAM 而非硬碟:

    innodb_flush_log_at_trx_commit = 2

    調整過此參數值後,視機器狀況,讀取模組列表只需 1~4 秒。

  • 製作直讀光碟 ISO 映像檔多重開機 USB 救急工具碟

    以往要將這些 Live Linux OSes 裝進 USB 隨身碟裡,需花不少工夫,不過昨晚找到相關資料,可以使用 GRUB2 直接啟動 ISO image(s),相形之下簡單許多。

    準備一枚視自己想塞多少系統進去,而相對剩下多少空間的隨身碟。既有的 FAT 檔案系統就可以了,已有的資料不必清除,但是建議製作這工具碟以前先備份這枚隨身碟的資料,以避免任何腦殘手滑造成的意外導致檔案遺失。

    sudo grub-install --no-floppy --root-directory=/media/MBOOT /dev/sdb

    其中 /media/MBOOT 是把隨身碟插進電腦後,系統自動掛載的資料夾;/deb/sdb 則是該隨身碟的裝置代號,請自行依自身情況代換。

    sudo mkdir /media/MBOOT/iso

    在這個隨身碟開一個 iso 目錄(呃,資料夾),放想要拿來直讀的 ISO images。並非任何的 Live CD 都可以用本篇的方法啟動,我測試過至少 Fedora, GeeXboX, Debian GNU/Linux, Clonezilla Live 都不行,得用老方法裝在特別規劃出來的分割區、或將光碟內容解到隨身碟裡另外處理啟動事宜。不過,我想要跑的那幾個救急工具能用就好了。

    接著再寫一個 /media/MBOOT/boot/grub/grub.cfg 設定檔:

    set color_normal='light-blue/black'
    set color_highlight='light-cyan/blue'
    set drive_label=MBOOT
    
    menuentry "System Rescue CD" {
     loopback loop /iso/systemrescuecd-x86-2.8.1.iso
     linux (loop)/isolinux/rescuecd isoloop=/iso/systemrescuecd-x86-2.8.1.iso setkmap=us docache dostartx
     initrd (loop)/isolinux/initram.igz
    }
    
    menuentry "Parted Magic Disk Utilities 2012-07-13" {
     loopback loop /iso/pmagic_2012_07_13.iso
     linux (loop)/pmagic/bzImage iso_filename=/iso/pmagic_2012_07_13.iso edd=off load_ramdisk=1 prompt_ramdisk=0 rw loglevel=9 vga=normal livemedia noeject max_loop=256 vmalloc=288MiB
     initrd (loop)/pmagic/initrd.img
    }
    
    menuentry "Ubuntu 12.04 (i386)" {
     loopback loop /iso/ubuntu-12.04-desktop-i386.iso
     linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/iso/ubuntu-12.04-desktop-i386.iso noeject noprompt --
     initrd (loop)/casper/initrd.lz
    }
    
    menuentry "Ubuntu 12.04 (amd64)" {
     loopback loop /iso/ubuntu-12.04-desktop-amd64.iso
     linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/iso/ubuntu-12.04-desktop-amd64.iso noeject noprompt --
     initrd (loop)/casper/initrd.lz
    }
    
    menuentry "Arch Linux i686 (Archboot 2012.06)" {
     loopback loop /iso/archlinux-2012.06-1-archboot-dual.iso
     linux (loop)/boot/vmlinuz_i686 gpt loglevel=7 rootdelay=10
     initrd (loop)/boot/initramfs_i686.img
    }
    
    menuentry "Arch Linux x86_64 (Archboot 2012.06)" {
     loopback loop /iso/archlinux-2012.06-1-archboot-dual.iso
     linux (loop)/boot/vmlinuz_x86_64 gpt loglevel=7 rootdelay=10
     initrd (loop)/boot/initramfs_x86_64.img
    }
    
    menuentry "Arch Linux i686 (2012.07)" {
     set isofile="iso/archlinux-2012.07.15-netinstall-dual.iso"
     loopback loop /$isofile
     linux (loop)/arch/boot/i686/vmlinuz img_dev=/dev/disk/by-label/$drive_label img_loop=$isofile archisolabel=ARCH_201207
     initrd (loop)/arch/boot/i686/archiso.img
    }
    
    menuentry "Arch Linux x86_64 (2012.07)" {
     set isofile="iso/archlinux-2012.07.15-netinstall-dual.iso"
     loopback loop /$isofile
     linux (loop)/arch/boot/x86_64/vmlinuz img_dev=/dev/disk/by-label/$drive_label img_loop=$isofile archisolabel=ARCH_201207
     initrd (loop)/arch/boot/x86_64/archiso.img
    }
    
    menuentry "FreeBSD 9.0 i386" {
     set isofile=/iso/FreeBSD-9.0-RELEASE-i386-disc1.iso
     loopback loop $isofile
     kfreebsd (loop)/boot/kernel/kernel iso-scan/filename=$isofile noeject noprompt splash --
     kfreebsd_module (loop)/boot/mfsroot.gz type=mfs_root
    }
    
    menuentry "FreeBSD 9.0 x86_64" {
     set isofile=/iso/FreeBSD-9.0-RELEASE-amd64-disc1.iso
     loopback loop $isofile
     kfreebsd (loop)/boot/kernel/kernel iso-scan/filename=$isofile noeject noprompt splash --
     kfreebsd_module (loop)/boot/mfsroot.gz type=mfs_root
    }
    
    menuentry "Lenovo PC-DOCTOR" {
     linux16 /boot/memdisk
     initrd16 /iso/pc-doctor.img
    }
    
    menuentry "ThinkPad Update" {
     linux16 /boot/memdisk iso
     initrd16 /iso/7uuj48uc.iso
    }

    最後把設定檔裡提到的那些 ISO images 檔案都放進 iso 目錄裡,就完工了。

    如設定檔所示,我放了 System Rescue CD 這個可以拿來清除 Windows 管理者密碼、救 NTFS 檔案系統的工具,這還只是它諸多功能當中的兩種,推薦每位苦命 MIS 都能準備這工作利器。

    Parted Magic 則是拿來做磁碟分割管理、備份的好用工具,可以把它當成開源版本的 Partition Magic。

    Ubuntu,這個還需要介紹嗎?雖然我很久以前就因為對它累積許多不滿而棄用,但是哪天出門在外臨時要借用他人電腦,在這枚隨身碟裡擺這一套 desktop 用途的 Live 系統,應該也是蠻好用的。

    Arch Linux 是我目前使用的 Linux OS。

    因為這枚工具碟不需要將分割區重劃為非 FAT16/FAT32 的檔案系統,所以還可以把 PortableApps 放進來,在 Windows 下也能使用不少可攜式、綠色軟體。

    註:如果需要用到 Lenovo 的 PC-DOCTOR 及 ThinkPad BIOS Upadate CD,請另外參考這篇安裝 SYSLINUX/MEMDISK。