網頁

2013年12月9日 星期一

【phpMyAdmin】隱藏information_schema

【環境:phpMyAdmin】

安裝完程式後,會發現,做管理者帳號設定時,會發現此資料表永遠會存在于每一個登入的帳號中。

目的應該是告訴該帳號用戶,你目前可使用的權限為哪些。

注意在安裝完phpmyadmin時,請將


config.sample.inc.php 複製一份成  config.inc.php

接下來在
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
/* Select mysql if your server does not have mysqli */
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['hide_db'] = 'information_schema';

$cfg['Servers'][$i]['AllowNoPassword'] = false;

35行下

插入橘色那行,重新登入後即可。
保留information_schema也可,此表為唯讀表。


As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

2013年11月29日 星期五

【mySql】設定系統時間

【環境:mysql】

調整系統時間,除了os time, php設定時區
還有就是mySql

原因就是我用了


時間上差了八個小時,其實我也不懂為啥設定時間,不是設定一個就好
全部參照os time不就得了

解決方法為
cmd中登入mysql
可以看到目前的time_zone = SYSTEM
其實還要加8小時

解決方法為:
SET GLOBAL time_zone = '+8:00';




最後補充,也可針對每個session.time_zone去設定個別的時間。

可用以下查看時間
SELECT @@system_time_zone, @@global.time_zone, @@session.time_zone;

mysql> show variables like '%time_zone%';
mysql> select CURTIME(); 或 mysql> select now();



As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

2013年11月18日 星期一

【html】favicon.ico快速產生

【環境:html】

使用下列網站,將你的圖,轉成ico的格式
http://tools.dynamicdrive.com/favicon/#.UomnBWSSBRc

於html中,將下列程式碼去掉註解後,加入head,即可。
 
 <!--link href="/favicon.ico" rel="shortcut icon" type="image/x-icon">

As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

【apache】個別目錄下的htaccess啓動overlay

【環境:apache】

由於安全性等的考慮,Apache 預設是 None
如果某些地方需要支援 .htaccess ,可指定目錄支援即可

將 AllowOverride 由None->All

<Directory "路徑">
AllowOverride all
</Directory>



As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

【AWS】VSFTP安裝

【環境:aws.ec2.micro】

AWS EC2本身並無ftp的服務,此次安裝vsftp。

安裝及建立user方法如下
 yum install vsftpd
 useradd 用戶名稱
 passwd 用戶名稱//用戶密碼
 cd /etc/vsftpd/
 vim user_list // 在此寫入用戶名稱


接著請執行
 vim vsftpd.conf 

在這邊寫入,修改anonymous_enable=NO
 
 userlist_enable=YES
 userlist_deny=NO
 userlist_file=/etc/vsftpd/user_list

若要將用戶的登入目錄引導到指定位置,一樣在vsftpd.conf 中寫入
 
 user_config_dir=/etc/vsftpd/vsftpd_user_conf

並在該目錄建立『vsftpd_user_conf』,在此目錄中新增『用戶名稱檔案』,並在此添加以下內容
 
 local_root=指定的位置

最後『重新啟動』即可
sudo service vsftpd restart

接著請記得在aws 控制台的防火牆上,添加port:TCP 20~21

As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

【AWS】安裝apache+php+mysql+phpMyAdmin

【環境:AWS.linux.micro.free】

有2.3個月沒上AWS,沒想到最近又更新,以往對於系統更新,不專業的我,都會認為怎麼老是更新,這樣對用戶好嗎?現在看到系統業者努力更新,提供新的功能、語言,我都會覺得這個團隊充滿活力,好棒。

改天來分享一下AWS的使用心得,實在太忙,都只能騰出零碎時間去寫blog。

好久沒安裝這些網站基本的服務,最近很多新的語言也到處流行,不過這些就可以滿足大部份的普羅大眾需求。

ssh 登入 aws後,請用管理者權限 sudo su,再在terminal上輸入

 
 yum  -y  install  httpd  php  php-mysql  mysql  mysql-server

接下來系統就會自行安裝,可以看到目前的版本。

要注意的是,你的防火牆設定,請直接到aws ec2控制台,設定你的防火牆機制。

【啓動mySql】
 
 sudo chkconfig mysqld on //設定 MySQL 開機預設啟動
 sudo /etc/init.d/mysqld start      // 執行 mysqld ,第一次會初始化 
為了安全性,設定你的root密碼:
 
 sudo mysql_secure_installation//接下來會有一連串的問答
  
【啓動apache】
 
 sudo  chkconfig httpd on
 sudo /etc/init.d/httpd start

若你要移動『你的根目錄』,可去『vim /etc/httpd/conf/httpd.conf』,修改DocumentRoot

