2014年8月28日

[C#]引數的傳遞方式

問題:
引數的傳遞方式?
參考:稍微靠靠腰

Code:
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("\n *** 一般函式傳遞 *** \n");
            int a = 10, b = 20;
            
            Console.WriteLine("\n 未進入函式前\t\t:a={0} \t b={1}", a, b);
           
            CallValues(a, b);
            Console.WriteLine("\n 進入函式後\t\t:a={0} \t b={1}", a, b);

            CallValuesUseRef(ref a, ref b);
            Console.WriteLine("\n 進入函式後\t\t:a={0} \t b={1}", a, b);

            int initX, initY;
            Console.WriteLine("\n 進入函式前\t\t:initX,initY 沒有初始值");
            CallValuesUseOut(out initX, out initY);
            Console.WriteLine("\n 進入函式後\t\t:initX={0} \t initY={1}", initX, initY);

            Console.Read();
        }

        private static void CallValuesUseOut(out int x, out int y)
        {
            int z;
            x = 20;
            y = 30;
            Console.WriteLine("\n 函式內 交換前\t\t:x={0} \t y={1}", x, y);

            z = x;
            x = y;
            y = z;

            Console.WriteLine("\n 函式內 交換後\t\t:x={0} \t y={1}", x, y);

        }

        private static void CallValuesUseRef(ref int x, ref int y)
        {
            int z;
            x = 20;
            y = 30;
            Console.WriteLine("\n 函式內 交換前\t\t:x={0} \t y={1}", x, y);

            z = x;
            x = y;
            y = z;

            Console.WriteLine("\n 函式內 交換後\t\t:x={0} \t y={1}", x, y);
        }

        private static void CallValues(int x, int y)
        {
            int z;
            x = 20;
            y = 30;
            Console.WriteLine("\n函式內 交換前\t\t:x={0} \t y={1}", x, y);

            z = x;
            x = y;
            y = z;

            Console.WriteLine("\n函式內 交換後\t\t:x={0} \t y={1}", x, y);
        }
    }
}


結果:


2013年12月6日

[Android]使用BlueStacks、Eclipse進行開發除錯




前言


使用Android模擬器進行開發與除錯時,Windows作業系統上的執行時間會比較長。
對於某些專案在分秒必爭的情況下,模擬器反而造成許多開發上的不便。

解決方案

使用BlueStacks與Eclipse進行開發與除錯。


關於


  1. BlueStacks:一套可以模擬一般Android手機或平板APP正常執行的軟體,相信許多人都使用這個軟體來玩一些APP遊戲,如神魔之塔...等。
  2. Eclipse:一套用java開發的好用程式編輯軟體。(作者就是使用此軟體來開發Android的)

 如何使用

  1. 先進行BlueStacks 及 Eclipse安裝,並且都順利安中與執行。
  2. 打開Eclipse的Device(查詢目前有哪些裝置在線上),如圖1。開啟位置:Windows>Show View>Others>Device。
    圖1.Eclpse的Device列表
如果沒有找到裝置,請重新啟動adb,如圖2。
圖2.Restart adb

2013年8月3日

[SVN]建立版本管理工具

前言

最近在執行專案時,一直在思考管理版本問題。起初因為一人建立專案,所以有自己的一套管理方式。但是如果多人專案就需要專業的工具啦。

關於SVN

Apache Subversion(簡稱SVN,svn),是一個開放原始碼的版本控制系統,相對於的RCS、CVS,採用了分支管理系統,它的設計目標就是取代CVS。網際網路上越來越多的控制服務從CVS轉移到Subversion。

參考:Subversion(SVN)概念與工具介紹

安裝SVN時,需要一個Server(伺服端)跟一個Client(客戶端)。
筆者一直失敗就是因為只安裝Client,所以一直上傳失敗。...夠蠢的

安裝SVN Server(作者環境為 Windows 7)

Server此部份就是將大家的心血(檔案)存放的地方,因為作者也是參考其它人的安裝方式安裝成功,因此附上幾個連結讓大家參考。

安裝部份:Demo 小舖
軟體下載:VISUALSVN SERVER
Port 參考(如果發生Port衝突):通訊埠 (port) 介紹及常用 port 對照

注意:作者在安裝SVN前已經有安裝了XAMPP(整合Apache, MySQL, PHP....)
因此在安裝到Server Port時,Port 443發生衝突,因此更換了其它的Port。


