Exploring and Thinking

Ajax-Loader 測試

在做 jQuery Mobile 時,可能會碰到 mobileinit 事件。以下是模擬 A網頁前往 B網頁,可在B網頁加上載入三秒鐘的資料,藉以得知loading的狀態或圖示。

<script runat="server">
 
  protected void Page_Load(object sender, EventArgs e)
  {
    System.Threading.Thread.Sleep(3000);
  }

</script>
Share:

勾選我同意後,出現「下一步」按鈕,可指往第二頁。

當點選我同意時,顯示「下一步」。按「下一步」時導到第二頁。



<!DOCTYPE html>
<html>
<head>
 <title>Agree check</title>
 
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 
 <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.3/jquery.mobile-1.4.3.min.css" />
 <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
 <script src="http://code.jquery.com/mobile/1.4.3/jquery.mobile-1.4.3.min.js"></script>
 
 <script type="text/javascript">
  $(document).on("change", "#checkbox-agree", function () {
      if ($(this).prop("checked")) {
          $("#NextPage").button("enable");
      } else {
          $("#NextPage").button("disable");
      }
  });
 </script>
</head>
 
<body>
 
<div data-role="page" id="Page1">
 <div data-role="fieldcontain">
     <fieldset data-role="controlgroup" style="width:150px">
      <input type="checkbox" name="checkbox-agree" id="checkbox-agree" class="custom" />
      <label for="checkbox-agree">我同意</label>
     </fieldset>
     <input type="button" id="NextPage" data-inline="true" onclick="javascript:location.href='#Page2'"  value="下一步" disabled/>
 </div>
</div>
 
<div data-role="page" id="Page2">
 This is Page2.
</div>
 
</body>
</html>
Share:

負評 - 好味 港式‧燒蠟

公司同仁推薦一家用餐時間大排長龍的港式燒臘店,希望能集體訂購。

前一天,同事去店裡拿名片,詢問是否可外送?店員回答只接一千二以上、走路十分鐘可到的訂單。同事說滿近的,隔天會電話訂購。


早上九點,另一名同事說之前訂這家便當遭遇不好的經驗。八點多打過去時,店員要他11點再打,等11點店員又說外送單滿了,得自己去拿。

我說可能那天單比較多,才會有這種情況,於是立刻打電話過去。

第一次得先打四通才能正常通話,因為第一通店員聽到外送,就立刻說「喂、喂~ 」掛掉。我要等半分鐘再打才接起來回答:「我們現在不接單,接單小姐要10:45才會來」。

我說10:45太晚了,能不能早點接我的單?對方說:「我不接單、你晚點再打過來。」

等到快十點,打電話過去被掛兩次才被接起,店員反問我:「我不是說10:45再打嗎?」隨即掛掉電話。

到10:40又打電話,等了快兩分鐘才有人接聽,然後說:「接單的小姐外出了,晚點我請她打電話給你」。

留了電話後,到10:55還沒來電。我打過去詢問的結果是:「你要外帶嗎?外送滿了喔!」

我說:「你不是叫我這時候打過來嗎?為什麼9點不跟我說,等11點才回答只能外帶?」

店員:「剛不是我接電話,單子兩天前就滿了。」

奇怪,昨天同事去拿名片時沒提滿單,接電話的也明明是同一個人,卻說是不同人。

我說:「那你剛為什麼不打電話聯絡我?你們這樣耍人是做生意的規距嗎?」

店員:「我剛有打電話啊,可是你電話不通。」

我說:「我電話一定會有人接,我忙線中時電話會轉到同事那裡。」

店員一見謊言被揭穿就不講話,我又說:「那你要我怎麼跟大家交待中午的便當?你們做生意的SOP是這樣嗎?」

店員:「我們是小吃店,沒有所謂的SOP。」

我聽完後就掛電話了,無法接受一個生意不講誠信的店家。

好味的一貫技倆:

  1. 故意說11點才能接單,不讓你有轉訂別間的機會。
  2. 可以訂單時,說食材不足,只能外帶不能外送。簡單邏輯問題,備料不足無法外送,改外帶馬上就有便當出。天底下有這種做生意的態度嗎?今天不想外送,為何要給個外送專線,再強迫顧客自己去拿呢?
同樣的價格我推薦最近常訂的原味便當,美味之外也很健康。

第一次訂原味便當,因為事後額外加訂,導致外送人員少帶一個便當。店員來電詢問是否肯等半小時,他們可以為了一個便當再從敦化南路送來重慶南路。

有機的飯、菜,負責任的外送服務可選。大家又何必找一個沒有誠信的店家,吃冷菜冷飯的燒蠟?

