用 Supervisor 管理系統程式

cover

相信大家都有管理 Linux 主機 Process 的經驗,用的工具也是千奇百種,但是肯定對 Python 版本的 Supervisor 並不陌生,這套工具相當好用,可以監控不同的 Process 狀態,也可以自動重啟。而本篇要介紹用 Go 語言寫出來的開源套件『Supervisord』,作者提到為什麼要用 Go 語言開發此工具,原因很簡單,就是透過 Go 語言的跨平台優勢,寫一套程式,可以直接跑在任何平台,管理者就不需要再為了 Python 環境而煩惱。

[Read More]

打造最小 Python Docker 容器

cover

現在已經是容器 (container) 的時代,團隊之間合作肯定要打包統一的 Docker Image 來解決環境不一致的問題,但是容器的大小決定了部署微服務的時間,本篇來介紹如何打造最小的 Python 容器。如果你需要跨部門合作,Docker 絕對是最棒的工具,讓大家不用為了環境煩惱。底下透過 Flask Application 來介紹如何撰寫 Dockerfile

[Read More]

五大理由從 Python 轉到 Go 語言

在網路上看到這篇『5 Reasons Why We switched from Python To Go』,先發到自己 Facebook 牆上,引發討論,乾脆整理一篇 Blog 來寫自己的感想,底下五大理由讓該篇作者從 Python 轉到 Go 語言。我會針對前四點來寫心得

  1. 編譯二進制檔案 (加速部署及跨平台)
  2. 編譯自動檢查 Static 型態 (你不會把 string 欄位帶入 Integer)
  3. 效能 (Go 並發跟 Python thread 比起來節省許多資源)
  4. 不需要 web framework (Go 內建大多數 Library 像是 HTTP, JSON, HTML templating)
  5. 好用的 IDE (內文提到 Webstorm, PHPStorm) 我推薦用 VSCode

除了第五點外,其他四點個人覺得都是工程師的痛點。

[Read More]

Fabric 管理多台 Linux 機器的 command tool

python-logo-master-v3-TM
相信 Administrator 管理過兩台以上的 Linux Server 都一定會找 tool 讓多台機器同時執行指令,這也應用在 Deploy 任何 application 到多台機器或者是同時更新系統套件…等,網路上有蠻多套 command line tool 像是

capistranoFabricpsshdsh…等都,本篇會以 Python 所推的 Fabric 來做介紹。另外 Ruby 所寫的 capistrano tool 也是不錯的選擇,這兩套其實大同小異,可以將 Deploy 的邏輯寫成單一 file 再透過 task 定義來決定執行的工作。當然你也可以透過此 tool 來管理 local 端動作,但是這有點多此一舉,因為基本的 Shell 就可以完成了,如果熟悉 Python 則選 fabric,如果喜歡寫 Ruby 則可以試試看 capistrano。

安裝方式(Installation) 如果是

CentOS 系列可以透過 yum 套件管理,UbuntuDebian 則是透過 aptitude 方式安裝。 Yum

# install python pip tool and fabric command
yum -y install python-pip
pip-python install fabric
APT
# install python easy_install
aptitude -y install python-pip
# install fabric command
pip install fabric
安裝 capistrano 可以透過 Ruby gem。
$ gem install capistrano
[Read More]

2011 OSDC Day 1 筆記

Update: 補上 OSDC 紀錄影片 2011.06.26 今年很高興可以北上參加 OSDC 2011 (Open Source Developers Conference),由於之前都在南部唸書及工作,沒有機會北上參加聚會,現在人在新竹,終於有機會可以參加了,雖然早上六點就要起床趕電車了,不過到現場聽課感覺就是不同,也可以認識很多新朋友,底下來紀錄上課筆記 微軟與 jQuery 社群的親密接觸 講者: Eric Shangkuan (Microsoft) Slide: 微軟與 jQuery 社群的親密接觸 這是 OSDC 第一場演講,早上九點就開始了,雖然人不多,但是蠻多人還是為了講者而來,首先介紹什麼是 jQuery,以及 jQuery 一些基本用法,像是 CSS selector,如何在 Windows Visual Studio 上面開發 jQuery 及撰寫 plugin 整合進去 ASP.Net,最後介紹三個不錯用的 jQuery Plugin: Templeate, Datalink, Globalzation。 Templeate: 這搭配 Facebook api 可以直接做個人頁面,請參考這裡 Globalzation: 前端多國語系實做 Datalink: 可以快速處理 form,利用 object 跟 jQuery 搭配 如果要研究上述三個 jQuery Plugin 可以參考底下: jQuery Datalink: https://github.com/jquery/jquery-datalink jQuery Templeate: https://github.com/jquery/jquery-tmpl jQuery Globalzation: https://github. [Read More]

