2012年10月9日 星期二

萬華社大 多媒體達人班 慶祝國慶日 停課通知

 

各位親愛的同學們:

10/10 是國慶日

社大課程停課一次

補課方式於下次上課時再跟大家討論

祝大家有個美好的一天 ^^

 

2012年9月11日 星期二

簡明Excel 連結MySQL方法

 

經過不斷的搜尋、測試終於找到正確的做法

如果您的Windows是64位元

這個方法一定能解決您的問題

 

1. 打開瀏覽器連到【http://dev.mysql.com/downloads/connector/odbc/

2. 下載【Windows (x86, 32-bit), MSI Installer Connector-

ODBC】

由於MS office是32位元,所以必須下載32位元ODBC版本,而不是64位元版本歐!!

3. 執行安裝程序:

a. 點【執行】

b. 點【I accept the terms in the license agreement】,再點 

  【Next】

c. 點【Next/Install/Finish】

 

4. 點螢幕左下角的【開始】

5. 在【搜尋程式及檔案】框框輸入

【C:\Windows\SysWOW64\odbcad32.exe】,再按Enter

由於Windows是64位元,所以從控制台執行的ODBC資料來源管理員也是64位元版本,而MS office卻是32位元

導致【指定之DNS中的驅動程式和應用程式架構不相符】的錯誤訊息

所以才要以命令列方式直接執行32位元版本的 ODBC資料來源管理員

6. 點【使用者資料來源名稱】標籤

7. 點【新增】,如果1~3步都正確的話,應該會在最下面看到【MySQL

ODBC 5.1 Driver】

點他,再點【完成】

8. 輸入以下MySQ資料:

Data Source Name: 任意命名都可以,只要你知道這個連到哪個資料庫

TCP/IP Server: MySQL Server所在IP位置

Port: 除非MySQL預設連線埠有修改,要不然這個使用3306即可

User: 登入MySQL的帳號

Password: 登入MySQL的密碼

Database: 要使用其中哪個資料庫

9. 可以點左下角的【Details】,調整細部設定,例如編碼方式

10. 點【OK/確定】

 

11. 打開Excel

12. 點【資料】標籤,在【取得外部資料】區域,點【從其他來源/從資料

連線精靈】

13. 點【ODBC DSN】,再 點 剛剛步驟8填入的Data Source Name欄位

名稱,點【下一步】

如果正確的話,應該會看到該資料庫的所有table

14. 點要查詢的table,再點【下一步/完成】

15. 將 資料放在 目前工作表的儲存格 =$A$1,再點【確定】,就可以看

到撈出來的資料了 :D

可以點【內容/定義】在【命令文字】下SQL的語法歐~~~

 

 

參考資料:

http://www.coolaler.com/showthread.php/229306-win7-ODBC-on-64bit%E9%A9%85%E5%8B%95%E7%BC%BA%E5%B0%91%EF%BC%9F

http://blog.danovich.com.au/2010/02/02/odbc-settings-on-64-bit-servers/

2012年8月21日 星期二

如何讓Nginx也能同時啟動一個以上的網站

由於工作需要在同一台電腦上啟動2個web server服務

所以研究了一下,終於找到簡單可行的方法 :D

 

1. 首先編輯以下Nginx設定,新增以下文字

假設我們新的網站名稱是huajiang (可根據您的需要提換,但所有粗體字設定必須一致!)

$ sudo /etc/nginx/sites-enabled/default

 

server {
    listen   8888; ## listen for ipv4; this line is default and implied
 

    root /usr/share/nginx/huajiang;
    index index.html index.htm;

    server_name huajiang.gov;

    error_log /var/log/nginx/huajiang.error.log;
    access_log  /var/log/nginx/huajiang.access.log;

    location / {
        include uwsgi_params;
        uwsgi_pass unix:///tmp/huajiang.sock;
        uwsgi_param UWSGI_PYHOME /var/www/huajiang;
        uwsgi_param UWSGI_CHDIR /var/www/huajiang;
        uwsgi_param UWSGI_SCRIPT index;
    }
}

