pCloud Partner Program

MongoDB的管理工具-Robo 3T

程式技術/Database 2017/09/19 12:21
views: 56651 times
無論是使用 mlab 的 mongdb 線上資料庫, 或是自建的 mongodb 環境, 都需要一個方便的操作管理工具, 可以使用這個好用的 robomongo 的 Robo 3T 工具, 官方連結:

https://robomongo.org/

它是一個 open source 的工具, 用來存取 mongodb, github 連結:

https://github.com/Studio3T/robomongo

同時有 Windows (install, portable), Mac, Linux 三種版本可供使用, 十分方便, 介面操作也很直覺容易, 是在使用 mongodb 的好用工具.
top

MongoDB使用PHP查找特定欄位是否存在

程式技術/Database 2017/07/24 14:59
views: 72248 times
由於 MongoDB 是一種 schema-free 的資料庫, 使用 Document 為基礎的存放方式, 所以若是想要查找特定欄位是否存在的語法就很重要了, 先來看看官方的資料:

https://docs.mongodb.com/manual/reference/operator/query/exists/

語法是使用 $exists 的方式來判定特定欄位是否存在, 若要轉為 php 語法的話, 可以使用如下:


來列出在 collection 中 field1 不存在的資料, 這對於使用特定欄位做為處理資料或作業資料來說, 可以方便地判斷, 也不用預先開好欄位, 很方便實用的一個用法.


top

javascript跨瀏覽器解析日期時間字串問題

程式技術/Javascript 2017/03/01 16:25
views: 130528 times
在前端使用 javascript 解析日期時間字串時, 在不同瀏覽器有不同的解讀, 我們來看一下:

2017-03-01T16:00:00

這個字串若是以 Firefox 與 IE 來解讀, 是 localtime, 若是以 Chrome 來解讀則是 GMT, 測試網址如下: https://jsfiddle.net/timhuang/8paLsfyr/2/

若是希望都是以 GMT 來解讀, 可以多加一個 Z 在字串的最後, 如: 2017-03-01T16:00:00Z 就會讓各瀏覽器取得一樣的 GMT 結果, 測試網址一下在上面.

所以若是在前端, 使用 javascript 處理日期時間字串時, 一定要理解與清楚這個狀況, 否則可能會有跨瀏覽器不一致的狀況.

參考資料: http://stackoverflow.com/questions/15109894/new-date-works-differently-in-chrome-and-firefox


top

SQL Fiddle好用線上資料庫語法測試工具

