hoamon's sandbox

"sandbox" is a jargon of Version Control System.

唷喔! 你憑什麼能管理軟體工程師?

../../../_images/0412.jpg

工商廣告: 敝司持續徵求全端工程師,主要語言: Python(Django) / Javascript ,主要平台: Ubuntu Linux on AWS ,月薪是 2.5 ~ 8.5 萬之間,敬請瀏覽指教 敝司徵才網站

就像歷史一樣,看得短點的人,跟看得長點的人,所分析出的結論會不一樣。

不同時期認識我的人,對我也會有不同的看法。目前主要把人生花在軟體工作上,在這邊所接受到的回饋會比較多,等將來把時間多花在政治工作上,相信也會有不少人質疑我,年輕時不是個民進黨狂熱支持者,怎麼現在完全不一樣了!

回到標題的問題上,在大學時期以前就認識我的人,都會知道我讀的是土木工程學系,是一個誤把土木系當土地開發系的傻蛋,在百般懕惡力學下,大學時期的教科書讀的是二二六六。我無法求解靜不定結構、測量平差、滲透流量…,甚至在大學三修流力後,也還是到博士班時,才從碩班學弟口中聽到水錘現象。

因此當我開了軟體公司,聘請員工後,就常面臨老朋友們的一項質疑: 『唷喔! 你憑什麼能管理軟體工程師?』

這裡先簡單回答: 「我沒這能力。」但如果看倌有點時間的話,就請繼續看下去,了解一下 「一個沒能力管理軟體工程師的人,究竟是憑什麼?」

Read more...


一個小小的格式錯誤

一個小小的格式錯誤,我查了一整天。前句當然是誇飾法,畢竟我一整天還是得吃飯、上廁所、站起來走來走去,最重要的是不能忘了呼吸。

(ap.example.com-env) ubuntu@ip-172-16-32-60:/var/www-aps/ap.example.com-36-81a1/trunk$ ./manage.py runserver 0.0.0.0:8000 --nothread
Traceback (most recent call last):
  File "./manage.py", line 11, in <module>
    execute_from_command_line(sys.argv)
  File "/var/www/ap.example.com-env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
    utility.execute()
  File "/var/www/ap.example.com-env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 345, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/var/www/ap.example.com-env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 195, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "/var/www/ap.example.com-env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 39, in load_command_class
    module = import_module('%s.management.commands.%s' % (app_name, name))
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/var/www/ap.example.com-env/local/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 16, in <module>
    from django.db.migrations.executor import MigrationExecutor
  File "/var/www/ap.example.com-env/local/lib/python2.7/site-packages/django/db/migrations/executor.py", line 7, in <module>
    from .loader import MigrationLoader
  File "/var/www/ap.example.com-env/local/lib/python2.7/site-packages/django/db/migrations/loader.py", line 10, in <module>
    from django.db.migrations.recorder import MigrationRecorder
  File "/var/www/ap.example.com-env/local/lib/python2.7/site-packages/django/db/migrations/recorder.py", line 12, in <module>
    class MigrationRecorder(object):
  File "/var/www/ap.example.com-env/local/lib/python2.7/site-packages/django/db/migrations/recorder.py", line 26, in MigrationRecorder
    class Migration(models.Model):
  File "/var/www/ap.example.com-env/local/lib/python2.7/site-packages/django/db/migrations/recorder.py", line 27, in Migration
    app = models.CharField(max_length=255)
  File "/var/www/ap.example.com-env/local/lib/python2.7/site-packages/django/db/models/fields/__init__.py", line 1072, in __init__
    super(CharField, self).__init__(*args, **kwargs)
  File "/var/www/ap.example.com-env/local/lib/python2.7/site-packages/django/db/models/fields/__init__.py", line 166, in __init__
    self.db_tablespace = db_tablespace or settings.DEFAULT_INDEX_TABLESPACE
  File "/var/www/ap.example.com-env/local/lib/python2.7/site-packages/django/conf/__init__.py", line 55, in __getattr__
    self._setup(name)
  File "/var/www/ap.example.com-env/local/lib/python2.7/site-packages/django/conf/__init__.py", line 43, in _setup
    self._wrapped = Settings(settings_module)
  File "/var/www/ap.example.com-env/local/lib/python2.7/site-packages/django/conf/__init__.py", line 116, in __init__
    setattr(self, setting, setting_value)
  File "/var/www/ap.example.com-env/local/lib/python2.7/site-packages/django/conf/__init__.py", line 85, in __setattr__
    raise ImproperlyConfigured("If set, %s must end with a slash" % name)
django.core.exceptions.ImproperlyConfigured: If set, STATIC_URL must end with a slash

Read more...


將錯就錯: 子類別(derived class)覆載(override)父類別(inherited class)函式

多年前,寫了一個內部用的除錯系統,因為有可能登入模組本身就是有 bug 的,為了降低系統的複雜性,所以不以 django auth 架構作身份驗證,單純檢查 remote_ip 有沒有在 settings.INTERNAL_IPS 裡來達到安全性檢查:

from django.conf import settings
def check_internal_ips(function):
    def _inner_function(*args, **kw):
        request = args[0]
        if hasattr(settings, 'INTERNAL_IPS') and request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS:
            return function(*args, **kw)
        else:
            return HttpResponseForbidden('You have no right!!!')
    return _inner_function