若你想執行https,則請安裝
 
 yum  -y  install  mod_ssl  mod_perl  mod_auth_mysql

【安裝phpMyAdmin】
請去『phpMyAdmin下載』,移動到你的DocumemtRoot下,解壓縮後就可登入。
登入的帳號:root,密碼:你剛剛設定的密碼

我執行時出現的問題:
The mbstring extension is missing. Please check your PHP configuration.』,請安裝
 yum -y install php-mbstring

若出現缺少『mcrypt』,請安裝
 yum -y install mcrypt


As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

2013年11月15日 星期五

【文章】十則來自 Google、Pinterest 工程師的金玉良言

【來源:Inside】

1、慎重選擇第 1 門語言

程式語言各有不同,不過區別不大。但用語言的人區別就大了。選擇了一門語言你就選擇了一個族群。
– Sam Kaufman,自由職業者,iOS 開發者,10x management
如果你想快速建立原型(尤其對於希望對產品進行 iterate 升級的創辦人來說),那就用 Ruby 或者 Javascript。
– Erin Parker,Spitfire Athlete 創辦人兼首席開發者

2、你不是隻「程式猿」(code monkey)!

偉大的開發者能夠建構並開發應用程式。驚豔的開發者能夠在關注業務的同時做這件事。業務端的人大都不懂程式,但是肯定能夠理解特定功能背後的動機。
別人說什麼開發者就做什麼,沒有去理解為什麼要這麼做,導致雙方均錯失了機會,這樣的事情太常見了。
– John Coggeshall,自由職業者,web 開發者,10x Management,PHP 核心貢獻者
精通程式是一個崇高的職業目標。一旦實現了這個目標,別忘了考慮一下你自己。不要成為任何公司的奴隸或者在毫無價值的東西上浪費你的時間。
— Greg Sadetsky, Python 及Javascript 專家,10x Managemen;協同辦公空間Abri.co 創辦人
要想按期完成,得在開始技術工作之前事先進行專案溝通(哪怕這並非先決條件),因為其他人的響應速度千變萬化。
– Andrew Wilcox ,web 應用開發者,Meteor 核心貢獻者,10x Management

3、保持敏捷,不斷交付

早發表,不斷發表,以唱 rap 的節奏發表。
– Max Nanis ,自由職業者,web 開發者,生物訊息學專家,10x Management
不斷測試。好的測試包如保單和煤礦裡的金絲雀之結合。它能幫助你在生產週期中更早地找出錯誤,而錯誤越早發現越容易解決。
– Jeremy Green,自由職業者,web 開發者,專長Ruby on Rails,10x Management
快速失敗。寫程式(及生活)時我希望儘早知道什麼地方不能工作,而不是放任不管讓它增殖擴散。全面放開,快速失敗,修補缺陷,不斷繼續。
– Stephanie Volftsun,Kno​​tch 聯合創辦人兼CTO
為所有程式編寫自動測試!盡可能踐行測試驅動的開發。
– Zoran Kacic-Alesic,Industrial Light & Magic 研發主管

4、保持對測試流程的控制

許多專案深受多測試週期之苦。這會拖累專案,導致組織整體出現高層次的問題。
工程師應該專注於對自己的程式進行單元測試及半回歸測試。他們比其他任何人更了解程式庫,也知道自己會影響到哪些變更。有時此類變更會由於 QA 測試範圍有限而缺失,因此導致生產環節出現重大問題。
– Sanjib Sahoo,tradeMONSTER CTO
要想在力所能及的情況下盡快開發出無缺陷程式,永遠永遠也不要把寫測試放到後面。我們更清楚這一點。要檢查一下測試的覆蓋率,確保100% 無死角。
– Seth Purcell,Signpost 工程副總裁

5、如果你是自由職業者,要學會說不,哪怕面對的是金錢

要對時間和成本有一個合理的評估,然後把它加倍。如果有人說「這應該很簡單」,那,快逃吧。
– Ryan Waggoner ,自由職業者,web 及行動 app 開發者,10x Management

6、榮譽屬於過去—理論是一回事,但實踐更重要

改進軟體開發品質的最佳方式就是去開發軟體。許多雄心勃勃的剛入門的工程師花了很多的業務時間去讀書,關於最新工具的、關於開放流程的,諸如此類的東西。
很多人都是這麼消磨自己的閒暇時間的,但這樣很容易就把你給耽擱了。別這樣,通過盡可能用腦來強化大腦負責開發軟體的那部分。
–James Cropcho,General Assembly 的 Ruby on Rails 專家及講師
不斷探索。我見過的許多工程師手上都有幾個在進行的業務專案。做業務專案迫使你要探索新技術然後學習創建 app 的各方面。你可能需要做前端的 HTML/CSS,後端的 API 集成,數據庫優化,做行動 app,還得設置自己的伺服器。
– Andrew Waage,Retention Science CTO 及聯合創辦人

