2010年12月28日 星期二

遠傳s市集星光大賞

上網搜尋了一下,原來有這麼多的新聞在報導這件事情
做一個總整理

聯合新聞網的影音介紹
http://mag.udn.com/mag/digital/storypage.jsp?f_MAIN_ID=322&f_SUB_ID=2949&f_ART_ID=291192

SOGI的報導(有我的身影)
http://www.sogi.com.tw/newforum/article_list.aspx?OsId=1&topic_ID=6149867



Cool3c的入圍名單
http://android.cool3c.com/article/30323

Engadget的報導
http://chinese.engadget.com/2010/12/14/android-smarket-award/

自由的報導
http://www.libertytimes.com.tw/2010/new/dec/29/today-fashion1.htm

中時的報導
http://life.chinatimes.com/2009Cti/Channel/Life/life-article/0,5047,11051801+112010122900072,00.html

2010年12月18日 星期六

Google Map GEvent.addListener 彈出視窗資訊相同問題

當你用Google Map時
在AJAX回傳資料後
在一個迴圈內去加入圖標的事件
會遇到彈出的視窗都是取的最後一筆資訊
這時候必須將 GEvent.addListener 移到外部函式處理才行

參考資料
http://hepeng19861212.javaeye.com/blog/551266

2010年12月10日 星期五

IIS6 下載附檔名為 exe 的檔案

最近由網路上下載更新檔案,常常遭到逾時通知
本以為是自己的問題,或是網路不穩或是檔案太大
查到最後原來是IIS6有一個CGI TIMEOUT的機制
若是附檔名是EXE檔,他會有自己的TIMEOUT時間

解決方法就是把EXE壓縮起來,或是更改檔名
又或者是可以跟我一樣修正該目錄下的MIME TYPE

2010年12月2日 星期四

[推薦] Xmind

MindManager最近常常當機
FreeMind一定要裝JAVA VM
且功能較少

後來找到網友們推薦XMind
推薦文
http://edumeme.blogspot.com/2008/11/xmind-freemind.html

我試用了一下真的還不錯
下載網址
http://www.xmind.net/downloads/

修復 “Failed to bring up eth0″ in Ubuntu VMWare

我在複製VMWARE中的檔案到另一台機器的時候
vmware 中的 ubuntu 就無法連線
最後查網路資料才發現

要先
sudo vi /etc/network/interfaces

將eth0改成eth1
然後
sudo /etc/init.d/networking restart

就可以了

2010年11月29日 星期一

TeamViewer 也有手機板

Android手機用
iPhone手機用
iPad用

尤其iPad今天在台正式開賣
1.6萬起的價格應該很有吸引力

2010年11月28日 星期日

IIS 7.5的ApplicationPoolIdentity虛擬帳號無法登入SQL Server

當IIS7.0以上,因為安全性的問題已經不建議使用Network Service為預設帳號
識別已經改成ApplicationPoolIdentity
是虛擬帳號,會因為程式集區的不同而有所不同
也會造成不少的困擾

網路上討論的也不少

http://social.msdn.microsoft.com/Forums/zh-TW/236/thread/33f314d7-6c28-47f9-9076-732ef37c6419

http://blog.miniasp.com/post/2009/09/Introduce-IIS-75-Application-Pool-Identity-and-Virtual-Account.aspx

但我自己喜歡在SQL裡面直接建立
IIS AppPool\DefaultAppPool
這個帳號,並賦予它對應的權限就可以了
其中DefaultAppPool,若您用的是自建的應用程式集區
就改成你建的名稱即可

2010年11月27日 星期六

ASP.NET TreeView

ASP.NET中內建的TreeView
他的NODE節點沒法自訂屬性Attribe
是件很麻煩的事情,就沒辦法給定每一個節點取執行Javascript

最後我採用繞道的方法去實作
首先要加入JS,程式碼如下:

function TreeNodeSelected() {
var objNode = window.event.srcElement;
if (objNode.tagName == "A") {
//取得參數
var arr = objNode.pathname.split("\\");

}
}
}


隨後在.CS中加入

TreeView.Attributes.Add("onclick", "TreeNodeSelected();");


這樣就可以做另外的進階控制

WD 2TB/64MGP-S2 WD20EARS GPT

在初始化這個WD20EARS硬碟時
發現WINDOWS問我是否要分割成GPT格式
上網GOOGLE了一下,覺得這篇寫的還不錯

http://www.ithome.com.tw/itadm/article.php?c=44651

主要是需要單一分割區超過2T時使用
我最後決定沒有用他是因為到時候怕GHOST認不得
且我分割區沒有超過2T,所以最後還是選擇MBA

不過未來要做RAID應該就會用到了
也希望LBA48的極限不會太快到

WD 2TB/64MGP-S2 WD20EARS Advanced Format 新進格式化硬碟

今天購入一個2T的先進格式化硬碟,其實早有聽聞這個技術
不過還是上網了解了一下,簡單的這技術說是將磁區校正的技術
以4096為準,在XP以下中需要用官方軟體校正
VISTA以上並不需要修正,除非在你用GHOST軟體回復系統後


參考資料
網友的說明
http://www.mobile01.com/topicdetail.php?f=297&t=1448368&p=1

官網說明
http://www.wdc.com/ch/products/advancedformat/

2010年11月25日 星期四

Visual Studio 2010 Feature Packs

Visual Studio 2010 Feature Packs出了

主要更新有
Sliverlight的除錯
UML的支援
FireFox測試等等

詳細如下
http://msdn.microsoft.com/en-us/vstudio/ff655021.aspx

2010年11月24日 星期三

利用UrlRewriter.Net做出可以讓多個網址共用的ASP.Net網站

讓同一個網站下的目錄當作參數再用
現在ASP.NET 4.0很容易
但之前的就很麻煩

但發現可以用UrlRewriter這個Open Source來做
下載請到
http://sourceforge.net/projects/urlrewriter/files/
使用請看
http://www.dotblogs.com.tw/ouch1978/archive/2010/11/24/urlrewriter.net.aspx

2010年11月22日 星期一

