2013年10月2日 星期三

Ubuntu 設定 isc-dhcp-server IPv6

不知為何中文的資料超少,在此作個筆記。[via]

sudo apt-get install isc-dhcp-server


  1. set a static IPv6 address for the Interface I want to run the DHCPv6 server from that is part of the IPv6 network subnet outside the DHCP range.

  2. Edit the /etc/dhcp/dhcpd6.conf file to configure the DHCPv6 range etc.

  3. Create the /var/lib/dhcp/dhcpd6.leases

  4. Manually start the DHCPv6 server.



sudo ifconfig eth0 inet6 add 2001:db8:0:1::128/64

設定 dhcpd6.conf

default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet6 2001:db8:0:1::/64
{
#Range for clients
range6 2001:db8:0:1::129 2001:db8:0:1::254;
}


touch /var/lib/dhcp/dhcpd6.leases
chown dhcpd:dhcpd /var/lib/dhcp/dhcpd6.leases
sudo dhcp -6 -f -cf /etc/dhcp/dhcpd6.conf eth0

[via]

2013年4月29日 星期一

Google帳號的身後事

很多人都擁有至少一個 Google 帳號,裡面可能有個人的信件、影片、照片、檔案等重要資料。

一旦使用者不在人世,這些資料對親友或公司而言可能非常重要,但若親友沒有你的密碼,當然就無法存取這些資料。

現在 Google 可以讓你設定若帳號閒置長時間不用,將帳號授權給你指定的人存取。

我是建議每個人都應該設定一下比較好。

設定頁面在此:閒置帳戶管理員

參考:Google閒置帳戶管理員功能處理帳戶身後事

2013年4月13日 星期六

FreeBSD 新的套件管理工具 pkgng

隨著 FreeBSD 的 sysinstall, pkg_install 等工具年久失修,又功能不全。害我都想要跳槽 Linux,apt-get 真好用。

幸好現在有個新玩意兒叫 pkgng,方便性甚至更勝 apt-get。
不過現在似乎有點安全性問題,所以暫時有些狀況中。

http://www.freebsd.org/doc/handbook/pkgng-intro.html
http://forums.freebsd.org/showthread.php?t=37352

2013年3月19日 星期二

Google Reader 接班人?

再不寫點什麼,恐怕七月之後這個部落格就沒有人看了吧?

Google 要收掉 Google Reader 這樣產品,在網路上引起一片嘩然,傷心難過者有之,表示完全意料之中者有之,覺得無所謂者有之,趕緊搬家者有之。其中Feedly恐怕是最大的受益者(?)

不過有點傷心的是,我覺得 Google 這幾年已經停止創新,以前每推出一個產品都是讓人搶著試用,都是令人驚豔,也常常都不是為了營利。
但是近年的很多產品,開始複製他人的成品或是一切向錢看,例如 Google+ 模仿自 Facebook,例如 Google Reader 因為不賺錢而趕緊收掉。

最後 Google 會不會龐大到老態龍鍾,就像微軟那樣逐漸沒落呢?

霍炬:Google的社会化梦想与Reader

2013年2月19日 星期二

Google帳號的年齡限制

因為我們學校學生帳號是使用 Google apps 架設,包括查詢成績,我透過 OpenId 的方式設計程式,讓學生登入查詢。

但最近有少數學生反應,他們的帳號被鎖住了,原因是因為Google帳戶有年齡限制,超過13歲不得使用,這個規定在每個國家略有不同。而且Google很微妙的加註了一行:Google Apps for Education 網域中的使用者可能不受上述帳戶年齡規定的限制。真是把我搞得好亂啊~

我們學校一部分的國中一年級學生小於13歲,但我實在不願意叫他們謊報年齡。(不想教學生說謊,但網路世界個人資料也是需要保護的,這兩者一直都很矛盾的存在。) 請繼續閱讀全文

[[MORE]]