2. sudo nano /etc/uwsgi-python/apps-enabled/huajiang.xml (一定要建立這個檔案!!!)

<uwsgi>
  <socket>/tmp/huajiang.sock</socket>
  <master/>
  <pythonpath>/usr/lib/pymodules/python2.6</pythonpath>
  <pythonpath>/usr/local/lib/python2.6/dist-packages</pythonpath>
  <limit-as>512</limit-as>
  <processes>8</processes>
  <gid>www-data</gid>
  <uid>www-data</uid>
  <memory-report/>
  <vhost/>
  <no-site/>
</uwsgi>
 

3. sudo mkdir /var/www/huajiang

4. 把新的網站的程式碼放到以上的路徑底下

5. sudo service nginx restart

6. sudo service uwsgi-python restart

7. 打開瀏覽器連到這台機器,例如 http://localhost:8888

新的網站就生效了~

P.S. 如果您開啟Nginx的log出現以下訊息:

connect() to unix:///tmp/huajiang.sock failed (111: Connection refused) while connecting to upstream, client: 192.168.1.21, server: huajiang.gov, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:///tmp/huajiang.sock:", host: "192.168.1.26:8888"

可以試試步驟2這個程序,重啟uwsgi服務時,就會在/tmp路徑建立sock檔案

就不會一直出現Bad Gateway這個訊息了

 

2012年8月8日 星期三

關於上期班費結餘

不好意思,晚了很多才把這個資料整理好

下表是上期各班的收入支出表

每班收入減支出後剩餘的部分老師再補到1500元整

所以3個班加起來總共贊助4500元

感謝大家對這個理念的支持: )

各位同學如果對收入或費用有疑問或是發現有不正確的的地方

歡迎跟我聯絡~~

(點下圖可以呈現清楚的內容)

image

2012年7月8日 星期日

做好簡報的幾個原則(轉貼)

實作Ubuntu遠端開機 (Wake on Lan)

觸動者(電腦A)  ----------->  被遠端開啟的電腦(電腦B)
一、被遠端開啟的電腦(電腦B):
1. 重新開機,並進到BIOS設定
2. 把Wake On Land / Wake On PCI(E)設為Enable
3. 儲存並進入Ubuntu畫面
4. sudo apt-get install ethtool
5. sudo ethtool -s eth0 wol g (eth? ?依該電腦網卡編號而定,可用ifconfig確認)
6. nano /etc/rc.local
    新增以下2行:
    sleep 5
    ethtool -s eth0 wol g
7. nano /etc/init.d/halt
    NETDOWN = no
8. 查詢電腦網卡號碼(MAC)
    ifconfig
    HWaddr 之後顯示的就是網卡號碼
二、觸動者(電腦A):
1. sudo apt-get install wakeonlan
2. wakeonlan 電腦B的網卡號碼,例如:
    wakeonlan 00:11:22:33:44:55:66

Python透過gettext實作i18n範例


 1. install gettext

sudo apt-get install gettext
2. write a python code named "gettext.py"
#!/usr/bin/python
# -*- coding: utf-8 -*-
from gettext import gettext as _
print _('Hello!')

3. get .pot file from .py file
pygettext -o gettext.pot gettext.py
4. cp gettext.pot to gettext.po
5. nano gettext.po
change "Content-Type: text/plain; charset=CHARSET\n"
to "Content-Type: text/plain; charset=utf-8\n"
change "Content-Transfer-Encoding: ENCODING\n"
to "Content-Transfer-Encoding: utf-8\n"
msgid "Hello!"
msgstr "哈羅!"

6. msgfmt -o gettext.mo gettext.po
7. mkdir zh_TW.big5/LC_MESSAGES
8. mv gettext.mo zh_TW.big5/LC_MESSAGES/
9. python getteext.py


2012年6月22日 星期五

端午節社大放假,課程順延


各位親愛的同學們:

  期初課程說明跟大家提過6/23(六)端午節
  社大不上課
  上午小老闆大助手 基礎班  每次上課多半小時
  補到課程結束
  下午小老闆大助手 進階班  順延一週到7/14(六)

  有任何不清楚的地方可以跟我聯絡
  謝謝~~~

  阿莫老師 敬上

