發表文章

跳槽 Linux Mint Mate

最近家中那部老爺桌機,Intel Core 2 Dual 6300、PC 800 16G Ram,從 Windows 轉 Ubuntu Desktop 14.04 約2年但是在一次 apt 軟體更新之後,一直出現 ACPI 的錯誤訊息,卡住,開不了機。 一下子是 probe ramfs fail(一直到最後還是不知道是什麼鬼硬體和軟體對不上),一下子又有 EEPROM corrupt(Intel E100 Pro網卡的趨動有障礙),Google 、上論壇,搞了半天電腦就是開不起來,試了老半天; 又用開機片修復,再 apt 裝新的軟體,但是怎麼就是開不進系統,雖然以老爺機的年紀來說,Ubuntu 己經成功地讓它延續可用狀態多年,算得上是仁至義盡。 用 Desktop 說穿了,不外乎希望文書軟體能動,能上網,其他交給系統,不想處理技術問題。 But…… 人會變老,希望電腦可以活著更好。 Linux Mint 在 DistroWatch  站上佔據第1名其實己經好長一段時間了,之前有用 VM 試跑過,順暢、直覺,因為 Server 還是用 Ubuntu 所以一直沒有轉換,這次居然更新軟件就造成無法開機,決定省下寶貴的時間,放棄除錯,直接轉換跑道,據說 Mate 版本比較適合舊機器,雖然 Linux Mint 裝機的時侯,還是遇到了同樣的問題,但是 Linux Mint 跑了幾分鐘後就把它跳過了,這就是 使用者 我最想要的,只要軟體能讓硬體正常運作,維持核心的功能,和生活品質,不完美就是完美。 把 中文輸入法 裝上、LibreOffice OK、Firefox OK,我 OK! XD XD XD 收工!

Ubuntu Server LTS 16.04 busybox-initramfs 套件安裝至系統時發生錯誤

雖然在安裝 Linux Server 的時侯很少直接用中文安裝,這次手指不聽話,一開始選用了中文界面安裝的方式,然後就卡住了。 工作環境︰ 安裝 Ubuntu Server LTS 16.04 症狀︰ busybox-initramfs error 套件安裝至系統時發生錯誤 解決方式︰ 重開機,最最最最開始的頁面(第1頁)語言選 English,之後(第2頁)會問 Select Language 語系設定再選 中文。 收工!

修復己刪除的磁區

因為主機有2顆硬碟,為了要裝新的 Linux 作業系統,在分割磁區的時侯,手一滑,刪除了備份碟的磁區,因為有點擔心,所以沒有繼續安裝新的作業系統,也沒有做寫入的動作,用 LiveCD 把機器開起來,然後…… 然後硬碟就快署了 @@" 工作環境︰     原作業系統 Ubuntu Desktop 14.04     2 個硬碟,一個系統(sda)、一個資料(sdb)     資料碟分割時刪除磁區,但未做寫入動作 症狀︰     雖然分割硬碟最後一步寫入的動作沒有作,但是硬碟掛載(mount)的時侯還是得到 Superblock Corrupted 的訊息,開檔案總管看,原始資料有佔了硬碟空間(看得到使用量),但是看不到檔案,初步判定資料還在,索引沒了,想起以前上課的時侯,老師有說,Superblock 有問題,可以從硬碟其它地方救回來,只是忘了用什麼救了,Google 了一下,用 fsck 或是 e2fsck 應該有救,選了 fsck。 在開始之前, 一定要卸載(umount)要修復的磁碟 一定要卸載(umount)要修復的磁碟 一定要卸載(umount)要修復的磁碟 實作(howto)︰ dumpe2fs /dev/sdb1 | grep superblock 會得到像這樣的訊息   Primary superblock at 0, Group descriptors at 1-6   Backup superblock at 32768, Group descriptors at 32769-32774   Backup superblock at 98304, Group descriptors at 98305-98310   Backup superblock at 163840, Group descriptors at 163841-163846 fsck -b 32768 /dev/sdb1 會得到像這樣的訊息 fsck 1.40.2 e2fsck 1.40.2 /dev/sdb1 was not cleanly unmounted, check forced. ...

Python 安裝模組以安裝 geocoder 為例