程式技術/Database 2016/12/29 12:13
views: 179358 times
線上的前端有好用的 jsfiddle (https://jsfiddle.net/), CodePen (http://codepen.io/), 今天發現了一個很棒的資料庫語法測試工具, SQL Fiddle, 網址如下:

http://sqlfiddle.com/

這個好用的工具分為左右兩側, 分別是 DDL,DML 與 SQL 兩塊, 左側的 DDL, DML 可以直接定義資料表與資料內容, 當然, 還是用標準的資料庫語法. 右邊則是於 DDL, DML 執行之後, 才能使用的 SQL 語法查詢與測試用.

這樣不僅能快速定義資料表供應用外, 最重要的是可以測試 SQL 的查詢語法. 從左上角 Menu 可以看到支援的資料庫有:

MySQL 5.6
MySQL 5.5
Oracle 11g R2
PostgreSQL 9.3
SQLite (WebSQL)
SQLite (SQL.js)
MS SQL Server 2014
MS SQL Server 2008

8種不同資料庫與版本, 十分方便. 另外於 DDL/DML的部分, 也可以直接用上方 Text To DDL 進行設定, 更加方便, 讓不會使用 DDL/DML 的人員, 也能無痛建立資料表, 例如:

用戶插入圖片

table name: t_staff,
data:
name, age, title
Mary, 25, manager
Charlie, 18, Clerk
Fiona, 19, Clerk

(第一列為欄位名, 之後為資料)

就會生出以下語法:

用戶插入圖片

接下來, 就可以在右側進行查詢, 如:

select * from t_staff where age > 20

就可以查出對應的資料了, 十分方便, 尤其對於要查找資料時的不同資料庫語法間的應用, 都有很大的幫助. 另外已完成的結果, 還能快速分享, 對於查找問題, 有更多可以協同作業的可能, 上面的範例如下:

http://sqlfiddle.com/#!9/18a360/1
top

線上幸運抽獎-手機版

程式技術/Javascript 2016/11/11 11:38
views: 80706 times
之前一直要找時間做一個手機用的版本, 終於昨天花點時間寫好了, 有需要的朋友們歡迎多加利用, 網址如下:

http://sample.diary.tw/lucky-draw/m

功能與原來的版本相同, 只是介面用了 jQuery mobile 的方式呈現, 分別將說明、名單、獎項與抽獎放在4個分開的介面上, 利用下方的切換功能來進行切換, 一樣可以隨時加碼. 抽獎結果的部分, 考慮手機介面較小, 所以最後抽出的放在最上面, 而且上方會出現目前待抽的獎項與剩餘人數, 剩餘獎項與已得獎組數等資訊.

最後還是希望大家能多多利用, 也提供建議, 謝謝.

原來的電腦版介紹: http://diary.tw/tim/991
top

好用Google中文字體

程式技術 2016/10/12 11:07
views: 69999 times
製作網站時, 前端的中文字體真的是很傷腦筋, 又沒有那麼多的選擇, 又需要考慮使用者端是否有對應的字型. Google Font 計畫提供了許多字型可供應用, 也有不少繁體字型可供應用.

先來看看有哪些吧:

https://fonts.google.com/earlyaccess

上面是目前所有新增的 Google Font 的字體(非英文與拉丁文為主的), 我們可以用 Chinese 來查看看有哪些:

楷體 cwtexkai
圓體 cwtexyen
仿宋體 cwtexfangsong
Noto Sans TC notosanstc
明體 cwtexming
黑體 cwtexhei

這6種字體可供應用, 使用方式也很簡單, 直接使用對應的 CSS 即可, 以楷體為例, 可以看到他的 CSS 引入語法如下:

@import url(http://fonts.googleapis.com/earlyaccess/cwtexkai.css);

之後只需要在對應的 class 下 font-family 語法即可, 如下:

font-family: 'cwTeXKai', serif;

為方便一次檢視所有字體, 可以參考範例資料:

http://sample.diary.tw/42/index.htm

繼續閱讀:
http://www.ithome.com.tw/news/108941

top

略縮語(ellipsis)的html特殊字元與直排走文

程式技術 2016/09/26 12:03
views: 61161 times
略縮語, 也就是... (這裡用三個點來表示, 但在 html 裡, 有特殊字元可用, 分別是水平用的 … 與垂直的 ⋮ 兩個特殊字元 (參考完整版本: https://dev.w3.org/html5/html-author/charref)

另外直排走文的部分可以使用 writing-mode 這個屬性來指定, 如 vertical-rlvertical-lr, 一般中文若為直式走文, 應為從右至左, 所以是 vertical-rl.

不過有趣的是, 在原本的水平走文時, 使用 … 與 ⋮ 都可以正常顯示方向, 但在垂直走文時, 這兩個略縮語, 反而會造成相反的方向, 這點在使用上要特別注意, 或是反過來說, 只需要使用 … 即可, 走文方向控制會處理好這個略縮語的走向.

參考這個在 jsfiddler 的範例:
https://jsfiddle.net/timhuang/jxhhyxkz/2/

用戶插入圖片



另外也請參考略縮語的 css 自動截字的語法: 網頁排版文字排不下的略語語法 http://diary.tw/tim/1041

writing-mode語法參考: http://ithelp.ithome.com.tw/articles/10139081

top

持續維持開發者的熱情與學習

程式技術 2016/09/26 11:18
views: 54397 times
從這裡看來的:
每位開發者都該看:如何在四十歲後還能繼續從事軟體開發?  http://www.inside.com.tw/2016/09/21/being-a-developer-after-40

的確開發者需要一定的熱忱維持才行(其實任何工作也是如此), 其實年齡一直都不是問題, 而是心態, 不過面對變化快速的技術, 開發者需要隨時把握時間來積極學習(哪個工作不是如此呢?), 面對這樣的挑戰.

找個自己喜愛的技術領域, 持續關注與學習, 多研究相關的應用領域, 另外教學相長也是很重要的, 參加讀書會或是 open source 聚會等, 都能讓自己保持活力與學習的心情, 這個也是一種持續進步的方法.

文章中提到的種種, 也都是很棒的建議方向, 大綱如下:

1. Forget The Hype (忘記各種程式語言與架構的炒作與熱潮)
2. Choose Your Galaxy Wisely(慎選你的星系)
3. Learn About Software History(了解各種軟體的歷史)
4. Keep on Learning (持續學習!)
5. Teach(指導其他人)
6. Workplaces Suck(工作場所糟糕透了)
7. Know Your Worth(了解自我的市場價值)
8. Send The Elevator Down (虛心地接受任何意見)
9. LLVM(一個自由軟體專案,是一種編譯器的基礎建設,以 C++ 寫成)
10. Follow Your Gut(相信你的直覺)
11. APIs Are King(API 是王道)
12. Fight Complexity(將複雜的事情簡單化)

加油, 每一個你都是最棒的.
top

將瀏覽器進入全螢幕的方法(requestFullscreen)

程式技術/Javascript 2016/07/20 17:41
views: 59581 times
有時在一些網站看到可以將特定的內容進行全螢幕的檢視, 早期僅有 video 可以有這樣的功能, 現在也可以透過瀏覽器擴充方法來進行特定內容的全螢幕檢視.

程式碼如下:


其中 launchFullscreen 傳入指定的容器物件, 如 div 就可以利用擴充方法 requestFullscreen 來進行全螢幕檢視, 而 exitFullscreen 則不用傳入物件, 使用 document 的擴充方法 exitFullscreen 即可離開全螢幕檢視.

範例:
http://sample.diary.tw/40/index.htm

參考資料:
http://xuhong.github.io/2014/05/23/fullscreen/
https://developer.microsoft.com/en-us/microsoft-edge/platform/documentation/dev-guide/device/fullscreen-api/
top

CentOS中apache與php寫入權限與SELinux設定

程式技術/PHP 2016/06/23 11:14
views: 73056 times
由於 CentOS 有 SELinux 的權限設限, 所以相對一些安全層級也都比較高, 最近有個需要用 php 寫入檔案(或是上傳檔案的應用), 原本的 php 在預設狀況下, 就會對 /tmp 有寫入的權限(預設是會在 /tmp/systemd-private-xxxxxx 下的私有 /tmp), 所以上傳時沒有問題, 但使用 move_uploaded_file() 至目的目錄時, 會有寫入的權限問題.

方式如下:

Method A
1. 要寫入需要有對應的權限, 建議方式是將要寫入的目錄給予 apache 執行用戶的擁有者, 如 CentOS 配 apache 時, user 為 apache

chown -R apache /var/www/mysite1/upload


2. 此時只需要給予對應目錄 755 的權限即可(通常預設也是這個).

chmod -R 755 /var/www/mysite1/upload



Method B (不建議)
1. 直接給予該目錄 global write 的權限, 777 即可, 不過會有安全性的考量

chmod -R 777 /var/www/mysite1/upload



完成之後, 若仍無法寫入, 則是因為 SELinux 的設限, 所以即使完成了上面的設定也無法寫入, 此時要再進一步設定 SELinux, 方式如下:

sudo chcon -t httpd_sys_rw_content_t /var/www/mysite1/upload -R


原因為預設的 webservice 能擁有的權限角色為 httpd_sys_content_t , 是無法寫入檔案的, 所以需要再進一步設定 SELinux 才行.

參考資料:
https://blog.lysender.com/2015/07/centos-7-selinux-php-apache-cannot-writeaccess-file-no-matter-what/

另外寫得很仔細的 SELinux 資料可以參考:
https://www.digitalocean.com/community/tutorials/an-introduction-to-selinux-on-centos-7-part-1-basic-concepts
https://www.digitalocean.com/community/tutorials/an-introduction-to-selinux-on-centos-7-part-2-files-and-processes
https://www.digitalocean.com/community/tutorials/an-introduction-to-selinux-on-centos-7-part-3-users
top

PREV : [1] : [2] : [3] : [4] : [5] : ... [19] : NEXT



Nextbit Robin 5.2吋六核心智慧型手機 Microsoft Office 365 中文家用版PKC (無光碟)
ASUS華碩 AC1900 雙頻無線路由器 RT-AC68U 美國 VORNADO 533 渦流空氣循環機 (黑色)
御茶園 每朝健康綠茶(650mlx24入) 每朝健康 雙纖綠茶(650mlx24入)


 Waiting...