星球

RSS | RDF | ATOM

偽Thinkpad x201保養

2017/7/30 10:06:00 | 魔法設計的藝術
週五晚上突發筆電高熱退不下來,導致youtube放到一半不正常,畫面大停格只剩聲音,而且聲音還會有奇怪的電波distortion,今晚有空就來保養保養。

拆機之前好好觀察了了溫度跟風扇地指數,什麼都沒做地CPU基本溫度在65度左右已經偏高,當CPU溫度地快速升高時,風扇速度無法第一時間緊跟上去,動不動就70(持續性)甚至80度(偶發),然後畫面有點可怕,任何應用程式的選單都會莫名的卡頓,看來問題很明顯,不正常的持續高熱讓機器運作不正常。

拿出拆機保養四寶,牙刷、黃油、Tossug、羅賴鈸,拆到最後把風扇拆開,還真的沒油了,於是捲一點衛生紙進去擦一下,白進黑出,然後軸承本身摸起來也確實乾了,於是就上黃油,距離上次上黃油是11個月前,那時是薄薄一層,這次就給它多一點點吧,然後等下次要上油的時候,就知道上油最適當的量。



此外進氣網、扇葉也用Tossug噴氣加牙刷清調積塵。

然後再

CMClass: 簡述 libsvm(Support Vector Machine library) 使用方法

2011/4/27 15:35:00 | hoamon's sandbox
libsvm乃台大林智仁老師開發的 Open source 工具,其目的為實作 Support Vector Machine 分類器,使用語言主要是 C++ ,目前也有 JAVA 版本,也提供其他語言的 wrapper ,像是 Perl, Python, Ruby, Matlab, Hashkell, Lisp 等。

詳細數學就不介紹了,怕大家睡著(但其實是因為還沒看懂),各位可以看一下下面那段這個影片,大略了解 SVM 分類器如何區別不同資料。

[!IFRAME FILTERED!]

本文章主要介紹的是用 Python 語言去操作 libsvm 函式庫。

先解壓縮 libsvm.tgz 檔,可以看到 python 及 windows 資料夾,如果要在 Linux 中使用的話,請在主目錄中作

$ make lib

這樣會得到 libsvm.so.2 檔,這是 libsvm 的主函式庫,而在 windows 中使用的話,它則是先幫你編譯好這個檔了,可在 windows/ 找到這個 libsvm.dll 檔。

