PIXNET Logo登入

正因為活著

跳到主文

年輕的時候,都以為人生很長,其實人生很短,最棒的是不後悔,最難的是不遺憾

部落格全站分類:電玩動漫

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 8月 11 週日 201922:29
  • 使用Entity Framework產生MySQL實體資料模型


ORM(Object-Relational Mapping)是將關聯式資料表映射到物件導向資料的抽象化技術
其中最有名的是微軟的Entity Framework
它最大的優勢是只要寫一套LINQ,就能適用各種不同的DB,不需要為了不同DB改寫
且支援DB眾多,舉凡SQL Server、MySQL、Oracle,到PostgreSQL、SQLite等皆可
(當然支援最好的還是微軟自己的SQL Server)
之所以能支援這麼多種類的DB,其實也是靠各家廠商提供的Provider,將LINQ語法轉換而成
(繼續閱讀...)
文章標籤

蕭雲 發表在 痞客邦 留言(3) 人氣(2,197)

  • 個人分類:上課筆記
▲top
  • 7月 23 週一 201823:12
  • 複製SQL Server資料庫的幾種作法

2018-07-22 23_35_57-Window.png
最近在SQL Server遇到要複製一個鏡像資料庫的需求(同Server不同名稱)
由於在網路稍微搜尋一下沒有各種方法的比較,加上我很久沒有寫技術文件了
就趁此機會整理一下我知道的方法跟缺點吧
(本篇的圖片擷取至SQL Server Management Studio 17.4,可能跟舊版有一點差異)
(繼續閱讀...)
文章標籤

蕭雲 發表在 痞客邦 留言(1) 人氣(49,495)

  • 個人分類:上課筆記
▲top
  • 9月 24 週三 201423:02
  • 在Visual Studio將Windows Service打包成安裝檔

install_1
最近使用Visual Studio 2010,嘗試把服務包裝成安裝檔時吃了一點苦頭
為了避免未來再次犯錯,因此記錄一下要注意的地方
希望能幫助有遇到相同情形的網友
(為什麼用VS2010示範,是因為這個安裝工具在VS2012以後就被拿掉了
但最近已經有解,請參考本篇最後一節)
(繼續閱讀...)
文章標籤

蕭雲 發表在 痞客邦 留言(4) 人氣(22,526)

  • 個人分類:上課筆記
▲top
  • 9月 17 週二 201323:23
  • ASP.NET MVC使用筆記

繼上次的ASP.NET使用筆記又過了一年多
本次記錄了ASP.NET MVC與css/js/sql所遇到的問題
希望能幫到發生同樣問題的人
若內容有誤,歡迎網友指正
(繼續閱讀...)
文章標籤

蕭雲 發表在 痞客邦 留言(2) 人氣(82,109)

  • 個人分類:上課筆記
▲top
  • 8月 09 週四 201214:36
  • ASP.NET 使用筆記

gridview_row
本篇整理了一些我以前寫ASP.NET遇到的問題
希望能幫助從Java或其他語言跳槽到ASP.NET的人
有新的內容應該會在此篇繼續更新吧
 
(繼續閱讀...)
文章標籤

蕭雲 發表在 痞客邦 留言(14) 人氣(98,178)

  • 個人分類:上課筆記
▲top
  • 4月 01 週三 200918:39
  • 嵌入式系統學習筆記(一)