VS2010 HTML Code Snippet

VS來到了2010了
許多更方便的功能很多都沒有經過宣傳
很少人會知道,但都是可以大幅減少CODING的好方法

Code Snippet
就是一個很實用的功能
可以將你所選取的範圍
快速的加入範圍選取標籤

例如常用的
#region
#endregion

都可以用快速鍵
Ctrl+K,S
來減少KEYIN

參考資料
http://blog.darkthread.net/blogs/darkthreadtw/archive/2010/11/23/vs2010-html-snippet.aspx?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Darkthread+%28Darkthread%29

2010年11月21日 星期日

2010-12-10 第八屆黃金企鵝獎頒獎典禮現場展示

今年最後也是最重要的一個活動就是我們大賽的頒獎典禮

將於12/10星期五當天下午13:30~17:30,

於世貿一館第五會議室將舉辦一場聯合造勢的頒獎典禮
希望大家都能一同共襄盛舉,

2010年11月16日 星期二

Google Friend Connect

站在巨人肩膀上的社群外聯
http://www.google.com/friendconnect/

無意中發現Google的邀請函
查了一下網路上已經很多人用了
我這邊就不多介紹
感覺還不錯推薦大家試用一下

2010年11月14日 星期日

2010-11-14 Android Applist

我自己的APPLIST又來了

My Tracks

(com.google.android.maps.mytracks)

瀏覽內容轉送手機
(com.google.android.apps.chrometophone)

BattStatt Free
(net.bajawa.battery)

androidVNC
(android.androidVNC)

PhotoFunia
(com.photofunia.android)

NewsBook
(aming.app.NewsBook)

VoiceGO!生活行
(com.cyberon.android.voicego)

Facebook
(com.facebook.katana)

地圖
(com.google.android.apps.maps)

aCurrency Lite
(com.a0soft.gphone.aCurrency)

Retro Camera
(org.urbian.android.tools.vintagecam)

台灣新聞
(com.mywoo.news)

APKtor
(com.gotoinit.apktor)

SMS Backup
(org.bobarctor.smsbackup)

PPT Remote Lite
(com.pptremotecontrol.android.presenter)

Voice Recorder
(com.tokasiki.android.voicerecorder)

圖片庫
(com.cooliris.media)

來電我閃閃
(com.agilestorm.fakecall.free)

Voice2Do
(com.voice2do)

hiPage 搜go!
(com.chyp.hipagesogo)

Wireless Tether
(android.tether)

VirtualWalkieTalkie
(ix.com.android.VirtualWalkieTalkie)

Google 翻譯
(com.google.android.apps.translate)

SpacePhysics
(com.doodle.main)

PaPaGO M7
(com.mactiontech.M7)

Advanced Task Killer Free
(com.rechild.advancedtaskkiller)

S市集
(net.smart.appstore.client)

CarBox
(com.goomod.CarBox)

Applanet
(com.android.BlackMarketApp)

Fun2D
(com.funcode.client)

SoundHound
(com.melodis.midomiMusicIdentifier.freemium)

Sketcher
(org.sketcher)

Ninja Kaka
(com.ninja.studio.game.Kaka.lower.lite)

Bluetooth File Transfer
(it.medieval.blueftp)

來電顯示++
(com.mywoo.phonecall)

Talking Tom Free
(com.outfit7.talkingtom)

Wifi 分析儀
(com.farproc.wifi.analyzer)

台北公車
(com.mywoo.busplus)

Dropbox
(com.dropbox.android)

Goggles
(com.google.android.apps.unveil)

HopStepCounter
(jp.co.sofix.android.stepcounter)

黃曆快速查
(tw.idv.koji)

Paper Toss
(com.bfs.papertoss)

Handcent Sms
(com.handcent.nextsms)

Camera 360
(vStudio.Android.GPhoto)

Angry Birds
(com.rovio.angrybirds)

3D Compass Lite
(com.a0soft.gphone.aCompass)

Lovely Time 正妹報時
(com.ken.beauty.picture)

★ Car Pro ★
(nowto.car)

SpeakWrite
(com.speakwrite.speakwrite)

走著瞧
(com.willmobile.android.jihsun)

aFirewall
(com.lianyun.firewall)

System Info Widget
(com.jasoncalhoun.android.systeminfowidget)

Google 星空圖
(com.google.android.stardroid)

Skype
(com.skype.raider)

demoPlayer
(org.freecoder.android.cmplayer)

ColorDict
(com.socialnmobile.colordict)

GPRemote
(com.goomod.GPRemote)

Remote RDP Lite
(org.toremote.rdpdemo)

新浪微博
(com.sina.weibo)

i68
(tms.tw.publictransit.FreewayInformation)

App List
(com.elitenerds.applist)

通話紀錄++
(com.mywoo.clog)

ASTRO
(com.metago.astro)

HTC Sync
(com.fd.httpd)

DailyRoads Voyager
(com.dailyroads.v)

http://www.goomod.com/
http://www.goomod.com/gpremote/

2010年11月13日 星期六

推薦好用的行車紀錄器 CarPro

在找尋Android背景錄影的解決方案時
無意中看到國人自行開發的CarPro
是一個車上多用途的解決方案

有測速,定位,行車紀錄,聽歌等功能

我自己目前是用dailyroads在做紀錄
dailyroads與CarPro的差別在
dailyroads是專業的行車紀錄
CarPro比較著重於多功能多用途上
CarPro

2010年11月3日 星期三

jquery 與 ie 的衝突 jQuery(document).ready

今天幫客戶檢查他們的程式碼
最主要是要解決無法在IE6,7,8看網頁

一執行就發現問題出在
jQuery(document).ready(function() { … })

上網查了一下發現IE不支援DOMContentLoaded 事件
所以不能用這個方法

要改換onload事件才行

參考資料
1.http://blog.miniasp.com/post/2010/07/24/jQuery-ready-vs-load-vs-window-onload-event.aspx
2.http://jsgears.com/thread-63-1-1.html

2010年10月31日 星期日

.Net 伺服器監控方案