7、互相切磋是你的秘密武器

兩人一組寫程式非常必要。兩個工程師共同開發同一個模組可以相互檢查對方的程式。開發團隊每周也要召開程式審查會議,讓每一個開發者給其他人的程式提供回饋或意見,解釋如何改進程式。這能夠形成一種協作文化。把開發者的自負拋開!
– Sanjib Sahoo

8、像躲瘟疫一樣避免過早優化

只有在問題和解決方案都出現在你面前時才進行重構(refactor)—過早重構是時間上的巨大浪費。不要投入半年後可能被扔掉的任何東西的完善上。過早優化是罪惡之源。
–Seth Purcell
不要過早優化!我不斷看到工程師在使用者還沒有到1000 的時候一再對擴充到100 萬的使用者規模擔心。
– Mariya Yao,Xanadu Mobile 創辦人兼創意總監,移動開發者及設計師

9、你的程式只寫一次,可別人會讀它千萬遍

你寫的程式機器會解析執行,可其他人卻需要讀你的程式,理解它、擺弄它。你必須明白,你的程式會有未來的觀眾。程式也是一種書寫形式的溝通。
– Tracy Chou,Pinterest 軟體工程師
聽起來很奇怪,但是你永遠都得替自己的未來著想。問問自己:如果你有健忘症的話,你還能不能理解自己寫過的程式?
– Wai Ching Jessica Lam,Sugarbox 共同創辦人兼 CTO
通讀你的文件。設計改變很多,有時候程式更新的時候註釋不一定會跟進。保持檔案的更新,未來的人(包括你自己)理解起來就更容易。我說不清有多少次我看回自己程式時總在想:「我到底在幹什麼?」只要我寫出了好的註釋,未來頭疼的狀況就少很多。
– Kitt Vanderwater,Google 軟體工程師

10、這是一個崇高的職業。把你的技能用到好的地方。

幫助他人是深層次的人類需求。想辦法用你的工作來改善人類,你就會有成功的把握。
– Greg Sadetsky

As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

2013年11月14日 星期四

【iOS】安裝.ipa的各種方法

【環境:xCode5】
第一種:
直接將ipa給用戶,利用itunes安裝.

第二種:
 等編輯工具,直接安裝在手機上.

第三種:
利用OTA的方法,用戶用『手機』開啟.ipa下載頁面,直接安裝在手機中.

第四種:
利用mobile device management (MDM) server,利用push notification動作管理受控制的裝置,進行安裝或刪除等動作.
MDM介紹:http://www.apple.com/iphone/business/it/management.html

使用MDM的服務,需購買osx server的app在你的mac上。(osx 支援)
os x server的功能強大,這只是其中一個功能,購買安裝後,建構該osx server的憑證,上傳到此『Apple Push Notification service申請』。

注意:你必須登入你的app id,並非開發者中心,而是你在apple官網上的註冊帳號(可以用你開發者帳號去登入),該mail必須驗證過且設定一組驗證問題才可啟用。

MDM的服務,要$$$,設定相對也麻煩,但對於企業佈局,或者你有大量測試裝置上,相當有用,可以針對已對該MDM server註冊的裝置,進行更新app的行為,或者刪除。

描述檔管理程式輔助說明
部署MDM說明


=======官方資料 =======
部署應用程式有四種方式:
  • 使用 iTunes 將應用程式分配給您的使用者進行安裝。
  • 讓 IT 管理者使用“iPhone 設定工具程式”或 Apple Configurator 在裝置上安裝應用程式。
  • 將應用程式發佈到安全的網路伺服器;使用者可透過無線方式連線和執行安裝。
  • 使用 MDM 伺服器指示受管理的裝置來安裝供內部使用(若您的 MDM 伺服器支援此功能)。

As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

2013年11月13日 星期三

【UDID】ios7 取得udid for win

【環境:ios7, win, iphone4s】

【UDID】ios 7 下 for mac

如題,就不再詳述,請參閱另一篇文章

方法一:iTunes

方法二:看圖應該就不陌生在哪裡找了(裝置管理員),也可以透過憑證管理去查看。




方法三:
iPhone Configuration Utility 3.6.2 for Windows



As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

【UDID】ios 7 下 for mac

【環境:osx 10.9,ios 7,iphone4s】

在ios7底下,apple developer center已經正式廢除直接查出udid的方法,使用udid的好處如下(據我所知):

1.透過取得udid,可迅速加入developer center 的開發device,如此即可OTA安裝測試app,無需接線,就可將該device,加入開發裝置環境中。