Google在某些應用需要輸入生日,例如Youtube,主要是某些18+的影片,不要讓不符年齡的人觀賞。Google+未滿13歲也是不得使用,這是為了保護兒童上網社交的安全。但一旦輸入生日,而且未滿13歲的話,就會被強行鎖住帳號,一個月後刪除。看這裡有好多受害者,有的甚至是公司帳號,使用公司成立日期作為生日,結果被刪除帳號欲哭無淚。

但如果是輸錯生日,在被停權的一個月之內,倒也有救回的方式

  1. 透過郵件或傳真寄送您親筆簽名的申請表格,並附上政府核發的身分證件的影本,影本上必須有您的出生日期,或是

  2. 上載政府核發的身分證件的電子圖檔,圖檔上必須有您的出生日期,或是

  3. 使用有效的信用卡支付一筆小額 ($0.30 美元) 交易。


如果父母要幫小孩恢復帳號,看起來是刷信用卡比較快。

因為恢復帳號有其時效性,時間一到,帳號刪除就是刪除了,就算你準備完整的資料證明身份已滿13歲也沒有用,所以一旦被鎖住,誤必要第一時間處理。Google也有優先帳號救援服務,不過當然要另外收錢,也不確定是不是能適用在年齡驗證這一關。

回到 Google apps for Education 的狀況,如果是管理員身份,能不能去修正學生的生日設定呢?預設是不行的,這是屬於Google+的付費功能。也就是說,如果你的網域有這個需要,也是要花一點錢(好像Google越來越多東西需要花錢?)。

But!人生最神奇的就是這個But!目前 Google apps for Education 可以「試用付費功能」,一旦你從設定頁面,開啟Google+設定,設定「試用付費功能」之後,就可以搜尋學生帳號,再幫學生修改生日。

Google所言,2013年底前都可以試用Google+付費功能,這些功能其中就有一條稱為「修正使用者註冊時不小心輸錯的年齡」。

2012年8月15日 星期三

使用Google Apps Script讀取試算表中的資料

最近在研究 Google Apps Script,這實在是很有趣的新玩具。
如果想要透過 Script 去讀取雲端硬碟中試算表的資料,並透過HTML的網頁印出在瀏覽器上,在 Google Apps Script 的說明頁面上,有關於 HTML service 的說明,也在 Pulling Data into a Template 這個 section 提供了一個範例。但這個範例卻不夠完整,初入門的人(就是指我)會搞得一團霧水,又沒辦法正常執行程式。

我將在這篇文章中,將說明文件中的範例程式,一步一步說明建置方法。

[[MORE]]

首先從雲端硬碟中,找出想要讀取資料的試算表,將想要讀取的範圍進行命名。

下拉式選單「資料」,「已命名和受保護的範圍」,「新增範圍」,給個名稱,例如 NamedRange1。

接下來必須獲得該文件的「key」,可以直接從該文件的網址(url)獲得,例如網址是

http://spreadsheets1.google.com/ccc?key=tvGWKARIojJaOIGNX7C4qyg&hl=en#gid=0

那麼 key 就是 tvGWKARIojJaOIGNX7C4qyg

總之,我們要存取資料,總是要告訴程式說,我們要存取的資料位於何處。而 Google 透過 key 取得文件位置,再透過範圍名稱取得資料範圍。

接下來在雲端硬碟中,新增一個「指令碼」文件。
該文件中必須有兩個檔案,一個是副檔名 .gs 的程式碼,另一個則需新增一個 .html 的網頁範本。

.gs 的程式碼範例如下:

[codebox 1]

.html 的範例如下:

[codebox 2]

然後去設定發布版本

「檔案」、「管理版本」

然後進行發布

「發布」、「佈署為網路應用程式」


這樣就可以了!

2012年8月14日 星期二

使用 Python 管理 Google Apps

這是上一篇文章的續集:Google Apps 遠端管理,透過 Provisioning API

首先必須抓 Python 的 Google Data APIs 的 client librarys
[[MORE]]
下載解壓縮。

然後必須針對 ssl 連線會出錯的問題進行 patch。patch 檔在這篇討論的 comment 3

