Login  |  Sign up  |  繁體中文
Tech Column

Tech Column

◎ 本文轉載自 Blog.XDite.net

第 2 件事:application deployable from day 1

在進入開發階段後,我會做的第一件事:make application deployable

也就是:專案開始第一天,就必須要有個 production 直接可運行(可以鎖密碼,當作測試 server)才行。(我在 Rails 101 這本書最後一章,加入 capistano 與裝機為必練技能,就是這個緣故。)

◎ 本文轉載自 網站製作學習誌

之前分享了初探 RequireJS 一文後,對 RequireJS 已經有一定的瞭解,但後來實際應用到 Backbone.js 程式上時,發現了一些要特別注意的事項。

以下便是我在整合兩者時的筆記。

一直以來,我們都習慣使用 script 這個 HTML 標籤來載入 JavaScript 檔案。這種方式有兩種缺點:

  • 無法在 JavaScript 程式中直接管理相依性,必須在 HTML 中處理。

  • 雖然目前新式瀏覽器已經能夠以非同步的方式來載入 js 檔案,但是舊型瀏覽器還是會有阻塞 (blocking) 問題。

終於 CommonJS 提出了 AMD 這個 API 規範,用以讓我們的 JavaScript 程式可以模組化,並同時解決 js 檔案載入時的阻塞問題。

目前已經有許多實作 AMD 規範的 JavaScript Library 了,而 RequireJS 則是目前討論最多,應用最廣的其中一個實作。

以下是我在研究 RequireJS 時的筆記,若有謬誤還請大家指正。

◎ 本文轉載自 Blog.XDite.net

借用新創網站這樣開發才夠快這篇格式,希望不要介意。我主要是想闡述以前在 T 客邦的經驗方法。

T 客邦在一年半裡面,就從台灣 Alexa 400 名以外,衝進台灣 Alexa 100 名內。這一年半時間技術團隊開發出了四個大網站,數十個子網站,和背後一群深厚的基礎建設 (HA, backup, PV stat, advertising system…etc.)。T17 實際開發的工時在 2.5 個月以內。

我是一個軟體工程師,過去六年我都在開發網站。在新創公司裡,速度節省時間、時間就是金錢、金錢就可以再去請更多工程師讓整個開發速度更快。學校並沒有教很多「軟體工程」的方法,或是怎樣才算是一個好的 Programmer。這些東西在台灣業界其實不存在的,大家都是邊做邊摸,從經驗中學習。我從書籍上和網路上學了很多能讓團隊更有效率的做事方法,因為我相信我在新創團隊裡我必須先這樣,用業界公認覺得快,且快得有道理的方式。底下是幾點可以和大家分享的。

◎ 本文轉載自 Blog.XDite.net

很多人知道如何實作網站功能。但是卻不知道如何將網站成功的完工,並且如期上線。往往明明專案開始之初有不少的工期,有不錯結果的卻很少。上線前後總是一團慌亂。

其實「上線」這件事情完全是可以被掌控的。這當中有不少眉角,只是多半被疏於控制,導致風險橫生。

線上移轉 (Live Migration)

在系統管理的工作中,若發生可預知的硬體問題時,往往需要停機方可進行修復,相對地服務也必須停止運作。如果是透過虛擬技術來建置服務環境時,即可以減少因硬體維修所造成的停機時間 (service down time)。

◎ 本文轉載自 Blog.XDite.net

我在網站程式上線前需要準備的事(四)提到了為了順利進行專案,一個好的專案管理系統絕對是必備的。

專案管理系統背後運作的邏輯何在,就是這篇文章主要的重點。

What is issue tracking (project management) system?

Issue Tracking system,顧名思義就是紀錄、追蹤問題的系統。BugZilla、Trac、RedmineJIRAlighthoustappBasecamp…等等這幾套軟體,都是知名的 Issue Tracking system。

◎ 本文轉載自 Blog.XDite.net

關於 Github 被入侵這件事,目前在國外開發圈傳的沸沸揚揚。看來中文圈還沒有消息,我來報導一下到底發生了什麼事好了。順便宣導一下開發 Rails 程式碼需要注意的其中一個觀念..