Android_1.png
這學期我又修了林老師的嵌入式系統
我們將在Google力推,可在各種手機執行的Android平台學習寫程式
本學期使用Eclipse(日蝕)這個IDE
當然還會加上Android的模擬器
其實這堂課已經上了不少次了
原本是不打算寫筆記的(因為老師的跳躍式教學實在太難記錄)
不過為了以後方便回想,還是花時間做了
只是應該不會每次上課都寫一篇
以後有什麼重大突破才會紀錄吧
《本學期課本》
Professional Android Application Development
這本書很貴,要4X美元
裡面都是蒐集網路上的文章再加一點範例,不一定需要...
《本課程需要軟體》
1. Ubuntu 8.10(其實Windows亦可,以下是在WIndows環境下編的)
2. Java SDK
3. Eclipse
4. Android SDK
5. Android Plug-in
《安裝步驟》
首先請下載Java SDK(JDK)
目前最新版是JDK 6 Update 13
下載完後請照流程安裝,一直按Next即可,在此不截圖
接下來下載Eclipse
Eclipse有多種版本,每個版本包了不同的開發環境(比較表)
因為我們需要Web Tools這個環境
為了節省麻煩,請直接下載最肥的JEE
(用普通的JAVA環境另外裝Web Tools太麻煩了)
Eclipse是免安裝軟體,下載後直接解壓縮到C:\eclipse即可
接著下載Android SDK
目前最新版是Android 1.1 r1
跟Eclipse一樣不用安裝,下載完後建議解壓到C:\android
原本Android SDK的目錄有包含版本號
但這樣每次有新版就必須更改目錄位置
所以建議把目錄後面的版本號刪掉,以後新版直接覆蓋到該目錄即可
解壓縮完android SDK後,還必須改環境變數才行
這個等同於Ubuntu的PATH值
當在終端機輸入一個檔名,除了在該目錄下找
也會在PATH所寫的所有路徑找尋
就像在命令提示字元中不管在哪個目錄
只要打mspaint都可以叫出小畫家一樣
操作:控制台 > 系統 > 進階 > 環境變數
找到底下的Path,按下編輯
然後在後面再補上;C:\android\tools
之後在命令提示字元打上emulator就可以開啟模擬器
另外建議再補上;C:\Program Files\Java\jdk1.6.0_12\bin
這是JDK的bin位置,安裝SDK時好像不會自動幫你增加
以後要取得Private key時會用到
請填入你安裝位置喔,不要照抄上面的字串進去
目前已經把Android SDK裝到C槽,也把它加入系統變數
Eclipse也加到C槽,接著開始設定Android Plug-in
安裝步驟可以參考Android網站
以下是Eclipse 3.4版本的安裝方式
1. 開啟Eclipse,選擇功能表的Help > Software Updates...
2. 選擇Available Software,點選旁邊的Add Site...
3. 打入以下的位置 http://dl-ssl.google.com/android/eclipse/
4. 加入後請勾選剛加入的Development Tools
按下旁邊的Install...按鈕
5. 接下來會要你接受合約,選是然後按Finish
等他下載完後即可安裝完成
《設定Android環境》
雖然剛剛下載過Android SDK,但Eclipse並不知道放哪裡
所以請安裝完上方的發展工具後,重新開啟Eclipse
並選擇Window > Perferences
選左邊的Android標籤,將Android SDK位置填入
至此,所有準備工作都完成了,可以開始測試了
《建立Hello Android專案》
請選擇功能表 File > New > Project
然後選擇Android Project
Project Name是專案名稱
Package Name是套件網址,最好用規定的名稱取名
(不一定要取joe,也可以用自己的英文名)
Activity Name是Class名稱,第一個字要用大寫且不能空格
Application Name是這個程式在Android平台上顯示的名稱
接下來就是開始寫程式了
建議是參考Android網站的介紹
將程式碼改成下圖的樣子
對了,如果不知道該程式碼需要Import什麼的話
只要在該程式碼上按下Ctrl+Shift+O
上方就會自動填入Import了!
不過這樣還不能編譯,還有一步沒有做完
請選擇功能表的Run > Run Configuation
選擇Project的Browse...,選擇此專案
Launch也要選擇(只有一個項目,不會選錯吧)
最後選擇功能表的Run > Run
就可以看到結果了
注意:第一次開啟模擬器時,他會自己設定一些東西,所以會比較久
第二次以後開就不會了
還有程式跑完後不需要關閉模擬器
之後要編譯直接Run即可,不然模擬器還會重新開啟,會比較花時間
要在模擬器直接執行程式的話,可以按下MENU
裡面就有你寫的Hello Android了!
(繼續閱讀...)
文章標籤

蕭雲 發表在 痞客邦 留言(4) 人氣(6,197)

  • 個人分類:上課筆記