patch gdata-2.0.17/src/gdata/client.py < issue-416-hotfix.patch

然後進行安裝。

sudo python setup.py install

測試可以用這個指令:

python gdata-2.0.17/samples/apps/userprovisioning_quick_start_example.py python userprovisioning_quick_start_example.py --client_id="1234567890.apps.googleusercontent.com" --client_secret "lCdEIxxxxxxxxxxvbTjV" --domain="shsh.ylc.edu.tw"


client_id 跟 client_secret 請先自行取得,取得方式在前文中已有說明。

Google Apps 遠端管理,透過 Provisioning API

自己撰寫程式從遠端管理 Google Apps,必須透過 Provisioning API 。

啟用 API 存取的方法如下:

  • 登入您的管理控制台。

  • 按一下 [網域設定] > [使用者設定]。

  • 如要使用 Provisioning API:勾選 [啟用 Provisioning API] 旁的方塊。

  • 按一下 [儲存變更]。


[[MORE]]
接下來你要選一種慣用的程式語言,用來呼叫 Provisioning API。
語言包括 PHP、Python、Java、.Net C#。
這裡有非常多 Provisioning API 的呼叫範例:Google Apps Provisioning API

目前 PHP 需要搭配 ZendFramework,不過不知為何,我在 FreeBSD 9 (32/64 bit) 中執行會一直發生 segment fault。之前在 FreeBSD 8 上則很正常。

使用 Python 的sample呼叫某些 API,則會要求你輸入 client id 及 client secret。
取得的方法是到 Google APIs Console 先註冊一個 Project。這個其實就是透過 OAuth 在沒有個別使用者的帳號密碼的情況下,存取他們某些特定的資料,例如通訊錄等。Google 為了避免濫用,這些存取是有數量限制的,如果要大量使用頻寬,則必須付費。
在 Google APIs Console 裡面,一個 Project 最多可以設定 7 個 client IDs。

如果只是要做一些比較簡單的應用,例如寄信給資料表中的某些人,在信中使用特定的稱呼(例如小隆先生您好),而不像寄發大量廣告信,則可以有更簡單的方法。即是在 Google 雲端硬碟中,撰寫 Google Scripts。這些 Google Scripts 是使用 JavaScript。

在這裡有官方所提供的許多範例及參考文件:
Google Apps Platform

2012年6月5日 星期二

Dev C++ 的替代方案

之前有提過,應該可以多利用現代的 IDE (例如 Visual C++) 來進行程式教學。不過有時候為了避免其他因素干擾,只想讓學生學習 C 語言的邏輯的話,其實 Dev C++ 還有後代正在更新。

Dev C++ 官網上的版本 4.9.9.2 已經很多很多年沒有更新了,而且最多只支援到 Windows XP,如果勉強裝到 Windows 7 上會有不少問題要克服。

這時可以考慮改用 Orwell Dev-C++ (目前最新版本 5.2.0.2)
http://orwellengine.blogspot.com/

或是 wxDev-C++ (目前版號 7.4.2.542)
http://wxdsgn.sourceforge.net/

2012年5月9日 星期三

Ubuntu 12.04 下安裝 VMware Workstation 8.0.3 Player 4.0.3

在 Ubuntu 12.04 下安裝 VMware Workstation 8.0.3 或 VMware Player 4.0.3,可能會需要重新安裝核心模組。(rebuild kernel module)
可是通常在安裝到 vmnet 這模組會失敗。(或者其他的模組失敗)

這時可以用一個知名的補釘程式處理:
vmware workstation 8.0.2 / player 4.0.2 fix for linux 3.2+

tar xvf vmware802fixlinux320.tar.gz
修改 patch-modules_3.2.0.sh
將 vmreqver=8.0.2 改成 vmreqver=8.0.3
將 plreqver=4.0.2 改成 plreqver=4.0.3
存檔後執行 sudo sh patch-modules_3.2.0.sh