1. 我自己是喜歡寫程式監控,參考案例
http://www.dotblogs.com.tw/PowerHammer/archive/2009/10/01/10873.aspx?fid=17159

2. 直接用別人的免費軟體
http://ccc.wskybbs.cn/bbs/viewthread.php?tid=17714

3. 可用的效能計數器
http://technet.microsoft.com/zh-tw/library/cc778343(WS.10).aspx

2010年10月26日 星期二

Chrome 無法使用 style.left style.top

今天遇到一個相容性的問題
在IE中可以用
style.left = pos.x;
style.top = pos.y;

但在Google瀏覽器內不行
Javascript無法設定位置

經查證後是要加入單位就可以
style.left = pos.x + "px";
style.top = pos.y + "px";

ASP.NET 在執行完 AJAX 後在執行 javascript

先加入

<script type="text/javascript">
function EndRequestHandler(sender, args) {


alert("Script");

}


function load() {

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);

 

}



</script>


在HTML的BODY中加入

<body onload="load()">





參考資料
http://blog.eyny.com/space-7475258-do-blog-id-405275.html

2010年10月25日 星期一

Desire 無法在 Eclipse 中 Debug 的問題

原因通常是沒有裝Driver
要去HTC網站下載HTCSync
安裝完之後,需要手動去更新Driver
到裝置管理員內找到ADB
在內容頁內
選擇正確的Driver
我自己的電腦上是用
HTC Dream Coomposite ADB Interface

參考資料
http://ajzele.net/how-to-connect-and-get-debug-ready-with-your-htc-desire-android-phone-and-eclipse-ide

2010年10月11日 星期一

C# 好用的 ?? ,拿來處理NULL

C# 好用的 ??
當有值是需要判斷NULL的
可以用下面的方法判斷

b = a ?? "test";

意思代表 a 如果是 null 的話
b就等於test
否則還是a
當然兩邊型別是要一樣的才可以

2010年10月5日 星期二

在Android上裝Market模擬器

先去下載你所對應的模擬器版本

然後解壓縮到你對應的目錄中
目錄是
C:\Documents and Settings\使用者名稱\.android\avd

然後打開AndEmu.ini
編輯正確的路徑存檔後即可

檔案下載
http://techdroid.kbeanie.com/2009/11/android-market-on-emulator.html

參考連結
http://www.techbang.com.tw/posts/3105-buy-a-mobile-phone-before-the-system-in-the-pc-demo-android

2010年10月1日 星期五

手機們同步 iPhone ,Google phone(android) ,windows mobile - iPhone篇

我最近因業務上需要,每天都帶著這三個平台的手機
同步聯絡人就是個大問題
我選擇最方便的解決方案
就是都跟GMAIL做同步
以GMAIL的通訊錄為主

我想Android就不用說了,他是自動跟GAMAIL同步
所以先處理iPhone

在iPhone中新增一個帳號,
1.郵件伺服器類型,選擇 Microsoft Exchange
2.輸入基本資料
3.※輸入伺服器位置(m.gmail.com)
4.設定要同步的資訊



參考網址
http://xingfu.blogspot.com/2009/02/iphone-google.html

2010年9月27日 星期一

應用程式的並列設定不正確?

在使用.Net時候
由2008轉到2010時候

編譯發現有"應用程式的並列設定不正確?"
網路上查了一下,發現都沒法解決我的問題

所以這個錯誤是很籠統的說明
解決方法是去事件檢視器中看說明
源頭找會比較好

我這次的原因是
app.manifest
裡面有requestedPrivileges多個區段
拿掉就可以了
這是由VS2008 -> VS2010的問題

2010年9月25日 星期六

apk 檔案的 MIME TYPE

最近常開發Android程式
也打算讓人直接在網站上下載
所以把我找到的MIME TYPE寫出來給有用到的人使用

.apk
application/vnd.android.package-archive

2010年9月20日 星期一

.NetFramework 4.0 向下相容姓

.Net Framework已經出到了4.0了
稍微整理一下個版本的相容性

.Net Framework1.1 獨立的
.Net Framework2.0 獨立的,不向下相容1.1
.Net Framework3.0 架構在2.0之上,一定要裝2.0才行
.Net Framework3.5 下載下來安裝時候會有含2.0和3.0
.Net Framework4.0 獨立套件,不含2.0,1.1

2010年9月16日 星期四

TX9 和 WX5 也太完美

這一篇01的專訪一定要看一下
http://www.mobile01.com/newsdetail.php?id=9834

最吸引我的功能(十大敗家理由)
1.景深功能(少掉後製的麻煩)
2.3D功能
3.加強夜視
4.價格也很OK
5.追焦
6.自然閃光燈
7.柔膚
8.液晶解析度92萬
9.FullHD攝影
10.1公分近拍

北川景子的廣告
長版
http://www.youtube.com/v/FOLq63HbghA?hl=zh&fs=1

短版
http://www.youtube.com/v/uKTqBWRo6C0?hl=zh&fs=1

2010年9月14日 星期二

GPRemote 1.1 發佈

我們公司的GPRemote又有新功能了
新增PowerPoint預覽頁面的功能
目前在遠傳的S市集,黃金企鵝專區,處於很落後的情況
看來是要收費了,免費也沒辦法吸引大家

2010年9月11日 星期六

VBNET] 繞路解決 MailMessage 在 Header 亂編碼的 bug

相信很多人在MailMessage中的HEAD中塞入中文
會遇到標頭值有無效的字元

網路上有人把文字先編碼後再傳給MailMessage
也是個好的解決方法,但還是希望MS可以由底層解決

http://tlcheng.spaces.live.com/Blog/cns!145419920BFD55A7!4978.entry

