我不知道為何可以用 curl。用著用著就習慣了。
但是突然發現不能用 request。
想要去更新又不知道到哪兒去更新。
在 linux 有 whereis 指令,但是 windows 就是不叫 whereis。
它就要叫
where
就這樣,解決。
http://superuser.com/questions/21067/windows-equivalent-of-whereis
2016年4月2日 星期六
2016年3月16日 星期三
[windows] 殺掉佔住某個 port 的程序
今天在測試的時候,一個程式畫面死掉被關掉,但是程序(process)沒有被關掉,一直佔著。
總不能每次發生這種事的時候就重開電腦吧?
於是找了一下,有解!
救星就是 netstat。
使用以下指令:
接下來就是用 task manager,找到那個程序,殺掉它。搞定!
參考:
http://stackoverflow.com/questions/8688949/how-to-close-tcp-and-udp-ports-via-windows-command-line
總不能每次發生這種事的時候就重開電腦吧?
於是找了一下,有解!
救星就是 netstat。
使用以下指令:
netstat -a -n -o會列出所有本機正在開啟的 port,還有 PID。
接下來就是用 task manager,找到那個程序,殺掉它。搞定!
參考:
http://stackoverflow.com/questions/8688949/how-to-close-tcp-and-udp-ports-via-windows-command-line
2016年3月15日 星期二
[python] django-cms 在 pythonanywhere 的安裝
django-cms 是基於 django 的 CMS (Content Management System,內容管理系統),可以快速建立可上線的網站、部落格…等等。它也是去年(2015 年)被選為最佳 CMS 的系統。(http://www.cmscritic.com/announcing-the-2015-winner-for-best-open-source-cms/)
PythonAnyWhere 則是一個服務商,可以提供以 python 為基礎的許多 web framework,例如 django。所以,在 PythonAnyWhere 上要提供一個 Django 網站是內建功能之一。其他的像 flask 或是 bottle 等 web framework 現在也支援。一般人可以申請免費服務試用,可以有 512 MB 的硬碟空間與 100 秒 cpu 時間。如果 100 秒 cpu 時間用完,其實還是可以正常運作,只是慢一點而已,拿來試用非常剛好。
把 django-cms 與 PythonAnyWhere 結合在一起是很簡單的。PythonAnyWhere 官方似乎沒有比較正式的說明,不過在經過測試之後,在 virtualenv 的環境上來做,應該會是比較好的選擇。
第一步,建立 virtualenv 環境
source virtualenvwrapper.sh在 PythonAnyWhere 上必須使用已經提供好 環境設定,所以要使用他們提供的 virtualenvwrapper.sh 與 mkvirtualenv 進入 virtualenv 的環境中。
mkvirtualenv djangocms --python=python3
如果要在 virtualenv 裡用到 python3,所以加上 --python=python3
如果要使用官方已經裝好的 numpy, scipy 的話,要加上這個參數 --system-site-packages。
執行完之後,就會停在 virtualenv 的環境裡:
(djangocms) 12:24 ~ $
第二步,安裝 djangocms-installer
現在 django-cms 是使用 djangocms-installer 來安裝,所以要先用 pip 安裝這個。
pip install djangocms-installer第三步, 建立 djangocms 專案
這裡建議照我說的做,不然不小心會把自己的家目錄裡的東西砍光光。
首先,開一個目錄叫 project_name,然後進去。
然後使用以下指令建立專案:
(djangocms) 12:34 ~/project_name $ djangocms -p . my_demo
會開始問一些問題,基本上就一路按 enter,不然就照我的來選:
Database configuration (in URL format) [default sqlite://localhost/project.db]:
django CMS version (choices: 2.4, 3.0, 3.1, 3.2, stable, develop) [default stable]:
Django version (choices: 1.5, 1.6, 1.7, 1.8, 1.9, stable) [default stable]:
Activate Django I18N / L10N setting (choices: yes, no) [default yes]:
Install and configure reversion support (choices: yes, no) [default yes]:
Languages to enable. Option can be provided multiple times, or as a comma separated list. Only language codes supported by Django can be used here: en
Optional default time zone [default Etc/UTC]:
Activate Django timezone support (choices: yes, no) [default yes]:
Activate CMS permission management (choices: yes, no) [default yes]:
Use Twitter Bootstrap Theme (choices: yes, no) [default no]:
Use custom template set [default no]:
Load a starting page with examples after installation (english language only). Choose "no" if you use a custom template set. (choices: yes, no) [default no]: yes
然後就開始安裝到停下來。會要你輸入管理員的帳號、信箱、密碼。
第四步,建立 web app
到 web 頁籤按下建立 web app 的按鈕,選擇 manual configuration。
設定 virtualenv 路徑設定到 /home/yourusername/.virtualenvs/djangocms。
import os到 Static files 那裡設定:
import sys
# add project folder to path
path = '/home/ironman/project_name'
if path not in sys.path:
sys.path.append(path)
# Remove any references to your home folder (this can break Mezzanine)
while "." in sys.path:
sys.path.remove(".")
while "" in sys.path:
sys.path.remove("")
# specify django settings
os.environ['DJANGO_SETTINGS_MODULE'] = 'my_demo.settings'
# load default django wsgi app for Django >= 1.4
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Url: /static/
Path: /home/yourusername/project_name/static
第五步,修改 db 位置設定
因為用安裝器裝的設定,有一點不一樣,所以 db 位置它指錯了。
請到 project_name/my_demo/settings.py 裡,找到這裡:
DATABASES = {
'default': {
'CONN_MAX_AGE': 0,
'ENGINE': 'django.db.backends.sqlite3',
'HOST': 'localhost',
'NAME': 'project.db',
'PASSWORD': '',
'PORT': '',
'USER': ''
}
}
把 'NAME': 'project.db' 改成 'NAME': 'project_name/project.db'
不改會出現錯誤:no such table: cms_urlconfrevision
再按下web app 的 Reload 按鈕。
瀏覽結果,這是有選範例首頁的樣子:
這是沒選範例首頁的樣子:
接下來就是怎麼使用它的問題了。這裡有「使用者」的說明文件。http://docs.django-cms.org/en/3.2.3/user/index.html
[python] mezzanine 在 pythonanywhere 的安裝
Mezzanine 是基於 django 的 CMS (Content Management System,內容管理系統),可以快速建立可上線的網站、部落格…等等。
PythonAnyWhere 則是一個服務商,可以提供以 python 為基礎的許多 web framework,例如 django。所以,在 PythonAnyWhere 上要提供一個 Django 網站是內建功能之一。其他的像 flask 或是 bottle 等 web framework 現在也支援。一般人可以申請免費服務試用,可以有 512 MB 的硬碟空間與 100 秒 cpu 時間。如果 100 秒 cpu 時間用完,其實還是可以正常運作,只是慢一點而已,拿來試用非常剛好。
把 Mezzanie 與 PythonAnyWhere 結合在一起是很簡單的。PythonAnyWhere 官方建議在 virtualenv 的環境上來做,也給了範例如下:
第一步,建立 virtualenv 環境
如果要在 virtualenv 裡用到 python3,要使用以下的指令替代上面第二行指令
執行完之後,就會停在 virtualenv 的環境裡:
接下來就是使用 pip install mezzanine 安裝。
第三步,建立網站專案
在經過一連串下載後,就是開始第一個專案來試用一下了。開第一個專案的指令是:
首先在 settings.py 找到TIME_ZONE, 改成我們這裡的TIME_ZONE='Asia/Taipei'。
然後執行以下指令:
第四步,設定 wsgi
PythonAnyWhere 與 mezzanine 的連結是靠 wsgi,請到 web 頁籤
第五步,設定 static 檔案
在 web 頁籤,到 Static files 那裡設定:
Url: /static/
Path: /home/yourusername/project_name/static
然後執行以下指令:
現在就可以瀏覽一下剛才的成果。
接下來,使用的方法就又是另一個問題了。
PythonAnyWhere 則是一個服務商,可以提供以 python 為基礎的許多 web framework,例如 django。所以,在 PythonAnyWhere 上要提供一個 Django 網站是內建功能之一。其他的像 flask 或是 bottle 等 web framework 現在也支援。一般人可以申請免費服務試用,可以有 512 MB 的硬碟空間與 100 秒 cpu 時間。如果 100 秒 cpu 時間用完,其實還是可以正常運作,只是慢一點而已,拿來試用非常剛好。
把 Mezzanie 與 PythonAnyWhere 結合在一起是很簡單的。PythonAnyWhere 官方建議在 virtualenv 的環境上來做,也給了範例如下:
第一步,建立 virtualenv 環境
source virtualenvwrapper.sh
mkvirtualenv mezzanine
在 PythonAnyWhere 上必須使用已經提供好 環境設定,所以要使用他們提供的 virtualenvwrapper.sh 與 mkvirtualenv 進入 virtualenv 的環境中。如果要在 virtualenv 裡用到 python3,要使用以下的指令替代上面第二行指令
mkvirtualenv mezzanine --python=python3
如果要使用官方已經裝好的 numpy, scipy 的話,要加上這個參數 --system-site-packages。執行完之後,就會停在 virtualenv 的環境裡:
第二步,安裝 mezzanine(mezzanine)13:12 ~ $
接下來就是使用 pip install mezzanine 安裝。
第三步,建立網站專案
在經過一連串下載後,就是開始第一個專案來試用一下了。開第一個專案的指令是:
mezzanine-project project_name
cd project_name
接下來的動作是設定時區與建立資料庫內容。首先在 settings.py 找到TIME_ZONE, 改成我們這裡的TIME_ZONE='Asia/Taipei'。
然後執行以下指令:
會在資料庫裡建立所需要的 table。預設使用的是 sqlite3 的資料庫。眼睛利一點的會看到管理者預設帳號密碼是 admin/default。等一下要用,真的要上線一定要去改密碼。python manage.py createdb --noinput
第四步,設定 wsgi
PythonAnyWhere 與 mezzanine 的連結是靠 wsgi,請到 web 頁籤
建立一個按下建立 web app 的按鈕,選擇 manual configuration。
然後把 virtualenv 路徑設定到 /home/yourusername/.virtualenvs/mezzanine 。
找到 WSGI configuration file 所指的檔案連結按下去,改成以下這樣:
然後按下web app 的 Reload 按鈕,接下來要處理 static 檔案。import os import sys # add project folder to path path = '/home/yourusername/project_name': if path not in sys.path: sys.path.append(path) # Remove any references to your home folder (this can break Mezzanine) while "." in sys.path: sys.path.remove(".") while "" in sys.path: sys.path.remove("") # specify django settings os.environ['DJANGO_SETTINGS_MODULE'] = 'project_name.settings' # load default django wsgi app for Django >= 1.4 from django.core.wsgi import get_wsgi_application application = get_wsgi_application()
第五步,設定 static 檔案
在 web 頁籤,到 Static files 那裡設定:
Url: /static/
Path: /home/yourusername/project_name/static
然後執行以下指令:
這樣會把 static 的檔案搬到對的地方去。再按下web app 的 Reload 按鈕。python manage.py collectstatic
現在就可以瀏覽一下剛才的成果。
接下來,使用的方法就又是另一個問題了。
2016年2月27日 星期六
[超譯] 機器學習介紹
原文連結http://opensourceforu.efytimes.com/2016/02/an-introduction-to-machine-learning/
編程(programming)基本上是告訴電腦要做什麼。傳統的編程習會假設寫程式的人已經理解問題,而且用這個理解,寫出一串清楚的指令來解決 某特定問題或完成特定任務。這類的例子非常多,事實上,絕大多數的程式都是這樣寫的,有著清楚可預期的輸入、輸出,與優美的演算法處理。例如,排序數字, 在文檔中移除某個字串,複製檔案…等等。
然而,有某些種類的問題,傳統編程或問題解決定方法不是這麼好使。例好,假設你有 50,000 個文件,必須分類成運動、商業、娛樂,又不能人工一個個處理。又例如,在上千個圖片裡找到特定的物件。在後面這個例子,物件可能是不同角度的相片,或是在 不同光線的條件下。你要如何分辨哪些相片有這個物件?另一個非常有用的例子是建立一個線上付款通道(online payment gateway)且希望防止詐欺交易。其中一個方法是辨認出潛在詐欺交易的跡象,在交易完成前啟動警報。這樣,你要如何準確預測而避免不必要的警報?
你可以簡單地說,這是不可能寫出非常準確的演算法來對付上述每個問題。我們能做的是,建立一個系統像人類專家一樣地工作。一個醫生可以檢驗報告看出病人生了什麼病。醫生的準確率不會是 100%,他多數時間會是正確的。沒人用程式寫出一個醫生,他這些知識來自學習與經驗。
我們需要的是一個系統能從經驗中學習,就算我們無法編程它叫它做特定的任務。我們做的是,給它看大量的範例,電腦是被編程為從大量的資訊中學習。在 它完成學習之後,就可以預測或做一些任務。這就是機器學習。醫生的例子有一點點與真正的機器學習不一樣,機器學習的核心思想是機器學習會有大量資料中學 習,而且會從經驗中改進。
假設我們必須預測下午是否下雨,使用溫度及風的資料。是否下雨記錄在「下午是否下雨」那一行,那就是標籤。這裡的溫度,風速、風向是預測子(predictor)或說是輸入變數,下午是否下雨則是輸出變數。
演算法從這樣的資料學習,叫做受監督學習演算法。有些資料是自動萃取/自動產生的,例如機器的日誌,多數需要人工加標籤,這樣增加資料獲得的成本。
受監督學習演算法的例子有「線性回歸演算法 linear regression algorithms」、「貝氏演算法 Naïve-Bayesan algorithms」「K近鄰演算法 k-nearest neighbour」…等等。
如果資料沒有標籤,它變成一個無監督學習演算法。例如:「K平均分群 k-means clustering」、「主成份分析 principal component analysis」…等等。
我們也可以用另一個邏輯來分類機器學習演算法,分成回歸演算法或是分類演算法。回歸演算法是指演算法真的預測一個數字,像是接下來幾天的溫度,股市收盤指數…等等。
分類演算法則是把輸入分類,例如是否下雨、股市漲還是跌、它是疾病 x、疾病 y 還是疾病 z……等等。
The author is an independent data analytics consultant from Bengaluru. He is building a platform for electric vehicles-Project Vidyut. Project Vidyut is a not-for-profit initiative for promoting electric vehicles, and also to build open source electric vehicles. He can be reached at mahesha-at-projectvidyut-dot-org and tweets with handle@MaheshaHiremath.
Connect with him: Website
超譯系列是練習翻譯的技巧,順便分享給大家參考的資訊相關的資訊。
Exercise to translation. Give advise to me if something wrong.
譯者/translator: Ricky Teng
聯絡/contact: ricky-dot-teng-at-gmail-dot-com
機器學習介紹
機器學習是計算機科學的一個領域,它探索「學習」與演算法的建構,從資料中學習,並依此做預測。機器學習涵蓋了模式辨認(pattern recognition)以及人工智慧中的計算式學習理論。它被用在許多應用中,像是自動駕駛車,有效率網頁搜尋,語音辨識…等。編程(programming)基本上是告訴電腦要做什麼。傳統的編程習會假設寫程式的人已經理解問題,而且用這個理解,寫出一串清楚的指令來解決 某特定問題或完成特定任務。這類的例子非常多,事實上,絕大多數的程式都是這樣寫的,有著清楚可預期的輸入、輸出,與優美的演算法處理。例如,排序數字, 在文檔中移除某個字串,複製檔案…等等。
然而,有某些種類的問題,傳統編程或問題解決定方法不是這麼好使。例好,假設你有 50,000 個文件,必須分類成運動、商業、娛樂,又不能人工一個個處理。又例如,在上千個圖片裡找到特定的物件。在後面這個例子,物件可能是不同角度的相片,或是在 不同光線的條件下。你要如何分辨哪些相片有這個物件?另一個非常有用的例子是建立一個線上付款通道(online payment gateway)且希望防止詐欺交易。其中一個方法是辨認出潛在詐欺交易的跡象,在交易完成前啟動警報。這樣,你要如何準確預測而避免不必要的警報?
你可以簡單地說,這是不可能寫出非常準確的演算法來對付上述每個問題。我們能做的是,建立一個系統像人類專家一樣地工作。一個醫生可以檢驗報告看出病人生了什麼病。醫生的準確率不會是 100%,他多數時間會是正確的。沒人用程式寫出一個醫生,他這些知識來自學習與經驗。
我們需要的是一個系統能從經驗中學習,就算我們無法編程它叫它做特定的任務。我們做的是,給它看大量的範例,電腦是被編程為從大量的資訊中學習。在 它完成學習之後,就可以預測或做一些任務。這就是機器學習。醫生的例子有一點點與真正的機器學習不一樣,機器學習的核心思想是機器學習會有大量資料中學 習,而且會從經驗中改進。
機器學習與數學
許多機器學習演算法基本上企圖逼近一個未知的數學函數,而且絕大多數這些演算法本質上就是數學。因為資料有隨機性與不確定性,我們必須應用來自機率 與統計的概念。事實上,機器學習演算法非常依賴統計的概念,以致許多人認為機器學習該叫統計學習。離開統計,另一個被用到重要的數學分支是線性代數。矩陣 的概念,系統方程組的解,演算法的優化,都在機器學習中佔有重要地位。機器學習與大數據
近來,機器學習與大數據走得很近。大數據指的是巨量的已存資料,而且是有意義地被使用。看一些例子來了解我說的。假設你已在交易平台上收集顧客交易 資料,這資料的量可以輕易地到達被認為是大數據的量,還有一些其他你存下的資料。現在,這些資料的用途是檢查顧客定單的狀態,計算商務會計上的盈虧,以及 其他技術或操作上的日常業務。除了這些,商業上也常想以獨特的方式利用這些資料。有些人對這分析使用特定的字。雖然直接地計算可以得到盈虧、總支出、總庫 存等答案,但稍進一步的資料操作會切片與切塊讓訊息顯現。我們依然會追求基本報表的背後訊息,辨認出不顯見的模式。我們也會想要建立預測模型。不同的機器學習演算法
現在有兩種不同種類的演算法,受監督學習與無監督學習。受監督學習指的是,資料給序標籤,如下例所示:| 天 | 中午12點時溫度 | 風速 | 風向 | 下午是否下雨 |
|---|---|---|---|---|
| 1 | 30度C | 3 m/s | 東 | 是 |
| 2 | 35度C | 10 m/s | 西 | 否 |
| 3 | 37度C | 7 m/s | 東北 | 否 |
| 4 | 34度C | 8 m/s | 北 | 否 |
演算法從這樣的資料學習,叫做受監督學習演算法。有些資料是自動萃取/自動產生的,例如機器的日誌,多數需要人工加標籤,這樣增加資料獲得的成本。
受監督學習演算法的例子有「線性回歸演算法 linear regression algorithms」、「貝氏演算法 Naïve-Bayesan algorithms」「K近鄰演算法 k-nearest neighbour」…等等。
如果資料沒有標籤,它變成一個無監督學習演算法。例如:「K平均分群 k-means clustering」、「主成份分析 principal component analysis」…等等。
我們也可以用另一個邏輯來分類機器學習演算法,分成回歸演算法或是分類演算法。回歸演算法是指演算法真的預測一個數字,像是接下來幾天的溫度,股市收盤指數…等等。
分類演算法則是把輸入分類,例如是否下雨、股市漲還是跌、它是疾病 x、疾病 y 還是疾病 z……等等。
機器學習的工作
要理解與讚嘆的是,機器學習演算法基本上是數學演算法,我們可以用任何喜歡的電腦語言來實作。例如 C、PHP、Java、Python 甚至是 JavaScript。但我個人喜歡的是統計語言 R。在不同的語言有許多熱門的機器學習模組或函式庫,Weka 是強大的機器學習與資料採礦的軟體,它用 Java 寫的,而且很熱門。Scikit-learn 在 python 開發者中很熱門。Orange Machine Learning Toolbox 也是 pyhon 可用的工具。R 語言有許多非常基本的統計套件與模組,也有很多不同的套件像 e1071、Randomforest、Ann、…等依賴在不同的機器學習演算法上。Apache Mahout 是可拓展的機器學習演算法,通常用在大數據習統。Weka 非常強大,但它在商業使用上有授權問題,你可以用 Java-ML (Java machine learning algorithm)。雖然開發活動看起來停子了,它的函式庫仍值得一試,它擁有足夠的文件與教學讓人易於上手。我會建議有進一步需要的人可探索「深度學習演算法 deep learning algorithm」原文作者
Mahesha HiremathThe author is an independent data analytics consultant from Bengaluru. He is building a platform for electric vehicles-Project Vidyut. Project Vidyut is a not-for-profit initiative for promoting electric vehicles, and also to build open source electric vehicles. He can be reached at mahesha-at-projectvidyut-dot-org and tweets with handle@MaheshaHiremath.
Connect with him: Website
超譯系列是練習翻譯的技巧,順便分享給大家參考的資訊相關的資訊。
Exercise to translation. Give advise to me if something wrong.
譯者/translator: Ricky Teng
聯絡/contact: ricky-dot-teng-at-gmail-dot-com
2016年2月26日 星期五
[python]numpy array 的 reshape 練習
這裡收集 reshape 的練習。有時真的很常忘記。
t1import numpy as npt1 = np.ndarray((10, 3,3), dtype=np.float32)t2 = np.ndarray((10, 3 * 3), dtype=np.float32)q = 0for i in t1:t2[q]=i.reshape(9)q +=1t3 = t1.reshape(10,-1)
array([[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]],
[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]],
[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]],
[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]],
[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]],
[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]],
[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]],
[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]],
[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]],
[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]]], dtype=float32)
t2
array([[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.]], dtype=float32)
t3array([[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0.]], dtype=float32)
2016年2月13日 星期六
[opensource]作業系統革命觀後筆記
#作業系統革命觀後筆記
2016.02.13
2016.02.13
- 什麼是作業系統 -2:29
- Linus 說「他們把 Richard Stallman 當做哲學家,把我當成工程師。」(這兩個似乎是互看不爽) -3:47
- 開始實際由 FSF(GNU) 開始,但現在大家會想到 linux -4:02
- 自由的消失,因為密碼的出現。 -5:12
- open source 的點子其實電腦一開始就有。直到後來才變得不能看原始碼,也許 M$ 要負一些責任 -6:41
- 比爾蓋茲對於軟體所有權的公開信 -7:33
- 80 年代的作業系統授權讓 Stallman 很難過,然後成立自由軟體基金會 -9:25
- 1984 年 1 月,Stallman 開始 GNU 作業系統開發 -11:35
- GNU 的關鍵點就在於 free,指的是 freedom 而不是 free beer。是說擁有修改的權利。 -15:12
- 自由軟體還是有著作權的,只是作者給你自由散佈複製修改的權力,但是使用者也要一樣地對待別人 -17:01
- 1990年,整個 GNU 系統的核心,現在才要開始。而此時,Linus 的核心出現補上了缺的一塊 -23:12
- GNU/Linux system? -30:23
- Apache 是 linux 的殺手級應用 -32:05
- 作業系統套件散佈商的出現 -34:58
- 兩種軟體開發的模式 -38:58
- Netscape 是下一棒的抵抗專利軟體的軟體 -40:04
- "Netscape Source Code as Netscape Product"「Nestscape 的原始碼也是產品」-43:15
- 從 free software 到 open source -46:01
- free software 名稱是個問題,人們第一個想到的是免費而不是自由 -46:49
- 用 open source 取代 free software 的起源 -47:38
- open source 與 free software 的不同。理查史托曼 -48:10
- debian 的 open source 定義 -50:32
- 自由散佈
- 原始碼
- 可延伸 寫作(Derived Works Permitted)
- Integrity of the Author's Source Code (作者完整的原始碼)
- No Discrimination Against Persons or Groups (對任何個人或團體沒有歧視)
- No Discrimination Against Fields of Endeavor (不歧視任何領域)
- Distribution of License (散佈授權證)
- License Must Not be Specific to a Product (授權證不受產品限制)
- License Must Not Contaminate Other Software (授權證不污染其他軟體)
- database 軟體跟進 -53:28
- 主機哥很正常啊?你看滿滿都是。 -57:06
- windows 退貨日 -59:22
- 我真的很愛看兩個針鋒相對 -1:12:23
- 泡沫 -1:20:45
- 翻譯 WiDE (wide@edirect168.com) 2004.09.07 修訂/jserv 2015.03.11
標籤:
linux,
opensource
訂閱:
文章 (Atom)