在 Linux 中,請把 python/*py 放到 /usr/local/lib/python2.6/site-packages 中,而 libsvm.so.2 放到 /usr/local/lib/python2.6/ 。

在 windows 中,請把 python/*py 放到 C:\Python26\Lib\site-packages 中,而 libsvm.dll 請放到 C:\Python26\Lib\windows 資料夾中(因為 svmutil.py 寫死了它的相對路徑,所以務必依它的相對位置置放)。

請在 Python shell 中,鍵入下列指令,測試是否安裝成功。

>>> from svmutil import *
>>>

沒錯誤訊息,那就是安裝對了。

使用 svm ,主要就是兩個動作: 訓練及預測。

訓練:

svmutil.svm_train 函式的引數有「類別標籤」、「觀察值」、「參數」。

你的原始資料若是如下:

1. 3, 4, 5, 6 => 第二類
2. 3, 4, 5, 5 => 第一類
3. ....

前面的 #. 表第幾個觀察值,後面逗號分隔的數據為各維度的值,行末則是放置該觀察值為第幾類的說明。請把它轉成

>>> Y = [2, 1, ...]
>>> x = [(3, 4, 5, 6), (3, 4, 5, 5), ...]

類別標籤請獨立放置到一個 list 中,而觀察值維度則依序放置到另一個 list 中。接下來,就能使用 svm_train:

>>> from svmutil import *
>>> model = svm_train(Y, x, '-c 4')

所得到的 model 就是一個經過訓練的分類器。

預測

接下來,我們要拿訓練好的分類器去預測新的觀察值:

>>> p_label, p_acc, p_val = svm_predict([0]*len(new_x), new_x, model)

而 p_label 就是依 new_x 順序所對應的類別標籤 list 。

下圖是我隨機生成的 300 點,圓點為原始的觀察值,而以線相連的連續點則是預測點。



詳細程式碼請參照如下:

 1 #! /usr/bin/python
2 # -*- coding: utf8 -*-
3
4 __author__="hoamon"
5 __date__ =u"$2011/4/12 下午 05:52:31$"
6
7 from math import pi, sin, cos
8 from random import random
9 from matplotlib import pyplot as plt
10 from svmutil import *
11
12 def circleData(centre, radius, down_limit_percent=0, lens=100, range=[0, 100]):
13 points = []
14 while len(points) < lens:
15 _angle = 2 * pi * random()
16 radius_percent = random()
17 if radius_percent < down_limit_percent: continue
18 _radius = radius * radius_percent
19 x = centre[0] + cos(_angle) * _radius
20 y = centre[1] + sin(_angle) * _radius
21 if range[0] <= x <= range[1] and range[0] <= y <= range[1]:
22 points.append((x, y))
23 return points
24
25
26 def test():
27 u""" 製作三群的隨機資料,每群皆 100 個點,點位置的 x, y 限制在 0 ~ 100 之間
28
29 最後利用 matplotlib 繪製出來的圖,"單點"表原始資料,而連續點畫線的部份,
30 該點位的類別則是利用 svm_predict 計算出來的。
31
32 Y = [1, 1, 1, ..., 2, 2, 2, ..., 3, 3, 3, ...]
33 x = [(x1, y1), (x2, y2), ...]
34 """
35 Y = [1] * 100 + [2] * 100 + [3] * 100
36 x1, x2, x3 = (circleData((35, 40), 12),
37 circleData((35, 40), 48, down_limit_percent=0.25),
38 circleData((80, 80), 20)
39 )
40 x = x1 + x2 + x3
41
42 m = svm_train(Y, x, '-c 4')
43
44 #INFO 在 100x100 的畫布上,打出 40000 個點,拿這 4 萬個點去給 m 作預測,算出這 4 萬個點的類別
45 points = [(i*0.5, j*0.5) for j in xrange(0, 200) for i in xrange(0, 200)]
46 p_label, p_acc, p_val = svm_predict([0]*40000, points, m)
47
48 line_1, line_2, line_3, pre_label = [], [], [], p_label[0]
49 for i in xrange(0, 200):
50 for j in xrange(0, 200):
51 index = i * 200 + j
52 now_label = p_label[index]
53 if now_label == 1 :
54 line_1.append(points[index])
55 elif now_label == 2 :
56 line_2.append(points[index])
57 elif now_label == 3 :
58 line_3.append(points[index])
59
60 fig = plt.figure()
61 ax = fig.add_subplot(111)
62 ax.plot([p[0] for p in x1], [p[1] for p in x1], 'ro')
63 ax.plot([p[0] for p in x2], [p[1] for p in x2], 'go')
64 ax.plot([p[0] for p in x3], [p[1] for p in x3], 'bo')
65 ax.plot([p[0] for p in line_1], [p[1] for p in line_1], 'r-', alpha=0.5)
66 ax.plot([p[0] for p in line_3], [p[1] for p in line_3], 'b-', alpha=0.5)
67 ax.set_title('Points of three classes')
68 ax.set_xlabel('x')
69 ax.set_ylabel('y')
70 ax.set_xlim(0, 100)
71 ax.set_ylim(0, 100)
72 plt.show()
73 return m, p_label, p_acc, p_val
74
75
76 if __name__ == "__main__":
77 test()

Ubuntu 18.04 不算bug 的bug— gtk2的程式選單變成白底白字

2018/10/13 5:32:00 | 魔法設計的藝術
今天 Debug一個大問題很久才找到解決方法:

 

就是今天突然發現,怎麼gimp、inkscape等使用gtk2的程式的選單變成白底灰字的低對比同色調?這樣無法操作了,太奇怪了。



經過好幾個小時的trace,最後發現是使用者目錄裡面憑空出現的 .gtkrc-2.0 這個檔案作祟。我怎比對出來的呢?我新增一個使用者,然後用這個使用者開啟Gimp,發現選單是正常的,然後再回到自己的家目錄,把隱藏檔(都是設定檔)一個一個搬家比對,最後發現是這個檔案是新增的使用者家目錄沒有,拿掉它使用gtk2的程式選單顯示就會恢復正常。不知執行過什麼程式導致我的家目錄會產生這個 .gtk2rc檔「讓gtk2程式有最差狀況執行上的保險」,反而讓狀況更糟糕。

事後我本來以為是afterstep 桌面環境,但是它產生的是 .gtkrc-2.0_afterstep .gtkrc-_afterstep ,

【筆記】Ubuntu清除畫面指令(cls)

2017/12/3 9:36:35 | 老森常譚
clear #等同windows的cls

突破大檔燒錄限制 with CDBurnerXP

2012/3/9 20:18:00 | 凍仁的 Ubuntu 筆記
CDBurnerXP 是個好用的免費軟體,同時也是凍仁在 Windows 上首選的燒錄軟體,可充份補足 Alcohol 52% 缺少燒錄的部份,凍仁的評語是介面簡單、使用容易、功能齊全,可今日在燒某個超過 2G 的大檔時卻跳出「Can`t burn files larger than 4GB」的錯誤訊息,爬了一下文,改個檔案格式就可以了。

  單檔 2G 限制   相容性
  ISO  
  UDF     不支援 DOS 及 Windows 98  
光碟檔案格式比較。


1. CDBurnerXP 修改檔案格式

1.1. 開啟 CDBurnerXP 後於主選單點選 Data disc。

1.2. 於 Disc 底下找到 File system

1.3. 於 File system 一欄選擇含 UDF 的項目。

1.4. 若無 UDF 會顯示無法燒錄超過 4G 的檔案。

1.5. 若無 Joliet 支援其命名與路徑的長度會大大的受限制。

如果您是本 Blog 的忠實觀眾,就別再用 crack 過的 Nero,相信 CDBurnerXP 會是個很棒的替代方案,而且它也支援正體中文唷!

延伸閱讀:
CDBurnerXP: 詳細功能列表
光碟機無法在 Windows XP 中讀取 UDF 格式光碟
光碟片的 Joliet 規格

相關連結:
CDBurnerXP – 簡單、好用的免費燒錄軟體!
超過2GB檔案用UDF格式燒錄之DVD讀不到 - PCZONE 討論區
用Nero燒錄DVD時超過2G出現錯誤的解決方法 - 史萊姆論壇

還願在 Steam Linux版上面玩,電視沒有畫面的解法

2019/9/27 9:03:00 | 魔法設計的藝術
前言,這個方法應該也適用於其他會因為遊戲內需要播放影片,不能就會卡關的遊戲。



《還願》這個遊戲在 GNU/Linux 上,能在Linux版Steam上,透過Steam Play機制(用Valve 修改的特鼻別Wine——Proton 執行)執行,然而缺了一角,那就是電視一直是黑畫面,播放不出來,這個問題出在需要MS Media Foundation(縮寫 MF)的函式庫,這個函式庫有許多專利影音codec,是不能直接放到Wine或者Proton裡面的。

解決的方法就是玩家自己解決這個問題,以下列出解法:

首先Steam有proton可以執行Windows 遊戲了,不過還是請裝一個wine
我們要把mf函式庫裝到《還願》這個遊戲特別的proton的目錄裡去,Steam Play的機制是給每一個Windows遊戲配置專屬的 ".proton"目錄(類似 .wine)

其實就這麼

Ubuntu登入時發生:「您的登入鑰匙圈並未在登入時自動解鎖」何解?

2010/9/3 23:50:00 | 魔法設計的藝術
在這一篇有解法:兩步驟killall -9 gnome-keyring-daemonrm -fr ~/.gnome2/keyrings關掉gnome-keyring然後殺掉已存的keyrings,等於重設了keyring,但是也得自己手動把以前輸入過的keyring輸入回來,另外,你會發現無線網路以後變成每次登入都要重新輸入金鑰,解法是在面板上的無線網路icon按右鍵-選單選編輯連線,分頁選無線網路,然後點選你要改的基地台,進去以後要勾:「所有使用者皆可用」,問題就可以解決了。ps.不用sudo喔,這只是針對自己的個人帳戶使用

大人的科學Vol26迷你電吉他->烏克麗麗化

2010/5/23 10:16:00 | 魔法設計的藝術
最近訂了大人的科學26期,昨天寄到,就把裡面的迷你電吉他套件組了起來:說明書騙人只需要一小時,光是纏漆包線的時間就不只很久說,我組了將近四個小時,就看著說明書ㄧ步ㄧ步小心做下去。做好了聲音出來得很開心,不過雖說是電吉他,但是只有四條弦,深愛烏克麗麗的我,當然是把他改成烏克麗麗來彈囉。昨晚特地跑去樂器行買連接線,接到電腦,用Ubuntu Studio上的Creox即時效果器(我已經事先調好幾組,有芭樂歌的、重金屬的、迷幻空間的等等),今天找到一點空閒,才測試。弦距比真正的烏克麗麗還小,指彈難度更高XD,沒想到這電吉他還有收音機的效果,也算是一種效果器?然後影片裡面我隨便彈的,有蠻多歌我就不一一解說,剪一剪,測試一些技巧。參考點我用油漆筆試畫過,覺得很醜,所以我改貼貼紙,剛好我Mozilla的貼紙沒用完,所以就貼Firefox跟Thunderbird囉然後烏克麗麗跟DIY的電烏克麗麗-

筆記:Galaxy S3昇Android7.1.2r2(Resurrection Remix OS)

2017/5/10 9:31:00 | 魔法設計的藝術
我覺得我的舊s3就好像奮戰過後殘破不堪的青銅聖衣,滴上雅典娜女神的血後,瞬間就修復,變成神聖衣的感覺了。

一裝完,大為改觀,本來以為舊手機S3來日無多,沒想到刷完Resurrection Remix OS 5.8.3(nightly build是追到最新的Android 7.1.2 beta)以後,從Android5升到7,操作變得很smooth、不像以前動不動過熱、待機變得非常省電(doze機制,進入待機以後,所有連網程式都被凍結深度待機),我測試就算不使用綠色守護,耗電也沒差多少,就算一直開wifi,待機5小時也不過掉4%,(wifi關掉的話,6小時待機只會掉3%);記憶體管理也精進好多,再也不會卡頓、不再發生關了APP以後回到系統launcher,系統launcher動不動老是重讀的狀況,而且開機也變得很快,跟當初S3的官方Android 4.4有得拼。S3雖然只有

找回消失的 gcin 通知區圖示 on Ubuntu 11.04

2011/4/29 18:42:00 | 凍仁的 Ubuntu 筆記
凍仁已經慢慢適應 Ubuntu 11.04 的新一代介面 Unity,凡事不會十全十美的,如果您像凍仁一樣是個 gcin 輸入法的愛好者,一定會發現右上角的通知區少了很多圖示,接下來您只要打開終端機敲幾行字它就會復活囉!

[修改前] 預設的 natty 看不見 gcin 的蹤跡。

[修改後] Hello,好久不見的 gcin 狀態圖示。

查詢當前的通知區顯示白名單。
jonny@natty:~$ gsettings get com.canonical.Unity.Panel systray-whitelis
['JavaEmbeddedFrame', 'Mumble', 'Wine', 'hp-systray']
# 此為 natty 的初始值。

手動補上 gcin 以及相關消失的圖示。
jonny@natty:~$ gsettings set com.canonical.Unity.Panel systray-whitelist "['JavaEmbeddedFrame', 'Mumble', 'Wine', 'skype', 'gcin', 'shutter', 'dropbox', 'hp-systray']"

記得要重新登入後才會生效!凍仁可以很明顯的感覺的出,手動加入的通知圖示得點滑鼠右鍵來開啟選單;而不像預設的通知圖示得點滑鼠左鍵。

資料來源: How to re-enable notification area applets in Ubuntu 11.04