2016年12月27日 星期二

[Startup] 如何設立一間有限公司?

  相信各位在創業的過程中一定會遇到設立公司的這道關卡。隨便上網搜尋一下,代辦費用最少也要兩千多元,創業維艱,任何的一筆開銷都要斤斤計較。因此,有無必要產生這筆開銷,就讓我們繼續看下去⋯⋯

設立公司到底難不難?答案是:一點也不!

在此為各位整理設立所需的步驟、資料、時間及費用,看完之後你會發現完完全全沒必要花錢請人代辦!當然,一秒鐘幾十萬上下的人不在此限!XD

STEP I 公司名稱及營業項目查詢

  台灣目前有將近七十萬間的公司行號,你所期待的公司名稱是否與這些已成立的公司行號重複,來這裡查就對惹!除了公司名稱外,你所設立的公司營業哪些項目也需要預查。究竟有哪些營業項目呢?這裡會告訴你答案!

花費時間:想查多久就多久!XD

STEP II 正式申請公司預查

  一旦你發現所期待的公司名稱尚未與目前將近七十萬間的公司行號重複,這時候就要透過正式的流程來保留你預計的公司名稱。

公司名稱及所營事業登預查核定書



花費時間:約 1~3 個工作天,費用:150 元+信用卡或銀行手續費(網路申辦)

STEP III 刻公司大小章

  確定可保留的公司名稱後,接著就要刻公司大小章啦!所謂的公司大小章是⋯⋯公司章(大章,例如:某某有限公司)以及負責人章(小章,例如:某某某)。這一對印鑑相當重要必須妥善保管,後續公司的設立與大小事務都要靠這兩顆印章呢!

花費時間:約 1~2 個小時,費用:250 元(各家收費標準不同,記得要向老闆殺價唷!)

STEP IV 開設公司籌備戶

  每一間公司都必須有自己的戶頭(廢話!),初期是讓股東們將公司的股款匯入至公司帳戶。當股款全數匯入至公司籌備戶的下一個工作日,必須前往籌備戶所在銀行申請「餘額證明」以利後續會計師進行「資本額簽核」的工作!

準備物品:公司大小章、公司名稱及所營事業登預查核定書
花費時間:約 2 個工作天,費用:50 元(申請餘額證明的手續費)

STEP V 會計師資本額簽核

  各位設立公司後不可或缺的好夥伴——會計師,在這個時後出場拉!資本額代表一間公司成立的時候多有錢!(逃~)當然這部分不是公司說的算,是需要會計師簽核政府才會買單的。目前台灣成立公司已無資本額限制,但是在商場走跳多多少少還是會看看這間公司有幾兩重!

準備物品:公司籌備戶餘額證明正本
     銀行存摺封面、印鑑頁、內頁含存款餘額影本
     公司名稱及所營事業登預查核定書
     負責人身分證影本

花費時間:約 3 個工作天,費用:可以多問問幾間會計師事務所!XD

STEP IV 設立公司

  由於本公司設立於台北市,因此設立公司必須前往台北市商業處進行登記!(當然,網路登記也行,不過需要比較長的處理時間)不得不推薦在台北市設立公司的好處:市政府相當貼心的把所有的流程以及必備文件都幫你整理在這裡

花費時間:約 1~2 小時(現場排隊花比較久的時間!囧),費用:1000 元



最後,恭喜各位完成有限公司的設立,晉升老闆一族囉!(菸⋯⋯)

2016年6月30日 星期四

[HTML 5] 如何在網頁中顯示 PDF 型式的檔案?

最近開發專案的過程中,需要將 PDF 型式的檔案顯示於網頁之中。經過一連串的搜尋,發現一個相當簡單的解決方法:利用 Embeddable Google Document Viewer

在要顯示 PDF 型式檔案的 HTML 頁面加入這麼一段程式碼

<iframe src="http://docs.google.com/gview?url=http://YOUR REFERENCE SITE/YOUR PDF FILE NAME.pdf&embedded=true" style="width:100%; height:100%" frameborder="0"></iframe>

Done and it's easy :D

2016年5月30日 星期一

[Facebook, HTML5] 分享至 FB 功能設定

原以為開發分享至 FB 會是相當繁瑣的一件事情,經過 google,沒想到竟是如此簡單!

STEP 1 設定分享內容文字

利用 The Open Graph protocol 設定分享的資訊。

<head>
    <!-- 分享至 FB 的標題 -->
    <metadata property="og:title" content="YOUR_TITLE" />
    <!-- 分享至 FB 的內容敘述 -->
    <metadata property="og:description" content="YOUR_DESCRIPTION" />
    <!-- 分享至 FB 的內容連結 -->
    <metadata property="og:url" content="YOUR_URL" />
    <!-- 分享至 FB 的圖片 -->
    <metadata property="og:image" content="YOUR_IMAGE_URL" />
    <metadata property="og:type" conetnet="website" />
</head>


STEP 2 加入分享至 FB 的連結

<a href="javascript: void(window.open('http://www.facebook.com/share.php?u='.concat(encodeURIComponent('YOUR_URL'))''))">分享至 FB</a>

設定完成,接著就分享內容至 FB 吧!XD

2016年5月26日 星期四

[Django, MySQL] MySQL 中文亂碼問題

為了廣大華人市場,製作中文網站勢在必行!不過卻經常遇到 MySQL 儲存中文資料遇到亂碼的問題,經過一番研究,在此紀錄完整的解決方案。

MySQL 遇到中文亂碼最主要的原因是 CHARACTER SET 不支援中文顯示!

解決這個問題的最佳方案為

設定 CHARACTER SET 為 UTF8,因為 UTF8 支援所有字符!

首先進到 MySQL,查看默認的編碼格式

mysql > show variables like "%char%";

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

我們可以發現,character_set_database 與 character_set_server 皆為 latin1 編碼。

透過下面指令,修改這兩個的預設編碼

mysql > set character_set_database = "utf8";
mysql > set character_set_server = "utf8";

修改後再次檢查編碼

mysql > show variables like "%char%";

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

全數編碼皆改為 UTF8。

到這裡如果已解決中文亂碼的問題,恭喜你!只不過,筆者如果重啟 Apache,會發現character_set_server 預設的編碼又變成 latin1。這時候只好從根本下手,修改 my.cnf 內的設定。

$ sudo vi /etc/mysql/my.cnf

1. 在 [client] 段落裡加入:

default-character-set=utf8

2. 在 [mysqld] 段落裡加入:

character-set-server=utf8
init-connect="SET NAMES utf8"
collation-server=utf8_unicode_ci

3. 在 [mysql] 段落裡加入:

default-character-set=utf8

存檔後重啟 MySQL: $ sudo service mysql restart

這樣就從根本解決 MySQL 中文顯示亂碼的問題囉~




當然,在建立 database 的時候別忘了將編碼設定為 UTF8 唷!XD

mysql > create database YOUR_DB default character set utf8;

2016年4月17日 星期日

[Django] 利用 Gmail 發送 email

由於專案上的功能,必須透過 Django 發送 email 給予前端使用者。不打算自行架設郵件伺服器的前提下,利用 Gmail 進行發送成為解決方案的首選!以下將介紹如何利用 Django + Gmail 發送郵件:

首先,對 Django settings 加入以下設定:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'YOUR GMAIL ACCOUNT'
EMAIL_HOST_PASSWORD = 'YOUR GMAIL PASSWORD'
EMAIL_USE_TLS = 'True'
EMAIL_POST = '587'


接著,就可以透過以下兩種不同程式寫法進行郵件的發送。

方法一:透過 send_mail() 發送

from django.core.mail import send_mail

send_mail('Subject here', 'Here is the message.', 'from@example.com', ['to@example.com'], fail_silently=False)


方法二:透過 EmailMessage 類別發送

from django.core.mail import EmailMessage

email = EmailMessage('Hello', 'Body goes here.', 'from@example', ['to@example.com', 'to2@example.com'], ['bcc@example.com'])

email.send()


就是這麼簡單即可透過 Django 發送 email 惹!

2016年3月31日 星期四

[Python] datetime.time 物件進行時間相加的問題筆記

最近在開發 Python 的時候,遇上一件相當惱人的事情,那就是‧‧‧

該如何對 datetime.time 物件進行時間相加的動作?


曾經嘗試過:

>>> datetime.time(1, 2, 3) + 1
TypeError: unsupported operand type(s) for +: 'datetime.time' and 'int'.

>>> datetime.time(1, 2, 3) + datetime.timedelta(0, 1)
TypeError: unsupported operand type(s) for +: 'datetime.time' and 'datetime.timedelta'

>>> datetime.time(1, 2, 3) + datetime.time(0, 0, 1)
TypeError: unsupported operand type(s) for +: 'datetime.time' and 'datetime.time'

正當困惑之時,經由谷歌大神指點,發現可以這麼做‧‧‧

1. 先把 datetime.time 轉為 datetime.datetime

>>> import datetime
>>> dt = datetime.datetime.combine(datetime.date.today(), datetime.time(1, 2, 3))

2. 再運用 datetime.timedelta 進行時間相加

>>> dt += datetime.timedelta(0, 1)

3. 最後,取得 datetime 物件中 time 的部分,即為所求。

>>> print dt.time()
01:02:04

2016年3月23日 星期三

[Python] os.path.join(path, *paths) 的問題筆記

今天在撰寫 Python os.path.join(path, *paths) 時遇到一個奇怪的問題:

不管如何 JOIN,所顯示的結果永遠是後面的路徑!


讓我們用下列程式碼做說明:

>>> import os
>>> a = 'path/to/a'
>>> b = '/path/to/b'
>>> print os.path.join(a, b)
/path/to/b


經過一段時間的實驗與偵錯,發現問題出在於 b = '/path/to/b'

原來,os.path.join(a, b) 的 b 不可接受 '/path/to/b' 的這種形式!

以下為實驗結果:

(1) 成功
>>> import os
>>> a = '/path/to/a'
>>> b = 'path/to/b'
>>> os.path.join(a, b)
/path/to/a/path/to/b


(2) 成功
>>> import os
>>> a = 'path/to/a/'
>>> b = 'path/to/b'
>>> os.path.join(a, b)
path/to/a/path/to/b


(3) 成功
>>> import os
>>> a = 'path/to/a'
>>> b = 'path/to/b/'
>>> os.path.join(a, b)
path/to/a/path/to/b/