以前學生時代沒事喜歡架站, 但隨著俗務漸多, 自己養一個伺服器已經沒有興趣。當然身邊不是沒有伺服器, 但皆屬公務性質, 如果想要放一些小玩意, 找個比較不會倒的伺服器服務是比較合理的選擇. 但免費的伺服器空間狀況都不好, 都是想逼人家付錢, 小玩意兒特別付錢實在不是好的理由(當然絕不付錢也是一個重點)。
對於只是單純的小程式, 可以用java script寫的, 丟在DROPBOX裡設成分享其實就OK了, 而且它的分享資料夾基本上就是一個靜態網站. 但總是有後端的問題, 至少, 第三方資料就是一個大麻煩, 從早期開始, JS均被禁止第三方存取, 包括用POST跟IFRAME均同, 從伺服器轉資料一直就是必須的.
GOOGLE的雲端服務打得火熱, 它提供了GOOGLE SCRIPT作為伺服器端的快速開發, 但大部份人的認知都是不能加瀏覽器端的JS, 因為它的HTML會被先編譯(可以當active page用), 而且編譯後提供的基本物件有很大限制(如 document.stylesheets都沒有)。經過試作, 有幾個基本的操作可以減少一些麻煩
1. 使用JQuery架構, 但用google 優化過的library
2. 所有的東西都寫在 ready()裡, 特別是廣域變數及事件, 例如不要寫button onclick="...", 而是button id="ox", 在 ready() 裡再定義
$('#ox').click(function() {...});
3. 所有selector都用jqeury的, 如$('.myclass').css('font-size','10 em');
當然還有一些缺點, 主要的有
1. 速度並不快
2. 不能動態載入script
2013年8月28日 星期三
2013年6月17日 星期一
快速製作大型地圖檔
因為沒有用汽車導航的習慣,在去一個陌生的地方的行前都會用GOOGLE MAP把要去的地方做一個圖檔。以前就是用很白痴的方法把圖片一個一個的存下來再拼接。因為即將前往日本,常常用地圖規劃行程,今天進去發現一個新的地圖設計的功能, 可以標記一些地點然後儲存或輸出成KML檔。所以利用google map的另一個產生static map功能,以及輸出KML的座標, 做了一個小的產生 640X640 LEVEL 16 圖檔的網頁小程式。另外附加 LEVEL 15 及 LEVEL 17的版本
使用方式很簡單
1. 進入地圖設計,把要畫的地圖的地方的必須涵蓋的地方的地點標記起來,輸出成KML檔
2. 在 chrome 裡(IE不行)進入 http://goo.gl/snmnC,選擇存下來的KML檔,會將包括這些地標的 LEVEL 16地圖以經度差0.012,緯度差0.01的範圍顯示在640X640有接合重疊區的圖片。(東經/北緯為正)
3. 在空白處按滑鼠右鍵,選另存新檔,所有圖片會變成 staticmap(n)的檔名存在子資料夾裡。
4. 在命令提示字元裡 cd 到所存的資料夾, 執行 ren * *.png
5. 在photoshop的photomerge裡把圖片拼成大圖儲存,打完收工。因為地圖每一片其實都很像,如果一次太多片,在photoshop裡的拼圖可能會拼不起來或拼錯(還真的不仔細看會看不出來),就必須要分成幾個小區來拼
使用方式很簡單
1. 進入地圖設計,把要畫的地圖的地方的必須涵蓋的地方的地點標記起來,輸出成KML檔
2. 在 chrome 裡(IE不行)進入 http://goo.gl/snmnC,選擇存下來的KML檔,會將包括這些地標的 LEVEL 16地圖以經度差0.012,緯度差0.01的範圍顯示在640X640有接合重疊區的圖片。(東經/北緯為正)
3. 在空白處按滑鼠右鍵,選另存新檔,所有圖片會變成 staticmap(n)的檔名存在子資料夾裡。
4. 在命令提示字元裡 cd 到所存的資料夾, 執行 ren * *.png
5. 在photoshop的photomerge裡把圖片拼成大圖儲存,打完收工。因為地圖每一片其實都很像,如果一次太多片,在photoshop裡的拼圖可能會拼不起來或拼錯(還真的不仔細看會看不出來),就必須要分成幾個小區來拼
存在
2013年6月15日 星期六
擺脫M$之路
M$的授權合約日益昂貴, 而內容也日益機車, 而必須購買授權的兩個必要原因,首先是很多網站用VB+ACTIVEX,如弊校的校務行政系統就是用以下的程式碼
Dim objExcel
Sub OpenDoc(strLocation)
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = true
objExcel.Workbooks.Open strLocation
objExcel.ActiveSheet.PrintPreview
set objExcel=Nothing
End Sub
對於很多大型組織而言, 為了這個程式碼就是一年100萬, VB是IE的專利, 而指定OFFICE則是必須要有OFFICE的EXCEL跟WORD(另外一些表單),對於後者, KING OFFICE (http://www.ksosoft.com/product/office-free.html)提供了高度相容的OFFICE界面, 包括ACTIVE X, 而其差別, 只有在CreateObject("Excel.Application") 必須改成 CreateObject("et.Application"), 若是CreateObject("Word.Application")則改為CreateObject("wps.Application"). (參考 http://www.binarynow.com/office-suite/kingsoft-office-2009-supports-microsoft-office-word-excel-api-compatible-ole-com-activex-application-automation/)
但問題在網站程式不能直接修改, 以上面的程式為例, 在沒有WINDOWS OFFICE的電腦中安裝KING OFFICE, 用REGEDIT搜尋所有的et.Application, 把它們通通改成Excel.Application 就可以使用. 由於M$的授權僅包括WINDOWS昇級及OFFICE是必需的, 其他都是強迫搭配, 所有的電腦都有必須購買隨機版, 所以WINDOWS跟IE(自XP後昇級的需求又不多)不需要解決, 如果沒有WINDOWS的話, linux加wine加IE是可以一試的
Dim objExcel
Sub OpenDoc(strLocation)
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = true
objExcel.Workbooks.Open strLocation
objExcel.ActiveSheet.PrintPreview
set objExcel=Nothing
End Sub
對於很多大型組織而言, 為了這個程式碼就是一年100萬, VB是IE的專利, 而指定OFFICE則是必須要有OFFICE的EXCEL跟WORD(另外一些表單),對於後者, KING OFFICE (http://www.ksosoft.com/product/office-free.html)提供了高度相容的OFFICE界面, 包括ACTIVE X, 而其差別, 只有在CreateObject("Excel.Application") 必須改成 CreateObject("et.Application"), 若是CreateObject("Word.Application")則改為CreateObject("wps.Application"). (參考 http://www.binarynow.com/office-suite/kingsoft-office-2009-supports-microsoft-office-word-excel-api-compatible-ole-com-activex-application-automation/)
但問題在網站程式不能直接修改, 以上面的程式為例, 在沒有WINDOWS OFFICE的電腦中安裝KING OFFICE, 用REGEDIT搜尋所有的et.Application, 把它們通通改成Excel.Application 就可以使用. 由於M$的授權僅包括WINDOWS昇級及OFFICE是必需的, 其他都是強迫搭配, 所有的電腦都有必須購買隨機版, 所以WINDOWS跟IE(自XP後昇級的需求又不多)不需要解決, 如果沒有WINDOWS的話, linux加wine加IE是可以一試的
2013年5月29日 星期三
在PHOTOSHOP裡拼接圖片快速去縫
因為小朋友要交出去的一些水彩畫用4開的圖書紙, 如果時間許可會去輸出的店裡掃瞄, 但如果時間來不及就用家裡的掃瞄器從四個角落分開掃瞄,在Photoshop裡的photomerge功能基本很好用, 它會把四個圖片變成四個圖層接合的很正確, 但是因為掃瞄器不是那種專業的(掃瞄器的控制面板比掃瞄區的玻璃還要高), 中間會有一些色差, 選擇Photomerge的去除暈邊功能並沒有用。心想photoshop應該沒這麼糟, 但網路上搜尋都是還要用印章等方式來蓋掉邊.
試了許多方法後發現, 只要將圖層的選項除了最下面一個圖層(當背景)以外, 從正常改成顏色加亮, 加亮的計算之後的會受到其他圖層的影響而得到幾乎看不到接綘的結果, 不需要再去蓋邊.如果是用其他軟體拼接的話,可以直接複製成一個圖層(原來的當背景是不能做事的)將調整亮度對比的圖層以一定比例的透明與背景(原圖)混合,也可以去掉拼接線
試了許多方法後發現, 只要將圖層的選項除了最下面一個圖層(當背景)以外, 從正常改成顏色加亮, 加亮的計算之後的會受到其他圖層的影響而得到幾乎看不到接綘的結果, 不需要再去蓋邊.如果是用其他軟體拼接的話,可以直接複製成一個圖層(原來的當背景是不能做事的)將調整亮度對比的圖層以一定比例的透明與背景(原圖)混合,也可以去掉拼接線
訂閱:
文章 (Atom)