2012年4月18日 星期三

JavaScript 進位轉換方式

剛好朋友問起
在JS裡怎麼讓 原本為2進位的字串變成16進位呢?


這裡紀錄一下小小的教學


JS提供了很方便的工具可以讓我們將傳統的數值轉為各種進位的字串


例如:
var origin = 100;
var result = origin.toString(2);
這時候 origin 還是10進位的數值型態
要將他轉為2進位則利用toString並傳入需要的進位方式


但是如果要將2進位轉為16進位呢?


由於JS沒有辦法直接將2進位變成16進位


所以我們需要轉個方向
將2進位先轉回10進位就好啦! :p


好在JS也提供了轉回10進位的方式
parseInt()
parseInt除了將傳入的字串解析成數值以外
也可以加入進位的參數唷


例如:
parseInt( '1100',  2 );

這樣就會將1100當2進位處理
回傳 12這個數值
而不是直接回傳1100唷


所以2進位轉數值及數值轉回2進位都有了
這時候就可以來嘗試2轉16的部份
程式碼非常非常簡單 :)


範例:
var origin '10000110'// 2進位數字
var temp parseInt(origin2)// 先將字串以2進位方式解析為數值
var result temp.toString(16)// 將數值轉為16進位

jsfiddle線上範例


雖然不知道為什麼簡單的東西
打出來又變成長篇大論OTL...

Input's HTML5 placeholder Color

input::-webkit-input-placeholder {
    color:    #FFF;
}
input:-moz-placeholder {
    color:    #FFF;
}

2012年4月11日 星期三

調整 jQuery 動畫效果的更新頻率

前陣子在開發平板應用時
由於需要仿製Ipad上的主頁面
讓螢幕上排滿App 圖示的情況下
還必須要滑動換頁
公司的裝置在降頻且使用舊版webkit核心的瀏覽器下
顯得有些許頓挫感
後來想到可以針對jQuery動畫效果的部份去調整

這時候得手動調整
jQuery.fx.interval

下面開始範例

範例DEMO on jsfiddle

我們先建立基本的HTML

<!DOCTYPE html>
<html>
<body>
  <p><input type="button" value="Run"/></p>
  <div class="box"></div>
</body>
</html>


這裡我們建了一個box及啟動按鈕

設定一下css

讓box有個顏色跟基本大小
這邊要注意的是
要做動畫效果必須要設定position為相對或是絕對定位


.box 
    width:50px
    height:30px;
    background-color:#000;
    positionrelative;        
}


再來就是重頭戲了:p
我們來建立按鈕事件
讓box每按一次移動 100px



jQuery.fx.interval = 18;

$("input").click(function(){
    $("div").animate({left:'+=100px'}, 500);
});​


jQuery.fx.interval 的型態是數字, 預設值為13毫秒 
我們為了調整更新的效率
將它改為18

雖然只是小小的5毫秒
卻還是讓原本在平板上有頓挫感的程式
變成咻咻咻的流暢動畫
不過數字不能調太大
不然因為更新頻率間隔太長
反而會造成動畫效果不佳的情形

2012年4月5日 星期四

Linux 設定 Wifi 的方法 Part1 (無加密與WEP)


將當初放在pixnet的文章轉了過來 :p

這幾天終於將Wifi管理工具開發完成
在wifi的指令上遇到不少問題
後來全部改成使用wpa_supplicant來管理就簡單多了
不過這篇先寫寫一般使用iwconfig連線的方式
(iwconfig不支援WPA加密喔!)


使用前請先將方便的NetworkManager關掉XD
/etc/init.d/NetworkManager stop

以下使用 wlan0 來作為interface
啟用&停用網路卡
ifconfig wlan0 up
原先我所寫得管理工具靠得是 iwconfig 及 wpa_supplicant 混用
iwconfig 可以對無線網卡的大部分參數進行配置
直接下 iwconfig 不帶參數會取得目前的網卡資訊

lo        no wireless extensions.
eth0      no wireless extensions.
wlan0

確定我們的 wlan0 有啟動後
我們開始要掃描有哪些基地台可供使用
iwlist wlan0 scan 
(如果這時候 NetworkManager 還在作用可能會收到錯誤訊息唷!)
這裡可以取得重要的幾個訊息如下:
  ESSID:"MyAP"
  Encryption key : On
  IE : IEEE 802.11i/WPA2 Version 1   

Encryption key 如果顯示No就是不需要密碼,顯示On 則有加密
如果是WEP則只會顯示上面Encryption key : On,而WPA 的話則IE 會顯示是使用WPA or WPA2 )

現在我們要開始連線囉!
無加密
iwconfig wlan0 essid "MyAP"
(essid指的就是剛剛iwlist所掃描到的essid)

WEP加密
以加密金鑰區分兩種寫法
十六進位  (10或者26個十六進位數字) 
iwconfig wlan0 essid "MyAP-WEP" key "0123456789"
ASCII     (5或13個英文字母)  
iwconfig wlan0 essid "MyAP-WEP" key "s:15325"

在設定完iwconfig
再使用
dhclient wlan0
就可以取得DHCP分派的IP囉

CSS3 Selectors - for a range



Example:
nth-child(n+1):nth-child(-n+6) 


My Demo in jsfiddle