▲top
  • 1月 25 週日 200902:10
  • Linux程設學習筆記(十六)

最後一次上課,當然是我們的期末考
其實本來是不想寫這第十六次的筆記的
因為老師將考卷收了回去(沒有比較精確的題目內容)
而且我考的不太好(半題不會寫,大概是80分吧)
不過想說最近都沒更新秉持著貫徹始終的精神,還是把它完成吧
考試形式跟期中考一模一樣
-----
考試時間:約兩個小時
可以翻書、上網,但嚴禁作弊(交談或交換答案等等)
1. 請上網到課程網頁下載 linuxp-final.tar.gz,並將下載的檔案,
解開到自己的目錄下,進入linuxp-final目錄下作答 (10%)
.........這根本就是一個空目錄啊!
我很懷疑如果我自己建一個同名的目錄的話,他分得出來嗎?
2. 撰寫程式f2.c,可以將輸入輸出導向到檔案
例如輸入w > output能將顯示內容導出到檔案output
輸入wc < input可以將檔案input的內容導入到wc
請使用dup、fork、exec  (40%)
看起來很簡單,但是我怎麼寫,輸入導向的部分就是不對
其實當初我就知道一定會考跟作業相關的題目
只是作業的題目是將一個程式的結果傳到另一個程式
而這次改成從檔案讀取
看起來很類似,但我還是只寫對一半,蠻可惜的
唉~這部分我的確是比較弱一點
3. 撰寫程式f3.c,可以從伺服器取得時間並對時
程式可以輸入伺服器位址,若不輸入則預設學校的伺服器 (40%)
這題根本跟作業三一模一樣
把作業檔名改成f3.c,打完收工
4. 將linuxp-final目錄打包成linuxp-final-xxxxxxxx.tar.bz2,其中
xxxxxxxx為你的學號,並上傳至課程網頁(10%)
沒了...?對!就這樣而已,要寫的題目只有兩題
所以我卡在題目二兩個小時 ::>__<::
除非實力已經達到考不倒的境界
不然考試其實很看運氣的
Linux果然不是我的菜...
-----
順便一提,考完後不到一個禮拜,總成績竟然就出來了!
但是課程網頁上還是沒有寫每個人細項的成績
作業沒改,期末考成績也沒有公佈
我好疑惑老師到底是怎麼打成績的啊...
(繼續閱讀...)
文章標籤

蕭雲 發表在 痞客邦 留言(0) 人氣(965)

  • 個人分類:上課筆記
▲top
  • 1月 01 週四 200921:26
  • Linux程設學習筆記(十五)

15-01.gif
新年第一篇網誌,竟然是 Linux學習筆記..."orz
這篇也是補兩個禮拜前的課程
由於學校因為聖誕節跟元旦放掉兩個星期四的關係
這篇也是Linux程式設計的最後一堂課的內容
接下來只要考完下禮拜的期末考,本學期就正式結束了︿( ̄︶ ̄)︿
===
ch 15 Sockets
===
沒有socket就沒辦法上網,沒辦法上網就...不好玩了XD
C的socket寫法較複雜,JAVA、.NET都把它包起來了,更好用
‧socket是pipe的延伸
pipe是建立一個通道,藉由通道傳遞我的訊息
任何人只要知道我的pipe檔名,就可以跟其他人做溝通
缺點是pipe只能在本機電腦上
socket是一個機制,允許client跟server溝通
socket跟pipe一樣可以read跟write
而且它還能夠跨越網路
所以process要跟process做溝通,不一定要在同一台電腦上
Windows跟Linux都可以利用Socket跟對方作溝通
我們不用知道對方是什麼系統就可以做溝通
這都是socket的功勞
Windows的Socket規格稱為WinSock
socket連線步驟
1. 通常server的應用程式需要先產生socket,使用system call socket
2. 然後要給socket一個名字(port 80)
(port理論上只有65000多個)
3. socket取名稱做systen call bind
4. server會等待client連線
5. system call listen,並產生一個queue讓client連線
6. 系統可以system call accept來允許連線
更詳細的訊息,請參考man socket
‧關鍵字前面為AF_代表為address family
PF_為protocol family
PF_UNIX跟PF_LOCAL不是跨越網路,而是在檔案系統溝通
PF_INET使用IPv4的網路協定
PF_INET6當然就是使用IPv6的協定了
請參考
man 7 unix - 看socket的詳細結構
man 7 ip - ipv4的通訊協定
‧client1 & server1
跟上次pipe類似,但稍有不同
如果先執行./client1會顯示找不到檔案
要先執行./server1
此時可以輸入ll *sock*來看一下socket的存在
發現有產生後,再執行./client1才會看到正確的結果
順便一提,結束掉server1後,socket還是存在喔
請用rm *sock*清空
‧socket的語法
sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
(繼續閱讀...)
文章標籤