C# 版本
internal string EncodeInnerString(string strSource, string strEncoding = null, bool bAllEncode = true)
{

try {
if ((strEncoding != null) && strEncoding.Length > 0)
Encoding = System.Text.Encoding.GetEncoding(strEncoding);

if (Encoding.CodePage != Encoding.Default.CodePage) {
string encName = Encoding.HeaderName;
string fmtEncode = "=?{0}?B?{1}?=";
string strHeaderItem = strSource;
System.Text.StringBuilder encHeader = new System.Text.StringBuilder();
string ascHeader = Encoding.ASCII.GetString(Encoding.ASCII.GetBytes(strHeaderItem));
string strBase64 = null;

if (bAllEncode) {
strBase64 = System.Convert.ToBase64String(Encoding.GetBytes(strHeaderItem));
encHeader.AppendFormat(fmtEncode, encName, strBase64);
} else {
int ibl = 0;
int ubl = 0;
int sbl = 0;
int ebl = 0;
ubl = strHeaderItem.Length - 1;
ebl = -1;
ibl = -1;
do {
ibl += 1;
if (strHeaderItem.Substring(ibl, 1) != ascHeader.Substring(ibl, 1)) {
sbl = ibl;
encHeader.Append(strHeaderItem.Substring(ebl + 1, sbl - ebl - 1));
do {
ibl += 1;
if (strHeaderItem.Substring(ibl, 1) == ascHeader.Substring(ibl, 1)) {
ebl = ibl - 1;
strBase64 = System.Convert.ToBase64String(Encoding.GetBytes(strHeaderItem.Substring(sbl, ebl - sbl + 1)));
encHeader.AppendFormat(fmtEncode, encName, strBase64);
break; // TODO: might not be correct. Was : Exit Do
} else if (ibl == ubl) {
ebl = ibl;
strBase64 = System.Convert.ToBase64String(Encoding.GetBytes(strHeaderItem.Substring(sbl, ebl - sbl + 1)));
encHeader.AppendFormat(fmtEncode, encName, strBase64);
break; // TODO: might not be correct. Was : Exit Do
}
} while (!(ibl >= ubl));
}
} while (!(ibl >= ubl));
encHeader.Append(strHeaderItem.Substring(ebl + 1));
}
return encHeader.ToString();
} else {
return strSource;
}
} catch (Exception ex) {
throw ex;
}
}

2010年9月7日 星期二

SQL 排序,將文字當作數字排序

客戶需求,需要把是Varchar格式的欄位用數字由小到大排序
例如資料為:
0
1
2
10
11
文字排序會是
0,1,10,11,2

用數字排序會是
0,1,2,10,11

SQL指令請下
select mumber from table order by cast(mumber as integer)

2010年9月5日 星期日

ashx aspx ajax 更新 常常會有 cache 住的問題

在AJAX中常常會有瀏覽器CACHE住的問題
可以在網頁中加入 META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"

並且在你讀取的ASHX中設定
Response.CacheControl = "no-cache"

2010年9月1日 星期三

GPRemote 1.0 正式上線

小弟寫的手機遙控軟體於2010/9/1正式上線了
希望可以帶給大家更多的便利

手機下載請到
http://www.smartapp.tw/aps/App/allSoftware_detail.action
黃金企鵝專區找GPRemote

電腦端的軟體請到
http://www.goomod.com/gpremote/

因為這是工具程式,到了10/31後會恢復收費
這一段時間請大家多利用並且下載

2010年8月27日 星期五

javascript 與 UpdatePanel 溝通

我們可以利用javascipt觸發
__doPostBack('UpdatePanel1','TEST')

就可以讓UpdatePanel更新

然後可以用
string val = Request.Form["__EVENTARGUMENT"];
取得回傳的參數

val 會是 TEST

2010年8月16日 星期一

Android SDK 1.5 以後取得 Sensor 的方法

下列CODE是我自己實際在用的
相較大部分的範例都是1.1的
這一個方法特別的實用


import java.util.Date;
import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;    // 1.5
import android.hardware.SensorEvent;    // 1.5
import android.hardware.SensorEventListener;    // 1.5
import android.hardware.SensorManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class SensorTest extends Activity implements SensorEventListener {

   private boolean mRegisteredSensor;
   private SensorManager mSensorManager;
TextView textview = null;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sensor);
      
        textview = (TextView) findViewById(R.id.textSensor);
        textview.setText("TEST");
        mRegisteredSensor = false;
        mSensorManager =
            (SensorManager)getSystemService(Context.SENSOR_SERVICE);
    }
      
        /*覆寫onResuem方法*/
        @Override
        protected void onResume() {
            super.onResume();
          
            // 1.5
            //{
                List sensors = mSensorManager.getSensorList(Sensor.TYPE_ORIENTATION);
              
                if (sensors.size() > 0) {
                    Sensor sensor = sensors.get(0);
                    mRegisteredSensor = mSensorManager.registerListener(this,
                        sensor,
                        SensorManager.SENSOR_DELAY_FASTEST);
                }
            }
          
         /*覆寫onPause方法*/
        @Override
        protected void onPause()
        {
            if (mRegisteredSensor) {
                mSensorManager.unregisterListener(this);
                mRegisteredSensor = false;
            }
          
            super.onPause();
        }  
      
        @Override
        public void onAccuracyChanged(Sensor sensor, int accuracy) { // 1.5

        }
      
        @Override
        public void onSensorChanged(SensorEvent event) { // 1.5
                if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) {
                    // values[0]:
                    // Azimuth, angle between the magnetic north direction and the Y axis,
                    // around the Z axis (0 to 359). 0=North, 90=East, 180=South, 270=West
                    // values[1]:
                    // Pitch, rotation around X axis (-180 to 180),
                    // with positive values when the z-axis moves toward the y-axis.
                    // values[2]:
                    // Roll, rotation around Y axis (-90 to 90),
                    // with positive values when the x-axis moves away from the z-axis.            
                    Log.v("ORIENTATION",
                        String.valueOf(event.values[0]) + ", " +
                        String.valueOf(event.values[1]) + ", " +
                        String.valueOf(event.values[2]));
                    textview.setText(
                            String.valueOf(event.values[0]) + ", " +
                            String.valueOf(event.values[1]) + ", " +
                            String.valueOf(event.values[2]));
                }
            }
          
        }
      
    }


2010年8月15日 星期日

賀 2010黃金企鵝獎入圍

