發表文章

目前顯示的是 2013的文章

SQL - with nolock statement

因為我的資料庫是即時寫入資料 同時讀取資料的話會造成table鎖住 資料無法寫入 郭董說要治本的話得針對程式還有資料庫做優化 目前我只能用 nolock來應急了 SELECT Symbol, Price, Date, FROM Stock WITH (nolock) WHERE (Date = CONVERT(DATETIME, '2013-11-27 00:00:00', 102)) AND (Symbol = N'2330') 如果有where條件式的話 WITH (nolock) 要放在 From table名稱的後面

R中Try and Catch的寫法

圖片
在R裡的Try and Catch可能比較少人用到 因為R code出現錯誤時不會導致R整個停機 只會出現錯誤訊息 而且可以繼續運作 但是因為我的系統是用Java去call R,R如果有error會停止運作然後害我整個系統死機 所以我需要一個方法可以先楨測我的R code有沒有error,如果有錯就不往下執行了 範例如下: 如果我直接在R裡面執行 a<-'abc' b<-1 c<-b/a 會看直接看到錯誤,因為我不能把字串去除以一個數值 所以我加了try and catch之後 Erroresult<- tryCatch({ a<-'abc' b<-1 c<-b/a }, warning = function(war) { print(paste("MY_WARNING: ",war)) }, error = function(err) { print(paste("MY_ERROR: ",err)) }, finally = { print(paste("End Try&Catch")) }) 結果就會像這樣了,Error已經不是紅色,而是一個字串輸出,可以像我一樣把tryCatch的結果再另存到一個變數,例如Erroresult,這樣你就可以把這個error message存著 Try and Catch的架構像這樣,其中warning,error,finally的結構一定要有,不然會報錯 tryCatch({ #要執行的指令放這裡 },warning = function(war){ print(paste("MY_WARNING: ",war)) #如果有warning則輸出warning,"MY_WARNING: "這一行可以自己改 },error = function(err) { print(paste("MY_ERROR: ",err)) #如果有error則輸出error,"

T-SQL 日期跟時間合併

之前為了方便處理所以把資料庫裡面的日期跟時間切開 但是現在為了R建模方便,又得把他併在一起了 本來查了網路 有人說是用&就可以併在一起 結果根本是騙肖A 後來又查到其實是用+ 但是日期和時間不能直接用+ 要先轉成字串 範例如下 SELECT Symbol,Name,convert(char(11),Date)+convert(char(8),Time)as DateTime, Price FROM dbname

SQL-運用CASE改變輸出的條件

這個例子是因為我的資料來源有前一個工作天的收盤價 所以我就很自然的把前一天的收盤價撈出來 然後把今天的日期減1天 就是昨天的收盤了 後來才想到如果是星期一的話 那收盤日就會變成星期日了 所以就寫了以下的語法修改 SELECT distinct Symbol,(CASE WHEN DATENAME(weekday, Date)='星期一' THEN DATEADD(day, -3, Date) WHEN DATENAME(weekday, Date)<>'星期一' THEN DATEADD(day, -1, Date) ELSE Date END) Date, PriorPrice AS ClosePrice FROM Stock order by Symbol,Date 如果直接update的話 範例如下 Update StockClosePrice SET Date = CASE WHEN DATENAME(weekday, Date)='星期日' THEN DATEADD(day, -2, Date) ELSE Date END

Split Strings in String Array (Java)

圖片
Search over through google about this topic but not too much result. Therefore, I would like to share my method. However, should many persons can resolve this better than me. import java.util.ArrayList; public class stringTest { public static void main (String[] args) { //假設有一個String array如下 String [] s={"1001:台泥","1002:台積電","1003:宏電","1004:蘋果"}; //宣告一個String array以承接.split將字串分開後回傳的array String [] a; //宣告一個ArrayList,因ArrayList可使用.add將值加入array ArrayList list= new ArrayList(); //宣告一個迴圈,將String array的值一個一個取出,並分開 for (int j=0; j<s.length;j++){ //使用.split將字串分隔,並以另一個String array承接 a=s[j].split(":"); //因只需要股票代號,故只取array[0],並一個一個加入ArrayList list.add(a[0]); } //印出結果 System.out.println(list); } }

Jsp+R Server

圖片
rServer據開發者說是rJava的theard safe版本 我用jsp呼叫rJava的時候 只要重新整理或是怎麼的 Tomcat就會整個傻住然後shoutdown 必需要自己手動開啟 因為r一次只能有一個執行緒存在 而java是可以多個執行緒的 所以只要r的執行緒還在跑 就不能再新增一個 而rJava的執行緒不知道怎麼回事 就是關也關不掉 換用rServer之後 當然是Tomcat是沒有再死機了 但根據開發者說的( 在這裡 ) Although Rserve works on Windows it is not recommended to use it on that platform. Windows lacks important features that make the separation of namespaces possible, therefore Rserve for Windows works in cooperative mode only, that is only one connection 意思就是說 雖然你用了rServe 但是在windows上面還是一次只能有一個連線哦 靠北啊 那不就等於是單機版 那我寫jsp幹嘛!! 一次只有一個使用者能連進來不是超落漆嗎 唉 算了啦 頭都洗一半了 老師說就先繼續做 之後再看要不要弄一台Linux試試看 在這裡我就先分享如何使用rServe的心得 也算是公德一件 首先要在R裡安裝rServe install.packages("Rserve") 安裝好之了後就在R裡面啟動它 library(Rserve) Rserve() 看到Starting Rserve就表示Rserve已經在幕後啟動 然後打開Java的IDE 或筆記本 任何你習慣寫java code的介面 package rServe; import org.rosuda.REngine.Rserve.*; public class test { public static void main (String[] args) { // new R connection try{

從windows到uduntu的新體驗之打個大易那麼難嗎

圖片
這幾天忽然心血來潮 想用用Linux系統 原因是這陣子接觸很多開放源碼的軟體 覺得開放源碼的軟體再也不是以前想像的又醜又難用(可能是被微軟洗腦洗的太徹底) 甚至有很多人在這一塊耕耘努力 做出來的東西比封閉源碼的東西還好 像是我的手機Andriod 還有統計軟體R等 都做的很好呀 於是查一查網路上Linux的版本 發現現在安裝圖形介面的版本安裝過程也超簡單的 然後就走進了更宅的Linux世界 但是走進來的第一步就踢到鐵板 流程如下: ubuntu內建的ibus沒有大易輸入法 上網查發現要另外裝另外的輸入軟體gcin 灌好gcin發現這個軟體有大概十幾種輸入法 雖然有大易這個選項但是不能用 上網查發現新版的gcin不知道為何獨獨漏了大易的.gtab檔(快崩潰) 上網查發現舊版的gcin有 抓回來裝但是裝不了 一直出現error 終於放棄gcin 上網查有人說另外一套sicm有 裝了scim 真的有 也可以用 雖然是三碼 用了之後發現不如不要用電腦  改用飛鴿傳書還比較快 因為scim打大易反應實在太慢 打完一行都是錯字 大概花了十分鐘(快自殺了) 放棄 scim 開始查要怎麼把gcin修好 發現有一個人好心人做好了大易的gcin專用檔.gtab 只要把這個檔案放到gcin的資料夾下面就可以了 http://www.ubuntu-tw.org/modules/newbb/viewtopic.php?topic_id=52130&forum=8&post_id=241564#forumpost241564 解壓縮發現怎麼是.cin檔 沒關係 有人說只要在linux下指令就可以把cin檔轉成.gtab 下了指令但是一直有問題 查了之後發現這個cin檔的格式有錯誤 這個時候我已經不想自殺了 我想殺人 就在我快要殺人的時候 發現一篇PO文 裡面放的是好心人當初有一起提供的 dayi.gtab 檔 於是心喜若狂 趕快下載來放到~/gcin/table裡面 但是放不進去 說我沒權限 天哪 Linux的權限設定怎麼會這麼龜毛 又上網查 用這個指令gksudo nautilus可以用root權限做檔案管理 然後順利把 dayi.gtab 檔案搬進~/gcin/table 但是gcin還是沒反應 有人說還要再改一個.l

T-SQL轉換Time格式只到"分"

SQL裡的Time資料型態預設為hh:mm:ss,也就是最少要顯示到秒 可是我只需要取到分呀 本來傻傻的這樣寫 SELECT SUBSTRING([系統時間], 1, 5) 結果馬上報錯了 SUBSTRING不可以用在時間的資料型態上 後來又查了一下 忽然有一個靈感 於是這樣 SELECT CONVERT(char(5), [系統時間], 108) as newTime 成了!

碎碎念

台灣實做Java與R結合的人好像不多 每次有問題上google查詢都只找到國外的討論 希望能有更多的人做這方面的研究 但也可能因為R的界面不是那麼親民(必竟是免費) 都是要下指令的 但R可以做的運算不比spss,SAS,Modeler差啊 而且又有很多好心人寫好的package 這樣子工程師就不用那麼辛苦了不是嗎 例如我那天看到一篇論文 是一個工工所的人用java硬寫出類神經網路來預測個股的買賣點 天哪 我想都不敢想 如果我用java寫那不就寫到我曾孫都取媳婦了 如果他知道可以用java call R,然後再把R類神經網路package load進來,資料丟進去,R就算好了 這樣大概一天就寫完了吧 不知道那個人拚了多久 希望他永遠不知道有這個方法 不然他應該會去撞牆或咬舌自盡

如何在google blog裡面坎入易讀的程式碼樣式

圖片
其實有時候上網查一些資料的時候會鬱悶 因為有些網友提供了做法但可能是他個人筆記的形式 就會看不太懂 或是他的做法換到我的環境就不行了  這次我要分享在google blog裡面如何坎入一個程式碼的小頁框,因為常常看到別人在用 覺得這樣子程式真的很好讀 像這樣 這裡可以放程式碼 上網查了之後有一個人教了做法 可是我用他的做法卻一直設定不好 只好回去再看官方的網站 最後終於成了 步驟如下 先到 SyntaxHighlighter 的網站直接按download 把整包東西下載回來 下載回來解壓縮之後 找到裡面scripts的資料夾 複製一個必要的檔案 shCore.js 及另外一個 shBrush????.js 請注意????就是依照你要寫的程式碼下載對應的brush,例如我要寫的是java及SQL,就下載shBrushJava.js和shBrushSql.js  再到另外一個styles的資料夾,複製shCore.css和shThemeDefault.css 所以現在我們有5個檔案了 shCore.js shBrushJava.js shBrushSql.js shCore.css shThemeDefault.css 把這些檔案上傳到網頁空間 例如dropbox或是google site 因為待會在google blog設定的時侯會用到 現在到google blog設定範本>編輯HTML 如下圖 按下編輯HTML之後 在<head> </head>之間 放入以下的code 請注意'https://sites.google.com/site/xytsite/css/'這一段是我的網頁空間 你必須替換成你的網頁空間網址 如下圖 然後發表新文章的時侯 請用HTML模式 請記得放在<div></div>的中間 在你要展示code的地方 使用<pre class="brush: java"> 中間放你要的code</pre> 至於<pre class="brush: java"> brush後面要放的代碼 就是要寫的程式的代碼 在下面這個網頁有交

Java快速的讀取陣列的值

//設定一個double的陣列,名叫temp,把值都放進去 double[] temp={4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14} //用以下迴圈可快速的取出陣列的值 for(double i : temp) { out.println(i+"\t"); }

JSP+讀取資料+核取方塊的寫法

網路上都很少關於JSP跟JDBC很簡單的表單應用方法,可能是會寫JSP的人都很厲害了閉著眼都會寫,所以我把自己用到的一些很簡單又很基本的應用放上來讓鄉民參考 //先建立好資料庫的連結 <%! java.sql.Connection conn = null; %> <% Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); conn = DriverManager.getConnection("jdbc:sqlserver://1.99.88.99;databaseName=abc","user","password"); Statement stat = conn.createStatement(); String sql = "SELECT * FROM abc"; ResultSet rs = stat.executeQuery(sql); %> <html> <head> <title>JSP Page</title> </head> <body>JAVA Access Database Test!! //先宣告一個表單 <from> //核取方塊的寫法 <% while(rs.next()){%> //Jsp:一直讀取資料直到沒有資料為止 <%=rs.getString(1)%> //Jsp:用資料庫第一行的資料來建立核取方塊 <br/>         <%}%> </form> </body> </html>

租屋看房記完結篇

Sorry我現在是有點拿翹了 因為開始有人會發露我的布落格之後 我的租屋記就越寫越慢 其中一個原因也牽涉到了小白球出國 我要等她回來再寫 不然我的忠實讀者沒辦法馬上看到完結篇 我相信她會很失望的 其實完結篇也沒什麼 我們最後選擇了不囉嗦房東的房子 因為我發現租房子其實是相對價格 而不是絕對價格 在經歷過前面那些看屋的經驗之後 發現不是貴的就是好的 也不是便宜的就不好 一間房子的好壞 房東佔了70% 我覺得這個房東她也知道在電話裡面問一大堆問題 不如見面看彼此的感覺怎樣 很多事情不是在電話裡面問就問的出來的 她也是唯一一個把房子打掃的乾乾淨淨 主動說她可以讓我們報稅還有入戶籍 但是如果我們都不需要的話 房租可以再打折 其實光是這一點就很重要 像我去看周游阿姑那一間 她一直跟我抱怨之前的房客要報稅弄得她很麻煩 就是在暗示我她不給報稅 雖然我今年沒有報稅的需要 但是會出來租房子的人賺的都是辛苦錢 可以報稅真的會省很多 房東每個月收房租都是淨賺就已經夠好了 還不給人報稅 這不是欺侮窮人嗎 我要租的這間房子應該是是剛成交房東就拿出來租了 乾淨是一定的 但是我們簽約的當天 她還是再打掃一次 我都沒想到房子沒有可以晒衣服的地方 她也幫忙掛了晒衣鍊跟買一個晒衣架給我們 阿龍整個龍心大悅了 其實就是奇摩奇的問題 之前那些房東的房子 只要好好整理 我相信馬上都可以租出去 但是屋主如果一副老大心態的話 現在的房客也不是笨蛋 花一樣的錢為什麼要租爛房子 如果拿這一間跟之前的其它間比 1.跟頭頂噴血男比,不用說了,人家房東自己就打掃的乾乾淨淨,房租還比你便宜 2.跟房仲那3間比,還用講嗎,叫我花二萬多租一間廢墟,我還不如把錢拿去捐 3.跟做生意喜歡長長久久的房仲比,我不想跟跩的房東租房子,還有那間房子是沒有什麼問題,但是採光沒有他說的那麼好,舊公寓,離提捷運站也要走十分鐘,不值二萬四 4.跟麗寶客氣房東比,客氣房東的房子真的是好,但是房租真的超出預算太多 關於租房子 我的心得就是多看,以前我覺得找房子就是把自己預算可以租的搜尋出來,再找最便宜的,當然每個人都想要租到又便宜又好的房子,但是常常事與願違,本來我們以為一萬五就可以租到了,可是我們最後租的房子也是多出預算一些,這間多出周游阿姑的房租一些,但是我們可以住電梯大樓,不用追垃

R與Java的結合

圖片
如果有人需要用java寫出一個可以應用R的介面 我在這裡先提供如何用java成功的call R,其中有很多眉眉角角,而R的文件也不是很清楚,這是我的好朋友郭董幫我試出來的,放在這裡供鄉民參考參考 Step 1. 先把java的開發環境都設定好,先裝好JDK及IDE,例如Netbean,設好環境變數等 Step 2.請先到rjava的網站下載 3個最重要的jar檔案 http://www.rforge.net/JRI/files/ ,請記得3個.jar的檔都要下載回來放在同一個資料夾 Step 3. 接下來的步驟非常重要,如果你尿急的話請先去上完廁所再回來,因為這個設定關係到是否可以在java裡直接下r的指令,並產生出結果,首先,請到控制台\所有控制台項目\系統\進階系統設定\進階\環境變數,我們要加入 2個路徑,第一個是r.dll的路徑,這是你安裝好R之後一定會有的,就在你的R目錄下面(大部份的人是C:\Program Files\R\R-2.15.1\bin\i386 or x64)請把這一條加入環境變數裡,如下圖(請注意,你的路徑有可能不一樣,端看你的R安裝在那裡) 然後再把.jar存放的路徑加進去環境變數裡,請記得前後一定要用;分隔 (請注意,你的路徑有可能不一樣,端看你將.jar放在哪裡) Step 4. 打開Java IDE測試一下,如果跑出 15,那就代表你可以成功的在java裡call R了 import org.rosuda.JRI.Rengine; public class RJava {     public static void main (String[] args)     {         // 宣告一個Rengine         Rengine re=new Rengine (new String [] {"--vanilla"}, false, null);         if (!re.waitForR())         {             System.out.println ("Cannot load R");             return;         }      

SAS Excel Add-in 與元大RTD衝突

SAS Excel Add-in 與元大RTD衝突 如果你的excel本來有使用元大RTD下載資料 請停用SAS Add-in 不然輸入帳號密碼那個視窗不會跳出 資料也不會更新

租屋看房記-4

租屋看房記已經出到第4集了 大家是不是很納悶到底有完沒完 我到底找到房子了沒 請大家再看下去 任何有關房子的事跟找男女朋友一樣 你訂了一堆條件以為萬無一失 最後的對像一定有一樣你沒有辦法接受的缺點 怎麼辦呢? 所以永遠都要往好處想 好嗎?(趁機抱怨嗎) 其實這中間我們真的有看到幾間喜歡的 但是打電話去都被租走了 其中有一間讓阿龍一直念念不忘的房子 在行天宮那邊 念念不忘到騎車去站在外面傻傻的看 這是在一間巷子裡面的舊公寓 那裡很安靜 可是那房東只接過我一次電話 再打就沒人接了 591底下的留言也是一堆人說要去看房子叫房東接電話 結果那個房東還回說請你多打幾次 真的是什麼人都有 這是我連絡過最不積極把房子租出去的房東了 後來這間房子就從591消失了 也不知道他租出去了沒 算了 得不到的永遠都是最好的(又在抱怨) 所以我們現在的策略就是盡量找新上架的房子 因為阿龍已經把591上面都翻過一遍了 他喜歡的房子真的很少 不是說房子都不好 是阿龍特別龜毛 有時候我覺得照片看起來還可以  只要再打掃一下 或是擺設改一下就可以了 但是阿龍就是可以從照片裡面挑出一大堆缺點 什麼浴室不是乾濕分離 或是 房東拍照技巧太差沒拍出重點(這是什麼理由?!!) 後來有一間看起來還ok 25坪在台北市 租金比其它房子還低 可是這要經過房仲 阿龍說只要能找到喜歡的房子他不介意付仲介費 我就先打過去約時間  結果那房仲劈頭就問我做什麼行業 他說 小姐  我就直說了 這間其實給酒店小姐住比較合適 因為那間是在林森北路 很多小姐都租在那裡 而且妳的鄰居也是酒店小姐 因為租在那裡上班比較方便 但是妳也知道她們上班時間都是晚上 她們這樣來來去去會吵到妳 我這個人做生意喜歡長長久久 (請把這一句用螢光筆先畫起來) 不喜歡用騙的 萬一妳住了不喜歡 整天打給我 我也沒辦法 好吧 果然什麼事都是一分錢一分貨 (有宅宅想知道房子在哪裡嗎?) 然後我就問他 那你那裡還有條件差不多的房子嗎 他就跟我推廌了一間 在老爺酒店旁邊 聽他講起來好像還不錯 於是我們約好星期六中午看房子 然後阿龍又看到二間在三重 其中一間超級貴 要三萬 就是傳說中的麗寶之星 我想他是找房子找到失心瘋了 不過他很堅持 而且他說他會殺價 雖然我是絕對不會讓他租的 但是我也想去看看到底三萬的房子裡面有什麼 這房東是所有的房

JAVA 環境變數設定

圖片
最近因為論文需要所以開始學java了 Java真的是一個很搞工的東西 如果不用IDE開發 用記事本寫的話 要到系統>進階的環境設定那裡設定一些路徑 讓你用命令提示視窗跑java之後才會有結果產生 網路上教學的文章很多 如果你搜尋JAVA 環境設定的話會跑出一堆 第一篇最多人按的設定是錯的 照著他設的話 java還是可以跑 但是有一個地方錯了 最底下還有人糾正作者 但是他也沒改 很多人沒有拉到最下面所以就跟著傻傻的設了 現在我把我的方法PO上來讓鄉民參考參考 不管是Windows什麼版本 請到控制台裡面找到"系統">選擇進階系統設定 按下去之後會看到一個視窗跳出來,請選擇進階的環境變數 接下來要設定的路徑通通都在"系統變數"那邊,不要一直傻傻的加在上面USER的使用者變數 在系統變數的地方新增一個JAVA_HOME,路徑就放灌好Java JDK之後的路徑,數字的部份會依版本的不同而不同 然後在系統變數的地方,可以到一個叫做Path的變數,我們要加上一個路徑,讓電腦知道下了javac跟java指令的時候它該做什麼動作,這個路徑就是C:\Program Files\Java\jdk1.7.0_21\bin,請選擇Path這個路徑之後,按下編輯  然後你就會看到變數值那裡有好多路徑,千萬不要動到它們,我們只要在最後面加上%JAVA_HOME%\bin;(請記得前後一定要用;分隔,如果前面的路徑沒有用;結尾,一定要自己加上去),再按確定,就可以了。 所以現在知道了吧,JAVA_HOME只是為了存放現在JAVA JDK版本的路徑,如果未來電腦上裝了新的JDK,就直接來改JAVA_HOME的路徑就可以了,不用再去打開Path,眼花瞭亂的找好久,當然,JAVA_HOME也可以不要設,直接在Path打上完整的路徑C:\Program Files\Java\jdk1.7.0_21\bin就行了,但如果之後電腦裡JDK的版本有改,也要記得回到path,把jdk1.7.0_21的部分改掉,不然電腦還是會去找舊版的javac跟java來執行的

租房看屋記-3

繼上次腳底抹油的溜走之後 阿龍騎車騎著騎著看到永慶房屋 他覺得不然請仲介幫忙找房子好了 要收仲介費沒關係 只要可以找到好房子就好了 雖然我苦口婆心的跟他說永慶房屋是在賣房子的 出租的物件很少 我們要找就要找專門是出租的房仲 他還是不信邪的想試試看 好吧 那就進去吧 房仲一看到阿龍走進去就全部兵荒馬亂 站起來的站起來 倒茶的倒茶 掛電話的掛電話 接待的接待 其實店裡也只有三個人而已 但是大家可能都以為歪國人來了有肥油可以撈了 整個精神都來了 沒想到他只是想租房子 阿龍開出他要的條件以後 例如 離捷運近 20坪以上 二房 之後 馬上有二個房仲自告奮勇的說他們手上剛好有房子要出租 可以帶我們去看 這次我又抱著希望了 因為透過房仲要出租的房子總不會太差吧 又很期待的去看房(不是上次才說現在是租屋界的老鳥了嗎) 前二間是在同一橦大樓 同一個房東 也是在三重 大樓的外觀還蠻新的 很像辦公大樓 我至少放心一點 不會再發生浴室有血還有插座失火的事件了 結果房仲開門讓我們進去的時侯 我的媽呀 對啦 是沒有血也沒有插座 因為根本就是廢墟啊 一進去什麼都沒有 真的是 什 麼 都 沒 有 比第一間還要吸毒 我懷疑連電都沒有 我記得就是一個類似人家要重新裝潢之前會先拆掉一些東西 牆角還有很多灰 我如果真的住進去大概要帶N95睡覺吧 然後我們經過一個房仲說是廚房的地方 我真的不知道他在講廚房這二個字的時候是靠什麼想像出來的 他說的那個廚房 連流理台都沒有 牆上還有二個洞 只有一些電線從裡面拉出來 那是怎樣 我可以接受家具自理 但是沒道理連流理台都要我自己買吧!! 照這個情況來看 我管線跟電線都要自己重拉了我 是當房客都是潘吶嗎 OK 我們再繼續往後走 發現廚房的流理台被搬到後面 WHY?!! 這是為什麼 那要租的人是要再自己搬回來裝上去嗎 還是想強調這個流理台好搬 想在那裡煮飯都沒問題 仲介看到阿龍臉色已經越來越難看了 他就只好說樓上還有一間 是同一個屋主的 他說比較乾淨 我們上去看了之後 我真的想有機會可以跟這位房仲聊聊乾淨的定義  樓上那間是頂樓加蓋 對啦 牆角是沒有灰 但其中有一間房子的冷氣很明顯大概是我阿公那個時代在用的 而且冷氣機還比冷氣孔還小 那我開了冷氣之後 全都露光了有屁用嗎 我問他這一台還可以用嗎 他還回我說他也不確定

SQL遠端連線如何連至內部IP

圖片
一般家用或是窮學生在開發資料庫的時候一定會遇到一些冏境 常常家裡是用分享器把網路分享給好幾台電腦 這時候每台電腦都會被分配到一個內部的IP 例如192.168.1.2 那麼我們如何讓外部的人可以連到我的電腦存取SQL Server呢 首先如果你是在家用有線/無線分享器的話 那麼恭喜你 我就是要教你在有線/無線分享器怎麼設定IP Forwarding 就是讓所有試圖連線你的SQL Server 的人 可以自動被導到你的電腦 不然家裡那麼多台 他怎麼知道要連到哪一台 但如果你是用學校網路或是公司網路的話 I'm 梭利 你可能要請你們的電腦室或是MIS喝一個月的五十嵐或是抓一些他們愛看的愛情動作片送他們 宅宅們可能就會願意幫你設了 首先你要先登入你的分享器管理畫面 通常是192.168.0.1 然後你要四處按按看 看有沒有一個選項叫做"虛擬伺服器" 或是"遊戲伺服器"之類的東西 以我這台中華電信附的小烏龜為例 畫面如下 然後會出現一個設定的畫面,其實都是大同小異,你要先查好你這台電腦的內部IP是什麼,如果不知道的話可以用ipconfig查 這個網路上很多人教,最重要的是要填入port號碼,SQL的port大家都知道是1433 所以這個動作就是在告訴外部連線進來的電腦,如果你是要連1433 port的,那你就會被導到192.168.1.6這台 接下來的步驟就是要知道家裡真正的IP是什麼,你可以直接上網搜尋"我的IP位置",就有很多好心的網站會告訴你 你真正的IP是什麼 例如我家就是1.64.XXX.XXX 拿到自己真正的IP之後,要記得到SQL網路組態設定裡告訴SQL,如果有人用這個IP按電鈴,你要記得有回應哦 一切都設定好之後 就可以做測試了 在SQL的連線頁面直接打上剛剛查到的IP 輸入設定的帳號密碼 沒問題的話就可以順利登入SQL了

申訴/升速

圖片
最近我打去中華電信申請網路速度升級 申請完之後就好多人打給我 一下子是客服 一下子是工程師 每個人一打來開頭就是說 小姐我們接到妳要申訴的電話... 我都很緊張的說 我沒有要申訴啊 我只是想要把網路升級 然後對方就會說 對啊! 這就是要申訴啊 搞的我很緊張 我真的不是要申訴什麼啊 一直講 我也不想說什麼了 可能網路如果要升級一定要走申訴這條路吧 然後我今天收到這封信 一切都真相大白了 我真的很呆耶

租屋看房記-2

繼上次的租屋看房記第一集推出之後 受到廣大的迴響(有嗎) 讓我對成為布落客這一條路又燃起一點希望了 所以不羅說 我馬上著手處理第二集的租屋看房記 經過上一次的慘痛經驗 阿龍認為我們應該要從採光著手 凡是照片上面看起來窗戶很小或是房間裡面根本沒窗戶的就一律刪除 後來我們找到一間超大的 快六十坪 房租只要一萬八 雖然是舊公寓 但是那麼大 在裡面騎車都可以了 而且照片看起來很明亮 電視櫃還是整個木造的 阿龍還很矯情的說我就是喜歡這種台灣味 所以我們也是立馬打給房東約時間 像我們這種菜鳥 剛開始的時候我們都會覺得這一定是我們要租的房子 但是今天以後我們開始變的不一樣了 開始變的不再單純的幻想 可以說是開始了解租屋界的眉角了 這次的房子也是在三重 是在一個巷子裡 優點就是安靜 缺點就是走去捷運站大概要15分鐘 迎接我的是一個中年婦女 但我猜她跟周遊阿姑是同一個整型醫生來的 因為我第一眼看到她的時候 我真的以為我是跟周遊租房子 周遊阿姑很熱情的跟我們介紹房子 但一開門的時候她先一個箭步的去把窗廉拉開 這間房子終於得到一點難得的光亮 但同時我也看到我腳下的地板是脫皮的 這種脫皮的地板我很難形容 就是以前的舊房子貼的那種一塊一塊的木地板都開始脫落了 這個房子有四個房間  如果周遊阿姑願意放棄她獨特的裝潢品味的話 我認為這間房子大有可為 然後阿龍看到一個插座明顯的有電線走火的痕跡 都燒焦到看不出來是插座了 然後阿龍叫我問阿姑 這裡電線有沒有走火過 阿姑竟然無視於那個燒焦的插座 (可能她也認不出來那是插座吧) 說 沒有耶 反正電線的問題我老公很懂 他會幫你弄啦 那為什麼那個燒焦插座還在那裡?!! 然後她帶我到後陽台 跟我介紹我們這間的陽台實在比她樓下的家大太多了 她好生羨慕 害我還以為是多大 根本就是一個凸出去的大鐵籠而已啊!! 叫我走在上面我才不敢哩 應該要叫李棠華特技團來走好嗎 這個下面根本是空的耶 阿龍走上去不直接掉下去摔死才怪 然後阿姑開始跟我閒話家常 她說她兒子是做設計的 591的廣告是他PO的 聽到這裡我全都懂了 他大概是用了photoshop 把照片的亮度往上調50%  再用了廣角的相機拍客廳跟廚房 避開脫皮的地板 跟那些有"爭議"的裝潢品味 周遊阿姑生了一個這麼孝順的兒子真的是值了 我跟阿龍對看

租房看屋記-1

圖片
我從來沒有真正的租過房子 三年前因為阿龍要來住一個多月所以我去找了一間小套房 那一次非常的easy 只要套房裡面該有的都有 乾乾淨淨就可以了 這一次阿龍說想搬下山 離天龍國近一點 所以就開始了我們的看房歷險記 看了八間終於找到我們想要的房子了 但這中間的過程有歡笑也有淚水 也很有煩的時候 我一度很不想找了 因為阿龍實在太龜毛 但是他挑剔到最後也把我同化了 所以我們終於找到一間我們很喜歡的房子 所以我希望可以把這個過程記錄下來 讓路過的鄉民參考參考 阿龍在591租屋網上面看了一二天 嫌了幾百間房子之後 終於看到一間他覺得可以接受的 那是一間有二層(4.5樓) 上下有四間房間的公寓整層住家 看到照片的時候我也很喜歡 雖然租金貴了一點 但是我們想說就把樓下二間租給學生 這樣子就可以分擔房租了 終於我們滿心期待的打電話給房東 我覺得我好幸運 第一次看房子就找到了 整個人飄在雲裡 打電話去給房東 又覺得房東聲音還蠻好聽的 心裡覺得賺到了 房東會不會是一個型男 然後我們就興沖沖的跑去看房子 一進去四樓看到那二間房間的時候 我當場覺得 好吧 這二間是租不出去了 應該是沒有人想來住這麼暗的房間 哦不 吸血鬼應該會想租吧 但是沒關係 四樓很失望五樓還有希望 如果以照片上來看的話 五樓是採光很好 廚房旁邊的餐廳還有附一張大餐桌 廚房也很大 至少我們自己住五樓可以住的很爽 四樓就便宜租給窮學生 反正學生喜歡房間越暗越好 這樣子打電動比較有感覺 但是一走到五樓 我整個人被怔往了 這跟照片裡面是同一間嗎 我跟阿龍對看了一眼 讀出他心裡想說的話 (這根本是吸毒的人住的吧) 我夢想中的大餐桌呢!? 走到陽台還有沒有收乾淨的烤肉架 裡面還有木炭 房東就很自豪的說 你們可以帶朋友來這裡烤肉 然後陽台旁邊竟然還有一個樓梯 房東說那是所有住戶共用的 他們有時候會經過陽台去樓上澆花 蝦米 就是說我在家裡看電視的時侯還有人會經過 我還可以跟他打招呼聊聊天 打麻將的時候也不怕3缺1 因為有人會經過 約一下就可以了 房東看出了我們的心思 他說 我這個陽台有裝鐵門 你們晚上睡覺的時侯可以拉下來 天哪 真的是太安全了 如果你害怕會有奇奇怪怪的人經過你家陽台 你可以把鐵門拉下來 ok的 那我這個鐵門拉下來之後 不就跟樓下一樣一點光都沒有了嗎 那

多人共用活頁簿如何自動存檔(64位元)

如果開啟Excel共用活頁簿的功能 會鎖住巨集或增益集中有關存檔的功能 也就是執行workbook.save的時侯會出現錯誤訊息 但我意外發現workbook.saveas不會被擋 所以可以寫成以下 Function workbook_index(wb As Workbook) As Integer '自定函數以抓出workbook的index(編碼),因為有可能一次開啟多個excel Dim i As Integer     For i = 1 To Workbooks.Count         If Workbooks(i).Name = wb.Name Then         workbook_index = i         Exit For         End If     Next i End Function Sub AutoSave()  '開始執行存檔過程   Dim myWb As Workbook   Dim myFileName As String   Dim Myfile2   Name = ActiveWorkbook.Name   myFileName = ThisWorkbook.Path & "\" & Name   Set myWb = Workbooks(workbook_index(ActiveWorkbook)) '抓出目前執行的workbook   Application.DisplayAlerts = False '不要跳出警告視窗   myWb.SaveAs Filename:=myFileName '將檔案另存到自已   Application.DisplayAlerts = True '再將警告視窗功能開啟   Myfile2 = FileDateTime(ThisWorkbook.Path & "\" & Name)   Application.DisplayStatusBar = True '開啟狀態列功能   Application.StatusBar = oldName & "上次存檔

Excel匯入SQL使用者獨佔的問題

開發之路永遠都不會一路暢通 當妳在腦海裡想過一遍 覺得這樣做沒問題的時候 總是會有很多莫名奇妙的阻礙出現 由於我一定要在Excel開啟的情形下,把資料匯入SQL 這個時候如果單獨在visual studio執行已經建好的封包是沒有問題的 可是如果丟到SQL Agent又有問題了,只要我開著Excel," 使用者獨佔 "這個錯誤訊息就會一直出現 這次我不怪微軟了 其實這樣也很合理 當Excel開著的時侯 他怎麼有辦法一邊更新資料一邊多一個分身讓我匯入SQL呢 這次我們另一個組員找到一個解決方法 但只限於Office 2007&2010(撒花) 就是要在校閱>共用活頁簿>把允許多人修改活頁簿這個選項打勾 就可以解決這個問題了 如果你的EXCEL是會常常更新的 記得也要在進階那裡設定更新時間(最短只能五分鐘) 這樣子temp檔才會存入原始檔 如果沒有設定的話資料就會一直停留在上一次存檔的樣子 ******************************************************************************* 4/11 更新一下 在共用活頁簿階那裡設定更新時間的話,源檔還是不會被更新 可以下載Autosave.xla增益集,Excel2007以前的版本有內建 2007以後的版本微軟已經拿掉了,要自己去下載,然後自己新增到增益集裡面,這裡是一個下載點 http://free-downloadable.com/tags/autosave-xla.html

0xC00160AE錯誤

圖片
我實在不知道微軟為什麼要這麼"雞猴" 我光弄這些人生一半就不見了 當我終於可以正常的執行SSIS Package的時侯 滿心歡喜丟到SQL Server Agent又不行了 04/01/2013 00:31:00,Exchange,錯誤,,USER-PC,Exchange,,,作業失敗。  作業由 排程 9 (Exchange) 叫用。要執行的最後一個步驟是步驟 1 (Import Data)。.,00:00:00,0,0,,,,0 04/01/2013 00:31:00,Exchange,錯誤,1,USER-PC,Exchange,Import Data,,以下列使用者的身分執行: NT Service\SQLSERVERAGENT。Microsoft (R) SQL Server 執行封裝公用程式  Version 11.0.2100.60 for 64-bit  Copyright (C) Microsoft Corporation. 著作權所有,並保留一切權利。    已啟動:  上午 12:31:00  因為發生錯誤 0xC00160AE,所以無法載入封裝 "\File System\Exchange"。  描述: 連接到電腦 "User-PC" 上的 Integration Services 服務失敗,錯誤如下: "存取被拒。"     依預設, 只有系統管理員擁有 Integration Services 服務的存取權 。在 Windows Vista 和更新版本上, 必須以系統管理權限執行程序,才能連接 Integration Services 服務 。如需有關如何設定服務之存取權的詳細資訊,請參閱說明主題。  來源:   已啟動:  上午 12:31:00  已完成: 上午 12:31:00  經過時間:  0.016 秒.  無法載入封裝。.  步驟失敗 我真的快氣炸了 我不是系統管理員我是誰啦 你說啊 我是誰啊 難道我是路人隨隨便便就可以登入SQL執行嗎 為什麼要這麼雞猴 弄這個什麼安全性設定 超多人跟我有一樣的問題啊 尤其是升級到SQL Server 2012之後 本來跑的好好的封包都出錯了 然後我就查詢了0xC00160AE錯誤 會有

如何看到R pacakge所使用的原始程式碼

圖片
有用R的人都知道 R package就是有很多佛心來著的人 把一些統計的應用方法直接寫好程式 然後再寫一個文件教你怎麼用 要用的時候只要下載安裝到R裡就可以了 可以想成Andriod手機 上網可以下載很多免費的App裝在手機裡 這也是為什麼很多人喜歡用R的原因 免費就算了 還有很多人發展一個新的統計方法之後 會順便把R package也寫好讓大家下載 但是如何看到R package裡面的原始程式碼呢 只要在R裡面下<package name>:::funtion 例如 我想看box-cox方法到底是怎麼寫出來的,就可以打MASS:::boxcox.default MASS就是package的名稱,boxcox.default就是方法的名字 出現的畫面如下 那如果要查不是在package裡面的呢? 直接打function名稱就好 例如迴歸的建模指令lm

T-SQL CURRENT_TIMESTAMP

圖片
在SQL裡面,只要新增一列新的資料,就自動加上當時的系統時間 CREATE TABLE Test ( Time time(0) DEFAULT CURRENT_TIMESTAMP, Date Date DEFAULT CURRENT_TIMESTAMP, ) 或是在設計那個頁面,預設值填上(getdate())

'Microsoft.ACE.OLEDB.12.0' 提供者並未登錄於本機電腦上

'Microsoft.ACE.OLEDB.12.0' 提供者並未登錄於本機電腦上 這個錯誤訊息一直出現 後來雖然我用64位元的匯入匯出精靈把excel匯進SQL  但是用SSIS封裝的時候又不行了 又是一樣的錯誤 我就一直耗在這裡 又google到一篇網誌http://kennycarol.pixnet.net/blog/post/27188076#comment-30043635 他用了2007 Office system 驅動程式:資料連線元件之後就解決了 下載網址 http://www.microsoft.com/downloads/zh-tw/confirmation.aspx?displaylang=zh-tw&FamilyID=7554f536-8c28-4598-9b72-ef94e038c891 好神奇的東西啊 讓我用了之後瘦了十公斤 國字臉也變瓜子臉 整個人好清爽呀 是說為什麼微軟可以這麼掉漆 一直叫我去下載 Microsoft.ACE.OLEDB.12.0又一直出現一樣的錯誤 為什麼我還要灌舊的資料連線元件才可以解決啦 真的很氣A 順帶一提 我的電腦Microsoft.ACE.OLEDB.12.0是灌在x64的的資料夾裡 2007 Office system 驅動程式預設是幫我灌在x86也就是32位元的 資料夾裡

請叫我海鮮大師

圖片
海鮮大師的新魚缸

64位元與32位元傻傻分不清此

圖片
昨天想要把 EXCEL 匯入到 SQL 然後可以產生一個 SSIS 封裝 我就可以丟到 SQL Agent 讓它固定時間自動匯入 明明就是一個簡單到不行 三分鐘就可以做完的事 我搞了二個小時 因為一直出現錯誤訊息 說我的電腦沒有 'Microsoft.ACE.OLEDB.12.0' 明明我就裝了 裝好了再移移好了再裝 它還是一直鬼打牆 最後我連 SQL 都整個移掉 想要重灌 干 才發現我的 SQL 是 32 位元版的 老師的電腦是 64 位元的 我也不能灌 現在電腦什麼都沒有了 我真的是好傻好天真哪 後來今天看到這篇文章 http://technet.microsoft.com/zh-tw/library/ms140052.aspx http://www.dotblogs.com.tw/ricochen/archive/2010/07/21/16668.aspx  這篇也註記一下 好像有一個人拿棍子從我的頭打下去 還說 ” 不就是 EXCEL 32 位元跟 64 位元的問題嗎 ” 馬的 好氣 ---------------------------------------------------------------------------------------------------------------- 後續 3/22 電腦重灌了SQL 2012 當我選擇匯入和匯出資料64位元時,資料可以匯入 但是當我在資料庫上面按右鍵選擇匯入時 SQL內建可能是開啟32位元的匯入與匯出精靈,選擇好要匯入的Excel檔之後 又說我的電腦沒有 'Microsoft.ACE.OLEDB.12.0' 然後我又用64位元匯入和匯出資料精靈,又可以匯入了

使用R做ARL的蒙地卡羅模擬

這是上學期上品質管理的時侯 老師出的作業之一 用任何一種程式語言模擬製程偏移之後 ARL的表現 其實我本來也不會寫 後來在網路上查到有人用C++寫好了 但我不好意思照抄 所以就把C++轉成R 因為品管的老師很喜歡出這個題目 我就放上來解救大家 但是每一個老師的假設都不一樣,所以如果有人要抄的話還是要注意一下 這是假設製程在第100點以後開始偏移,所以前100點是服從N~(0,1),100點以後就看老師要求的偏移量是什麼,去改k的值 a<-0              # 在陣列中 ' 列 ' 的位移 n<-20            # 樣本數 m1<-0           # 原始 mean sigma<-1     # 原始 sigma L<-3               # 管制界線的寛度 K<-1.5           # 偏移程度 m2<-m1+K*sigma                                                   # 計算偏移後的 mean UCL<-m1+L*sigma/sqrt(n)                                     # 計算 UCL LCL<-m1-L*sigma/sqrt(n)                                       # 計算 LCL D<-matrix(0, nrow=200000, ncol=3, byrow=F)   # 宣告一個 200000*3 的矩陣以紀錄樣本點與 xar RL<-matrix(0, nrow=1000, ncol=2, byrow=F)      # 宣告一個 1000*2 的矩陣以紀錄發生警示的樣本點與 xar for(i in seq(1,1000,by=1))     # 開始模擬 { j<-0                                         #j 為記綠 RL   repeat                                     # 產生前 100 次 In cont