犯蠢的故事是這樣開始的,在 FB 上看到 geocoder 可以引用 tgos 模組,這樣一來,如果要查門牌號碼對應的地理資訊,就可以透過這個工具來查找, 只要3行 ,看起來超簡單。 不簡單的就只有那個 But 工作環境︰ Windows 7 pro Python zip(python-3.5.1-embed-amd64.zip)︰ 非 installer 安裝,解到 D:\python     pip python 的套件管理工具 官網說, pip install geocoder 然後呢! 然後它就出現錯誤訊息,長得像下面這樣。 然後只好發信給原作者,非常快,沒想到才幾分鐘作者就回信了,給了我一些建議。 然後我就開始試著看 virtualenv 之類的,有些套件可以裝,但是還是卡在同一個地方,好像是個跨過不去的關卡。     writing top-level names to pip-egg-info\click.egg-info\ top_level.txt     writing manifest file 'pip-egg-info\click.egg-info\ SOURCES.txt'     warning: manifest_maker: standard file '-c' not found     error: [Errno 2] No such file or directory: 'd:\\python\\python35.zip\\ lib2t o3\\Grammar.txt' Command "python setup.py egg_info" failed with error code 1 in C:\Users\someone\AppData\Local\Temp\pip-build-aw8h0tri\click\ 開檔案總管查看,D:\python資料夾下有個 python35.zip 和一個 python 的資料夾,裏面有 lib2to3 ,也有 Grammer.txt ,後來不管三七二十一,python 資料夾直接給它一個分身,就叫 pytho...

連到 windows server 2012R2 之中的 Ubuntu 網頁

因為只拿到1個IP,如果 virtualbox 的網路設為 bridge mode 的話,應該沒辦法(Host 就用掉拿到的IP,VM就沒得用了),只能用 Port Forwarding 來設定,為了要連到 virtualbox 裏安裝好的 Ubuntu server,吃了些苦頭,當然要做個筆記以免忘記! 工作環境: Windows server 2012R2     virtualbox 5.0.16 r505871         虛擬機器(VM):Ubuntu server LTS 14         網路:NAT + Port Forwarding 記得 virtualbox 全部的設定設好(網路模式、Port Forwarding),測試都可以用了之後再設 Windows server 的伺服器管理(排程、防火牆)。 設定VM。 把 virtualbox 中的VM:Ubuntu server LTS 14 〉 傳送到 〉 桌面當捷徑 〉 內容 〉 複製目標,在設程排時用。 設定VM的Port Forwarding: 以開放網頁伺服器 80 Port 為例,在 VM 的網路的進階選項裏,把主機 Port 設為80,客端的 Port 也設成80。 Server 2012 伺服器管理: 設定排程:在機器 啟動時 就把 執行 virtualbox 程式 把特定的VM帶起來(用剛才取得的路徑)。 設定防火牆:設一個輸入的規則,只要是連到 TCP 80 Port 的就接受。 重開 server 2012 如果還能連得上就成功了! 收工! 如果慣用 VMware Player 的話,記得把 vmnetcfg.exe 抓出來才有UI可以用:     VMware-player-#######.exe /e .\extract     執行檔在 network.cab裏面 因為 VMware Player 授權只到個人使用,所以又換回授權較廣的 virtualbox。

PHP 抓取網頁內容筆記

最近實作抓取網頁內容,也遇到一些問題,為免那和我不好的記憶力和我分手,把重點記一下。 環境: Windows Php 5     Curl     Regular expression     Pho simple html dom 如同以往,抓取網頁之後就是要擷取特定模板(pattern) 內容,這個過程,一直以來並沒有不同。 有些情況發生了,雖然大多數的網頁用 GET 就能下載了( curl, file_get_html),有些網頁,要用 POST 方式,需要把 POST 參數代入(例如 curl: CURLOPT_POSTFIELDS),才能順利取得網頁的內容,否則一片空白,畢竟抓到這些資料來源,才能有下一步。 抓下來的資料,(十年)之前使用土法煉鋼的方式,用遁序漸進的方式,不斷的使用關鍵字炸開(explode)的方式,來取得目標的內容,雖然這等方式在現在也能達成目的,總是希望有點長進,果然,讀別人的程式碼是很有用地 XD。 如果時間上可行,測出正規表示法的比對模板,是很好的解決方式,不需要其他工具或是程式的導入,可惜,這些符號,和我真的很不熟(超生硬),有些真的花非常多的時間還測不出來,超需要慧根(是什麼,能吃嗎?),只能山不轉路轉了。 jQuery 對於擷取 DOM 有其長處,因為想直接在 PHP 上面實作,所以先把 jQuery 擱著,所幸找到了 simple html dom 的工具($html -> find(' TAG_NAME ', 0) -> plaintext;),讓這個工作變得有效率了,超級開心。 收工!

為儀表板加上標題

上次在 網頁儀表板輪播筆記 提到集成多個網頁來製作儀表板,實測時發現有些訊息來源是沒有標題的,也就是說,在還沒有熟悉儀表板內容的情況下,所顯示的內容,可能會漏掉一些重大訊息,例如,監看多種儀器的溫度,每個輸出的畫面都是溫度計,但卻不知道各個畫面所代表的儀器是哪一個,如果發生問題了,才來查找,會浪費很多寶貴的應變時間,也失去監看的意義。 可以使用巢狀的 Frameset 架構來處理。 <frameset name="cluster">     <frame src="1.html">     <FRAMESET frameborder="0">         <FRAME SRC="2_title.html">         <FRAME SRC="2.html">     </FRAMESET> </frameset> 在2_title.html放上標題的內容,例如︰XX儀器。 收工!