外電報導,於2010-08-13周五公布
小弟的作品入選企鵝獎
50餘家公司的良性競爭之下
進入複賽,要請大家再多多支持
未來是網路投票的兩個月


第八屆黃金企鵝獎

開放平台行動裝置應用大賽

應用程式組第一階段入圍名單

序號 公司名稱 作品名稱

1 不嘴砲工作室股份有限公司 重拳擂台

2 天氣風險管理開發股份有限公司 行動天氣

3 方碼科技 Fun 2D黑白掃

4 系微股份有限公司 公車達人

5 享玩數位有限公司 髮型書

6 英諾奧茲有限公司 drold PaPa

7 恩海科技有限公司 盯字庫

8 財團法人佳音廣播電台 心情便利貼

9 喬立達數位媒體有限公司 折價王Mycoupon_Android行動版

10 華電聯網股份有限公司 好路子高快速道路資訊系統

11 勤崴國際科技股份有限公司 Gotcha! 乘車通

12 暘碁資訊有限公司 萬能遙控器

13 極致行動科技股份有限公司 重裝三國2

14 輝翼科技股份有限公司 樂活一點靈

15 寶來證券股份有限公司 寶來點金靈 Android版



※以上入選名單依公司名稱排序
 
得獎名單公布
http://android.cool3c.com/game/2010-announcement

Android 移除狀態列、移除標題、旋轉螢幕

想要移除狀態列
this.getWindow().setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WndowManager.LayoutParams.FLAG_FULLSCREEN);

想要移除標題列
requestWindowFeature(Window.FEATURE_NO_TITLE);

想要設定螢幕的旋轉方向
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

2010年8月14日 星期六

Eclipse VS SVN

想要在Eclipse中用SVN
不二選擇就是

http://subclipse.tigris.org/

Eclipse update site URL: http://subclipse.tigris.org/update_1.6.x

Eclipse update site在更新版本時會修正
連結不能用的時候還是去一下官網看

移除SVN的好方法

最簡單的方法是新增一個註冊檔,請幫下面的程式碼複製起來
並存成一個.reg的檔案,即可使用

--------------------------------------

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="Delete SVN Folders"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /k \"TITLE Removing SVN Folders in %1 && FOR /r \"%1\" %%f IN (.svn _svn) DO RD /s /q \"%%f\" \""

--------------------------------------

參考資料,保哥的部落格
http://blog.miniasp.com/post/2008/04/Remove-Subversion-Folders-using-Shell-Command.aspx

Jon Galloway
http://weblogs.asp.net/jgalloway/

2010年8月10日 星期二

ASP.NET 4 Routing 初步

主要要注意的事項
1.在 Global.asax.cs 中,修改 Application_Start 如下
void Application_Start(object sender, EventArgs e)
{
System.Web.Routing.RouteTable.Routes.MapPageRoute("about", "About", "~/About.aspx");
}
2.在網頁中就可以用(string)Page.RouteData.Values["Tag"];取得資料
3.此時網址要鍵入
http://localhost/About



另外要在aspx中要取值可以用


要有RESTFul 就用下列的方法宣告

System.Web.Routing.RouteTable.Routes.MapPageRoute("tag", "Tags/{Tag}", "~/Tag.aspx");


參考資料

程湘之間的ASP.NET 4: Routing


http://charlesbc.blogspot.com/2010/06/aspnet-4-routing.html

2010年8月5日 星期四

AjaxControlToolkit.Properties.Resources.NET4.resources Error

若發現有下列錯誤
請不要被誤導,以為是資源檔錯誤
這個錯誤是你忘了加入



<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">

在AJAX ToolKit中要使用控制項,要記得也要把ToolkitScriptManager加入才行

Server Error in '/' Application.


Could not find any resources appropriate for the specified culture or the neutral culture.  Make sure "AjaxControlToolkit.Properties.Resources.NET4.resources" was correctly embedded or linked into assembly "AjaxControlToolkit" at compile time, or that all the satellite assemblies required are loadable and fully signed.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Resources.MissingManifestResourceException: Could not find any resources appropriate for the specified culture or the neutral culture.  Make sure "AjaxControlToolkit.Properties.Resources.NET4.resources" was correctly embedded or linked into assembly "AjaxControlToolkit" at compile time, or that all the satellite assemblies required are loadable and fully signed.



Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1 

ASP.NET 4.0 日期下拉選單

我稍微研究了一下日期的下拉選單

可以用AJAX Controls 4.0 中的Calendar
http://www.asp.net/ajaxlibrary/act_Calendar.ashx

或是用TBDateEdit
http://www.cnblogs.com/jeff377/archive/2007/12/03/tbdateedit.html

前者比較多人用且歷練比較多,後者有原始碼且比較漂亮

AJAX control toolkit for asp.net 4.0 安裝

之前發表了AJAX control toolkit for asp.net 4.0
http://programmersay.blogspot.com/2010/04/ajax-control-toolkit-release.html

現在要說明如何安裝
1.請先將AjaxControlToolkit.Binary.NET4.zip解開
2.將他複製到你要的目錄下,通常是C:\
3.然後開啟VS2010
3.在工具箱上按右鍵新增一個索引,命名通常為AjaxControlToolkit,然後在上面按右鍵->選擇項目
4.在彈出的視窗中選擇.NET Framework元件的標籤
5.按下瀏覽,選擇到AjaxControlToolkit.Binary的目錄下的AjaxControlToolkit.dll
6.將命名空間為AjaxControlToolkit都選起來,按下確定即可加入



2010年8月3日 星期二

ASP.NET Chart 控制項發佈到SERVER端的問題

最常遇見有人問我為何有包含CHART的網頁發佈到了SERVER端會出現下列的錯誤
Invalid temp directory in chart handler configuration [c:\TempImageFiles\]

起因是SERVER端沒有【c:\TempImageFiles\】這個目錄
你可以在Web.config中找到下列這一段的定義

建議可以改成下列這一段,在發佈的時候比較不會出錯
url=~\images\;" />