2.因udid有保持唯一性,故可拿來當做device的唯一性,搭配phone number,較好追蹤該用戶的使用行為,猜測如某些溝通軟體 or 限制使用裝置數量的情況下。

3.拿來當做同步資訊的key。

(相信還有更多有用的用途)

developer center 在ios7底下,用uuid去取代udid,原因如他文件中所述『安全性問題』,據說可透過udid取得用戶的資訊,包含所有透過該手機所以透過網路可傳遞出去的資訊,均可被攔截到,據說是被FBI的幹員破解。

uuid無法讓device,變成開發機,只是如字面上所示,為該device安裝的app對開發商『唯一識別碼』。

Anyway,目前,能透過『電腦裝置』,去取得udid,也就是說『必須將你的手機』透過usb的方式,才能取得udid。(個人是認為,既然有管道可以取得,那就代表可以透過usb截取到你想或許的資源,甚至既然device有給予電腦此number,也代表一定有管道可直接用app取得udid,只是可能必須看很久的文件吧~~)

目前可得知UDID的簡易方法為:(mac , win)

方法一:透過itunes,網路上很多講解。
但,but,人生就是這個but,利用itunes,你必須讓你的電腦裝置,去允許此iphone,ipad或許權限,也就是做個備份,相當麻煩,可能又怕同步到什麼資源,讓兩檯以上的iphone,備份資源互相亂來亂去,所以除了私人的手機,基本上我不太喜歡這種方式。



方法二:device 透過 usb , 取得udid的序號資源,如下圖操作。





方法三:安裝官方提供的『iPhone Configuration Utility』(mac,win均有此工具)
此工具可參閱官方說明。




As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

2013年11月11日 星期一

【Xcode 5】更新檢查你的 Provisioning

【環境:xCode5】

更新到xcode5的用戶,在發現Organizer消失了一些選項,如:
『憑證』....

以往透過Oranizer,我們可以整理我們自己的憑證,去進行刪除 或 重新下載,並且得知現在的憑證日期,也方便我們去篩選。


但更新到xcode5,一切都變了,無法透過Organizer去整理自己的憑證。

但 apple developer center 給了我們另一種處理方法:

1.去 ios developer center ,新增/更新/刪除你要處理的憑證,無需下載。
ps:若你重複下載,則在你的Provisioning profiles裡面會有兩個相同的名稱(除非你的dis cer日期不同),我並不確定這兩個東西是不是一樣。


2.進入xcode,選擇 左上方的 xcode->Preferences->Accounts,如以下操作:
選擇你的team,按下『View Details』

3.點擊重新整理,如下圖:
ps:此時重新整理,可能會刪除原本的provisioning profile,此時再去重新下載即可,或者透過Target中的『Team』去同步。






As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

2013年11月6日 星期三

【Leanplum】數據追蹤,快速更新資源

【環境:Leanplum架設,適用ios,android,html5】

來源:Leanplum

此工具,是原google的測試工程師開發,可快速變更你的html,app的版型,並做數據追蹤,原意是要能在app上,快速地執行 A/B TEST 。

新聞來源:Inside



透過安裝script,利用script去更換app中,所有你設定的物件的屬性,包含圖片。
利用script將app的元件,放在雲端,透過雲端去跟script去做更新的動作。

【免費的部分】(支援付費用戶)
支援100個每日活躍的用戶數
支援1個app
線上支援

【功能】
1.追蹤設定的變數,並可及時修改該變數
2.分析app執行的報告,活躍率,並可知該用戶目前使用版本與系統,取得特定地區,特定系統地分析表,如:台灣,ios5。並可知該地區到底有無人安裝。
3.可及時實驗,並決定優化方式,了解該地區的人對於in-app purchase價格是否對味。
4.快速地發佈你的新設定。

【sdk】
iOS,android,html5

【ios安裝方式】
1.自動安裝,直接把檔案抓下來放在同一目錄即可,輸入你的mail驗證

2.手動安裝(必須登入才可看到),就是一個static lib的教學

其他的就請去體驗看看吧,安裝方式容易,也利於追蹤,如果你購買無上限的話。

As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

2013年11月5日 星期二

【安全防護】檢查惡意登入與屏蔽ip方法


【環境:linux,apache,php】

監控linux的log資訊,/var/log/......


這邊可以監控各種log資訊,但前提是有些必須自己安裝和設定,請參閱鳥哥

透過log,我們可以監控到,有哪些陌生人登入主機的apache,ssh連線資訊,ssl的溝通訊息,登錄檔的分析....等等。

針對登錄檔,可以取得多種訊息,如不安全的資訊,透過分析,可以選擇是否要ban掉此ip。

