星球

Blog:凍仁的 Ubuntu 筆記


最後更新: 2013/1/29 23:06:00
RSS | RDF | ATOM

行事曆 (Calendar) on Drupal 7

2013/1/29 23:06:00 | 凍仁的 Ubuntu 筆記
先前在建置某網站時曾提過要有行事曆,也想過直接嵌入 Google Calendar 的方案,但對某些使用者而言並不友善,所幸該網站凍仁是建置在 Drupal 上的,只需將 Calendar 模組設定好即可,毋需再重新造輪子了。

套用 Corolla 主題的迷你行事曆 (min-calendar)。

# 若要使用 Calendar 模組記得要連相依的 Date 及 Views 兩模組也一同補上。

1. 安裝相關模組


1. 安裝 Calendar 模組。
[ jonny@squeeze ~ ]
$ sudo drush dl calendar [Enter]
Project calendar (7.x-3.4) downloaded to /var/www/drupal/sites/all/modules/calendar.

2. 安裝 Date 模組。
[ jonny@squeeze ~ ]
$ sudo drush dl date [Enter]
Project date (7.x-2.6) downloaded to /var/www/drupal/sites/all/modules/date. [success]
Project date contains 11 modules: date_migrate_example, date_migrate, date_views, date_repeat_field, date_repeat, date_popup, date_api,
date_tools, date_context, date_all_day, date.

3. 安裝 Date Popup Authored 模組。
[ jonny@squeeze ~ ]
$ sudo drush dl date_popup_authored [Enter]
Project date_popup_authored (7.x-1.1) downloaded to /var/www/drupal/sites/all/modules/date_popup_authored.

4. 啟用 Calendar 模組。
[ jonny@squeeze ~ ]
$ sudo drush en calendar [Enter]

5. 啟用 Date Popup Authored 模組。
[ jonny@squeeze ~ ]
$ sudo drush en date_popup_authored [Enter]
The following extensions will be enabled: date_popup_authored, date_popup
Do you really want to continue? (y/n): y
date_popup was enabled successfully.
date_popup_authored was enabled successfully.

2. Calendar 應用


2.1. 新增「以建立日期為基準」的 Calendar View


若今天是想讓所有的文章 (node) 依造建立的時間點顯示在行事曆上,可以使用「A calendar view of the 'created' field in the 'node' base table.」,完成後會如 2.1.6 一般,此方案適合只需紀錄單一時間點的網站,例如:部落格、新聞、雜誌... 等等。

2.1.1. 新增 Calendar