重點整理如下
1.將dir改成url
2.將絕對路徑改成相對路徑

人二的插畫星球

強者都是值得被推薦的
人二的插畫星球,真的很厲害
有想法也有能力可以實現

http://www.wretch.cc/blog/e353304

2010年8月1日 星期日

在.ashx 泛型類別中存取SESSION的值

重點有三
1.要using System.Web.SessionState;
2.類別要實作IRequestSessionState
3.取值要用Context.Session["XXX"]


參考資料
http://www.limingchstudio.com/2009/05/ashx-session-variable.html




2010年7月31日 星期六

ASP.NET 在網頁上要直接取值

這是個很實用的方法
可以直接在網頁上取得你寫在cs中的數值

ASP.NET的基礎-在網頁上的基礎繫結

1. 語法
2.Page.DataBind() 及 Control.DataBind()
3.資料繫結清單控制項
4.存取資料

參考資料
http://support.microsoft.com/kb/307860/zh-tw

2010年7月30日 星期五

jQuery 開發者都該知道的六件事

這篇不是初學指南,但也一定會遇到的問題
jQuery 開發者都該知道的六件事
http://msdn.microsoft.com/zh-tw/scriptjunkie/ee730275.aspx

jQuery入門在此
http://blog.themeforest.net/screencasts/jquery-for-absolute-beginners-video-series/
有15支影片可以先瀏覽一番

改善網頁下載時間的最佳做法

MSDN這邊文章寫得太棒了
http://msdn.microsoft.com/zh-tw/scriptjunkie/ff743754.aspx

針對速度問題實作有下列幾點注意
1.減少HTTP請求
2.減少檔案大小
3.配置引入檔案順序
4.分散下載
5.檢查伺服器反應時間

2010年7月29日 星期四

ICO 圖檔去背

每次遇到這個問題都會頭痛好久
PhotoShop不支援ICO
PhotoImpact不支援ICO去背
鳥鳥的VS.NET編輯器只能慢慢的一個像素去填滿遮罩區域

還好有
http://www.convertico.com/
只要給去背好的PNG就可以得到去背的ICO

教學文章如下
http://goinfinity.net.ru/?p=219

但真的想用PS也還是可以的
加外掛就好
http://www.minwt.com/?p=1441

如何把AVD Android模擬器轉橫向

Android設計時一定要考慮到橫向螢幕
Ctrl+F12是切換螢幕方向的方法
提供給大家參考

2010年7月27日 星期二

NPOI 從 Apache 那邊移來 .Net 的好物

NPOI 是對 Office 文件直接存取的程式庫

這篇MSDN文章寫的真是時候
http://msdn.microsoft.com/zh-tw/ee818993.aspx

提供此專案的網址
http://npoi.codeplex.com/

可以看看Excel的物件模型
http://msdn.microsoft.com/en-us/office/aa905411.aspx

看看Office在伺服器端使用的難題
http://support.microsoft.com/kb/257757/zh-tw

2010年7月26日 星期一

再論.Net Framework 輸入法問題

有鑑於之前MS提供的ImeMode.OnHalf方法來解決中文輸入法會無法輸入的問題
若有人忘記,可以參考前篇
http://programmersay.blogspot.com/2010/05/net-framework.html

但是在發佈到客戶端後才知道問題大條
大部分的客戶都會出現
ImeMode (12) is invalid for Enum type
12正好是ImeMode的OnHalf值
代表客戶的系統不支援此值
難怪MS在VS中設計的時候就會把此值檔掉

最後確定此問題時MS輸入法的BUG
但天無絕人之路,可以用別的方法繞境

先推薦大家把三篇文章看完
1.確定是中文輸入的BUG
http://support.microsoft.com/kb/925488/en-us
2.解決方法一(舊方法,不是通用)
http://hi.baidu.com/wingingbob/blog/item/0c339abfaac93b0219d81fd9.html
3.解決方法二(推薦作法)
http://hi.baidu.com/wingingbob/blog/item/20741734532af846251f14f1.html

無法啟動 microsoft office outlook 無法開啟 outlook 視窗

如果你開啟outlook 2007時候出現這個視窗
上面寫,無法啟動 microsoft office outlook 無法開啟 outlook 視窗
那我是過最有效的兩個方法如下

方法一:
解決方式 使用 Scanpst.exe 修復錯誤

1.結束正在執行的 Outlook。

2.按兩下位於 drive:\Program Files\Microsoft Office\OFFICE12 中的 [Scanpst.exe]。

3.在 [請輸入您要掃描的檔案名稱] 方塊中,輸入想要檢查的 .pst 或 .ost 檔案名稱,或是按一下 [瀏覽] 以搜尋檔案。

4.若要指定掃描記錄選項,請按一下 [選項],然後按一下您要的選項。

5.按一下 [開始]。

6.如果掃描完成之後發現錯誤,系統會提示您開始進行修復程序來修正錯誤。在執行修復程序期間,會建立備份檔案。若要變更這個備份檔案的預設名稱或位置,請在 [輸入備份檔案名稱] 方塊中,輸入新名稱,或是按一下 [瀏覽] 以尋找您要使用的檔案。

7.按一下 [修復]。

8.使用含有您嘗試修復之 .pst 檔案的設定檔來啟動 Outlook。

9.按一下 [到] 功能表上的資料夾清單。在資料夾清單中,您可能會看到含有預設 Outlook 資料夾的 [已復原的個人資料夾] 或 [遺失及尋得] 資料夾。因為這是一個重新建立的 .pst 檔案,所以復原的資料夾通常是空的。[遺失及尋得] 資料夾含有由「收件匣修復」工具所復原的資料夾及項目。從 [遺失及尋得] 資料夾遺失的項目則無法進行修復。

10.如果您看見 [已復原的個人資料夾] 資料夾,就可以建立新的 .pst 檔案,並將 [遺失及尋得] 資料夾中的項目拖曳到新的 .pst 檔案中。當您移動完所有的項目時,就可以從設定檔中移除 [已復原的個人資料夾] (.pst) 檔案,包括 [遺失及尋得] 資料夾。