@check_internal_ips
def list_bugrecords(R):
    """ list the latest 10 records about automated bug tracker
    """
    pass

但這有一個問題,每次家裡 IP 有變動,或是在別的地方處理 bug 時,就得先登入機器內部修改 settings.py 才能從網頁上閱讀 bug 紀錄。實在不方便,大概拖了近 10 年之久了,今天終於改良了這個功能。

Read more...


可匿名的公平筆試網站上線了

../../../_images/signed_words.png

既然用了私錀簽章。所以本句話,我負責。

再次廣告: 敝司徵才網站 ,主要語言: Python(Django) / Javascript ,主要平台: Ubuntu Linux on AWS ,年薪是 60 萬以上,敬請瀏覽指教。

搭配徵才網站的筆試系統,其述求重點在於 完全匿名 下,允許應聘者與考試委員準確交流。

就目前的信箱服務來說,如果在註冊新帳號時,完全給 假的資訊 ,不也是很容易就可以拿到一組信箱來作為 匿名考試 的工具嗎? 然則就算全部用假資訊來註冊,現今的信箱服務也往往會要求作手機號碼的驗證,無法完全匿名,於此,若是在筆試網站上是要求應聘者須提供個人信箱,來作為試題往返的管道,不免還是會洩露部份個人資訊,假使我能駭進他的信箱伺服器的話。另外給假資訊的方法,難免有違反信箱系統的會員使用條款,敝司不過是要徵個才,何必讓人落得作了個欺騙的動作呢?

況且,將匿名責任交由應聘者自行處理,成果也會參差不齊,如果有人就是大刺刺地用了 i_am_linus@gmail.com 的信箱來應聘,我是該信還是不信呢? 畢竟他透露出獨特資訊,這對我還是會造成錨定效應。

話說重頭,敝司徵才為什麼要搞得這麼複雜???

Read more...


為什麼給一個在埔里工作的軟體工程師如此高的薪水?

../../../_images/why_give_such_high_salary_for_a_software_job_in_puli.png

年薪:60萬+ ; 每週工時:40小時- ; 週休 3 日; 學歷/科系/性別/年齡/...: 不限;

標題是敝下夫人給我的問題。所以好吧! 不解不行,請看下去我是如何求解的。

Read more...


Software job in puli(埔里軟工徵才)

先破個題,我在埔里要徵 1 ~ 2 個軟體工程師,是不是埔里人不重要,是不是在埔里工作也不太重要,重要的是我在埔里親自面試。

../../../_images/starbucks.jpg

別擔心,埔里沒那麼鄉下,除了 PM2.5 外,我們也有星巴克咖啡。

這個荒廢兩年多的部落格,終於有新文章。這一篇文章也附帶地說明為何我無法在字田上努力耕作。

Read more...


[廣告] 長輩要拍賣的「埔里黑膽石」

../../../_images/P1040527.jpg

黑膽石正面

../../../_images/P1040529.jpg

黑膽石背面

../../../_images/P1040530.jpg

黑膽石側面

黑膽石尺寸請參考相片中的平台,其大小約寬二尺一、長三尺一。物品目前在埔里,交易方式為面交詳談。

意者請洽 廖先生 ,聯絡電話如下:

../../../_images/number.png

電話區碼請記得加 049


秘密喊價

最近都在忙一些生活上的雜事(不過對比於工作上的正經事,這好像雜事才應該是人生的重點)。雜事之一就是賣房子、買房子的問題,自從女兒出生後,我們搬去和岳父、岳母居住,原本在車站旁的房子就不需要了,幾個月前也託仲介處理。

那如果房子賣出了,我們就變成無殼蝸牛了,雖然我不愛房地產,但家人(在臺灣的大多數人也是)還是希望有個穩定的家, 所以如果那邊房子賣了,這邊我們能買了,那這輩子的問題就解決一半了。

賣街上那棟房子,問題不大,有符合我們底價的買主即可,交易方式就是畫一個圈子,有興趣的買主走進來, 買賣雙方彼此喊價(賣家給一個數字,買家再給另一個數字,幾個輪迴後,有緣的話,這個數字就會趨近同一個數字)。

但要買現在住的房子,這難度就高了點,難不是難在「價錢」,而是難在「價錢」。拷北,阿蒙你在是講什麼~

Read more...


採用靜態網頁為個人或公司門面網站( Google Cloud Storage 篇)

過去架一個內容系統,多是使用動態語言( Perl / PHP / Python / Ruby )跑在 LinuxApache / NginxMySQL / PostgreSQL 上面。只要拿到好上手的 CMS(Content Management System) ,這對一個系統管理員而言,不是難事。問題是它對伺服器的要求會高了點:需要有動態語言、資料庫的支援,又如果你的站台是熱門網站,那上傳頻寬、負載平衡都會是不小的問題。

Read more...


女兒的網站: 亻可云勻

女兒出生時就在 Namesilo.com 買了 10 年期的網址: http://www.hoyun2.info/ 。都過了快 4 個月了,直到今天才有空整理。會幫她這麼早就申請個網址,無非是希望她能愛上寫作以及能勇於表達,這些不過是我的眾多期待中的小小部份罷了。

Read more...


Fork me Related Posts Plugin for WordPress, Blogger...