1. 進入 Views 介面:首頁 » 管理 » 架構 » Views (http://example.tw/admin/structure/views)。

2. 點選 Add view from template
(http://example.tw/admin/structure/views/add-template)。

3. 點選「A calendar view of the 'created' field in the 'node' base table.」一項的 add

4. 設定 Calendar 名稱。

5. 點選 儲存 寫入後,再點選 view month 檢視成果。

6. View: Calendar 新增完成。

2.1.2. 新增迷你行事曆 (mini-Calendar) 區塊 (block)

1. 進入區塊介面:首頁 » 管理 » 架構 (http://example.tw/admin/structure/block)。

2. 將「View Calendar: Block」設定至首側欄。

3. View: Calendar: Block 設定完成。

2.1.3. 修改星期翻譯

相信不少伙伴都發現上方的範例都有些小缺陷,那就是週日、一、五及六的日期怪怪的,這時只需自行改翻譯就可解決此問題。
  • 週曰
  • 週一
  • 週五
  • 週六

1. 進入翻譯介面:首頁 » 管理 » 設定 » 地區與語言 » 介面翻譯 (http://example.tw/admin/config/regional/translate/translate)。

2. 搜尋週五並編輯 Fri。

3. 手動更換為

4. 修改後的 View: Calendar

5. 修改後的 View: Calendar: Block

2.2. 新增「有事件起迄為基準」的 Calendar View


若今天是想表示某個事件 (Event) 且擁有某範圍的時間點,則可以使用「A calendar view of the 'field_event_date' field in the 'node' base table.」,好比 Google 行事曆般可顯示範圍的事件。

2.2.1. 新增內容類型 Event

1. 進入內容類型介面:首頁 » 管理 » 架構 » 內容類型 (http://example.tw/admin/structure/types)。

2. 點選 新增內容類型

3. 設定 Event 內容類型的名稱 (Title)。

4. 管理 Event 欄位。

5. 新增 Event Date 欄位,切忌 機器可讀名稱 (Machine Name) 不可重復。

6. 進入 Event Date 欄位設定,並將「Collect an end date」一項打勾 。

7. 更改欄位順序並點選 儲存

2.2.2. 新增 Event 內容類型

1. 進入內容介面:首頁 » 管理 (http://example.tw/admin/content)。

2. 新增內容。

3. 內容類型選擇 Event。

4. 新增有範圍的 Event。

2.2.3. 新增 Calendar Event

1. 進入 Views 介面:首頁 » 管理 » 架構 » Views (http://example.tw/admin/structure/views)。

2. 點選 Add view from template
(http://example.tw/admin/structure/views/add-template)。

3. 點選「A calendar view of the 'field_event_date_test' field in the 'node' base table.」一項的 add

4. 設定 Calendar Event 名稱。

5. 點選 儲存 寫入後,再點選 view month 檢視成果。

6. View: Calendar Event 新增完成。

以上是凍仁對於 Calendar 模組較常使用的兩種應用,希望能幫得上大家。

相關連結:
Calendar Block | drupal.org
Pretty Calendar | drupal.org
Drupal Calendar Setup on Vimeo
How to Create a Mini Calendar in Drupal | eHow.com
資料來源:
Drupal + Calendar 讓網站擁有行事曆功能 - 玩物尚誌 by lyhcode
Build an Event Calendar in Drupal - slideshare

邁向企鵝畫家的第一步

2013/1/22 23:08:00 | 凍仁的 Ubuntu 筆記
近來對 Ubuntu 的熱情漸漸的消了,一來是繼續關注下去似乎賺不太到錢,由其是在南部,二來是沒幾家公司有在用 Ubuntu,作了四年的夢也是該醒了。

「不如先圓其他的夢吧」突如其然的聲音這麼告訴凍仁,是該先圓圓塗鴉的夢了,每日一張,期待有召一日能畫出屬於凍仁的四格漫畫,當然主角會是這隻 Tux-Z 喔!

凍仁的第一張手稿。

一路上得感謝 Vivian Chang, Violet 以及 雙關語手玩物的阿奇拉 三位前後繪製凍仁家的企鵝,在下才剛起步,這次不知要花多久,之前 Linux 的部份少說花了三年有呢

站內連結:
關於 Tux-Z

安裝 Toshiba Satellite C850 無線網卡驅動 on Ubuntu 12.04

2013/1/20 2:01:00 | 凍仁的 Ubuntu 筆記
昨日於 Drupal-TW 高雄小聚協助某位伙伴補完 rtl8723e 這張無線網卡 (WLAN, Wireless) 的驅動,在此分享一下,剛裝好 Ubuntu 後似乎會同時發生有線 (eth0)及無線 (wlan0) 網卡都無法使用的情形

凍仁當時的解法是先使用 Android 手機的「USB 數據連線」上網,若發現 Network manager (右上的網路管理員) 一直轉不停,可以先行停用它,並使用 dhclient usb0 來取得 IP。

1. 開啟終端機 (terminal)。

2. 更新 kernel。
[ jonny@precise ~ ]
$ sudo apt-get update; sudo apt-get upgrade linux-image-generic [Enter]

3. 重新開機,若早已使用最新的 kernel 請略過。
[ jonny@precise ~ ]
$ sudo shutdown -r now [Enter]

4. 安裝編譯相關套件。
[ jonny@precise ~ ]
$ sudo apt-get install build-essential linux-headers-generic linux-headers-`uname -r` [Enter]

5. 下載驅動並解壓縮。
[ jonny@precise ~ ]
$ wget -O- http://dl.dropbox.com/u/57056576/DRIVERS/REALTEK/rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012.tar.gz | tar -xz [Enter]

6. 切換目錄。
[ jonny@precise ~ ]
$ cd rtl_92ce_92se_92de_8723ae_linux_mac80211_0006.0514.2012 [Enter]

7. 開始編譯並安裝。
[ jonny@precise ~ ]
$ sudo make && sudo make install [Enter]

8. 重新掛載 rtl8723e 模組。
[ jonny@precise ~ ]
$ sudo modprobe rtl8723e [Enter]

9. 開機自動掛載 rtl8723e 模組。
[ jonny@precise ~ ]
$ sudo su -c "echo rtl8723e >> /etc/modules" [Enter]

完成! 恭喜您,現在可以開始在 Ubuntu 使用無線網卡了!

站內連結:
Ubuntu 網路設定 - 於 DHCP 環境下重新取得 IP

相關連結:
[已解決] Toshiba C850 ether network controller 無法使用 [論壇 - Ubuntu硬體支援] | Ubuntu 正體中文站
[已解決] Toshiba C850 無線網卡驅動 [論壇 - Ubuntu硬體支援] | Ubuntu 正體中文站

資料來源:
drivers - Wireless card Realtek RTL8723AE-BT is not recognized - Ask Ubuntu #2

PHP: Commands out of sync; you can't run this command now

2013/1/15 15:23:00 | 凍仁的 Ubuntu 筆記
近日凍仁使用 PROCEDURE 及動態 LIMIT 改寫某 PHP 網站的列出最後 10 筆資料功能,套上新程式碼後,再持續送出 query 就會跳「 Commands out of sync; you can't run this command now」的錯誤訊息,其 MySQL 文件的解釋如下:

18.2.8 Commands out of sync in client 錯誤

如果你在你的客戶代碼中得到 Commands out of sync; You can't run this command now,你正在以錯誤的次序調用客戶函數!

這可能發生,例如,如果你正在使用 mysql_use_result() 並且在你已經調用了 mysql_free_result() 之前試圖執行新查詢。如果你在 mysql_use_result()或mysql_store_result() 之間試圖執行返回數據的 2 個查詢,它也可能發生。

最後試出來的解法是補個手動關閉連線的函式 mysql_close() 即可解決。
 1 <?php
2
3 # = 連結資料庫 =
4 $dbhost = "localhost"; #資料庫網址或IP
5 $dbusername = "db_user"; #資料庫帳號
6 $dbuserpassword = "db_pwd"; #資料庫密碼
7 $default_dbname = "db_name"; #資料庫名稱
8 $connection = mysql_connect($dbhost, $dbusername, $dbuserpassword) or die("無法連結資料庫!");
9 $db = mysql_select_db($default_dbname, $connection) or die("無法選擇資料庫");
10
11 mysql_query("SET NAMES 'UTF8'");
12 mysql_query("SET CHARACTER SET UTF8");
13 mysql_query("SET CHARACTER_SET_RESULTS=UTF8'");
14
15 # = Lab. =
16 $sql_last_10_sort="
17 DROP PROCEDURE IF EXISTS last_10_sort;
18
19 DELIMITER //
20
21 CREATE PROCEDURE last_10_sort()
22 BEGIN
23 DECLARE record_total, record_from int default 0;
24 SET @record_total = (select count(time) from tableA);
25 SET @record_from = (@record_total - 10);
26
27 if @record_total < 10 then
28 select
29 time,
30 round(((`rowsA` + `rowsB`) / (select `rowsC` from tableB where bid = '1') * 100), 2) as 'lab'
31 from tableA order by time limit 10;
32 else
33 prepare stmt_last_10_sort from
34 " . "select `time`, round(((`rowsA` + `rowsB`) / (select rowsC from tableB where bid = '1') * 100), 2) as 'lab' from tableA order by time limit ?, ?" . ";
35 EXECUTE stmt_last_10_sort USING @record_from, @record_total;
36 DEALLOCATE PREPARE stmt_last_10_sort;
37 end if;
38 END //
39 DELIMITER ;";
40 mysql_query($sql_last_10_sort);
41
42 $sql_last_10_sort_value="call last_10_sort();";
43 $result_last_10_sort_value = mysql_query($sql_last_10_sort_value) or die(mysql_error());
44
45 ......
46
47 mysql_close($connection);
48
49 ?>

[SQL on the Pastebin.com]


資料來源:
18.2.8 Commands out of sync in client錯誤 | MySQL 中文參考手冊
Commands out of sync; you can't run this command now - What's X- 點部落
php - Commands out of sync; you can't run this command now - Stack Overflow
PHP: mysqli::query - Manual

「高雄場-華碩平板系列體驗會」體驗續航,追求極致

2012/12/27 23:26:00 | 凍仁的 Ubuntu 筆記
很榮幸再次得到參加T客邦所舉辦的體驗會活動,這次體驗的機器是三台平板電腦分別是 Google Nexus 7, ASUS Transformer Pad (TF700) 以及 ASUS VivoTab (TF600)。

老實說凍仁這次是衝著 Nexus 7 報名此次的體驗會,身邊已有不少前輩入手它,加上國外已有熱心的伙伴將 Ubuntu 移植至上去,便宜又大碗的它就算哪天玩膩了還可以拿來跑 Ubuntu,說是物超所值也不為過。


由上而下依序為 Nexus 7, TF700, TF600。

1. 筆記整理


雖說本次體驗會的 Session 只比先前 Samsung Galaxy Note 2 體驗會 多一個主題,可硬體部份可是多了兩台,實在是有些消化不良,在繁忙之餘只好使用心智圖軟體來整理這次的筆記。


此心智圖使用 FreeMind 製作,附上 HTML 版連結。

2. 規格大亂鬥


以下為 Nexus 7, TF700, TF600 的規格比較表,建議依造其需求來採購,已達到最高的邊際效益。


Nexus 7 TF700T TF600
Operating System Android 4.1 / 4.2 Android 4.0 Windows RT
Office Home & Student 2013 RT Preview*
Display 7" WXGA (1280x800) Screen
IPS Panel
10 finger multi-touch support
10.1" WUXGA (1920x1200) Screen
Super IPS+
10 finger multi-touch support
10.1" WXGA (1366x768) Screen
Super IPS+
Multi-touch Support
CPU NVIDIA Tegra 3 Quad-Core @1.2Ghz NVIDIA Tegra 3 @1.6Ghz NVIDIA Tegra 3 @1.3Ghz)
Memory 1 GB 1 GB 2 GB
Storage 8GB/16GB/32GB *1 32GB / 64GB *1 EMMC + 8G life time ASUS Webstorage space *2 32GB/64GB eMMC *1
32GB life time ASUS Webstorage Space *2
Network Standard HSPA+ UL:21 Mbps/DL:5.76 Mbps
3G :
WCDMA :
850/900/2100
2G :
GSM : 850/900/1800/1900,
Not yet DC-HSPA+ UL:5.76 Mbps/DL:42 Mbps
Wireless Data Network WLAN 802.11 b/g/n @2.4GHz, Bluetooth V3.0 WLAN 802.11 b/g/n@2.4GHz
Bluetooth V3.0+EDR
WLAN 802.11 b/g/n @2.4GHz, Bluetooth 4.0
Camera 1.2 MP Front Camera 2 MP Front Camera
8 MP Rear Camera
Auto focus (rear) with Flash
BSI Sensor
5-element lens
2 MP Front Camera
8 MP Rear Camera
Auto focus (rear) with Flash
Audio unknown
High Quality Speaker
High Quality Mic2 MP Front Camera
8 MP Rear Camera
Auto focus (rear) with Flash
BSI Sensor
5-element lens
Stereo Speakers
Interface Headset Jack,
1x micro-USB, 2x Digital microphone,2x High Quality Speakers,
1x Docking PIN
Pad:
1 x 2-in-1 Audio Jack (Headphone / Mic-in)
1 x micro HDMI
1 x Micro SD Card Reader

Mobile Dock:
1 x USB2.0 port
1 x SD Card Reader
Pad:
1 x 2-in-1 Audio Jack (Headphone / Mic-in)
1 x micro HDMI
1 x Micro SD Card Reader (SDXC)

Mobile Dock:
1 x USB 2.0 port
Sensor G-Sensor, Light Sensor, Gyroscope,
E-compass, GPS, NFC, Hall Sensor
G-Sensor, Light Sensor, Gyroscope, E-compass, GPS G-Sensor, Light Sensor, Gyroscope, E-compass, NFC, GPS
Battery WiFi:9.5 hours, 4325mAh,*2
16Wh Li-polymer

3G:9 hours, 4325mAh,*3
16Wh Li-polymer
Pad Only:
9.5 hours; 25Wh Li-polymer Battery *3

Pad with Dock:
14 hours pad with dock; 25Wh(pad) + 19.5Wh(dock) Li-polymer Battery*3
Pad only:
9 hours; 25Wh Li-polymer Battery *3

Pad with Dock:
16 hours ; 25Wh(Pad) + 22Wh(Dock) Li-polymer Battery*3
Size 198.5 x 120 x 10.45 mm 263 x 180.8 x 8.5 mm 262.5 x 170.9 x 8.3 mm
Weight 340 g 598 g 525 g
Mobile Docking No
Dock only:
Dimensions: 263 x 180.8 x 8~10.4mm
Weight: 537g

Pad with dock:
Dimensions: 263 x 180.8 x 16.5~18.9mm
Weight: 1135g
Dock only:
Dimensions: 262.5mm(W) x 169.9mm(D) x 10.2(H)mm
Weight: 538g

Tab with Dock:
Dimensions: 262.5mm(W) x 170.9mm(D) x 18.7(H)mm
Weight: 1036g
Price NT$ 8,990
NT$ 20,900 NT$ 21,900
資料來源:ASUS (Global / English)

3. 活動心得


3.1. Nexus 7


相信這次體驗會有不少伙伴是為了這台 Nexus 7 而來的,一來是因為夠便宜,二來是規格足以應付日常使用,再加上小巧方便攜帶。



3.2. ASUS TF700 - Transformer Pad


在眾多平板的產品中,Samsung 選擇了觸控筆的路線,而 ASUS 則是往鍵盤發展,這點對凍仁而言是件好事,對一位 鍵盤愛好者 常需要輸入指令管理系統的人而言這真的是不可或缺的,如果可以再搭配個有小紅點的機械式鍵盤那該有多好!

體驗過程中,有發現到 TF700 在筆電模式 (Pad + Dock) 時,若 Pad 在上 Dock 在下會有 SD 卡不易取出的情形,這點應與為了人體工學而設計出來的幅度有關,只需闔上即可輕易取出。



3.3. ASUS TF600 - VivoTab


在具有生產力 (鍵盤) 的平板上搭載 Windows like 的作業系統似乎是件很棒的事情。平常外出、通勤可以使用 平板 動態磚 (Metro) 模式;回到辦公室後可切回 Windows 7 like 模式繼續辦公。比較可惜的是 Windows RT 是專屬 ARM 架構的作業系統,這代表著它不支援 x86 架構 (桌機、筆電) 的應用程式,需使用 ARM 編譯過的版本,這點 Microsoft 已設計出商城 (Store) 系統以便利使用者取得這些特殊的軟體。

可以知道的是,目前 Microsoft 早已推出 ARM 架構的 Office,相信這點可以大大的為 TF600 加分才是。



3.4. NVIDIA Tegra 3


體驗會當天接觸到的 Nexus 7, TF700, TF600 操作起來的感覺都不錯,在一個追求效能及續航力的現在 NVIDIA Tegra 3 所使用的 4-Plus-1 是個不錯的想法,除了會變頻的四顆核心以外,更增加了一顆低功耗的核心來達到真正的省電。

在影片播放的部份也因為 Tegra 3 支援硬體解碼的緣故,可省下原先看高畫質影片時的高功率輸出,與 Tegra 2 相比更能省下 60% 以上的電力,相信這對愛在平板上看影片的伙伴是一大福音。



最後基於效能、使用者體驗、作業系統、支持國貨 ... 種種原因,凍仁待的單位已將 TF700 列入明年度採購的機器,也就是說再過不久 就有機會 可以再次把玩 TF700 了!



同步發佈於 T 客邦 - T17 討論區PlurkFacebookGoogle+

延伸閱讀:
分清楚,別買錯了!Windows 8和Windows RT大不同 - Yahoo!奇摩新聞
Window RT平板啟動 ASUS Vivo Tab RT首發速看 - Mobile01 本站新聞
Windows 8 切換回舊桌面樣式的小技巧 | 硬是要學
NVIDIA 次代 Tegra 的 vSMP 架構,宛如應用處理器界的油電混合車 (製程錯誤修正) | 癮科技

相關連結:
華碩&NVIDIA 變形平板 台中、高雄深度體驗會花絮 | T客邦
搜尋:華碩平板系列體驗會 | T17 討論區

Drupal 7 – 內容管理系統 (CMS) 開發框架

2012/12/13 10:38:00 | 凍仁的 Ubuntu 筆記
Drupal 是什麼?

Drupal 是一個 PHP based 的內容管理系統 (CMS) 開發框架 (framework,也有人稱它是一種平台),但其實安裝 Drupal 後,只會得到「半成品」CMS,需要管理者「用力的」客製化後才能見到比較漂亮及完整的成品。

因為 Drupal 也算是個 CMS,因此常常被拿來跟 Joomla、WordPress、Plone 等 CMS 相比較,當然 Joomla 及 WordPress 安裝完後也需要 User 客製化一番,只是 Drupal 想要變的把戲比較多,所以比較麻煩一點,所以沒辦法定型的發展成針對某種應用的 CMS,所以大部份新手使用 Drupal 的感覺是 Drupal 很陽春或者很醜,至少不像 Joomla,安裝完就有個漂亮的網站及後台。

原著的理解是,Drupal 應該是給開發者使用的 CMS 框架,但又不那麼 Framework。原著刻板印象覺得真正的 Framework 比較像是 Cake 或 CodeIgniter 這種東西,不過 Drupal 應該也算是比較高階一點的 Framework 吧。從Drupal 5 到 Drupal 6,感覺上跨了一大步,而 Drupal 7 又再一次給人全新的感受...

» 全文檢視


資料來源:
Drupal 7 – 內容管理系統(CMS)開發框架 @ mr.mu

Defrag - 磁碟重組指令 on W2k8

2012/12/10 10:15:00 | 凍仁的 Ubuntu 筆記
基於維護上的方便凍仁在 Windows 2008 Server 裡會使用工作排程器來進行些例行性的維護工作 (例如:磁碟重組、掃毒...),在 Linux 裡我們可以使用 crontab,不過想使用工作排程器新增排程還是得搭配指令及對應的參數才行,而以下則是 Windows 內建的 Defrag.exe 相關指令。

1. 分析 C:。
C:\Users\Administrator> C:\Windows\System32\Defrag.exe C: -a [Enter]
Microsoft 磁碟重組工具
Copyright (c) 2007 Microsoft Corp.

在 (C:) 啟動 分析...


操作順利完成。

Post Defragmentation Report:

磁碟區資訊:
磁碟區大小 = 59.89 GB
可用空間 = 38.07 GB
分散空間總計 = 0%
最大可用空間大小 = 36.86 GB

注意: 分散程度統計資料中不包含大小超過 64MB 的檔案片段。

您不需重組此磁碟區。

2. 強制於 C: 執行磁碟重組。
C:\Users\Administrator> C:\Windows\System32\Defrag.exe C: -f [Enter]
Microsoft 磁碟重組工具
Copyright (c) 2007 Microsoft Corp.

在 (C:) 啟動 磁碟重組...


磁碟重組前報告:

磁碟區資訊:
磁碟區大小 = 59.89 GB
可用空間 = 38.07 GB
分散空間總計 = 0%
最大可用空間大小 = 36.86 GB

注意: 分散程度統計資料中不包含大小超過 64MB 的檔案片段。

3. 其他相關語法。
C:\Users\Administrator> C:\Windows\System32\Defrag.exe /help [Enter]
Microsoft 磁碟重組工具
Copyright (c) 2007 Microsoft Corp.

請指定要在其上執行操作的磁碟區。 (0x89000007)

描述:

尋找並合併本機磁碟區上的分散檔案,以
改進系統效能。

語法:

defrag | /C | /E [/H] [/M | [/U] [/V]]
defrag | /C | /E /A [/H] [/M | [/U] [/V]]
defrag | /C | /E /X [/H] [/M | [/U] [/V]]
defrag /T [/H] [/U] [/V]

參數:

值 描述

/A 在指定的磁碟區上執行分析。

/C 在所有磁碟區上執行操作。

/E 在指定磁碟區以外的所有磁碟區上執行操作。

/H 以標準優先順序執行操作 (預設為低)。

/M 在背景以平行方式在每一個磁碟區上執行操作。

/T 追蹤已在指定磁碟區上執行的操作。

/U 在畫面上顯示操作進度。

/V 列印詳細資訊輸出,包含分散程度統計資料。

/X 在指定的磁碟區上執行可用空間合併。

範例:

defrag C: /U /V
defrag C: D: /M
defrag C:\mountpoint /A /U
defrag /C /H /V

# [1]「De-fragmentation」 (反破碎,縮寫就是 Defrag),英文字義上跟「Re-combination」(重組合) 相同。

延伸閱讀:
你還需要磁碟重組嗎? | T客邦 - 我只推薦好東西
為什麼硬碟要重組?硬碟重組的好處、注意事項與實作 | T客邦

資料來源:
Windows Server 2003 磁碟重組工具排程

MySQL 語法匯整

2012/12/4 0:51:00 | 凍仁的 Ubuntu 筆記
接觸 MySQL 多年的凍仁一直以來都沒有好好的指令記完,一般都會使用 phpMyAdmin 這類的 GUI 來操作 MySQL,所以把常用的 select, insert, update, drop 背熟就偷笑了!可只有這些對凍仁而言是不夠的,當 GUI 失靈時還是得依賴指令來完成任務,再還未背熟之前就讓凍仁在自家基地放本小抄囉。

1. 基礎語法

操作功能 SQL 語法
說明
建立資料庫 create database 資料庫名稱;
列出所有資料庫 show databases;
刪除資料庫 drop database 資料庫名稱;
使用資料庫 use 資料庫名稱;
建立資料表 create table 資料表名稱(
sn integer auto_increment primary key,
name char(20),
mail char(50),
home char(50),
messages char(50)
);
常用資料庫資料型態
1. INT (整數)
2. CHAR (1~255字元字串)
3. VARCHAR (不超過255字元不定長度字串)
4. TEXT (不定長度字串最多65535字元)

列出資料表欄位資訊 describe 資料表名稱;
修改資料表欄位 alter table 資料表名稱
charange column 原來欄位名稱
新欄位名稱資料型態;
新增資料表欄位 alter table 資料表名稱 add column 欄位名稱 資料型態;
刪除資料表欄位 alter table 資料表名稱 drop column 欄位名稱;
刪除資料表 drop 資料表名稱;
插入欄位資料 insert into 資料表名稱(欄位1,欄位2,欄位3,欄位4, ...... 欄位N)
values('值1','值2','值3','值4', ...... '值N');
更新修改欄位資料 update 資料表名稱 set 欄位1='值1',欄位2='值2',欄位3='值3',... 欄位N='值N'
where 條件式 (例如 sn='5' 或 name='塔司尼' );
查詢單一欄位資料 select 欄位名 from 資料表名稱;
查詢多個欄位資料 select 欄位名, 欄位名, 欄位名 from 資料表名稱;
查詢欄位資料的唯一值 select distinct 欄位名 from 資料表名稱; 重複值只列一次
查詢所有欄位資料 select * from 資料表名稱;
條件式查詢 select * from 資料表名稱 where 條件式 (例如 sn='5'); (=, <, >, !=)
條件式查詢 and select * from 資料表名稱 where 條件式1 and 條件式2;
條件式查詢 or select * from 資料表名稱 where 條件式1 or 條件式2;
查詢某一範圍 between select * from 資料表名稱 where 欄位名 between 值1 and 值2 值為數字
查詢空值欄位的資料 select * from 資料表名稱 where 欄位名 is null not null
查詢特定筆數資料 select * from 資料表名稱 limit 8, 10; 第9筆開始選取10筆
查詢結果遞增排序 select * from 資料表名稱 order by 欄位名;
查詢結果遞減排序 select * from 資料表名稱 order by 欄位名 desc ;
查詢比對字串列出單一欄位 select 欄位名 from 資料表名稱 where 欄位名 like '%字串%';
查詢比對字串列出所有欄位 select * from 資料表名稱 where 欄位名 like '%字串%';
刪除條件值資料 delete from 資料表名稱 where 條件式 (例如 sn='5' 或 id='91001' );
刪除條件值資料 delete from 資料表名稱 where 條件式1
and
條件式2;
刪除條件值資料 delete from 資料表名稱 where 條件式1 or 條件式2;
比對刪除條件值資料 delete from 資料表名稱 where 欄位名 like '%字串%';

2. 進階語法

操作功能 SQL 語法
說明
列出正在執行的行程。 show processlist;

站內連結:
MySQL 大學筆記 on Windows XP

資料來源:
MySQL 基礎語法手冊 | InspireGate 派克空間

Git: 重新命名分支 (branch)

2012/11/29 9:02:00 | 凍仁的 Ubuntu 筆記
近來凍仁開始使用 Git 來管理些瑣碎的事情,不管是上班會用到的 code 還是自己的環境設定,也曾在前公司約 50 台的 Server 上實作 pull 同步 [1],但在大量使用 branch 的情況就很容易遇見命名衝突的問題。

[ jonny@precise ~ ]
$ git branch [Enter]
   dev
* master
在 branch 已有 dev 的情況下是無法建立 dev/hello 的。

其本機的 branch 要更名是很簡單的,但 remote (遠端) 的部份就棘手許多,而且與 remote branch 名稱重複時是無法 push 上去的,以下為凍仁實作過可行的解法,其原理就是先行將 remote branch 砍掉再上傳新的 branch。

1. 列出所有的 branch (local & remote)。
[ jonny@precise ~ ]
$ git branch -a [Enter]
   dev
* master
   origin/HEAD -> origin/master
   origin/dev
   origin/master


2. 重新命名本機 branch 前,記得 checkout 離預更名的 branch,此範例裡就是得 checkout 至 master。
[ jonny@precise ~ ]
$ git branch -m dev dev/hello [Enter]

3. 刪除遠端的 branch。
[ jonny@precise ~ ]
$ git push origin :dev [Enter]

4. 上傳本機的 branch 至遠端的 branch。
[ jonny@precise ~ ]
$ git push origin dev/hello [Enter]

5. 完成。
[ jonny@precise ~ ]
$ git branch -a [Enter]
   dev/hello
* master
   origin/HEAD -> origin/master
   origin/dev/hello
   origin/master



延伸閱讀:
[1] IBM solidDB 6.3 and IBM solidDB Universal Cache 6.3 Information Center
[Book] Unix 與 Linux 自動化管理

資料來源:
Renaming your 'master' branch

FATAL_ERROR with MOC on Ubuntu 12.04

2012/11/20 0:00:00 | 凍仁的 Ubuntu 筆記
一直以來凍仁都是使用 MOC [1] 這套純文字的音樂播放器在聽音樂,沒想到小巧又穩定的它也會 crash,看在此問題不難解決的份上凍仁就繼續安心使用它了。

MOC 正常執行畫面。

1. 執行 moc 時出現 FATAL_ERROR 的錯誤訊息,並提供刪除 pid 的解決方案。
[ jonny@precise ~ ]
$ mocp [Enter]
Running the server...

It seems that the server is already running with pid 3551.
If it is not true, remove the pid file (/home/jonny/.moc/pid) and try again.

FATAL_ERROR: Exiting!


FATAL_ERROR: Server exited!

2. 刪檔前先查看一下其內容。
[ jonny@precise ~ ]
$ cat ~/.moc/cache/pid [Enter]
3551

3. 刪除 pid。
[ jonny@precise ~ ]
$ rm ~/.moc/cache/pid [Enter]

4. 重新執行 moc。
[ jonny@precise ~ ]
$ mocp [Enter]

[1] moc 在 Debian 上的指令為 moc 而 Ubuntu 上則是使用 mocp。

相關連結:
FATAL_ERROR | MOC - music on console