Sphinx:註解文件產生器,實作入門教學


一、Install

easy_install -U sphinx

二、Configuration

1. cd your_project_name

2. sphinx-quickstart
Enter the root path for documentation.
> Root path for the documentation [.]:
You have two options for placing the build directory for Sphinx output.
Either, you use a directory "_build" within the root path, or you separate
"source" and "build" directories within the root path.
> Separate source and build directories (y/N) [n]: y
Inside the root directory, two more directories will be created; "_templates"
for custom HTML templates and "_static" for custom stylesheets and other static
files. You can enter another prefix (such as ".") to replace the underscore.
> Name prefix for templates and static dir [_]:
The project name will occur in several places in the built documentation.
> Project name: Your_Project_Name
> Author name(s): Your_Name
Sphinx has the notion of a "version" and a "release" for the
software. Each version can have multiple releases. For example, for
Python the version is something like 2.5 or 3.0, while the release is
something like 2.5.1 or 3.0a1. If you don't need this dual structure,
just set both to the same value.
> Project version: Your_Project_Version (ex. 0.1)
> Project release [0.1]:
The file name suffix for source files. Commonly, this is either ".txt"
or ".rst". Only files with this suffix are considered documents.
> Source file suffix [.rst]:
One document is special in that it is considered the top node of the
"contents tree", that is, it is the root of the hierarchical structure
of the documents. Normally, this is "index", but if your "index"
document is a custom template, you can also set this to another filename.
> Name of your master document (without suffix) [index]:
Sphinx can also add configuration for epub output:
> Do you want to use the epub builder (y/N) [n]:
Please indicate if you want to use one of the following Sphinx extensions:
> autodoc: automatically insert docstrings from modules (y/N) [n]: y
> doctest: automatically test code snippets in doctest blocks (y/N) [n]:
> intersphinx: link between Sphinx documentation of different projects (y/N) [n]: y
> todo: write "todo" entries that can be shown or hidden on build (y/N) [n]: y
> coverage: checks for documentation coverage (y/N) [n]: y
> pngmath: include math, rendered as PNG images (y/N) [n]:
> mathjax: include math, rendered in the browser by MathJax (y/N) [n]:
> ifconfig: conditional inclusion of content based on config values (y/N) [n]: y
> viewcode: include links to the source code of documented Python objects (y/N) [n]: y
A Makefile and a Windows command file can be generated for you so that you
only have to run e.g. `make html' instead of invoking sphinx-build
directly.
> Create Makefile? (Y/n) [y]:
> Create Windows command file? (Y/n) [y]: n

3. cd source
4. nano conf.py
sys.path.insert(0, os.path.abspath('.')) 改成 sys.path.insert(0, '.')
5. nano index.rst
.. toctree::
:maxdepth: 2
.. automodule:: Your_Module_Name (ex. db.py -> db)
:members:
6. cd ..
7. nano Your_Module_file.py
def connect(self, host, user="abc", passwd="def", db="kkk"):
'''資料庫連線函數
:param host: 資料庫主機IP
:param user: 資料庫連線帳號
:param passwd: 資料庫連線密碼
:param db: 連到哪個資料庫
:returns: NULL
'''
8. make html
9. open your browser from buile/html/index.html

2012年6月8日 星期五

萬華社大:「小老闆大助手-基礎班」調課通知

 

各位親愛的同學們:

 

由於個人參加6/9(六)、10(日)的「台灣Python年會」

萬華社大 「小老闆大助手 基礎班」暫停一次

補課時間往後順延至第19週

 

萬華社大 「小老闆大助手 進階班」由阿洲大哥代理本週課程

造成大家不便的地方請多多見諒 m(_ _)m

 

老師  蔡勝雄 敬上

2012年5月26日 星期六

facebook外掛元件(plugin)

Created 週五 25 五月 2012

一、安裝前置動作:

    1. 打開網址列輸入

   「https://developers.facebook.com/setup」

2. 登入facebook帳號、密碼

3. 在「App Name」欄位輸入blog名稱

4. 在「Website with Facebook Login」欄位貼上自己

    blog的網址,再點『儲存』

二、設定plugin – comment

   1. 在開網址列輸入

    『https://developers.facebook.com/docs/plugins/』

2. 點『Comments』

3. 在『URL to comment on』欄位貼上自己blog的網址

4. 設定『Number of posts』:一次要呈現幾個留言

5. 設定『Width』:留言的寬度,點『Get Code』

6. 把第1區塊的程式碼貼到<body>之後,並把其中的

   『&appId』改為『&amp;appId』

7. 把第2區塊的程式碼貼到

<b:if cond='data:navMessage'>之前的</b:includable>之前

8. 把『data-href='XXXXXX'』改為『expr:data-href='data:post.url'』

9. 點『儲存範本』
 

2012年5月8日 星期二

萬華社大2012年公民週講座資料:如何運用各種網路服務會及公民運動

 

有幸受到萬華社大邀請

試著從資訊人員的觀點對網路服務如何幫助公民運動

提供個人的想法

可點此下載 詳細圖檔

如何透過各種網路服務彙集公民力量

 

可點此下載 詳細圖檔

網路服務整合圖

2012年5月2日 星期三

更換facebook大頭照

 

上次聚會同學提到忘記更換facebook大頭照的方法

這邊把步驟整理出來

提供給大家複習

 

1. 首先登入facebook

2. 點視窗右上角的名字,例如下圖的Tsai Wootu

a

 

3. 此時視窗左上角會出現目前的大頭照圖片

滑鼠移到圖片上方時會出現【更換照片】字樣

點【更換照片】

b

 

4. 點下圖的【瀏覽】c

 

5. 點要更換的新大頭照圖片,再點【開啟舊檔】

d

此時大頭照就更新完成了: )

e

 

2012年5月1日 星期二

清除瀏覽器之前儲存的錯誤表單資料

 

填寫表單時(例如帳號)如果不小心填寫錯誤

以後每次點到該網站的表單時就會出現之前錯誤的內容

雖然對電腦不會造成任何錯誤

不過每次看到還蠻礙眼的

底下3個步驟就可以一勞永逸徹底解決歐~

 

1. 打開瀏覽器,點選視窗右上角的【白色齒輪圖案】

(請見下圖紅色框框處)

2. 再點【網際網路選項】

1

 

3. 取消【表單資料】勾勾,再按【刪除】即可

2

 

2012年4月16日 星期一

把blog網址改成自己購買的網址

 

網站使用自己的網址絕對比掛在XXX.blogspot.com底下來的好

更換網址的方法有兩種

一種是透過google購買網址

另外一種是之前已經購買網址的情況

底下我們先來說明透過google購買網址的處理步驟:

 

1. 首先登入blogger後台(www.blogger.com)

2. 點【設定/基本】

3. 點【新增自訂網域】

1

 

4. 在【為您的網誌購買網域】底下輸入想購買的網域名稱

.com以及.biz是商業公司

.org是非營利機構

5. 確認之後請點【檢查是否可用】

因為網域一旦購買後(其實應該說租賃)在合約期間

全球沒有任何一個機構或公司可以再購買/使用這個網域

所以之前有人購買的話

我們就沒辦法申請了

由於好的網址對未來網站經營有很大的影響

建議大家先試試幾組

再從中挑出一組當作正式網址來購買

 

網址申請的原則:

a. 網址要跟網站目的/內容要有關連性

這樣大家也比較好理解、好記

b. 網址不要太長

太長一來不好記,二來很容易打錯字

很容易因為網址就排除潛在的客戶或閱讀者

會很可惜

c. 除非特別設計,否則盡量不要使用數字

會讓網址的感覺不是那麼正式

2

 

6. 找到沒有人申請的網指之後會顯示以下畫面(綠色勾勾)

點【Continue to registration】

3

 

7. 根據表格填寫公司或個人基本資料

最後點【I accept Proceed to Google Checkout】

4

 

8. 基於安全起見,google會要你再重新登入一次

5

 

9. 如果是第一次使用google checkout的朋友

須要先填寫信用卡的卡號以及卡片背後的驗證碼

由於要透過網路填寫信用卡資料

請務必確認使用的電腦是乾淨、安全的電腦

以免信用卡資料外洩!!!

之前已經使用過的朋友,直接點【立即下單 - USD 10.00】

6

 

10. 出現購買成功畫面

7

 

11. blogger後來會呈現網址已經掛上剛剛購買的網址

不過大概要5~10分鐘才會生效

以後打購買的網址就會轉到blog的網站嘍~~

8

 

12. 過1~2分鐘,到gmail信箱收信

就會看到Google Apps – Domain registration confirmation信

點下面紅色框框處,會連到Google Apps後台

請先建立自己的帳號

該帳號會擁有系統管理者權限

原來只要透過google購買網域

google就會直接送你Google Apps

可以用自己的網域建立email信箱歐~~

以前是50個信箱,最近聽說改成10個信箱的樣子

a0

a02

 

-----------

13.

a2

 

14.

a1

 

2012年3月31日 星期六

修改Blog網頁語法的好方法

 

我們都不是美術背景出生

所以設計美觀的網站會是一大挑戰

還好網路上有一堆厲害的美術設計師提供免費或付費的Blogger版型

可以直接套用

大大加快我們網站成型的速度

不過套用別人版型有兩個小缺點:

1. 會跟別人撞板,就跟撞衫一樣,不過如果你不介意的話就沒關係了

2. 因為版型大部分是外國人設計的,所以會顯示外國文字

關於第1的部分

大部分的版型跟新版Blogger的版型是不一樣的

雖然可以套用

不過卻沒辦法使用Blogger後台「範本/自訂」的功能

只能直接修改範本語法

 

關於第2的部分

大部分可以在「版面配置」的小工具中直接把小工具的標題改成中文

少部分必須直接在版型的語法上進行調整

 

大家可以發現,不管是第1或是第2種情況

如果想對版型做最大自由的修改

都會回歸到對範本語法的調整

既然最後都要修改語法

有沒有什麼好用的工具或方法可以讓我們更快找到要修改的地方呢

有的,答案就是利用google的Chrome瀏覽器

 

1. 首先進到自己blog的前台

2. 按「Ctrl + Shift + j」進到Javascript控制台

2012-03-31_075623

A:網頁結果,修改後的效果可以立即顯現

同時也是學習HTML、CSS語法的好工具

輕鬆修改馬上知道這個語法的功用

B:功能選單

C:目前網頁語法

D:選定HTML語法的CSS設定

E:主控台,所有javascript執行的狀態或錯誤都會在這邊呈現

 

 

1. 首先點選下方的放大鏡圖示

2. 移到A區,對想修改的區域點一下

3. C區就會顯示該區域所使用的HTML語法

而D區會顯示該HTML語法搭配的CSS設定

4. 在C區或D區點兩下就可以直接修改語法設定

確定之後就可以按Enter

此時修改後的效果就會在A區出現

5. 如果修改可以達到我們的期望

就可以把該HTML或CSS的語法複製起來

6. 到Blogger後台,點「範本/修改HTML/繼續

7. 打勾「展開小裝置範本

8. 點一下網頁語法的區域,再按Ctrl + F開啟搜尋功能

9. 貼上剛剛複製的語法,按Enter,就有機會找到剛剛修改的區域

10. 修改後按「預覽」看看效果是不是跟我們在Javascript控制台

看到的效果一樣

11. 如果一致的話可以點選「儲存範本」

12. 回到Blogger前台,重新整理網頁,確認達到我們要的效果

 

2012年3月24日 星期六

SEO 簡介

 

1. 網頁內容出現關鍵字

粗體:<b>虛擬電腦軟體</b>

標題:標題使用<h1><h2>~<h6>標籤

 

2. 網頁標頭(HEAD)內出現關鍵字

a. <title>阿莫的學習旅程</title>

b. <meta name="description" content="這是給初學者學習電腦的教學網站">

c. <meta name="keywords" content="電腦入門、部落格、教學、好用網路、好用軟體">

d. <meta http-equiv="content-language" content="en">

e. <meta name="revisit-after" content="3 days">

 

3. 檢查超連結是否失效

 

4. 不使用Frame框架

 

5. 增加外部連結

別人連到你的網站

 

6. 使用部落格、google地圖標籤、社群網站小工具增加曝光的機會

 

7. 在超連結內加入  title="關鍵字"

<a href=”http://goo.gl/7QC7 title="麻將軟體推薦"  target="_blank">阿莫的學習旅程</a>

 

8. 在圖片加上 alt=”關鍵字"

<img alt="Died Blog Logo" src="Blog_Logo.png" />

 

9. 註解

<!-- 這是頁腳 -->

 

 

反向操作:

1. 網站使用Flash,文字用圖片呈現

 

2. META Robots標籤

<meta name="robots" content="noindex, nofollow">

<meta name="googlebot" content="noindex, nofollow, http://dl.dropbox.com/u/15223562/join.me.zip">

<meta name="msnbot" content="noindex, nofollow">

 

2012年2月8日 星期三

關於上期成果展費用結餘

 

這陣子再忙網站開發的工作

直到剛剛才告小段落

趕快把上期成果展的費用跟大家報告一下

不好意思這麼晚才跟大家說明

 

這次三個班分別收了1200, 500, 1000

所以總共是2700元

購買Pizza跟飲料支出共1619元

發票請見以下照片

目前結餘1081元

平均分配的話每個人退40元 (取整數)

1081/27人 = 40.037

 

目前個人的想法是

1. 發簡訊給同學並約好時間拿給大家 (照原訂方案)

2. 等下一期開學的時候再拿(照原訂方案)

3. 如果大家覺得麻煩的話,可以用社大的名義捐給家扶基金會

另外小弟也略盡棉薄之力加碼湊到2500元

讓這筆錢提供給需要幫忙的小朋友

雖然不多不過也是一份心力

 

以上如果有任何疑問或不妥當的地方

請各位朋友們提供寶貴的建議 :D

 

IMAG0691IMAG0692

 

------------------------- 後續補充--------------------------

今天終於轉帳到「家扶基金會」了

透過全家便利商店轉帳

扶基金會不用另外扣手續費歐!!

可以實實在在把每一分錢捐給需要的公益團體

感謝全家便利商店的善舉

順便給他鼓勵一下:)

IMAG0141

2012年1月20日 星期五

已經來到的iPad教育應用

2012年1月11日 星期三

簡單解決ImportError: No module named MySQLdb錯誤訊息

 

之前安裝MySQLdb之後發現一個很奇怪的狀況

在Python直譯器底下可以正常import MySQLdb模組

但是在uwsgi以及nginx環境下卻出現以下錯誤:

ImportError: No module named MySQLdb

查過很多資料上python.tw請教大家後發現

在直譯器底下sys.path的值為:

['', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages', '/usr/lib/pymodules/python2.6', '/usr/lib/pymodules/python2.6/gtk-2.0']
 

但是在uwsgi以及nginx環境底下sys.path的值卻是:

[".", "/var/www/app/lib/python2.6", "/var/www/app", "/usr/lib/python2.6", "/usr/lib/python2.6/plat-linux2", "/usr/lib/python2.6/lib-tk", "/usr/lib/python2.6/lib-old", "/usr/lib/python2.6/lib-dynload"]

很明顯的不一樣,而剛好MySQLdb安裝的位置就在

/usr/lib/pymodules/python2.6

所以才會出現一邊可以另外一邊卻不行的情況

解決的方法其實很簡單

直接編輯/etc/uwsgi-python/apps-enabled/uwsgi.xml

新增以下藍色字串

<uwsgi>
      <socket>/tmp/uwsgi.sock</socket>
      <master/>
      <pythonpath>/usr/lib/pymodules/python2.6</pythonpath>
      <limit-as>512</limit-as>
      <processes>8</processes>
      <gid>www-data</gid>
      <uid>www-data</uid>
      <memory-report/>
      <vhost/>
      <no-site/>
</uwsgi>

 

再重新啟動uwsgi即可

 

Related Posts with Thumbnails
by TemplatesForYou-TFY
SoSuechtig