方法二:
你是不是安裝了outlook connector?查看控制台裏是否有Microsoft Office Outlook Connector,如是,請先移除,重新下載並安裝:
http://www.microsoft.com/downloads/details.aspx?FamilyID=9A2279B1-DF0A-46E1-AA93-7D4870871ECF&displaylang=en

方法三:
outlook.exe /resetnavpane

參考資料
http://www.mobile01.com/topicdetail.php?f=300&t=1430845

2010年7月20日 星期二

發現加上@,String可以寫多行

原來在C#中可以採用@來讓String多行連接
寫法如下:
string a = @"test
abcd
1234";

另外其實你寫成
string a = @"test" +
"abcd" +
"1234";
再編譯時期就會轉成單一字串,不用擔心效能問題

http://www.dotblogs.com.tw/wadehuang36/archive/2010/05/11/15150.aspx

2010年7月17日 星期六

Andorid 權限 讀寫SD卡

1.6的SDK開始,sdcard的讀寫都要在AndroidManifest.xml文件中加:
 

2010年7月16日 星期五

Android internet premission

程式內記得要設定權限
否則都無法測試上網
在androidmanifest.xml裡,加入以下程式碼 

2010年7月13日 星期二

Flash 與 HTML 溝通 (FlashVars)

在HTML端要做

Object Tag Example:

Embed Tag Example:
(other parameters)>
在FLASH端要讀取資料
param_txt.text=_root.foo;
結果會讀到Hello World
參考來源

http://kb2.adobe.com/cps/164/tn_16417.html
http://blog.riaproject.com/actionscript/142.html

2010年7月12日 星期一

Android 與 main.out.xml文件

剛開始寫Android時候,老是出現main.out.xml錯誤
非常的困擾,最後發現的解決方法是

1.在 Project->Clean 清除目前的編譯
2.刪除多餘的 main.xml
3.在Package Exploer中選Run as->Android Application 即可

發生原因是:在Eclipse中編輯XML檔案,會預設用XSLT來轉換文件
所以當我們要執行編譯時,要把焦點由XML移開到專案上

參考如下
http://www.cnblogs.com/chunhui588/archive/2010/06/26/Android-debug-main-out-xml-parsing-error.html


2010年7月11日 星期日

C# 使用 HTS API TRADE 下單

HTS 自動下單
所先先準備
1.HTS日盛HTS API V1.30.0.PDF文件
2.C:\JihSun\HTS2\Dll\HTSAPITradeClient.dll


在C#中定義DLL的方法,因為這DLL沒法直接建Interop
        #region DLL Define
        [DllImport(@"C:\JihSun\HTS2\Dll\HTSAPITradeClient.dll")]
        static extern void HTSOrder([MarshalAs(UnmanagedType.LPStr)] string str);
        #endregion

並且引用
using System.Runtime.InteropServices;
之後就可以把下單字傳下過去了
下單字串範例
Market=F,Account=A01-1234567,ContractName=TXF,ContractDate=200808,OpenCloseAu
to=A,BuySell=B,Lots=1,OrderType=L,Price=8888,FokIocRod=R,DayTrade=N

使用 C# 介接群益的報價 API (SKQuoteLib.dll)

這張程式的來源在下方
我會放在這邊是做個備份
若有不妥請通知我移除


using System.Runtime.InteropServices;