到底發生了什麼事

Rails 的 master 被某個 hacker 塞上這一段 commit。以證明 Github 是可以被入侵的。

前言

OpenSSL 提供了完整安全通信所需的編碼工具,諸如雜湊演算法(Hash algorithms)、加解密演算法(Encryption / Decryption algorithms)及 SSL / TLS 協議的實現等。加上其開放源碼的特性,使得許多開源專案或商業套件都有其踪跡。OpenSSL 除了提供程式 API 擴充接口外,也有命令列模式的操作。

本專案主要使用 C 程式語言撰寫,於 Windows / Linux / BSD / MacOS 下皆可運行。

本篇文章為 OpenSSL 系列文章第三篇。常見的加解密演算法分為對稱式與非對稱式,有興趣的使用者,可以在網路上搜尋相關的文章。本章節將介紹 OpenSSL 在非對稱式加解密演算法上的運用。本篇將著重於命令列模式下的非對稱式加解密演算法的操作。

前言

OpenSSL 提供了完整安全通信所需的編碼工具,諸如雜湊演算法 (Hash algorithms)、加解密演算法 (Encryption/Decryption algorithms) 及 SSL / TLS 協議的實現等。加上其開放源碼的特性,使得許多開源專案或商業套件都有其踪跡。OpenSSL 除了提供程式 API 擴充接口外,也有命令列模式的操作。
本專案主要使用 C 程式語言撰寫,於 Windows/Linux/BSD/MacOS 下皆可運行。

前言

OpenSSL 提供了完整安全通信所需的編碼工具,諸如雜湊演算法 (Hash algorithms)、加解密演算法 (Encryption/Decryption algorithms) 及 SSL / TLS 協議的實現等。加上其開放源碼的特性,使得許多開源專案或商業套件都有其踪跡。OpenSSL 除了提供程式 API 擴充接口外,也有命令列模式的操作。本篇將著重於命令列模式下的操作。

前言

本文將實作如何建立 Lagg 虛擬網路介面,並採用 LACP 方式,讓 FreeNAS 主機啟用網路卡頻寬合併功能 (Link Aggregation),也就是 IEEE 802.3ad (Link Aggregation Control Protocol, LACP),同時也將設定 FreeNAS 主機網路卡啟用 Jumbo Frame 功能,以便在 FreeNAS 主機進行大檔案(例如影音檔)傳輸時,能減少主機運算負載並加快傳輸時間,且於相關功能設定完畢後進行成員網卡故障及 Jumbo Frame 大封包測試。

您曾經用 Ruby on Rails 開發網站,但在國內找不到可以用的主機空間嗎?或者您是新創公司,但初期還沒有足夠的資金投資伺服器的硬體設備嗎?又或是沒有專職的 MIS 幫您管理伺服器?讓我們來看看 Heroku 吧!

簡介

自從 Heroku 出現之後,筆者挺羨慕 Rails 的開發者有這麼酷的服務可以使用。不過就在不久前 Heroku 也開始支援 Python 了,便趁著空閒玩了一下。大體而言只要熟悉平常使用的 Python 相關工具,像是 virtualenv、pip 以及 git,整個部署流程就很簡單。

本文將說明如何透過幾個簡單的步驟,把 Django 部署到 Heroku,手腳快的話十分鐘之內便可以看到網站在 Heroku 上運作了。

前言

相信許多人都有開發 PHP 的相關經驗,豐富的資源及其便利性皆為不可忽視的優點,程式本身撰寫起來也相對容易,相較之下環境建置及部署反而成為許多開發者的困擾。PHP Fog 透過 PaaS 的方式減輕了開發者在這方面的負擔,透過幾個簡單的步驟便將開發時所需的環境及資料庫設定完成,並且提供許多 Framework 可直接選用,讓開發者能更專注於程式開發。以下將透過 PHP Fog 平台簡易實做 PHP 程式開發。

Fossil 簡介