安裝SVN Client

本作者使用TortoiseSVN作為上傳工具,因為他比較.....視覺化吧。
看個人喜好囉。

安裝與操作:版本控制工具TortoiseSVN初體驗

2013年7月16日

關於Appserv 漏洞一事(一)

事由:
今天研究室發生了駭客攻擊,有一台電腦變成了殭屍。
(還好不會咬人)
原因:
電腦的AppServ 2.5.10被竄改,導致一直對外發送封包(典型的DDos攻擊)

經過:
早上電腦使用者反應網路連不上,發現是連線速度異常。後來網路組人員通知,有異常流量從此電腦IP發出。因此先IP封鎖,拔除網路線。

解決方法:
早上電腦使用者反應網路連不上,發現是連線速度異常。後來網路組人員通知,有異常流量從此電腦IP發出。因此先IP封鎖,拔除網路線。

參考:
如何預防Appserv遭受入侵
資訊組蔡玉貴(friber)部落格日誌_appserv程式漏洞_首頁被竄改

最後學弟選擇安裝了其它的軟體:XAMPP,線上文件說明都還滿完整的。
但是安裝完後沒有繁體中文,最後發現語言檔只有簡體中文。
本想一鼓作氣將他翻譯完,拿來造福人群。
但是網路的東西太過強大,所以上網找到人家翻好的繁體中文檔。
只能說世界上好心人還是有的。

(待續)

2013年6月29日

質數計算機



不知道質數為何物嗎?質數有多大呢?我們來看看你電腦的效能,可以計算多少質數囉。

(你會發現,每使用一次,計算速度越會來越快喔。)







關於「質數」


質數,指在一個大於1的自然數中,除了1和此整數自身外,無法被其他自然數整除的數。

by 維基百科





2013年6月9日

[Firefox App 練習]Hello World 安裝不成功

前言:
Firefox 也推出OS版,其開發是使用WebApp的方式,Base  is html5.

所以一個APP的資料內應該包含
index.html-> html5
icon.png ->128 px x 128 px
manifest.webapp -> 主要設定檔

問題:
我都寫好之後,設定檔取名為 「index.webapp」,上傳也OK,但是Run不出來。

目前解決:
index.webapp 改名 manifest.webapp
我想是因為.webapp的格式是固定的。

APP Developer 參考


2013年4月15日

[POS]微型印表機安裝與除錯

前言:
市面上的POS印表機,有分為ESC /TSC


傳輸協定:
ethernet:
IP:192.168.XXX.XXX(自行設定)
Port:9100



前置作業:
  • 印表機是否接上電源,並處於待機狀態。
  • 確認印表機內有列印紙,並有擺放正確

  • 先到網路上尋找驅動程式,並確認安裝成功。
  • 控制台->
    • 裝置和印表機->
    • 新增印表機->
    • (將USB或Serial接到本機)新增本機印表機->
    • 使用現有連接阜->
    • (USB為例)USB00X->
    • 安裝驅動->
    • 使用目前安裝的驅動程式->
    • 設定印表機名稱->
    • 測試列印
  • 如果以上不行,選設備按右鍵->
    • 印表機內容->
    • 連接阜->
    • (修改為其它的USB並測試列印)


Android 中文列印:


public class MainActivity extends Activity {

 TscWifiActivity TscEthernetDll = new TscWifiActivity();
 
 private Button test;
 private String text;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  
  
  
   test = (Button) findViewById(R.id.button1);

         test.setOnClickListener(new OnClickListener() {
             public void onClick(View v) 
             {
              text=new String("TEXT 0,0,\"TST24.BF2\",0,1,1,\"It's Chinese 這是中文\"\n");
int Width=100,Height=100;
              
              TscEthernetDll.openport("192.168.XXX.XXX",9100);
              
              TscEthernetDll.setup(Width, Height, 4, 4, 0, 0, 0);
              TscEthernetDll.clearbuffer();
              TscEthernetDll.sendcommand("SET TEAR ON\n");
              
              try {
    TscEthernetDll.sendcommand(text.getBytes("big5"));
   } catch (UnsupportedEncodingException e) {
    e.printStackTrace();
   }
              
              TscEthernetDll.printlabel(1, 1);
              
              TscEthernetDll.closeport();
             }
             
         });
 }


參考網站:
TSC 下載專區
TSPL Note
TSPL 中文說明