以下為幾種我知道的方法,相信還有很多更棒的方法:

(ㄧ)php
使用 $_SERVER["REMOTE_ADDR"]
取得連線進來的用戶ip,限制可存取或者不可存取

(二)
 apache的設定檔 htaccess 屏蔽該ip

(三)
透過防火牆iptable設定

(四)【限制連接上linux的ip】
須檢查是否有安裝tcp_wrappers 套件
並針對 /etc/hosts.allow 與 /etc/hosts.deny 設定

系統通常會先檢查hosts.allow 再檢查hosts.deny

(五)利用router的內建功能
執行類似的設定,如限制mac address(但此種方法容易被破解),限制ip,或者設定私密性較高的vpn,設定防火牆,限制port....等。


去防止有心人士潛入的狀況。


ex:
網友寫的
自動擋掉利用ssh登入的hacker
http://www.andowson.com/posts/list/33.page


As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

【安全防護】htaccess針對browser屏蔽由browser展示資料夾目錄

【環境:linux,apache】

這設定檔,有很多有趣的地方,一般很菜的web開發者,如我,應該會比較少注意到,畢竟現在apache已經有很多自動安裝的檔案,不再像以前一樣,需慢慢安裝,然後了解每個設定的用處,但上手後,這些設定檔,似乎也理所當然的不覺得很難學習,在這邊做個記錄。

比較令人難以理解的是,『aws』,似乎不太需要,htaccess檔案,自然而然就可以屏蔽目錄資源,這不曉得是否為aws的關係。


(節錄自百度)
htaccess文件是Apache服務器中的一個配置文件,它負責相關目錄下的網頁配置。通過htaccess文件,可以幫我們實現:網頁301重定向、自定義404錯誤頁面、改變文件擴展名、允許/阻止特定的用戶或者目錄的訪問、禁止目錄列表、配置默認文檔等功能。
UnixLinux系統或者是任何版本的Apache Web服務器都是支持.htaccess的,但是有的主機服務商可能不允許你自定義自己的.htaccess文件。
啓用.htaccess,需要修改httpd.conf,啓用AllowOverride,並可以用AllowOverride限制特定命令的使用。如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令來改變。例如,需要使用.config ,則可以在服務器配置文件中按以下方法配置:AccessFileName .config
籠統地說,.htaccess可以幫我們實現包括:文件夾密碼保護、用戶自動重定向、自定義錯誤頁面、改變你的文件擴展名、封禁特定IP地址的用戶、只允許特定IP地址的用戶、禁止目錄列表,以及使用其他文件作為index文件等一些功能。
(此段參考:http://baike.baidu.com/view/91163.htm)


基本上htaccess,對於apache,基本的控制,一般來說,就是當你的瀏覽器,讀取網址時,browser判讀該位置下,並無可解析的副檔名(擴展名、Filename Extension)時,就會將該目錄底下的資源,由browser,暴露在用戶面前,如圖。



熟悉架構者,應該也可經由觀看系統架構,去取得他想要獲取的相關資訊。


當你的htaccess啟動設定屏蔽目錄資源時,產生的效果如圖。







當然你只需要在htaccess上,加入下面此行
 
Options -Indexes






當然還可以參考:鳥哥

As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

2013年10月30日 星期三

【HRH】ios系統app避免HRH(HTTP Request Hijacking)的方法

【環境:iOS】

http://www.skycure.com/blog/http-request-hijacking/

這是一種http request的攔截技術,這門技術不算最新,只是ios app在redirect http時,因為無法看到你將被重新導向的網址,而被重新挖出來探討的技術。

這邊提出的修改方法為
1,將你的http改成https,但,若開發人員,沒有針對https坐憑證認證的話,其實沒多大用處。

2.另一種為使用該團隊用的方法。
ps:看了一下該方針,應該是避免當用戶的URI,再度被轉向時,就返回。
if (301 == [(NSHTTPURLResponse *)cachedResponse.response statusCode]) {
return;
}
但此方法,若你的轉址過於複雜,或者打個比方講,你本來就有在用轉址的服務,那就是自找麻煩吧@@

的確越來越多的科技服務,就會衍生出新的問題,打個比方:
若我打算攻擊某個網站,或者提供什麼特別訊息,或者竊取沒有加密的資料,或者導引到某個自己做的假的信用卡網站,讓用戶填寫下資料......。



As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

2013年10月16日 星期三

【others】json 與 xml 比較

【環境:mac,python,xml,json】

json 與 xml ,在還沒細部瞭解前,其實我會認為這兩種應該是差不多的東西,雖然儘管在使用上,的確可能差不多,對我而言,大部份都用在於web間的資料交換,或者移動裝置上。

json (javascript Object Notation),屬於『輕量級』的文字格式語法,屬於javascript的一個子集,屬於獨立的『文字格式』,有些NoSQL的資料庫,選擇其格式作為儲存的方式,如:MongoDB.....
隨著javascript的普及,加上各大瀏覽器上 html5 的支援性,使用行為較為普遍。

與xml最大的差別在於,xml是一個完整性的標記語言,但卻俱有較佳的延展性,而json讓資料傳輸上,更加的輕巧,以及現在普遍的解析支援。
  • 解析速度快
  • 佔用空間少
補上其他blog的優缺分析


『最重要的當然是測試的方式』
建立xml與json的文字格式,中間剔除掉多餘字元,如:空白
然後透過python,本機執行解析100萬次,避免掉apache與web網路的傳輸問題。

python處理xml有兩種方式:我選擇用dom的方式。
1.SAX ( Simple Api for XML ):一次讀一部分
2.DOM ( Document Object Model ):一次整個讀取

python處理json:比較直接,直接讀取該文字格式。

每次處理,並將結果印於cmd上,寫入一次時間到time.txt當中,共執行100萬次。
取得最後的時間差異。




As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

2013年10月15日 星期二

【SEO】Google SEO 最佳化指南

【環境:2013中文版】

載點:Download
注意:這份指南不會告訴您怎樣做才可以自動使網站排在 Google 查詢結
果的第一位 ( 抱歉 !) , 但是遵循下文介紹的最佳實作典範 , 可以使
搜尋引擎更容易檢索您的內容並建立索引。
網站SEO各家不同,就更不用說各家須遵守的規範。
雖然有些商務性質的喇叭嘴,無疑就是要用戶購買廣告點數。
但其實照著基本的html規範的寫法,就可以替你的網站做到很棒的seo化,尤其在你的網站一開始建立之初,在搜尋目的上,就非常的獨特,這裡面也有介紹。


順便補上參考資料:

14 Google Tools You Didn't Know Existed

  1. Google Ngram Viewer :
    搜尋keyword,尋找相關的書籍,並有時間軸可參考趨勢。
  2. Google Correlate :
    利用關鍵字,查詢與該關鍵字相關聯的字詞與時間,比如你要賣臭臭鍋,在台灣,你就可以看到相關資訊。
  3. Google Trends :
    輸入keyword,便可得知該字詞在不同地區的相關趨勢圖,可隨著時間軸變化,並且得知該熱門程度與是否即將要熱門,得到一個分析的趨勢。
  4. Google Think Insights
  5. Google Public Data Explorer.
  6. Full Value of Mobile
  7. Get your business Online
  8. Webmaster Tools
  9. Schemer
  10. Google Fonts
  11. Google Developers
  12. Dart
  13. Google Keep
  14. Google Sky




As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

2013年10月1日 星期二

【Link Aggregation 網路聚合技術】

【來源:Thecus

此技術只支援擁有802.3ad技術的switch方可使用。

一般來說某些設備與軟體,如:NAS、linux,可以在設定上去調整是否要支援此功能。

所謂的802.3ad的聚合技術,經過網友測試,必須當你的設備相當忙碌時,你的第二張網卡,才會發揮功效。
http://www.mobile01.com/topicdetail.php?f=494&t=2538492

Link Aggregation,可稱頻寬聚集或網路聚合,是 IEEE 標準規格802.3ad協定中的一部份,802.3ad協定規範是:交換機(Switch)上許多不同的實體連接埠,可以邏輯性的共同結合在一起,進而視為一條實體線;網路聚合功能也有不同稱呼,Intel 叫Link Aggregation,3COM 叫Port Trunking;在 Linux 系統下可利用軟體的方式(Linux Bonding 的技術)結合多張網路卡來增加網路頻寬。(資料來源:Wikipedia)
簡單來說,當我們一張網卡的速度不夠的時候,就可以試著兩張網卡綁在一起來使用。


為什麼要這樣用?當你沒有10 Gigabit網卡時,又經常透過網路存取超過1 Gigabit的影音檔時,利用Link Aggregation的技術就可以擴充區網的頻寬。而在Thecus NAS的提供的Link Aggregation裡,可讓你設定Jumbo Frame (1500~9000 bytes) 和Aggregation Type。



以下將介紹這些設定的意義與配套措施。
Aggregation Type聚合類型:
Load Balance(L/B; 負載平衡):負載平衡在網路聚合中,自動分配工作量以達到最佳資源利用。極大化提高吞吐量,減少響應時間,避免過載。
採用的時機如下:
  • 在網路服務有「不斷線」需求的時候可以使用。
  • 小封包量多時也可考慮使用,例如使用eMule/BT下載時。
  • 掛載NAS 的iSCSI LUN或網路磁碟機,用來存取影像編輯檔案作業時。
  • 需要流量平衡時,不可以用Failover only。
  • 不同速度的網卡可以共用,但不建議。
Failover(容錯切換/故障切換):在網路聚合中,當網路發生故障時,自動切換到冗餘或備用的網路。
802.3ad:802.3ad是IEEE 802.3ad規範的網路聚合模式。可將多個網路埠組成一個共享相同速度與全雙工的網路聚合,以獲得容錯、負載平衡與提高傳輸效率的功效。需要switch 支援802.3ad設定。此設定特別針對同型號網卡時使用。
Balance-XOR:在發送端所有可用網路埠的MAC位址間,將封包流量分散到所有可用網路埠上。這種模式有容許故障失效與流量負載平衡的效果。
Broadcast:廣播的模式,設法把需要傳輸的「每一個封包」,發送給網路聚合中「每一個網路埠」。當其中一個網路埠失效的時候,仍可正常運作。
Balance-TLB (Transmit Load Balance):此模式對於封包的發送與接收作業採不同機制。對於發送埠同時具有自動負載平衡和容錯功能,而接收埠只具有容錯的功能,此模式不需switch 支援及設定
Balance-ALB (Adaptive Load Balance):發送與接收同時具備自動負載平衡與容錯功能, 其中一個網路埠失效時,仍可持續運作;此模式不需 switch 支援及設定
Client端系統的網卡該如何設定?
如果你想要設定Jumbo Frame,必須先確認網路環境上的分享器(router)/集線器(hub)/切換器(switch)的規格,甚至是網路上的各個客戶端裝置(PC、印表機)是否支援Jumbo Frame。例如NAS上設定了9000 bytes Jumbo Frame,但是switch或PC不支援,那麼這個大封包就會卡在這些不支援的設備上,反而造成網路塞車。


As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

【Jumbo Frame】

【來源:Thecus blog

什麼是巨型訊框/巨型封包(Jumbo Frame)
Jumbo Frame是網卡與集線器上支援的功能,是專門為Gigabyte 乙太網路設計的業界標準,一種超長封包格式。採用Jumbo Frame可以發揮Gigabit乙太網路的效能,讓數據傳輸效率提高50%-100%。過去乙太網路的標準為1518 bytes,MTU預設在1500,也就是每個封包1500 bytes大小,傳送資料的時候,要切割很多封包。Jumbo Frame就是把封包大小改大,以節省傳送封包的次數。



建議採用Jumbo Frame的時機:
  • 只適用於「大檔案」、「長時間」傳輸。
  • Database backup
  • HD Audio/Video streaming
  • Video/Image Editing Environment
何時不適用Jumbo Frame
  • 當網路環境有大/小封包共存或小封包數量多時,Jumbo Frame反而會拖垮效能。
  • BT/ eMule這類的檔案傳軟體,不適用Jumbo Frame,因為來源非固定(IP address/MAC address)且傳給你的資料是分割過的小檔案時。




As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

2013年8月20日 星期二

【node.js】安裝+測試

【環境:linux】
說明:
首先須先確認你的環境是否已經安裝
1.g++ GNU C++
2.git
 
git clone https://github.com/joyent/node.git
cd node
git checkout v0.6.7
./configure
make
sudo make install 

接著在terminal上直接編輯一個檔案為node.js
在檔案內新增一行console.log( 'Hey you' );

vim node.js
console.log( 'Hey you' );

離開編輯環境,輸入 node node.js

驗正版本的話,請輸入node --version

As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

2013年8月19日 星期一

【android 學習】建立你的ADT

【環境:ADT Build: v22.0.5-757759】

時間:20130819

說明:

對新手來說,為什麼不是安裝eclipse就好了嗎?什麼東西是ADT??
eclipse是編輯環境,而ADT,從名字上來看就是android developer tools。
其實是google對於開發者的一點貼心,一開始我以為這只是一些讓developer開發方便的plugIn。
但其實你只需要安裝ADT,裡面就幫你安裝好eclipse,並幫你整建好大部份的環境設定。

1.
這是官方的 教學文件 ,對於一個android的入門者,整建自己的編輯環境是相當重要的一件事情,這份文件教你下載ADT,並教你安裝一些必須的工具,官方的文件,相對於市面上許多的安裝套件教法,相對的安心許多。

2.
建立,你的android SDK manager。

3.
建立 android virtual device manager。
此跟xcode不同的是,你必須建立你要模擬的模擬器環境。
xcode是,只要你安裝下載後,運用的模擬器的資源,都是跟你的電腦相同。
eclipse的好處是,你可以限定你的環境資源,讓你的模擬器,更加貼近你未來要安裝此app的環境。


As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

【eclipse】hot key

【環境:eclipse ADT  v22.0.5-757759】

工欲善其事,必先利其器。
以下為eclipse常用的快速鍵:

Command + Shift + L:快速鍵小幫手
再按一次會進入編輯快速鍵的模式。

Command + O:顯示大綱
Command + 1:快速修復
Command + D:刪除當前行

Command + /:注釋當前行,再按則取消注釋

Command + Shift + Z:向後一個編輯動作
Command + Z:向前一個編輯動作

Command + Option + ↓:複製當前行到下一行
Command + Option + ↑:複製當前行到上一行
Option + ↓:當前行和下面一行交互位置
Option + ↑:當前行和上面一行交互位置
Option + ←:前一個編輯的頁面
Option + →:下一個編輯的頁面

Option + /:代碼提示

Option + Return:顯示當前選擇資源的屬性

Control + Q:定位到最後編輯的地方
Control + M:最大化當前的Edit或View(再按則最小化)
Command + T:快速顯示當前類的繼承結構
Command + W:關閉當前Editer
Command + K:參照當前選中的Word快速定位到下一個
Command + E:快速顯示當前Editer的下拉列表(如果當前頁面沒有顯示的用黑體表示)

Command + Shift + E:顯示管理當前打開的所有的View的管理器

Command + Shift + W:關閉所有打開的Editer
Command + Shift + X:把當前選中的文本全部變為大寫
Command + Shift + Y:把當前選中的文本全部變為小寫
Command + Shift + F:格式化當前代碼
Command + Shift + P:定位到對於的匹配符(譬如{})(從前面定位後面時,光標要在匹配符裡面,後面到前面,則反之)


Option + Shift + M:抽取方法(這是重構裡面最常用的方法之一了,尤其是對一大堆泥團代碼有用)
Option + Command + C:修改函數結構(有N個函數調用了這個方法,修改一次就搞定)
Option + Command + L:抽取本地變量(可以直接把一些魔法數字和字符串抽取成一個變量,尤其是多處調用的時候)
Option + Shift + F:把Class中的Local變量變為Field變量



As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

2013年8月16日 星期五

【數據】2013年第二季 台灣行動市場數據報告

【環境:智慧型手機、平板,特殊節日分析】

此數據為vpon 2013/8/12 的數據報告,僅作參考


目前台灣用戶
android:76.1%
iphone:20.1%


Android數據
目前android主流一樣為 samsung
htc緊追在後

Android 4.x 版本已達 77%。
4.1 版本已成為主流。
4.0 Ice Cream Sandwich 較上,一季減少 10%
持有大螢幕的android的人數上升速度將近7%
平板用戶增加7%
android大螢幕的策略,對於喜愛用大螢幕遊戲的年輕人、眼睛不好的中高年齡層,繼續保有其優勢。




iOS數據
可以看到,主流果然是iphone5,4s,4
比較特別的事 ipad mini 、 ipad4 沒達到預期的效果,還是以ipad2為主流
頻果的硬體和軟體幾乎都是更新後,用戶也會持續跟進,跟android陣營差別最大的地方

而89%的用戶已經更新到ios6
剩下的ios5的用戶,大多應該是還在用iphone3gs or iphone4等用戶


台灣人行為分析
3g行動上網高達51.8%
但若之後的 4g 吃到飽取消後,不曉得是否會下降,值得觀察
如:東南亞用戶其實不流行3g等服務,加上中華電信的定點wifi服務。
但若降低了3g用戶數量,會否對 EC平台 or 一般通訊軟體的使用量會否降低,回歸成 簡訊 等行為模式,也是值得參考。


週末用戶行為分析
代表現在台灣人在週末從早上11點到晚上九點,還是以3g為主

從Android最常使用的app行為來看
社交類的還是佔大多數41%
其他類別如
使用影音、教育、娛樂、生活和新聞 App 有 55%

iphone最長使用的app行為
查詢旅遊、瀏覽影音、生活資訊和新聞媒體 App 有 63%

綜合以上兩者數據,可以發現,除了我們可以預知的『社交』類,還是佔大宗外。
其實『新聞』、『生活』、『影音』等,還是繼續佔有其他應用類別的項目。
但現在卻還未有一個最好的新聞app,畢竟各地方、個人的生活形態不太相同。
所以在建立這些app的同時,或許標準明確的區隔目標對象,如商務人士、高科技業務、一班人、設計師等...或許可以在『資訊』類,得到較大的效果。

特殊節日

數據使用量會上升,可以期待的是,現今大多app開發商,都未有依照節日給予特定的活動,跟客戶聯結,目前版主看到的只有line還有一些美食團購等app。




As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。