對於程式設計師而言,日常工作中最常使用的工具,可能會是編輯器,或專為某種程式語言所設計的整合開發環境;而對負責大型軟體開發工作的軟體團隊成員來說,版本控制系統則是另一套相當重要的軟體工具。如果沒有版本控制系統,大型軟體的開發團隊成員將難以有效控制軟體版本,並可能導致程式臭蟲增加。

目前在 UNIX/Linux 系統之中,已經存在許多成熟的版本控制系統,例如較為知名的 Git、Subversion 或 CVS 等等。若以架設方式加以細分,則有分散式與 Client-Server 二種不同的系統分類。除了這些系統以外,網路上還可以找到許多其他各具特色的版本控制系統。雖然這些系統的知名度較低,但如果仔細檢視其優點與特色,仍然可以找到一些頗為出色的版本控制系統。本文所要介紹的 Fossil,便是一套採用分散式處理方式的版本控制系統。

前言

DotCloud 是個很新的 PaaS 供應商,與之前的 PaaS 系統相比,這一家所提供的平台其資料庫以及程式語言十分豐富,目前的支援列表包括了 Java、Perl、Python、Ruby、PHP、Node.JS、MySQL、PostgreSQL、Redis、MongoDB,目前的主流組合都可以滿足。

在 DotCloud 系統中,使用者需替 App 定義所需的服務節點(在 DotCloud 網站中,稱為 "Stack" 或 "Service",因 Stack 意義為「堆疊」,容易造成混淆,在本中以一般分散式計算所用的名詞「節點」或「服務節點」代稱之)。例如,一個需要 Perl 與 MySQL 組合的 App,就需要建立兩個服務節點,其一負責執行 Perl 程式,其二則運行 MySQL。爾後如需擴增規模,可視實際負載情況選擇增加 Perl 節點或是 MySQL 節點。若需要替 App 增加頁面快取,可選擇增加 Static 節點(只存靜態檔案),並配合 Perl Worker 節點在背景產生靜態頁面。

作為替 Web App 特別打造的服務平台,DotCloud 獨特的彈性可見一斑。

簡介

講到 PaaS (platform as a service),我們很難忽略 Google 的 GAE (Google App Engine),這個由近 10 年來的網路巨人在 2008 年推出的雲端平台,雖然在技術的定位與根本上和 Amazon 的 AWS 有著本質上的不同,在坊間卻常常被拿來討論比較。雖然對 GAE 的評價毀譽參半(請參考下列的「優缺點」部分),但 GAE 在雲端平台中的重要性可見一斑。

01. 前言

隨著雲端服務的興起,許多 PaaS 平台 (Platform as a service) 相繼問世,PHP 最近也出現了一些選擇,最早公開的應該是 PHPFog 以及在歐洲的 cloudControl;再來是從 Ruby 起家,與 Facebook 合作後公告提供 PHP 的 Heroku,以及 Zend 尚未推出正式版的 PHPCloud

由於筆者最嫻熟 PHP,而且在痞客邦擔任技術研發部產品組組長,所以想接觸 PHP 相關的 PaaS,於公一來是希望能上傳痞客邦的一些小功能,減少痞客邦的維運成本,二來痞客邦已有公開的 API,可以開放外部功能的 open source,讓更多人了解痞客邦的 API;於私則是平常心血來潮寫些小東西,總算有個不需要花錢的地方可以嘗試了,於是先開始著手研究 Heroku。

簡介

上次我們介紹了如何使用 KVM 與 libvirt 架設虛擬化叢集,其儲存方式是採用 NFS。但NFS 並非唯一的網路存取方案,本篇將會介紹另一種 iSCSI 的網路儲存方式。此外,也會針對 QEMU 特有的 qcow2 儲存格式進行介紹,希望協助讀者在實作時能更快上手。

簡介

NPM Logo

npm (Node Package Manager) 是 Node.js 下的主流套件管理程式。因為 javascript 易開發的特性,Node.js 的套件數量龐大,目前有 4,468 個套件發佈登記在 npm 的資料庫中。透過 npm 可以協助開發者安裝與移除 Node.js 套件,並發佈自己開發的套件。

More Articles...

Page 1 of 7

Start
Prev
1

Subscribe Newsletter

SubscribeUnsubscribe