~尋找生活新鮮事~
-
MySQL: Import large file using SOURCE command
在 MySQL 匯入 sql 資料大都時候都是用 phpMyAdmin 這個軟體來代勞,不過有時候碰到非常巨大的 sql 檔案,動輒數百 MB,甚至更大時就超過了 phpMyAdmin 處理能力。 這時候比較方便的做法是用命令列來匯入,指令是 SOURCE。 mysql> use exampledb; Database changed mysql> source C:\data.sql; 等待 MySQL 執行完畢就完工了,無痛匯入巨量的 sql 資料。
-
Disable Mac OS X mouse acceleration via the command line
2011 年夏購入了一台 Apple Macbook Pro,從此踏入 MacOS X 的世界,當初購入的目的是想學 Ruby, RoR 和 Object-C,不過工作上幾乎還是用 Windows 7。我覺得我跟 Mac 一直沒有很熟。換了工作後發現新同事們使用 Mac 做網站開發的比例非常高,老闆也不介意我帶自己的 Mac 上班,所以就開始逼著自己長時間用 Mac 來熟悉它。 MacOS X 預設是有滑鼠加速的,這點我很不習慣,滑鼠加速會讓滑鼠在長距離移動時,游標移動的速度以等比的方式增加。個人覺得這是一種介面上的不一致,總讓我摸不透滑鼠要移多快才能到預期的點。下圖左是關閉滑鼠加速度,不管使用者的手移動多快,滑鼠游標的加速度都不會改變,所以游標的速度跟手移動的速度一致。下圖右是開啟滑鼠加速 3.6 倍,使用者的手移動越快,游標會有額外的加速度,這種不一致的速度讓我老是找不到飛到螢幕外的游標。 經過一番 Google 後發現可以用指令的方式關閉滑鼠加速。加 terminal 輸入以下指令: defaults write .GlobalPreferences com.apple.mouse.scaling -1 修改完畢後重新開機,滑鼠游標就不會再輕功似亂飄了。
-
PHP: Constrains a value to not exceed a maximum and minimum value
幾年前在寫 Processing (P55) 的時候,有個方便的 function 叫 constrain。用法是 constrain(value, min, max) 例如 float mx = constrain(mouseX, 30, 70); 當 mouseX 大於 70 時就回傳 70,小於 30 時就回傳 30,將值限制在 30 ~ 70 這個區間。因為 Processing 大都是拿來寫互動、視覺方面的程式,所以用到此功能的頻率頗高。後來轉換跑道寫其他語言時,發現好像都沒有這個方便的函式。 最近又有 constrain 的需求,想起幾年前見過有人用 min, max 來代替,寫法如下。 <?php function constrain($value, $min, $max){ return max( min( $value, $max), $min); } echo constrain(29.3, 30, 60); ?>
-
Bookmark: PHP Markdown
PHP Markdown 是一款以 PHP 為基礎的 Markdown 語言轉換器。Markdown 是一種輕量級的標記語言,透過簡單易懂的語法來編寫文件,主要用於技術性文件,Markdown 轉換有多種語言的實作,這款便是以 PHP 來做轉換。 http://michelf.com/projects/php-markdown/ 這個套件分為標準和 Extra 版,後者多了更多功能。不過就實務上來說,筆者還在尋找 JavaScript 版本的 Markdown Engine,這樣才能做到所見所得的即時轉換。
-
Bookmark: Pixastic, a JavaScript Image Processing Library
Pixastic 是一款 JavaScript 影像處理函式庫,藉由 HTML5 對 Canvas 的像素操作能力來達到影像處理的機制。相當適合拿來做轉場特效,例如這個 HTML5 Canvas Slideshow 範例。 http://www.pixastic.com/lib/
-
Bookmark: MathJax
MathJax 是 OPEN SOURCE 的 JavaScript 顯示引擎,可以將 LaTeX 與 MathML 語法轉換成數學公式。 http://www.mathjax.org/
-
MySQL: Add time value to a date value
在改 MySQL 查詢時碰到需要設定未來時間的情況,翻了一下 MySQL 的文件找到指定的方法。 用 ADDDATE() 或 DATE_ADD() 來增加時間,像這樣… SELECT ADDDATE( NOW(), INTERVAL 15 HOUR); 就可以得到距離現在 15 個小時之後的時間。HOUR 可以替換成 YEAR、MONTH、DAY 等等,完整的單位列表可參考這裡。ADDDATE() 與 DATE_ADD() 的差別只有名稱不同,用法與效果相同。 如果是要減去時間,就用 SUBDATE() 或 DATE_SUB() 。
-
Bookmark: PHP QR Code
用 PHP GD2 產生 QR Code 的 Library,簡單易用,有多種參數可以設置。採用 LGPL 授權,使用上也比較有彈性。 http://phpqrcode.sourceforge.net/
-
Bookmark: Google QR Code Tool
在搜尋 QR Code 資料時看到的,簡單易用的 QR Code 產生工具。 http://code.google.com/apis/chart/infographics/docs/qr_codes.html
-
Bookmark: The Restart Page
偶然在網路上逛到這個網頁,收錄了很多作業系統的關機與重開機畫面,不但按鈕真的可以按,連音效都完整重現,實在太有趣了。 http://www.therestartpage.com
-
PHP: Reading $_GET variable
在 PHP 環境下要取得 GET 變數的內容只要用 $_GET 就可以取得,不過在 CodeIgniter Framework 或其他特殊環境下,$_GET 預設是被關掉的時候,想要正常使用 GET (如 AJAX) 時就得費一點點工夫了。 <?php $url_segs = parse_url($_SERVER[‘REQUEST_URI’]); parse_str($url_segs[‘query’], $_GET); // urldecode automatically print_r($_GET); // 印出 $_GET 內容 ?> 完工,就醬。 updated Feb 1, 2012 後來才注意到 CI 的 config.php 大約在 157 行的地方有一行設定 $config[‘allow_get_array’] = TRUE; 預設打開了 $_GET,不需要用上述的方法,改用 $this->input->get() 即可取得 $_GET 內容。
-
Bookmark: BgPatterns.com
在設計網站或是製圖時,常會需要用到背景圖,BgPatterns 是一個迷你的網路應用,能使用內建的圖案來產生具有重複性質的 pattern 圖案。 http://bgpatterns.com
-
PHP: Fibonacci Sequence
Finbonacci Sequence (費氏數列、費伯納數列) 對於寫程式的人來說應該不陌生。數學上的費氏數列是以遞迴方式定義的,如下 F0 = 0, F1 = 1 時,Fn = Fn-1 + Fn-2 用文字來說,就是費氏數列由 0 和 1 開始,之後的費氏數列就由之前的兩數相加。前幾個數字是 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377….. 用遞迴方式的標準寫法是…
-
PHP: Using explode() with seperator "\n"
有個以 PHP 開發的案子在測試階段回報有 bug,雖然兇手不是我,但還是去了解一下。原來的程式是讓使用者輸入多個 Youtube 影片網址,然後由程式取出每一支影片的 uid,封裝成陣列後回傳。之後的程式會取出 uid,然後在網站上 show 出 Youtube 影片。不過當使用者輸出多支影片的網址後,只有最後一支影片會出現,前面的都錯誤了。 原程式是這樣寫的… <?php //使用者輸入的影片網址. http://後面空一格是避免Wordpress把影片顯示出來 $youtube = <<<EOF http:// www.youtube.com/watch?v=SAIEamakLoY http:// www.youtube.com/watch?v=MhVp9gcxLJY http:// www.youtube.com/watch?v=OxzucwjFEEs EOF; function get_youtube_hash($youtube){ $hash = array(); $youtube = explode(“\n”, $youtube); foreach($youtube as $y){ $youtube_qs = parse_url($y, PHP_URL_QUERY); $youtube_qv = explode(‘&’, $youtube_qs); foreach($youtube_qv as $key => $value){ list($k, $v) = explode(‘=’,…
-
jQuery: Check if Element is Visible or Hidden
用 jQuery 編寫網頁效果時經常需要檢查網頁元素 (element) 的狀態,像是可見 ( visible ) 或是隱藏 ( hidden )。 常見的寫法是 if( $(element).css(‘display’) == ‘block’ ) 或是 if( $(element).css(‘display’) == ‘hidden’ ) 不過我一直覺得這兩種寫法很累贅,又萬一元素的顯示狀態不是 block,而是 inline-block 或是別的呢?在翻閱 jQuery 文件時想到一個更便捷的用法,用 is 來檢查元素狀態即可。 $(element).is(“:visible”) 回傳值是 true or false,更方便。 if( $(‘#foo’).is(‘:visible’) ) { // it’s not hidden, do something } else { // it’s hidden so do…
-
How to Convert String to Slug
在這個 SEO 當道的年代,簡單易懂的現代網址已經是基本常識了。根據 W3C 的網址規定,合法字元僅有 A – Z, a – z, 0 – 9, -, ., _, ~, :, /, ?, #, [, ], @, !, $, &, ‘, (, ), *, +, ,, ; = ,而且橫線 ( – ) 之後都是有特別意義的保留字,所以過去常看到亂七八糟的亂碼網址,像是本文的標題不處理的話就變…. How%20to%40%20Convert%20String%20to%20Slug 雖然對電腦來說沒什麼差別,但是對人類來說卻是難以理解、難以記憶的無意義片段。
-
CSS: How To Use @font-face
過去在開發網站時,字體的選擇一直都很保守,因為每個瀏覽器與作業系統對字型的支援很有限,幾乎就那幾種安全字型可以用。不過自從 CSS 多了 @font-face 這個指令後,事情開始有了些微的變化。@font-face 允許設計師在 CSS 指定特殊別的字型,瀏覽器會根據設定去下載這個字型來顯示,就像 background-image: url(‘link/to/image’); 一樣,瀏覽器會下載背景圖來顯示。
-
Email Address Validation Using Regular Expression
寫驗證規則最常碰到的就是 email 檢查,每次寫 Regular Expression 都要重新思考一下規則,覺得這樣太浪費時間了,直接寫個筆記給未來的自己複製貼上。 <?php // 隨便寫幾個 email 來驗證規則 $mails = “someone@gmail.com, _apple@apple.com, ex@ex, some-body@gmail.com, NEXTstep@pchome.com.tw, test@nf.NL”; $mails = str_replace(‘ ‘, ”, strtolower($mails)); // 轉成小寫並去除空白字元 $mails = explode(“,”,$mails); // 依逗號切斷,並存入陣列 $valid_mails = array(); foreach($mails as $mail){ if(preg_match(“/^[a-z]+[\w\d\.\-_]*@[\w\d-]+\.[\w\.]+[a-z]$/”, $mail)){ array_push($valid_mails, $mail); // 可以直接塞進 PHPMailer,省去 $valid_mails 變數 $phpmailer->mail->AddBCC($mail, ”); } } print_r($valid_mails); ?> 輸出結果如下,不合法的 email…
- Announcements (2)
- Bookmarks (30)
- Database (17)
- Design (4)
- Fonts (1)
- User interface (1)
- Network (3)
- NodeJS (1)
- Office (1)
- Excel (1)
- Operating system (47)
- Programmers' Joke (1)
- Programming (90)
- CodeIgniter (9)
- HTML & CSS (12)
- Bootstrap (1)
- JavaScript (14)
- jQuery (6)
- Laravel (10)
- Object-C (9)
- PHP (30)
- Python (2)
- Regex (3)
- Software (10)
- Photoshop (1)
- Sublime Text 2 (4)
- Visual Studio Code (1)
- Tutorial (13)
- Uncategorized (2)
- Utility (9)
- Version Control (9)
- Git (7)
- Subversion (3)
- Wordpress (7)
- 勸敗株式會社 (27)
- 咬一口蘋果 (9)
- 文具控 (2)
- 旅行與出遊 (1)
- 日記 (16)
- 玩具與公仔 (9)
- 玩攝影 (6)
- 每日一照 (4)
- 生活品味 (5)
- 硬體玩物 (47)
- 美食 (2)
- 胡言亂語 (2)
- 軟體與 App (2)
- 這個 App 真有趣 (4)
- 開卷有益 (6)
- Kobo (1)
- Readmoo 讀墨 (2)
- 外文書籍 (1)
- 大眾科學 (1)
- 攝影繪畫 (1)
- 關於本格 (1)
- 電玩遊戲 (32)
- Android (6)
- iOS (6)
- Nintendo Switch (9)
- PC (9)
- PS4 (4)
- Xbox Series X|S (5)
- XboxOne (8)
- 電視電影音樂 (1)