好味 港式‧燒蠟,應該是我永遠的拒絕往來戶了吧。
Share:

jQuery Mobile 按下載鈕後連結檔案失敗

使用 jQuery Mobile設計下載檔案鈕,實作後點該連結卻出現undefined。

後來發現只要加 data-ajax="false" 就正常了。參考網頁:Downloadable files using jQuery mobile

<a href="http://nws.tw/file.zip" data-ajax="false" data-role="button" data-theme="c">File.zip</a>
Share:

Mac 使用一半會突然進入休眠狀態

這幾個月發現 Macbook 有時要打字時,電腦瞬間進入休眠。或是剛解除休眠,輸入完密碼進入畫面後,馬上又回到休眠狀態。

當時還以為是左側有磁性物品,讓電腦誤判上蓋已闔上。但每隔幾天都會重覆相同的情況。

原以為是SMC的問題,依Apple Intel 型 Mac:重置系統管理控制器(SMC)的步驟操作,情況有改善,卻未根除這個問題。

後來送到德誼,工程師檢測發現記憶體和硬碟不是出廠原件,建議換回原廠再供他們檢測。我將記憶體換回原廠試用一陣子,果然就正常了。

應是當初購買創見記憶體(TS512MSK64V1N / 4G / 1066Mhz)未選Apple相容認證,導致系統檢查記憶體沒有問題,實際卻會有小狀況發生。

於是又購入金士頓標明最佳相容Apple的記憶體(KTA-MB1066 / 4GFR),問題卻仍然存在。

打電話詢問金士頓,客服建議我先重置PRAM。雖然有點半信半疑,畢竟官方並未提到這與記憶體和休眠有關,但試用半個月以來未再有突然進入休眠的情況發生。

創見的記憶體也可以用,只差在當初未重置PRAM,不過我未試這一部份,提供有相同問題的人參考。
Share:

Mac 微調亮度

這兩天覺得Mac螢幕有點亮,讓眼睛很不舒服。一檢查才發現前幾天重灌Mac,顯示器設定又回到預設的「自動調整亮度」。

但不管怎麼調,都無法調不到自己滿意的亮度,不是太亮、就是太暗。

後來想到,mac同時按「shift」+「option」+ 音量 (F11,F12),可以微調四分之一格。或許在亮度上可以比照辦理。

結果可行!只要同時按「shift」+「option」+ 亮度 (F1,F2),也可微調四分之一格亮度!這個設計果然很貼心啊!
Share:

實體店面購買烏克麗麗經驗分享

上個月在網路上購買烏克麗麗,讓小孩體驗玩樂器的樂趣。

前天調弦時,第二弦的弦鈕偶有震動的雜音出現。於是打算拿到公司附近專賣烏克麗麗的樂器行,詢問如何修理、另外帶支23吋烏克回家。

首先到離公司較近的金聲樂器,店面很大、樂器也很多。玩琴的年輕人滿多的,搞不清是客人還是店員,所以直接詢問站在櫃台中,大約5~60歲的老闆娘。

我跟老闆娘說,當彈第二弦時,會有異音出現。她對著我手上的琴說,這支不是在這買的吧?我不看別家的琴。

我說,這個是網路上買的,我覺得問題不嚴重,可以自行找商家解決,能否幫忙看問題在那?她說這一整支都是問題,木板有問題、線有問題、琴鈕有問題,直接換一把啦!
我說,這是給小孩玩的,我也想自己買一把,但也想將這琴修一修。她說,這把才三、四百塊,修划不來。

我也不跟她爭說這一把也要一千,四、五百的琴我也彈過,根本不一樣。只說我知道這把琴價值,但還是想修,能否幫忙?

她說,換這個鈕就要兩百喔。我說OK啊,那可以先幫我換嗎?

她說不行,換完之後,你又會說木板也是壞的、線也壞的,還是又來找我,直接換新的就好。

我說,這把琴三條弦都OK,我也只要換弦鈕。現在只要用手指按著第二弦的琴鈕,就不會有震動的雜音。她說,那你就一邊扶著琴鈕、一邊彈就好了啊!

我說,真的不能修看看嗎?還是你們不會修琴?她轉頭離開,完全不想理會。我只好默默將琴收進袋子裡,離開這家只賣高檔的琴,不在乎普通琴是否值得修、只會建議丟掉的五十年老店。

因事前有收集店家資料,隨即在金聲樂器不遠處,找到另一家在網路上也滿有名的店,叫台北烏克麗麗專門店

一進店裡,只有一位女店員在,我拿琴出來描述問題點後,店員馬上拿起來彈看看。不像金聲店員,從頭至尾連碰都沒碰過,還說不碰釣魚線。