public partial class Form1 : Form
{
/*
* DLL Import:
* 0. SKQuoteLib_Initialize
* 1.0 SKQuoteLib_AttachConnectionCallBack
* 1.1 SKQuoteLib_AttachQuoteCallBack
* 1.2 SKQuoteLib_AttachTicksCallBack
* 1.3 SKQuoteLib_AttachBest5CallBack
* 2. SKQuoteLib_EnterMonitor
* 3. SKQuoteLib_GetStockByNo
* 4. SKQuoteLib_RequestTicks
* 5. SKQuoteLib_GetTick
* END. SKQuoteLib_LeaveMonitor
*/

// 0.初始使用者相關資訊
[DllImport("SKQuoteLib.dll", CallingConvention = CallingConvention.StdCall)]
extern static int SKQuoteLib_Initialize(String lpszLoginID, String lpszPassword);

// 1.0.向報價函式庫註冊接收連線狀態的 Call back 函式位址
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
delegate void FOnNotifyConnection(Int32 nKind, Int32 nCode);
static FOnNotifyConnection Delegate_AttachConnection = new FOnNotifyConnection(CBFunc_AttachConnection);

[DllImport("SKQuoteLib.dll", CallingConvention = CallingConvention.StdCall)]
extern static int SKQuoteLib_AttachConnectionCallBack(FOnNotifyConnection Delegate_AttachConnection);

// 1.1.當有索取的個股報價異動時,將透過此註冊的函式通知應用程式處理
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
delegate void FOnNotifyQuote(Int16 sMarketNo, Int16 sStockidx);
static FOnNotifyQuote Delegate_AttachQuote = new FOnNotifyQuote(CBFunc_AttachQuote);

[DllImport("SKQuoteLib.dll", CallingConvention = CallingConvention.StdCall)]
extern static int SKQuoteLib_AttachQuoteCallBack(FOnNotifyQuote Delegate_AttachQuote);

// 1.2.當有索取的個股成交明細有所異動,即透過向此註冊的 Call back 函式進行處理
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
delegate void FOnNotifyTicks(Int16 sMarketNo, Int16 sStockidx, Int32 nPtr);
static FOnNotifyTicks Delegate_AttachTicks = new FOnNotifyTicks(CBFunc_AttachTicks);

[DllImport("SKQuoteLib.dll", CallingConvention = CallingConvention.StdCall)]
extern static int SKQuoteLib_AttachTicksCallBack(FOnNotifyTicks Delegate_AttachTicks);

// 1.3.當有索取的個股五檔價格有所異動,即透過向此註冊的Call back 函式進行處理
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
delegate void FOnNotifyBest5(Int16 sMarketNo, Int16 sStockidx);
static FOnNotifyBest5 Delegate_AttachBest5 = new FOnNotifyBest5(CBFunc_AttachBest5);

[DllImport("SKQuoteLib.dll", CallingConvention = CallingConvention.StdCall)]
extern static int SKQuoteLib_AttachBest5CallBack(FOnNotifyBest5 Delegate_AttachBest5);

// 2.建立與報價伺服器的連線
[DllImport("SKQuoteLib.dll", CallingConvention = CallingConvention.StdCall)]
extern static int SKQuoteLib_EnterMonitor();

// 3.根據股票代號取得報價資訊
[DllImport("SKQuoteLib.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
extern static int SKQuoteLib_GetStockByNo(String lpszStockNo, ref TStock pStock);

// 4.要求傳送成交明細以及五檔
[DllImport("SKQuoteLib.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
extern static int SKQuoteLib_RequestTicks(ref Int16 psPageNo, String pStockNo);

// 5.取得成交明細資訊
[DllImport("SKQuoteLib.dll", CallingConvention = CallingConvention.StdCall)]
extern static int SKQuoteLib_GetTick(Int16 sMarketNo, Int16 sStockidx, Int32 nPtr, ref TTick pTick);

// END.中斷與報價伺服器的連線
[DllImport("SKQuoteLib.dll", CallingConvention = CallingConvention.StdCall)]
extern static int SKQuoteLib_LeaveMonitor();


/*
* Struct:
* TStock
* TTick
*/

// [struct] TStock
[StructLayout(LayoutKind.Sequential)]
public struct TStock
{
public Int16 m_sStockidx; // 系統自行定義的股票代碼
public Int16 m_sDecimal; // 報價小數位數
public Int16 m_sTypeNo; // 類股分類
public byte m_cMarketNo;  // 市場代號0x00上市;0x01上櫃;0x02期貨;0x03選擇權;0x04興櫃
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
public String m_caStockNo;   // 股票代號
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 10)]
public String m_caName;   // 股票名稱
public Int32 m_nOpen; // 開盤價
public Int32 m_nHigh; // 最高價
public Int32 m_nLow; // 最低價
public Int32 m_nClose; // 成交價
public Int32 m_nTickQty; // 單量
public Int32 m_nRef; // 昨收、參考價
public Int32 m_nBid; // 買價
public Int32 m_nBc; // 買量
public Int32 m_nAsk;  // 賣價
public Int32 m_nAc;  // 賣量
public Int32 m_nTBc; // 買盤量
public Int32 m_nTAc; // 賣盤量
public Int32 m_nFutureOI; // 期貨未平倉 OI
public Int32 m_nTQty; // 總量
public Int32 m_nYQty; // 昨量
public Int32 m_nUp;  // 漲停價
public Int32 m_nDown; // 跌停價
}

// [struct] TTick
[StructLayout(LayoutKind.Sequential)]
public struct TTick
{
public Int32 m_nPtr; // 資料所在的位置(Key)
public Int32 m_nTime; // 時間
public Int32 m_nBid; // 買價
public Int32 m_nAsk; // 賣價
public Int32 m_nClose; // 成交價
public Int32 m_nQty; // 成交量
}


/*
* [In,Out] ref Variable
*/

// PageNo
static short PageNo = -1;

// TStock
public static TStock Stock = new TStock();

// Tick
public static TTick Tick = new TTick();




private void Form1_Load(object sender, EventArgs e)
{
    // 0.初始使用者相關資訊
    SKQuoteLib_Initialize("身分證號", "密碼");

    // 1.0.向報價函式庫註冊接收連線狀態的 Call back 函式位址
    SKQuoteLib_AttachConnectionCallBack(Delegate_AttachConnection);
   
    // 1.1.當有索取的個股報價異動時,將透過此註冊的函式通知應用程式處理
    SKQuoteLib_AttachQuoteCallBack(Delegate_AttachQuote);
   
    // 1.2.當有索取的個股成交明細有所異動,即透過向此註冊的Call back 函式進行處理
    SKQuoteLib_AttachTicksCallBack(Delegate_AttachTicks);
   
    // 1.3.當有索取的個股五檔價格有所異動,即透過向此註冊的Call back 函式進行處理
    SKQuoteLib_AttachBest5CallBack(Delegate_AttachBest5);

    // 2.建立與報價伺服器的連線
    SKQuoteLib_EnterMonitor();
}




// 1.0
public static void CBFunc_AttachConnection(int nKind, int nCode)
{
    Console.WriteLine("[Connection] Kind: {0}, Code: {1}", nKind, nCode);
}

// 1.1
public static void CBFunc_AttachQuote(short sMarketNo, short sStockidx)
{
    Console.WriteLine("[Quoto] MarketNo: {0}, Stockidx: {1}", sMarketNo, sStockidx);
    // 在這裡做 SKQuoteLib_GetStockByIndex
}

// 1.2
public static void CBFunc_AttachTicks(short sMarketNo, short sStockidx, int nPtr)
{
    Console.WriteLine("[Ticks] MarketNo: {0}, Stockidx: {1}", sMarketNo, sStockidx);
    // 5. SKQuoteLib_GetTick
    SKQuoteLib_GetTick(sMarketNo, sStockidx, nPtr, ref Tick);
}

// 1.3
public static void CBFunc_AttachBest5(short sMarketNo, short sStockidx)
{
    Console.WriteLine("[Best5] MarketNo: {0}, Stockidx: {1}", sMarketNo, sStockidx);
    // 在這裡做 SKQuoteLib_GetBest5
}



private void button1_Click(object sender, EventArgs e)
{
    // 3. SKQuoteLib_GetStockByNo
    SKQuoteLib_GetStockByNo(textBox1.Text, ref Stock);
    // 4. SKQuoteLib_RequestTicks
    SKQuoteLib_RequestTicks(ref PageNo, textBox1.Text);
}



private void button2_Click(object sender, EventArgs e)
{
    // END. SKQuoteLib_LeaveMonitor
    SKQuoteLib_LeaveMonitor();
}

}

參考資料
http://percyy-buy.blogspot.com/2009/12/c-api-skquotelibdll.html