但如果這麼做出現錯誤訊息:
patch-modules_3.2.0.sh: 27: [: player4.0.2: unexpected operator
patch-modules_3.2.0.sh: 28: [: player4.0.2: unexpected operator
Sorry, this script is only for VMWare WorkStation 8.0.3 or VMWare Player 4.0.3. Exiting

接下來就要手動打補釘了,請先 su - 或者 sudo bash 變身成 root。

cd /usr/lib/vmware/modules/source
解壓縮 source modules
tar xvf vmnet.tar
這時候會解開許多檔案在 vmnet-only 這個資料夾中

假設你將補釘檔放在 ~/Downloads/vmware3.2.0.patch
patch -p1 < ~/Downloads/vmware3.2.0.patch

這樣就手動打完補釘了。接下來我們要重新將這些檔案壓縮回原來的包裹
mv vmnet.tar vmnet.bak.tar ; tar cvf vmnet.tar vmnet-only/

重新執行 VMware Workstation 或是 Player 即可順利重編核心模組。[1][2]

2012年4月27日 星期五

Google Drive for Google Apps for your domain

經過許多年的謠言,網路龍頭 Google 終於推出了雲端硬碟 Google Drive
對於使用方式與介紹,已經有很多人寫了,在此不必多言。
可以看這裡的介紹:電腦玩物 Google Drive 的介紹

這裡主要補充一個重點,就是如果您使用 Google Apps 管理自己的 domain,也想要使用雲端硬碟,有幾個需要注意的地方。

如果您登入雲端硬碟頁面,他出現:「您的網域 尚未啟用 Google 雲端硬碟。」
必須由 Google Apps 管理介面進入,「網域設定」頁面的「一般」設定。

在「新使用者功能」 選 「快速發布」 (預設應該是定期發布)
在「新服務」 選 「自動」 (另一個選項是手動)。

在這裡儲存設定後,重新整理 Google Drive 的頁面,可以發現訊息變成了:
「Google 雲端硬碟尚未準備就緒」,點選「通知我」

然後使用者點「通知我」後,過一段時間就可以收到啟用通知了。
這麼耗頻寬的服務,逐步開放也是很合理的,不然一下子負荷不了,大家都別玩囉~

2012年2月16日 星期四

2012年1月2日 星期一

ASP.NET 發現重大資安弱點影響範圍涵蓋 ASP.NET 1.1 ~ 4.0

...由於這類攻擊手法已於 2011-12-28 在德國的 Chaos Communication Congress 駭客年會中被公開,研究員 Julian Wälde 與 Alexander Klink 在現場展示如何透過一個自訂的表單攻擊目前市面上多個知名的 網站應用程式框架 (Web Application Frameworks),其中包括 PHP 4, PHP 5, Java / JSP, Apache Tomcat, Jetty, ASP.NET, Python, v8, … 等,他可以利用極少的 HTTP Requests 癱瘓現有的網站伺服器,而且不僅僅是 ASP.NET 可能受害,許多其他 Web 框架依然無法倖免於難!...

請大家盡快更新系統囉!

延伸閱讀:ASP.NET 發現重大資安弱點影響範圍涵蓋 ASP.NET 1.1 ~ 4.0

2011年12月6日 星期二

Linux 下的多頁列印

在 Windows 下不用說,fineprint 是節省紙張的好工具,很多年前我就有在用他節省地球的資源,因為他可以把很多頁的文件列印在同一頁上,甚至變成雙面,達到紙張的最佳利用。

但是現在大多數時間使用 ubuntu,其實也有類似的工具,不過要下一點指令。psnup 這個小工具可以使用指令列命令,將 ps 檔案轉成另一個多頁的 ps 檔。

所以如果有其他格式的文件,需要先匯出成 pdf 檔,再將 pdf 轉成 ps 檔。


  1. pdf 轉成 ps: pdftops input.pdf output.ps

  2. ps 轉成四頁: psnup -4 -d1 output.ps > output4.ps (-d表示加上邊框)

2011年11月29日 星期二

Google Apps 對於 openid 的支援

我在前文中提到,可以使用 php openid library 在自己的網站上作 google 帳號的身份驗證。不過我自己實作的結果,發現 Google Apps For Education 的帳號並沒有辦法像 gmail 帳號那樣可以直接拿來作 openid 的驗證。

原來還需要管理者進行一個權限的開放,開放權限的網址在後台 cpanel 中:

(請把 your-domain 換成自己的網域)
http://www.google.com/a/cpanel/your-domain/SetupIdp.

參考資料:

2011年11月6日 星期日

微軟發布惡意軟體 Duqu 處理方案

這次是透過 TrueType 字型引擎漏洞進行入侵,而且是各個 Windows 版本,且是 kernel mode 層級的漏洞,顯然會引起大風波啊~

微軟發布惡意軟體 Duqu 處理方案,但仍有更根本的問題要解決...

更新 Ubuntu 11.10 後,開機出現黑畫面的解決辦法

小弟在更新到 Ubuntu 11.10 之後,開機畫面一片漆黑,啥都看不到。但根據經驗判斷,電腦有開機完成,也就是只是畫面看不到,排除是硬體的問題之後,開始尋找解決方法。

小弟的電腦螢幕是奇美 1440x900 的 19 吋寬螢幕,這個尺寸的解析度在 Linux 桌面似乎常被回報有問題,尤其是配上較舊的顯示卡,只要顯示的解析度不在 1440x900 常常就會看不到畫面了。

開機的黑畫面,分成兩個部份處理。一個是 grub 的開機畫面,一個是 Ubuntu 11.10 本身的 bug。
[[MORE]]
一、修正 grub 的開機畫面 [1][2][3*][4*]

使用 LiveCD 開機,進入硬碟中修改這個檔案 /etc/default/grub (記得先備份)
修改這一行(這個問題應該是 nVidia 顯示卡的解法):
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"

並且新增這一行:
GRUB_GFXPAYLOAD_LINUX=1440x900
儲存並且更新 grub,注意 /dev/sda1 是自己的硬碟,請依現實狀況進行修改。

sudo mount /dev/sda1 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo chroot /mnt
sudo update-grub



二、 Ubuntu 11.10 本身的 bug

可以在開機出現黑畫面後,按 Ctrl-Alt-F1 進入命令列模式。

Upgrade to Ubuntu 11.10 problem: Waiting for network configuration then black screen solution
Hit Ctrl+Alt+F1 at the blank screen to get you to a non-X terminal (tty1)
Login in with your username and password
Change to root with: sudo -i and enter your password
mkdir -p /run /run/lock
rm -rf /var/run /var/lock
ln -s /run /var
ln -s /run/lock /var
reboot



三、其他修改 Xorg 解析度的方法:[1][2]

可以在開機出現黑畫面後,按 Ctrl-Alt-F1 進入命令列模式。
用 gtf 1440 900 75 得到 modeline 的寫法
修改 /etc/X11/xorg.conf
sudo dpkg-reconfigure xserver-xorg 更新設定

2011年11月1日 星期二

駭客為了救出同伴,向墨西哥黑道宣戰

「知名駭客組織 - Anonymous,為了救出被墨西哥毒梟 Zetas 集團所綁架的夥伴,拍了一段影片向黑道宣戰,要求對方釋放人質,不然會11/5以激烈的手段來報復!」

讓我聯想到漫畫「血色星期一」第二部的劇情,精明的駭客可能不需槍砲彈藥,但發揮的威力更為強大。不過這個組織有沒有這個實力可以挑戰整個黑幫,而釋放回來的人質是不是還能活著,都是個問號啊~

槍砲與鍵鼠之戰的序幕 - 駭客為了救出同伴,向墨西哥黑道宣戰

ABS自動運算程式

ABS 全名是「中華適應行為量表」。由於小弟最近轉到特教組,所以反而比較常接觸特教領域的東西。
這個小程式我寫出來提供給特教老師,希望可以派上用場。

但是目前還是鱉腳程式,主要是因為資料不齊的關係,就等好心人跳出來幫忙了!

程式介紹與載點