2010年12月16日 星期四

Life (Garry Schyman - Praan)

我很喜歡的一支Video,尤其他的配樂~~

2010年12月14日 星期二

程式碼貼文

關於文章貼程式碼的排版問題解決了,這是要用到CSS技巧,雖然我不曉得它的原理,反正照著網路上文章的SOP流程作完就OK了。

相關聯結:
  1. 在blog中顯示程式碼區(code block)
  2. [CSS] A Cool blockquote for "Code style" and some blogging tips
  3. 用CSS顯示程式碼
  4. 如何在Blog中顯示程式碼
  5. 如何在 blog 張貼程式碼

測試:

Private Sub SayHello()
Messbox ("Hello World")
End Sub


目前用的CSS樣版:
code {
display:block;
overflow:auto;
font-family:"Courier New";
white-space:pre;
background:#0F0F0F;
border:3px solid #CCC;
margin:5px 15px 0;
padding:5px 5px 5px 20px;
line-height:1.2em;
max-height:500px;
width:90%;
}

但還有一個問題,要如何修改文字前景顏色? 不過這不急,有空再研究~

2010年12月13日 星期一

"A物件的Event"內 引用 "B物件方法" 之技巧

在VB6時代,在簡單不過的事情,跑到.NET就變得麻煩,主要是programmer必須更注意執行緒之間相互引用介面的問題,反正就是A執行許要引用B執行續的服務,要透過一些技巧,Delegate是其中之一

留個記錄:
物件_reader的 event - TagRead 不能直接引用lstl.Items.Add方法,須透過Delegate技巧





Delegate Sub ShowTagCode(ByVal msg As String)

Private Sub ShowTagCodeOnLst(ByVal msg As String)
lst.Items.Add(msg)
End Sub

Private Sub _reader_TagRead(ByVal tags() As GAORFID.Tag) Handles _reader.TagRead
Dim i As Integer

For i = 0 To tags.Length - 1
If lst.InvokeRequired Then
Dim d As New ShowTagCode(AddressOf ShowTagCodeOnLst)
Try
Me.Invoke(d, New Object() {tags(i).ID})
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
lst.Items.Add(tags(i).ID)
End If
Next
End Sub

JNI (Java Native Interface) 注意事項

當移動 JNI class後,必須重新編譯一次表頭檔(.h)宣告,否則將來載入dll時,執行階段會出現找不到相對用的function名稱的錯誤訊息。

留個記錄:
注意package路徑




package com.jpos.MSR250SO;

public class KeyboardHookdll
{
static
{
System.loadLibrary("JposKeyHook");
}

public native boolean installhook();
public native boolean unhook();
public native void ClearKeyboardHookData();
public native byte[] getKeyboardHookData();
}


表頭檔function 名稱要能相對



/* DO NOT EDIT THIS FILE - it is machine generated */
#include
/* Header for class com_jpos_MSR250SO_KeyboardHookdll */

#ifndef _Included_com_jpos_MSR250SO_KeyboardHookdll
#define _Included_com_jpos_MSR250SO_KeyboardHookdll
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: com_jpos_MSR250SO_KeyboardHookdll
* Method: installhook
* Signature: ()Z
*/
JNIEXPORT jboolean JNICALL Java_com_jpos_MSR250SO_KeyboardHookdll_installhook
(JNIEnv *, jobject);

/*
* Class: com_jpos_MSR250SO_KeyboardHookdll
* Method: unhook
* Signature: ()Z
*/
JNIEXPORT jboolean JNICALL Java_com_jpos_MSR250SO_KeyboardHookdll_unhook
(JNIEnv *, jobject);

2010年11月10日 星期三

莊孝維的 System Hooks

原來 hook driver沒法被console application呼叫始用,從頭到尾都沒錯誤訊息,hook process就是進不來,浪費了我一整天時間測試,Windows Form就沒問題。

How To Hook Console Applications and the Desktop

Under Windows NT, system hooks are limited in two situations: hooking console windows and hooking the desktop.

Because of the current design of the console and the fact that its user interface runs in the Win32 server, Windows NT does not support hook calls in the context of console applications. Thus, if application A sets a system-wide input hook and text is typed in a console window, application A's input hook will not be called. The same is true for every type of Windows hook except for journal record and journal playback hooks.

2010年10月24日 星期日

B&G 1725 波爾多 (Average - Very Good)

Costco買的,價格NT399...


梅洛,卡本內蘇維翁,建議醒酒30分鐘,但此時喝,口感淡如水,風味生硬,只有average...