店員也認為弦鈕鬆了,我說其中有螺絲好像崩牙、鎖不緊。討論到一半時,另一位客人上門,我也趁機聽店員介紹各種琴,順便尋找自己想要的23吋烏克。

過了半小時後,還是很猶豫,原本出門前早打算要買KA-C了。一到現場卻又三心二意了起來。

一位剛搬完貨的男店員過來,詢問我想買什麼樣的琴、多少預算,可以在預算內幫忙找聲音好的琴。我回答大概想找3~5000的23吋烏克,他就立即拿三把不同的琴出來,KALA的KA-C、Koyama、Leolani,Koyama沒注意型號、Leolani則是型號太長記不住。

店員試彈,並解說琴的特色在那,如手感、指感好不好,音色上較重、或乾淨。後來我選Leolani。

選完後,店員進去裡面拿兩把新琴出來,讓我看看花紋,再決定要選那支琴。選完後再調音,試彈會不會有打弦等問題出現。

付了錢之後,我跟男店員提起原本給小孩玩的琴狀況。他馬上說,這把琴先留下來,老闆會修琴,可以請他看看。我開玩笑說,這把只有一千塊,不要修完跟我拿一千二的修理費就好。

雖然昨天下午剛送,今天還沒回音。但我想表達的是,烏克是一個很親民的樂器。或許你可以不愛惜廉價的樂器,但基於服務業,該給予顧客的尊重還是要有。

另一個就是烏克麗麗網拍和店面的價格其實一樣,若有機會的話,還是現場請店員試琴、解說較好,自己也能找到適合把玩的好烏克!
Share:

Linux備份檔案至Nas

這個範例是將Linux系統內的檔案,備份至Nas系統。

採取的方式是每天固定時間抓取Linux檔案,使用copy方式至Nas。

bash檔特殊的地方,主要是第五行和第六行,分別取得當天的日期和星期,格式單純數字化(大Y指四位數年份)。

因Linux每天將產生的檔案,分別放在0~6的資料夾內,代表星期日~星期六。因此我做一個迴圈判斷式,若今天是星期一,bkDateW=1,則會抓取資料夾"1"內的檔案。

抓到資料後,將檔案複製到Nas,檔名前面加日期"$bkDate"。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
 
bkDate=$(date --d="today" +%Y%m%d) # Get the date of today, format: 20120316
bkDateW=$(date --d="today" +%w) # Get the date of week, format: 5
 
# Copy and rename files to Nas.
case $bkDateW in
 
        "0")
        cp file/0/testFile bkEMtemp/"$bkDate"_testFile
        ;;
 
        "1")
        cp file/1/testFile bkEMtemp/"$bkDate"_testFile
        ;;
 
        "2")
        cp file/2/testFile bkEMtemp/"$bkDate"_testFile
        ;;
 
        "3")
        cp file/3/testFile bkEMtemp/"$bkDate"_testFile
        ;;
 
        "4")
        cp file/4/testFile bkEMtemp/"$bkDate"_testFile
        ;;
 
        "5")
        cp file/5/testFile bkEMtemp/"$bkDate"_testFile
        ;;
 
        "6")
        cp file/6/testFile bkEMtemp/"$bkDate"_testFile
        ;;
esac

接著我用root去vi rc.local(一般位在/etc/rc.local, 找不到可使用 find / -name rc.local 指令尋找),mount 資料夾 bkEMtemp。在此之前需先建一個資料夾,如本例的bkEMtemp,再chmod 777 (設定權限)。

這樣每次重開機進來時,系統就會將nas資料夾mount進來。

1
mount -t cifs //nas的ip/資料夾 /home/帳號/bkEMtemp -o user=account,pass=password

最後在原本的帳號,輸入「crontab -e」,將排程放進去,此例是每天下午四點半執行bkEM.sh。

bkEM.sh也需設定權限,chmod 755才行喔!
1
30 16 * * * /home/帳號/bkEM.sh

Share:

自動備份Log的Batch小程式

這兩天有備份Log的需求,想要讓電腦自動排程備份資料,不用定期整理、備份這些Log。需求很簡單,使用Dos的Batch檔指令即可完成。

在日期方面有點難度,我想要的是上個月資料而非今天,所以參考如何在 Batch 檔取得系統的日期、時間欄位 (第三版)文章來取得資料。
取得上個月資料的寫法:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
REM 取得今天的年、月、日 (自動補零)
SET TodayYear=%date:~0,4%
SET TodayMonthP0=%date:~5,2%
SET TodayDayP0=%date:~8,2%

REM 取得今天的年、月、日 (純數字)  
REM 2010/08/03 更新:以下是為了修正 Batch 遇到 08, 09 會視為八進位的問題  
IF %TodayMonthP0:~0,1% == 0 (  
    SET /A TodayMonth=%TodayMonthP0:~1,1%+0  
) ELSE (  
    SET /A TodayMonth=TodayMonthP0+0  
)  
  
IF %TodayMonthP0:~0,1% == 0 (  
    SET /A TodayDay=%TodayDayP0:~1,1%+0  
) ELSE (  
    SET /A TodayDay=TodayDayP0+0  
)  
  
echo 日期 %TodayYear%/%TodayMonth%/%TodayDay%  
echo 日期 %TodayYear%/%TodayMonthP0%/%TodayDayP0%  

REM 取得上個月的年、月  
SET /A LastMonthYear=%TodayYear%+0  
SET /A LastMonthMonth=%TodayMonth%-1  
SET /A LastMonthMonthP0=%LastMonthMonth%  
REM 修正年份與月份的數值  
IF %LastMonthMonth% EQU 0 (SET /A LastMonthYear=%thisYear%-1)  
IF %LastMonthMonth% EQU 0 (SET LastMonthMonth=12)  
IF %LastMonthMonth% LSS 10 (SET LastMonthMonthP0=0%LastMonthMonth%)  
  
echo 日期 %LastMonthYear%/%LastMonthMonth%  
echo 日期 %LastMonthYear%/%LastMonthMonthP0%  

接著將上個月的檔案撈出來壓縮,WinRAR可以抓到檔案的修改日期,若檔名無法判斷日期出來,則需附上-ta參數,01代表該月1號。其他參數表示:a (新增壓縮檔)、-r (含子目錄)、-m5 (最大壓縮比)。

以此例來說,因檔名有日期,所以後方搭配日期和星號即可,我兩種方法都寫出來。

第二、三步則是將檔案複製過去,再刪除原本產生的rar檔案。

1
2
3
4
5
"C:\Program Files\WinRAR\WinRAR.exe" a -r -ep -m5 -ta%LastMonthYear%%LastMonthMonthP0%01 "D:\log\%LastMonthYear%%LastMonthMonthP0%.rar" "D:\source\%LastMonthYear%%LastMonthMonthP0%*_XML.LOG"

xcopy "D:\log\%LastMonthYear%%LastMonthMonthP0%.rar" \\10.0.1.1\log

del /s/q D:\log\%LastMonthYear%%LastMonthMonthP0%.rar

我在另一個環境使用相同的方法時,遇到WinRAR壓縮時卡住不動,研判可能目錄的檔案太多,使用7z則不會有這個問題。複製檔案也無法傳送,或許檔案太大,因此用另一種方式處理。

程式1、4行單純寫入執行的過程是否成功。第2行使用7z壓縮欲備份的檔案、第3行使用ftp上傳壓縮檔。

1
2
3
4
5
echo ----- %date% %time% ----- >> d:\ian\log.txt
"C:\Program Files\7-zip\7zG.exe" a -r -mx9 "d:\Ian\%LastMonthYear%%LastMonthMonthP0%.7z" "d:\backup\%LastMonthYear%%LastMonthMonthP0%*"
ftp -s:d:\Ian\nas.txt
echo ----- %LastMonthYear%%LastMonthMonthP0%.7z 備份成功 ----- >> d:\ian\log.txt
del /s/q d:\Ian\8561_%LastMonthYear%%LastMonthMonthP0%.7z

ftp上傳需好幾個步驟,所以我另外建一個nas.txt檔讓ftp讀。程序如下:

第1行指定要連結的電腦IP(該電腦需開啟FTP服務),第2、3行輸入帳號、密碼,第4行指定binary傳輸,第5行設定不詢問問題(例如問我是否真的要上傳檔案),第6行切換ftp主機內的目錄,第7行將檔案上傳,第8行結束。

1
2
3
4
5
6
7
8
open hostIP
account
password
binary
prompt off
cd 子目錄
mput d:\Ian\*.7z
bye

實際應用大致上是這種作法,提供大家參考,若有更好的方式歡迎交流囉!
Share:

Mac無法清空垃圾桶解決方式

剛在安裝Parallels Desktop 7時,發現硬碟空間不夠,所以在安裝的詢問視窗下,開始清理垃圾桶。

結果清理到一半,桶子就卡住不動了,重開機還是一樣。

後來上網google,發現解決方法,很簡單!只要同時按command+option,再點垃圾桶的清空鈕就可以囉!
Share:

熱門文章