2012年8月28日 星期二

Lenovo IdeaPad S10的充電問題

繼上次自己動手換了S10的風扇後,今天又發現S10的電池不充電了,顯示的訊息為『已接上電源 未充電 71%』。

拔掉電源插頭重接,無效,想說不會是電池跟我說掰掰了吧。這台電腦自從借給女王用了半年後,回來感覺電池的蓄電力明顯降低,天曉得發生了什麼事。上一台IBM ThinkPad R40用到最後也是1%的電都充不進去了,只能接著變壓器當桌機用。

2012年8月24日 星期五

Mac 妳這個嬌貴的小姐

前兩天公司的iMac的藍芽滑鼠沒電了,可是當天剛好有一個專案急著要Build。很剛好的前幾天iMac的藍芽鍵盤也沒電了,所以我就在家樂福買了特價的EVEREADY永備(俗稱黑貓)的電池回來換。

藍芽鍵盤換了電池之後工作一切正常,所以我也不以為意的把剩下的電池換到滑鼠上。換上電池後iMac就抓到滑鼠了,可是用沒多久就斷線。我想說會不會是買到不良品的電池,可是同樣的電池在鍵盤上工作都很正常。緊急把備用的有線滑鼠找出來,重新連線後就正常了,不過一下子就又斷線了。

在Ubuntu12.04下用gcc編譯Objective-C

最近iOS的開發是一個熱門的話題,不過我本身是Google基本教義派的(疑),所以一直沒有去了解它。不過由於工作的需求,不得以只好開始碰一點iOS開發相關的東西。

Objective-C在目前的主要的應用是在MacOS與iOS Device的開發上面,不過個人對這個語言的感覺並不是那麼喜歡,感覺C++實現的方式優美多了。

要開發Objective-C,有一台Mac是最棒的選擇,在Xcode的IDE下面寫Code方便多了。無奈我們這些窮苦人家,只好想辦法在PC上可以弄出一個可以練習Objective-C的環境。

2012年8月10日 星期五

在Python SMTP加入寄件者名稱的做法

由於必需在寄送給用戶的EDM中顯示出寄件者名稱,而不是單純只顯示寄件者的Email Address,故我們需要修改一下MIMEMultipart的['From']欄位中的資料以顯示寄件者名稱。

2012年8月8日 星期三

Python的virtual function

在Python中,並沒有提供原生的virtual function的功能,但是我們可以透過其他的方式模擬這樣的行為。

2012年8月7日 星期二

0gc.me 縮網址服務

會有0gc.me這個服務也是在一種偶然的狀況下產生的。

也忘記是在那一天,偶然在網路上尋找有趣的Domain,剛好看到了一些做短網址服務的廠商,雖然每一間廠商都各有特色,而且這個市場我想早就已經飽和了。後來想想,反正做這個服務也不難,且市場上已有0rz.tw,為什麼不能有個OGC的Domain來做一些相關的服務呢?但是ogc的網址早就被註冊走了,退而求其次就來買個0gc的網址好了,剛好.me的網址也不貴,又有一語雙關的含意。

大話設計模式(1)—簡單工廠模式


Operation運算類別

# -*- coding: utf-8 -*-
class Operation(object):
 
    def __init__(self):
        self._numberA = 0
        self._numberB = 0
 
    @property
    def numberA(self):
        return self._numberA
 
    @numberA.setter
    def numberA(self, value):
        self._numberA = value

    @property
    def numberB(self):
        return self._numberB
     
    @numberB.setter
    def numberB(self, value):
        self._numberB = value
     
    def get_result(self):
        #result = 0
        #return result
        raise NotImplementedError
 

加減乘除類別

# -*- coding: utf-8 -*-
from operation import Operation

class DivZeroException: pass

class OperationAdd(Operation):
 
    def get_result(self):
        result = 0
        result = self._numberA + self._numberB
        return result
 
class OperationSub(Operation):
 
    def get_result(self):
        result = 0
        result = self._numberA - self._numberB
        return result
 
class OperationMul(Operation):
 
    def get_result(self):
        result = 0
        result = self._numberA * self._numberB
        return result
 
class OperationDiv(Operation):
 
    def get_result(self):
        result = 0
        if self._numberB == 0:
            raise DivZeroException
        result = self._numberA * 1.0 / self._numberB
        return result

簡單運算工廠類別

# -*- coding: utf-8 -*-
from suboperation import OperationAdd, OperationSub, OperationMul, OperationDiv

class OperationFactory:
 
    @staticmethod
    def create_operate(operate):
        oper = None
        if operate:
            if operate == '+':
                oper = OperationAdd()
            elif operate == '-':
                oper = OperationSub()
            elif operate == '*':
                oper = OperationMul()
            elif operate == '/':
                oper = OperationDiv()
        return oper        

用戶端程式碼

# -*- coding: utf-8 -*-
from operation import Operation
from operationfactory import OperationFactory

oper = OperationFactory.create_operate('+')
oper.numberA = 1
oper.numberB = 2
result = oper.get_result()
print result

大話設計模式

大話設計模式是一本我買了很久的書,不過一直都沒有時間好好的閱讀它。剛好趁這個重新開始寫Blog的機會,好好的把書讀過一遍,並且在這邊寫一點讀書的心得與大家分享。

又是新的部落格

原本的Blogger因為插了太多非官方的插件,造成現在連線進去都會有莫名的錯誤發生。

而且Blogger這幾年的改版好大,很多原本沒有的功能現在官方都新增進去了,看起來還算是勘用。原本Blogger的功能感覺有點薄弱,像一般在台灣的BSP中有的功能,用戶都要自己找到適合的插件去增強它。