[Python] OSSF::自由軟體鑄造場 Python network programming -進階

今天跑來聽 OSSF::自由軟體鑄造場 舉辦的 Python network programming -進階 課程,紀錄上課的心得,以及講師提到的一堆重點整理,分享給大家,收穫實在是太多了,本身在南部能聽到的課程就很少,一看到有開課程,就非常開心報名參加,講師對於上課準備的講義也很用心,學習到平常看書學不到的經驗跟實作。 1. 字串處理函式

# 字串轉換小寫
string.lower
# 字串轉換大寫
string.upper
# 切割字串
string.split
# 合併字串
string.join
# 找尋字串
string.find
[Read More]

[Django] Web Framework- Django -初階學習心得

django-logo-negative_1236046419 (by appleboy46) 首先感謝 酷學園團隊Who’s Who 工作坊自由軟體鑄造場 舉辦的一系列南部的 pythonDjango 活動,今天的活動主題是:Web Framework- Django -初階 (講者:陳建玎),簡介了為什麼需要 MVC 架構寫法,MVC 的重要性,以及 Django 的優點,還蠻豐富的課程,其實重點都是在如何使用 MVC 加速開發 Web 網站,以及在 Team Work 裡的重要性,目前在開發 Web Framework 都是利用 PHP 一套 Frame Work:Codeigniter,在台灣已經有中文網站:CodeIgniter 繁體中文,自己接手了 CodeIgniter 計畫翻譯中文文件,還有開發 forum 中文討論區,還在規劃中,自己也才摸 CodeIgniter 一個多禮拜,底下有一張上課的投影片,介紹三種 Frame Work 的 Model、Views、Controller django (by appleboy46)

[Read More]

[高雄] Python 入門 – Python tutorial

在現今 Google 的大多數服務都是利用 Python 程式撰寫,例如:Google App Engine,之前買下的 Youtube 影音網站,就是因為 Youtube 是用 Python 的程式撰寫起來的一個 Web 2.0 網站,在上禮拜去參加了 工作坊 所開的一門入門的課程 Python 入門 - Python tutorial - 第一梯 (講者:黃宇新),這課程是給要學習 Python 的基本入門,講師 黃宇新 教的真的很棒,把 Python 的精神都講的非常好,自己感覺跟 Perl 的功能差沒多少,可是兩種語言在比較方面各有優缺點,聽完最大的感想歸納為兩點,那就是 Python 產生線上文件相當方便,還有非常的快速模組化,每個 Python 程式都是一個獨立模組,在其他 Python 程式裡面都以利用 import 方式來交互使用,個人認為在 系統管理、網路管理、網路傳輸程式、網頁程式開發 上面會有相當大的幫助。 Python 還有一個優點就是程式可閱讀性,在每個程式都必須有良好的撰寫習慣,那就是要善用 tab 鍵來排版,不然程式就是會錯誤,底下一個 Python 的例子,九九乘法表:

#!/usr/local/bin/python
for i in range(1,10):
  for j in range(1,10):
    print "%d*%d=%s" % (i,j,i*j),
  print ""
[Read More]

Google App Engine SDK:python 基本教學安裝

Powered by Google App Engine Google App Engine 利用 python 程式語言所組成,可以利用 Google 背後的技術來開發您的 Web application,後端就交給 Google 的強大雲端運算能力,前端就可以利用 SDK 來開發您的 Web 介面,後端儲存可以用 Google BigtableGFS 的儲存方式,那現在就不多說了,花了一點時間把環境建立起來,遇到一些問題,現在來筆記一下,目前我在 FreeBSD 7.1 Release 來當作 Google App Engine 開發平台,在安裝方面有遇到一些小問題,底下來看看: 在 FreeBSD 安裝方法還蠻簡單的,首先把 python 環境弄好

# cd /usr/ports/lang/python25/
# make install clean
底下這張圖就是安裝好的結果:

GAE (by appleboy46)

[Read More]