蕭雲 發表在 痞客邦 留言(3) 人氣(12,240)

  • 個人分類:上課筆記
▲top
  • 12月 28 週日 200801:46
  • Linux程設學習筆記(十四)

14-01.gif
這篇是補兩個禮拜前的筆記
雖然寫這個筆記一直遭到家人的反對,認為不該浪費時間在這
但我還是覺得應該要把它給寫完
既然決定了,那就一定要做到最好
===
ch 13  Pipes
===
因為老師每個禮拜都會有些內容與上禮拜重複
所以重複的內容我就不再截圖了
‧以前的linux每個指令都是一個檔案
但要如何讓檔案代表該裝置?用mknod、mkfifo都可以
‧/tmp目錄是每個人都可以寫入的
‧上課提到了網路喚醒技術(Wake-on-LAN)
跟RFC(request for comments)的相關介紹
‧本次上課第一個範例是建立pipe(這個上次不是上過了?)
pipe是管線,有兩端,一端是寫資料,一端是讀資料
‧輸入法跟程式是利用socket溝通
ls->屬性s是屬於socket(其實這寫過三遍了吧)
‧用fifo傳訊息範例
先用mkfifo myfifo建立fifo
然後輸入echo hello world > myfifo
再用另一視窗輸入cat myfifo
就能把訊息傳過去了
後面加&代表在背景作業(請看上次介紹)
‧如果先輸入cat myfifo的話會被block住
因為沒有讀到東西
‧echo的內容輸入
echo hello again\
second line\
third line
事實上這樣是一行不是三行
‧fifo1
建立fifo,可以修改成自己的fifo
‧fifo2
執行要加參數要不要read、write、nonblock(不要block直接回來)
如果直接執行會說需要參數
範例:./fifo2 O_RDONLY O_NONBLOCK &
範例:./fifo2 O_WRONLY
‧apropos fifo - 可以查man的說明中,哪些東西跟fifo有關
查到了,我們這次需要看的是man 4 fifo
‧fifo3 & fifo4
fifo3是傳個10MB的資料
fifo4是收個10MB的資料
傳10MB資料過去不用一秒就可以結束了,速度超快...
‧client & server
一邊輸入./server &
另一邊輸入
for i in 1 2 3 4 5
do
./client &
done
讓他連跑五次client程式
此時輸入ll /tmp/*fifo,可以看到產生很多的fifo
但是結束後fifo就消失了
‧ins ntp - 安裝 ntp,這是一個對時軟體
ntp對時準確度可以到0.233 nanoseconds
‧ntpdate 網址 - 可連到後面的網址作對時
不過執行後卻出現the NTP socket is in use, exiting
因為NTP程式已經開啟了,所以不需要再上網對時一次
因此我們先用/etc/init.d/ntp stop把NTP關了
再次輸入就可以成功對時了.....
可是因為在家連不到學校伺服器
所以底下的截圖是顯示錯誤...
也可以使用中華電信對時網址 clock.hinet.net
‧date 11220304 - 後面輸入數字可以更改時間(?)
不過我實際上看並沒有被更改,只會顯示你輸入的時間
‧最後一次作業原本是程式之間互相傳遞訊息
改成用網路對時比較簡單
‧作業可以參考NTP的程式碼
一樣記得先用sudo bash轉成root權限
apt-get source ntpdate
cd ntp-4.2.4p4+dfsg/
ntpdate的程式碼非常龐大,因為它必須考慮到很多狀況
如果想搜尋目錄底下所有的*.c跟*.h,可以用
find . -name '*.[ch]'
===
ch 12 Thread
===
在一個程式當中可以有很多條線同時執行,稱為Thread
Windows工作管理員中 [檢視] - [選擇欄位]
加入"執行緒計數"可以看到一個程式用了多少的thread
如IE就用了32個Thread
thread有自己的stack
所以local variables(區域變數)是不一樣的
但是其shares global variables(全域變數), file descriptors,
signal handlers, current directory state就相同
當輸入是一個thread,處理是一個thread
好處是使用者輸入的時候不會因為處理其他事情而覺得程式沒有回應或很慢
目前的CPU大多是多核心的
如果程式寫多thread,那麼程式執行理論上來講會快
另外一個優點是作業系統從一個thread切換到另一個thread
所需的overlap比process切換少
‧thread1
errno都是共用的
fputs也是用同一個buffer output
編譯時因為用到thread,所以一定要加上-D_REENTRANT跟-lpthread
不加的話程式無法編譯成功
範例:gcc -D_REENTRANT -o thread1a thread1a.c -lpthread
-D_REENTRANT - 可重入,為了程式穩定性最好加
其實makefile也有加這行
 
‧thread3a
thread在很多情況會有不同結果
而且很難debug
不過這個範例我忘了會有哪裡出錯了...
----
補充:台灣用的是通用拼音,大陸用漢語拼音
捷運站也是用漢語拼音
(繼續閱讀...)
文章標籤

蕭雲 發表在 痞客邦 留言(0) 人氣(7,910)

  • 個人分類:上課筆記
▲top
  • 12月 16 週二 200823:55
  • Linux程設學習筆記(十三)

13_01.gif
嗯...又過了一個禮拜沒發文的日子
雖然這並不是最久的一次(以前還有一個月只發文五篇的記錄)
但隔這麼久發文,還真是不自在~"~
這篇筆記是補上上禮拜的課程
這禮拜四上完,之後連放兩次假,接著就要開始期末考了
星期四的課真是吃虧...
‧pipe要fork process(複製一個程序)
需要的resource較多,一般不建議使用pipe open/close
‧老師常用的文字編輯軟體
1. PnotePad
2. SciTE - 特點是可以直接執行PHP程式,只要按下[Tools]-[Go]
我個人比較喜歡用PsPad啦,雖然真的會用到的時機不多
記事本就很好用了
‧uname -a - 顯示Linux版本資訊
‧任何時間寫入file_descriptor[1]的資料可以從file_descriptor[0]讀回來
‧pipe1
這是簡單的pipe範例
使用pipe記得要先引用#include <unistd.h>
順便一提,如果把file_pipes的0跟1互換,會寫入-1 bytes
但是不會顯示出錯誤
‧pipe2
看起來結果一樣,但其實這個程式是由父process寫入,子process讀取
我稍微修改了範例,使用getpid()顯示process id即可看出差異
‧pipe3
顯示出file_pipes可以看到
讀取資料是從fd 3,寫入資料則是fd 4(fd = file descriptor)
因為fd 0、1、2被用掉了,所以新的從3、4開始用
0、1、2是標準輸入、標準輸出、標準錯誤
‧在程式裡執行其他程式的語法
execl(執行程式檔, 給他的名字, 傳過去的fd, Null pointer);
最後一個一定要給他null pointer喔
‧如果pipe在不同process必須分別處理他,很麻煩
dup - 電腦給你目前最小可以用的fd
dup2 - 我自己給你最小的fd
‧pipe5
Ln21: close(0);  關掉標準輸入
Ln22: dup(file_pipes[0]); - 給他目前最小的可以用的file descriptor
原本應該要從鍵盤去讀取的
‧輸入/dev;ll
發現權限的第一個字母是c,代表他是字元設備
其他代表 d:目錄、s:socket、p:pipe
(好像寫過很多次這個了)
‧fifo1
產生pipe檔案,成功就回傳0
語法:mkfifo my_fifo(my_fifo是你想要取的檔名)
程式的執行方法:
先輸入cat < /tmp/my_fifo
他會將畫面停在那個地方
再到另一視窗輸入echo "Hello World" > /tmp/my_fifo
第一個視窗就會讀到字串了
如果在程式後面加上&,代表他是在背景執行
範例:cat < /tmp/my_fifo &
背景代表它會在記憶體內自行運行,無法直接控制它
除非用bg/fg等指令把它叫出來
詳細說明可以參考鳥哥的Linux私房菜關於&的介紹
‧jobs - 顯示目前有什麼程式在背景執行
如果沒有的話會什麼都不顯示
‧server & client
先輸入./server &讓他在背景執行
到另一個畫面輸入以下內容
for i in 1 2 3 4 5
do
./client &
done
它會自動執行五次,如下圖產生了5484~5488五個process
但是最後顯示出來的結果並不是照這個順序傳回來的
所以這個範例只是要告訴你...他不會照順序傳回來orz
第二次作業雖然我在打這篇的時候已經截止一個禮拜了
但還是稍微說一下要怎麼做
1. 用gets之類的語法讓使用者輸入指令
2. 找出|(管線),並將token分成左右兩邊
3. 產生pipe,再用fork將這個process一分為二
4. 父親把標準輸出關掉,執行左邊程式並dup給兒子
5. 兒子把標準輸入關掉,執行右邊程式並接收父親的訊息
第一點應該也可以改用程式後面接參數的方式
比方說./hw2 w "|" wc這樣
但|為什麼要用雙引號""包起來呢?
因為如果不包的話,它會把|當成是真的管線而不是一個參數
(繼續閱讀...)
文章標籤

蕭雲 發表在 痞客邦 留言(0) 人氣(4,213)

  • 個人分類:上課筆記
▲top
123»

近期文章

  • 動物迷城(Back to the Dawn) EA玩後感
  • 鱷魚偵探布羅格玩後感
  • 動物迷城(Back to the Dawn) DEMO玩後感
  • 船長 The Captain (含全路線攻略)
  • 太空避風港 Space Haven
  • 欺詐之地 (Griftlands)
  • Sdorica -eclipse-(萬象物語)1191天棄坑玩後感
  • Stoneshard 紫色晶石
  • 骨灰遊戲雜談-亞里斯王物語
  • 歧路旅人(八方旅人)玩後感

文章分類

toggle 評論 (3)
  • 事件評論 (38)
  • 觀後心得 (16)
  • 漫畫心得 (22)
toggle 電腦 (4)
  • 電腦資訊 (42)
  • 軟體介紹 (29)
  • 程式作品 (15)
  • 上課筆記 (22)
toggle 遊戲 (4)
  • 小遊戲區 (54)
  • 單機遊戲 (47)
  • 網路遊戲 (13)
  • 手機遊戲 (29)
toggle 系列遊戲 (5)
  • Mardek RPG (8)
  • DNF (11)
  • 三國志拼圖大戰 (6)
  • 蒼空解放 (9)
  • 萬象物語 (8)
toggle 生活 (3)
  • 就可影片 (50)
  • 學校點滴 (24)
  • 生活雜記 (17)
  • 未分類文章 (1)

文章搜尋

文章彙整

熱門文章

  • (15,722)修改Flash遊戲吧
  • (29,156)RPGViewer 介紹
  • (12,237)長江七號觀後感
  • (9,377)免空斷線續傳法
  • (108,011)去掉洪爺廣告吧
  • (18,103)什麼是放大絕
  • (29,783)修改Flash遊戲的存檔吧
  • (10,238)女神戰記:負罪者玩後感
  • (31,362)啤酒遊戲玩後感
  • (87,074)學校IP對照表

SiteTag

誰來我家

線上人數

參觀人氣

  • 本日人氣:
  • 累積人氣:

個人資訊

蕭雲
暱稱:
蕭雲
分類:
電玩動漫
好友:
累積中
地區: