發表文章

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

新手工程師練習實作參考

圖片
### 新手工程師練習實作參考 * 因為要學習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 * 使用...

以 Bootstrap 3 為基礎的扁平化設計 UI Kit

圖片
以 Bootstrap 3 為基礎的扁平化設計 UI Kit 沒有美感的工程師, 寫網站最大的問題就是畫面很糟糕. 即使引進了 Bootstrap 的框架後, 能夠做的很糟糕的還是不少. 不過通常已經大幅度改善了原本很糟糕的網站設計. 但寫了一陣子後, 衍伸出另一個問題, 開始有人說  你的網站長得很 Bootstrap  , 這時 Bootstrap 它成為了一個形容詞. 自從 IOS 7 後大家跟風的似的回到扁平化設計  ,   以前曾經研究過相關的扁平化 Framework 有何特點. 但是最後還是選擇了 Bootstrap 的套件. 就因為他真的很好用. 最近發現了好東西  , 就是原本用 Bootstrap 開發的網站  , 只要加上別人家開發好的 UI KIT 就可以變更原本很 Bootstrap 的設計風格, 成為簡潔的扁平化風格. 很 Bootstrap 的 UI Bootflat 是一個開放原始碼的 bootstrap flat 專案 , 有提供現成的 css 設計及 free PSD 可以提供你自行修改 UI 元件. 使用最簡單的方式就是把 CSS 放在網站的 bootstrap css 後面就可以了. CDN 版本的 sample code: Bootswatch 也是一個可以改變 Bootstrap 的設計, 用法和上面雷同 . 他現有 18 種不同的設計可以讓你切換.  https://bootswatch.com/ FLAT UI 也是 http://designmodo.github.io/Flat-UI/ 看完  , 趕快去改巴,

網站使用者識別機制-帆布指紋( canvas fingerprinting )

圖片
* Canvas fingerprinting 可以透過HTML5  BROWSER 的 CANVAS ,依據不同軟體及硬體裝置上對於 Canvas 的實作,得到不同的指紋,得到一個唯一 HASH 值,用這個值來判斷使用者的唯一性。且它無法被無痕視窗封鎖阻擋,也沒有防毒軟體可以阻止它洩漏你的機器識別資訊,AdBlock 要檔是可以,但要自己加入規則鎖 Canvas JS。 * 這讓我想到 上一篇 ,我用 IP清單來抵擋大量的暱名 IP,現在換成這個機制,加上 IP 管制,就可以更精準的阻止匿名攻擊的註冊!! * 至於哪些沒有 CANVAS 的 browser 就直接把它拋棄了,根本不讓他連網。目前大概只有機器人會用沒有 CANVAS 的 BROWSER 巴。 WIKI: https://en.wikipedia.org/wiki/Canvas_fingerprinting 誰提出的想法: https://cseweb.ucsd.edu/~hovav/dist/canvas.pdf 解釋: https://securehomes.esat.kuleuven.be/~gacar/persistent/the_web_never_forgets.pdf 開始解釋這種追蹤工具的難以抵擋性, 2014年的調查已經有 5% 以上的網站使用這種技術。 猜測正確率論文: https://panopticlick.eff.org/static/browser-uniqueness.pdf  ‎被引用 535 次 「在我們的樣本中,帆布指紋變化相當快速,但即使一個簡單的試探通常能夠猜到是 什麼時候的指紋,是以前觀察過的 '升級版' 瀏覽器指紋, 有 99.1% 的猜測正確 和只有 0.86% 是未命中(false positive rate) 。」 * 線上立即可以測試的網站: (1) 線上測試網站 https://fingerprint.pet-portal.eu/   更詳細的 fingerprint 還可以猜你安裝哪些軟體,且有不錯的識別率。 (2) 我下載 https://github.com/Valve/fingerprintjs 的本機測試結果 ,可以點擊 這裡 測試。這個比較簡單...

TOR 匿名網路的抵擋

圖片
有各做網站很麻煩的問題, 就是會遇到透過大量的 ip 重複註冊. 然後 client 可以大量使用匿名網路 ex. TOR , open proxy 等方式大量註冊,且一定是透過機器人來大量註冊,通常會搭配圖檔認證機器人,如果可以雙管齊下, 先擋住機器人,再來擋住 tor or open proxy 就可以防堵匿名的大量註冊。 可以檢查你的網路IP是否為 tor 網路 https://torstatus.blutmagie.de/  這個提供 tor db list https://www.dan.me.uk/tornodes 提供ip-list DB and client 這是另一個付費的匿名網路的名單 https://udger.com/resources/ip-list/web_proxy 但能夠完全阻擋嗎? 我猜檔個 80%~90% 應該可以巴 , 要全檔太難了, 畢竟連手機都有 tor browser 了, 無處不再呀! 至於機器人那段, 加強文字驗證碼應該可以解決. 但要搞到很難辨識又失去方便性, 這是可以取捨的點. google reCAPTCHA   https://www.google.com/recaptcha/intro/

Redis-Server with PHP 的使用 in CentOS7

圖片
Redis-Server with PHP 的使用 in CentOS7 * Redis DB server 的用途 Redis 是一個 key-value 架構的 database , 且因為它工作在記憶體上面,所以速度非常的快。 可以用來當 DB cache 加速的功能或是需要快速反應的 DB * CentOS 7 的 Redis-server 安裝方式 # yum install redis -y  * 安裝參考 http://sharadchhetri.com/2014/10/04/install-redis-server-centos-7-rhel-7/ * 通常會搭配 php 等 client 端工具一起安裝, 這裡我是以 php56w 的版本安裝, 因為有比較多 lib 支援 # yum install php56w-pecl-redis * php56w 可以參考 webtatic 釋出的 yum repo 安裝參考 https://webtatic.com/packages/php56/ RHEL7 OR EPEL7  官方網站跑的版本有點慢,可以先參考這個版本。 * 啟動 # systemctl start redis.service * 預設開機啟動 # systemctl enable redis.service * 看狀態 # systemctl status redis.service * 測試 , 剛裝好的 redis-server 是沒有密碼的, 且只能 127.0.0.1 執行。 可以用 redis-cli client 端工具測試 PONG 是正確的回應。 [root@c7 ~]# redis-cli ping PONG * 所以我都會設定個密碼, 並且把 bind 打開讓所有人都可以連上來。 * 請找到下面兩行, 修改為你要的密碼及主機 ip # vim /etc/redis.conf bind 111.111.22.22 requirepass 123456 * 重新啟動 # systemctl restart redis.service * 驗證看看 port , 應該是 6379 # netstat -antlp | grep ...

將 CSV 檔案加上 UTF BOM 讓它可以在 Windows 被 EXCEL 正確的開啟沒有亂碼的問題

圖片
將 CSV 檔案加上 UTF BOM 讓它可以在 Windows 被 EXCEL 正確的開啟沒有亂碼的問題 在 UTF-8 文件中放置 BOM 主要是微軟系統的習慣。但是真的沒有必要帶拉!!!! http://stackoverflow.com/questions/2223882/whats-different-between-utf-8-and-utf-8-without-bom According to the Unicode standard, the BOM for UTF-8 files is not recommended: 圖片和內文不太相關 下面提供一種在 windows 上面,政治正確的解法。 XDXD // ======================================================== // 產生現在的秒數 $time_string = date("YmdHis"); // 寫入 utf8 with BOM function writeUTF8File($filename,$content) {     $f = fopen($filename, 'w');     fwrite($f, pack("CCC", 0xef,0xbb,0xbf));     fwrite($f,$content);     fclose($f); } $f = 'uploads/private/'.$time_string.'.csv'; $fdir = 'uploads/private/'; // 檔案不存在就先建立檔案 if (!file_exists($fdir)) {     mkdir($fdir); } writeUTF8File($f,$csv); echo 'CSV 輸出完成,請點選 連結 下載。 '; // ========================================================

php7 vs. GO lang vs. C on CentOS 7 Linux 速度比較

圖片
php7 vs. GO lang vs. C on CentOS 7 Linux 速度比較 繼上一篇後,想說 php7 已經很快了,但是到底和原生 C 差多少..... 所以就抓了php7 , GO 及 C 三種語言來比較看看氣泡演算法, 12 各項目排序 90萬次花費的時間。 結論: PHP7 ==>  5.9242088794708 s GO  ==>  0.228.885223 s C ==> 0.174889 s 換算一下, ms, us 的單位, 結論是 php7 連 GO 和 C 的車尾燈都看不到... GO 還可以看得到C 的車尾燈!!!!! 且 GO 比 C 好寫多了,我可以接受這一點點的微小差距。 有圖有真相.... C bubble sort 演算法  http://www.programmingsimplified.com/c/source-code/c-program-bubble-sort C 計算時間差 http://www.binarytides.com/get-time-difference-in-microtime-in-c/ php 及 go 的程式碼 https://jaxbot.me/articles/benchmarks_nodejs_vs_go_vs_php_3_14_2013 別人做的 php vs go https://www.ransona.com/blog/2014/11/06/go-vs-php-performance-restful-service/

Oracle Java install in Linux ubuntu/mint/debian

參考:http://www.webupd8.org/2015/02/install-oracle-java-9-in-ubuntu-linux.html 安裝 Oracle 的 java 在 linux 上頭。 安裝: echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee /etc/apt/sources.list.d/webupd8team-java.list echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886 apt-get update apt-get install oracle-java9-installer 需要很久,請慢慢等。先寫一個 Hello.java 來看看巴。 mtchang@mt ~/SCM_code/tmp $ cat Hello.java public class Hello {     public static int gvar;     public static void say(String s) {         int x = 10;         System.out.print(s+x);     }     public static void main(String[] argv) {         float y = 0;         say("Hello, world\n");     } } mtchang@mt ~/SCM_code/tmp ...

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

WAMPServer 2.5 php_pgsql.dll 有問題?無法正常的工作。

圖片
WAMPServer 2.5 php_pgsql.dll 有問題?無法正常的工作。 因為想要讓開發的工作更有效率,於是在自己的電腦上安裝 WAMP 當成本地端的開發工具 WAMP 預設的 DEBUG 工具很齊全,對於除錯真的很方便。 但今天改開發 PHP + PostgreSQL 的程式,發現明明 PHP_PDO_PGSQL 都有啟動,但是 phpinfo() 怎樣都看不到相關的模組訊息。(應該要有 pdo_pgsql and pdo_pgsql 這兩個模組才是) 查了半天,發現在 PHP for windows 5.25 "php_pgsql.dll" 還可以工作,升級 PHP 到 5.5.12 就不正常了.... 快速的修正方式: (1) 安裝 Postgresql for windows 版,在本地端機器上面。 http://www.enterprisedb.com/products-services-training/pgdownload#windows 裝好後,看看在地下的路徑是否有這個檔案 libpq.dll (2) 將該檔案讓 apache 掛載 打開 windows apache httpd.conf 設定檔,找個好地方把底下這一行放到設定檔案內,然後重新啟動 APACHE LoadFile "C:/Program Files/PostgreSQL/9.3/bin/libpq.dll" (3) 去看看你的 http://localhost/?phpinfo 應該就有 pdo_pgsql and pdo_pgsql 這兩個模組了。 pdo_pgsql and pdo_pgsql 這兩個模組 參考: http://stackoverflow.com/questions/551734/php-not-loading-php-pgsql-dll-on-windows