第60分鐘,生硬的風味化開來,酸澀浮現,開始活了起來,鼻韻也開始感受到香氣,但單寧不夠細緻,酸味過強,香氣味仍弱,average and half...


中午失望滴喝完一半後,晚上再拿來喝,再經過約40分鐘醒酒後,整體香氣強烈滴浮現,鼻韻充滿覆盆莓、黑醋栗果香氣息,酸味和單寧皆轉變為柔順,口感也更為圓潤,不輸NT899紅酒,非常超值 (Very Good)~~

2010年10月19日 星期二

ThreadPool 多工好幫手

留個記錄:

Imports System.Threading

Dim callBack As New WaitCallback(AddressOf ProcessDeviceDataThread)

ThreadPool.QueueUserWorkItem(callBack)

Private Sub ProcessDeviceDataThread(ByVal obj As Object)
While True
Threading.Thread.Sleep(10)
'do something or then exit
End While
End Sub

2010年10月18日 星期一

Parsing jpos.xml

原來JPOS內提供的source code已經有現成的library,我居然用jdom來土法煉鋼。

留個記錄:

SimpleEntryRegistry reg = new SimpleEntryRegistry(new SimpleXmlRegPopulator());
reg.load();
Enumeration entriesEnum = reg.getEntries();

int count = 0;
while (entriesEnum.hasMoreElements())
{
JposEntry entry = (JposEntry) entriesEnum.nextElement();

if (entry.getLogicalName().equals(sDeviceName))
{
int ii = entry.getPropertyCount();

Iterator ppp = entry.getProps();
while (ppp.hasNext())
{
JposEntry.Prop prop = (JposEntry.Prop) ppp.next();
propName = prop.getName();
propValue = prop.getValueAsString();

if (propName.equals("Debug"))
{
DEBUG = (propValue.equals("1") ? true : false);
String sDebug = (propValue.equals("1") ? "true" :
"false");
//save to system property
System.setProperty("msr.msr.debug", sDebug);
TraceLog.WriteMessage("MSRService.open() " +
sDeviceName, DEBUG);
}
else if (propName.equals("Port"))
{
comid = Integer.parseInt(propValue.substring(3));
sComport = propValue;
TraceLog.WriteMessage("Port Connected: " + sComport,
DEBUG);
}
else if (propName.equals("PhysicalDeviceName"))
{
physicalDeviceName = propValue;
}
else if (propName.equals("DeviceServiceDescription"))
{
deviceServiceDescription = propValue;
}
else if (propName.equals("PhysicalDeviceDescription"))
{
physicalDeviceDescription = propValue;
}
else
{
//do nothing here
}
}
}
count++;
}

2010年10月16日 星期六

Costco德國白酒 - 2009 Riesling Kabinett (Good and Half)

實際價格忘記了,大概約在NT450 - 500之間。





從冰箱拿出來開瓶喝,剛開始時味道淡到不行,跟生啤酒差不多的淡口感,沒啥甜味,只剩酒精刺辣感。以為又買到地雷酒。但當溫度回升到10C以上時,帶黏稠度的果味、甜味,還有動感的酸味慢慢浮現。

這算清爽型白酒,不是風味濃郁型的,Good and Half~~

JPOS Xml modification

jpos.xml的格式不合客戶所需,把人家的 ISV 搞掛了。

又要重回java世界。

實在想不通,OPOS這麼好用,環境還是用Windows平台,幹嘛要用JPOS?

2010年10月13日 星期三

將來應該會買 Windows Phone 7

palm已經再見,就算是hp買下,但已經不是原來的palm。

當treo650壽終至寢時,就轉換到Windows Phone 7.

它的廣告我很喜歡~


還有這個~~

blog文章排版問題

部落格文章怎麼作排版呀,沒法作段落,space和tab在每一行前頭都被吃掉,貼的程式碼可讀性就變差了

實在不想寫html code,也不想貼screen shot圖檔來解決...

Open an OleDB Connection

要撈資料,就從這裡開始吧.



Imports oledb = System.Data.OleDb

Private Sub InitializeAccessDatabase()
Dim connOleDb As oledb.OleDbConnection
Dim dataSource As String

dataSource = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\xxx.mdb"

If connOleDb Is Nothing Then
connOleDb = New oledb.OleDbConnection(dataSource)
End If

If connOleDb.State <> ConnectionState.Open Then
connOleDb.Open()
End If

_conn = connOleDb
End Sub

開版囉~~

開始要好好的來用這個部落格作記錄~~