發表文章

目前顯示的是有「develop」標籤的文章

新手工程師練習實作參考

圖片
### 新手工程師練習實作參考 * 因為要學習WEB寫程式的範圍很廣泛,所以這裡提供一個快速的實作目標,讓你快速通過新手村。 * 詳細可以參考這篇: https://github.com/goodjack/developer-roadmap-chinese web developer 但是看完後,多數人會直接放棄。 * 底下提供比較簡單開始的新手村,讓開發者可以自己練習。 * 指說明需要完成的元素,內容請自行想像與設計。當成一個屬於自己的作品呈現空間。 ### 使用純文字編輯器操作系統 * Sublime https://www.sublimetext.com/ * VSCODE https://code.visualstudio.com/ * ATOM https://atom.io/ * NotePAD++ https://notepad-plus-plus.org/zh/ * 熟悉上面至少 2 套文字編輯器,並且可以使用他的外掛。 ### 使用 github 建立一個屬於自己的網站。 * 選一個 GIT 工具, https://git-scm.com/download/gui/windows , 可以選 SourceTree 或 https://git-scm.com/download/win * 需要能夠透過 git 工具上傳及維護網站。 * 了解 git 的 pull , clone , merge, getch, commit, push, add 功能與用法 * 了解 branch, master, orign 使用上的意義 * 參考: https://gitbook.tw/chapters/github/using-github-pages.html ### 使用 bootstrap 4 規劃你的網站版面 * 參考: https://getbootstrap.com/docs/4.1/examples/ * 使用 Grid 排版,編排出一個可以放作品的網站版型。 * 可以善用 bootstrap 的各種元件,完成你的目標。 * 調整你的版面, 讓他在 Mobile 環境下,也可以不會太糟糕。 * 使用自訂的 CSS 讓你的 Bootstrap 4 看起來和別人不一樣。 ### 使用 Jquery 的 API * 使用...

取得 mysql 資料表中的「欄位名稱」以及「欄位註解」

圖片
取得 mysql 資料表中的「欄位名稱」以及「欄位註解」 在 MySQL 資料庫中,宣告資料表的過程,可以一併把欄位名稱寫在 COMMENT 選項中,如果在程式可以把這個 COMMENT 也抓出來配合欄位的名稱,可以產生自動把整個表 DUMP 出來成為一個 CSV 不就很方便。 圖片和內文不太相關 // ----------------------------------------------- $table='表格名稱'; // 資料庫中表的欄位抬頭資訊 $col_sql = "SELECT COLUMN_NAME,COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '$table';"; $col = runSQL($col_sql); // var_dump($col); // 資料欄位 $sql = "SELECT * FROM `$table` WHERE 1;"; $row = runSQL($sql); // var_dump($row); $csv = ''; // 欄位名註解 //echo " "; for($i=1;$i<$col[0];$i++){ //echo $col[$i]->COLUMN_COMMENT.", ";  $csv = $csv.$col[$i]->COLUMN_COMMENT.", "; } $csv = $csv."\n"; // 欄位名稱 //echo " "; for($i=1;$i<$col[0];$i++){ //echo $col[$i]->COLUMN_NAME.", ";  $csv = $csv.$col[$i]->COLUMN_NAME.", "; } $csv = $csv."\n"; // 資料列取得欄位 //echo " ...

正規表示式 Regexper 及測試使用的小工具

圖片
講到 RE 首先推薦這個網站,由 osteele 作者開發的小工具,可以方便的針對程式中使用的正規表示式先行測試,最後還附上使用語法的頁面。 以檢測是否為網卡卡號的表示式為範例: [0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2} http://osteele.com/tools/rework/ 另外一各式把正規表示式畫成一個圖,看起來比較容易理解。 http://www.regexper.com/ 底下為使用 REGERPER 網站顯示的圖形說明 在 Linux 下可以使用 grep -E 來使用進階的正規表示試驗正,如果使用 grep -e 的話只是用一般型態的正規表示式。地下為 ifconfig 指令找到該指令中 MAC address 位置的正規表示式。 常見的正規表示式 1. 驗證是否為一個合法的日期字串 ex: 2014-10-31 /^(\d{2}(([02468][048])|([13579][26]))\-((((0[13578])|(1[02]))\-((0[1-9])|([1-2][0-9])|(3[01])))|(((0[469])|(11))\-((0[1-9])|([1-2][0-9])|(30)))|(02\-((0[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))\-((((0[13578])|(1[02]))\-((0[1-9])|([1-2][0-9])|(3[01])))|(((0[469])|(11))\-((0[1-9])|([1-2][0-9])|(30)))|(02\-((0[1-9])|(1[0-9])|(2[0-8])))))$/ 2. Email 簡單的正規表示式 /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/ 3. ftp http https 網址 /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+...

webmaster 小工具

這個網站,提供一些網頁的小工具 http://www.phpjunkyard.com/ 查詢某個 ip 的 whois 資訊 http://www.phpjunkyard.com/tools/ip-whois.php 將文字轉換成為 html ,避免掉奇怪的程式碼 http://www.phpjunkyard.com/tools/text-to-html.php  將 html 去除成為純文字 http://www.phpjunkyard.com/tools/html-to-text.php 觀看 html 的 head 資訊 http://www.phpjunkyard.com/tools/view-http-header.php 亂碼產生器可以產生自己也會往記的密碼 http://www.phpjunkyard.com/tools/random-string.php

phpmailer 發信程式範例(smtp 不用認證)

PHPmailer 是個很好用的發信工具,  https://github.com/PHPMailer/PHPMailer (原始碼) 目前在 linux 的套件也都有收錄這套。 如果要安裝直接安裝   libphp-phpmailer  就可以(ubuntu , linux mint 都有收錄) mtchang@mt ~ $ sudo apt-cache search phpMailer libphp-phpmailer - full featured email transfer class for PHP mtchang@mt ~ $ sudo apt-get install libphp-phpmailer 安裝好後他會放在 /usr/share/php/libphp-phpmailer 目錄內 如果程式中需要引用的話,可以透過 require_once "/usr/share/php/libphp-phpmailer/class.phpmailer.php"; 的方式引用 底下為 phpmailer 引用的程式碼範例,並針對中文部份有使用 mb_internal_encoding('UTF-8'); 及 mb_encode_mimeheader("$name","UTF-8")); 避免中文的亂碼產生。 // 程式開始  ------------------------------------------------------------------------------------------------------ <?php // phpmailer 發信函式庫 require_once "/usr/share/php/libphp-phpmailer/class.phpmailer.php"; // ------------------------------------------------------------------------------------ // 接收上一個網頁傳來的變數 // -----------------------------------------------...

類似 bootstrap 前端 UI Frameworks

圖片
BootStrap 這個 UI Frameworks 很好用,可以很快速的做出品質不錯的使用者界面。 http://getbootstrap.com/   但用久了發現大家做的都一樣,看不出差異。 於是最近評估了幾個類似的 Fremework ,主要來自於底下兩篇的介紹 10 Best Responsive HTML5 Frameworks http://designinstruct.com/roundups/html5-frameworks/ 20 Exceptional CSS Boilerplates and Frameworks  http://mashable.com/2013/04/26/css-boilerplates-frameworks/ 當然 wiki 上面這篇( http://en.wikipedia.org/wiki/CSS_frameworks ) 比較了格點系統的細節比較可以參考看看 另外在這篇主要比較了 bootstrap 及 Foundation 及 Skeleton http://responsive.vermilion.com/compare.php  我這次選了 Foundation  這個 css frameworks 來使用,因為從他的文件說明( http://foundation.zurb.com/docs / )看得出 他的 UI 走扁平化的設計,符合 時尚的潮流  ios7 Mac OS X 10.10 Yosemite 都用 。  Foundation button 但是總是感覺怪怪的,這個 button 和 10 多年前 M$ frontpage 的內建 button 很像的感覺。所以應該說 M$ 十多年前就走在設計的前端 .....,只是他的名子不叫 APPLE 。 FrontPage Sample

Linux Mint(or ubuntu) 快速安裝 postgresql 9.3

圖片
安裝 postgresql 9.3 伺服器程式 mt ~ # apt-get install postgresql-9.3 安裝 pgadmin3 的客戶端管理工具 mt ~ # apt-get install pgadmin3 切換到 postgres 帳號, postgres 預設沒有密碼且是 superuser 權限 mt ~ # su - postgres postgres@mt ~ $ ls 9.3 postgres@mt ~ $ pwd /var/lib/postgresql 建立使用者帳號,-r 能夠建立 role ,並且賦予  -s 超級使用者、-d 能夠建立 DB 、-l 能夠登入系統、-P能夠建立密碼 postgres@mt ~ $ createuser --r mtchang -s -d -l  -P Enter password for new role: Enter it again:  建立一個資料庫 mtchang 屬於 -O mtchang 使用者的 postgres@mt ~ $ createdb  -O mtchang mtchang 設定 PGADMINIII 客戶端工具 以上為本機使用 postgresql 的安裝方式,如果還要讓外面的 IP 可以連到這台請參考這篇:  http://jangmt.com/wiki/index.php/PostgreSQL_install  另外附上 createuser 和 createdb 兩個指令的 HELP 說明 postgres@mt ~ $ createuser --help createuser creates a new PostgreSQL role. Usage:   createuser [OPTION]... [ROLENAME] Options:   -c, --connection-limit=N  connection limit for role (default: no limit)   -d, --createdb     ...

在 RHEL/CENTOS 6 Debian Linux 上使用 PostgreSQL資料庫

圖片
Contents 1 ABOUT 2 在RHEL/CENTOS 上使用 PostgreSQL資料庫 2.1 PostgreSQL 2.2 為何要用postgresql? 2.3 PostgreSQL 的安裝 2.3.1 postgresql 的套件安裝 2.3.2 在資料庫系統上,建立使用者與資料庫 2.4 更改 PostgreSQL 的登入認證模式 2.5 安裝 PostgreSQL 管理工具 2.6 建立使用者及匯入資料 2.6.1 建立使用者 2.6.2 建立資料庫 2.6.3 匯入資料 2.6.4 匯出資料 2.6.5 shell script 建立使用者資料 2.7 參考資料 3 debian 安裝 postgresql 資料庫 3.1 安裝 phpPgAdmin 管理介面 3.2 大量建立帳號及匯入資料 ABOUT 安裝 postgresql 在 debian linux or centos linux 在RHEL/CENTOS 上使用 PostgreSQL資料庫 PostgreSQL PostgreSQL是自由的關聯式資料庫伺服器(DBMS),授權模式採取 BSD 授權許可最大好處是可以用於商業營運或修改成為自己的產品一部分而無須支付任何費用也不必擔心需要將修改過後的原始碼公開等眾多GPL授權軟體需要面對的 問題。它具有商業資料庫絕大部分的功能,對於中小企業的應用十分的足夠。相較於 MySQL 這開放的資料庫系統,他有更完整的關聯式資料庫功能及優秀的穩定性。 為何要用postgresql? 為何要用轉用 postgresql? 我需要一個可以商業化的資料庫:PostgreSQL 採用授權較為寬鬆的 BSD 授權,對於商業公司而言不用擔心日後 PostgreSQL 的開發人員突然反悔改成其他授權模式的影響。 一個強大的資料庫引擎:交易、觸發、內存程序等完整的關聯式資料庫機制,提供開發人員在開發過程中更方便的操作。 一個取得容易,價格低廉的資料庫引擎:自由的BSD授權提供最便宜的成本。世界各地都有相關的 Mirror site。 商用資料庫知名產品經常的更新...

軟體工程--微型團隊的WEB程式開發流程

圖片
這是我軟體工程學習的期末報告,我想應該是個經驗可以提供分享。 大概說明一下簡報的內容: 也就是說,我配合很多工讀生執行這些工作。工讀生素質不一程度有差異,且都是學生,人員組成有太高的風險存在。學校並不會教寫程式的時候要版本控管因為能寫出來就偷笑了,通常平時能夠使用 WAMP 懶人包架設網站已經是萬分幸運了。比較糟糕的是拿 WAMP 直接上線當網站。要求到使用 LAMP 方式開發並且遵循版本控管及軟體專案管理的流程,並請使用某種特性流程的開發方式,如果沒有經過一番的訓練是有難度的。 開發的環境程式為 PHP + HTML + Jacascripts 的程式,後端是 MySQL、PostgreSQL及 Oracle 等資料庫,通常系統端只有我自己維護且再程式部份有範例程式碼提供撰寫的範例。 需求通常來自於我的上級長官,再經由我確認後交派給工讀生開發或是自行開發,但是長官的高深莫測需求漂移不定是最大的困擾。即使本人多方進行需求分析了解也有時會有方向錯誤的狀況發生...... 通常交派工作後會遇到的情境狀況1,使用者聽到需求後馬上使用他的 WAMP 懶人包開發程式,工具使用 Dreamweaver or Notepad++ 工具,配合 filezilla 等 FTP 上下傳程式。然後直接觀看網站的結果與輸出,執行測試。測試正確 Testing == Release ,馬上即時成為釋出的版本。 這問題很大,通常這個過程沒有明確的將需求紀錄由可能造成傳遞上的錯誤,並且沒將需求分段設定里程碑來驗證,開發人員寫完後,也沒有管道可以不同部的回報。如果遇到需求變動,這就更麻煩了.... 情境狀況2,再內部我架設了一個  bug tracker  (PHP、全中文 and GPL)傳遞管控開發工作的訊息,可以控管每件事情包含平時的工作、軟體開發的工作、網路維護工作,用來追蹤工作是否有完成。這軟體很好用,我第一次遇到和它一樣的類似的是  http://www.fogcreek.com/fogbugz/  forbugz 這套,這作者就是有名的作家「 Joel on Software 周思博趣談軟體」作者自行創業的公司開發的軟體,可惜它要錢否則是很棒的軟體。 如果遇到多...

作業--Huffman Decoder and encoded

/*------------------------------------------------------- PROGRAM: DEHUFF.C USAGE : dehuff encoded.file decoded_file PURPOSE: Huffman Decoder Created by barkly 06/11/03 Finish Tested by mtchang --------------------------------------------------------*/ /* Error codes returned to the caller */ #define NO_ERROR 0 #define BAD_FILE_NAME 1 #define BAD_ARGUMENT 2 #define BAD_MEM_ALLOC 3 #include <stdio.h> #include <io.h> #include <fcntl.h> #include <values.h> /* Global variables */ FILE *source_file,*dest_file; /*int main(void);*/ void help(void); void pass1(void); void get_min2(int,int*,int*); void pass2(void); int get_bit(void); typedef struct { float frequency; int Lchild; int Rchild; int parent; } NODE; NODE table[256+255]; /*CONVERSION TABLE�RECORD��511*/ long total_bytes; int tail; /***************/ int main(argc,argv) /* Returned parameters: Returns an error code (0=None) Action: Mai...