2011/8/31

自我修練 – ASP.net專題實務

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DBAccessLib;
using System.Data.Odbc;
using System.Text.RegularExpressions;

public partial class WebPart_wkh_TopsTicket_Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {       
        const int offset = -3;
        Label1.Text = "";

        if (!Page.IsPostBack)
        {

//抓入當日日期的方法, 但注意要放在if (!Page.IsPostBack)中,以免新設定的值被洗掉。
            tbFromYear.Text = DateTime.Today.AddDays(offset).Year.ToString();
            tbFromMonth.Text = DateTime.Today.AddDays(offset).Month.ToString();
            tbFromDay.Text = DateTime.Today.AddDays(offset).Day.ToString();
            tbToYear.Text = DateTime.Today.Year.ToString();
            tbToMonth.Text = DateTime.Today.Month.ToString();
            tbToDay.Text = DateTime.Today.Day.ToString();
        }
    }

    protected void Calendar1_SelectionChanged(object sender, EventArgs e)
    {

//以button呼叫日曆控制項的方法, 看起來真的很笨, 只是把非隱藏設成隱藏

        tbFromYear.Text = Calendar1.SelectedDate.Year.ToString();
        tbFromMonth.Text = Calendar1.SelectedDate.Month.ToString();
        tbFromDay.Text = Calendar1.SelectedDate.Day.ToString();
        Calendar1.Visible = false;
        Button2.Enabled = true;
    }

    protected void Button1_Click(object sender, EventArgs e)
    {

//以button呼叫日曆控制項的方法, 看起來真的很笨, 只是把隱藏設成非隱藏
        Calendar1.Visible = true;
        Button2.Enabled = false;
        Calendar1.Focus();
    }

    protected void Calendar2_SelectionChanged(object sender, EventArgs e)
    {
        tbToYear.Text = Calendar2.SelectedDate.Year.ToString();
        tbToMonth.Text = Calendar2.SelectedDate.Month.ToString();
        tbToDay.Text = Calendar2.SelectedDate.Day.ToString();
        Calendar2.Visible = false;
        Button1.Enabled = true;
    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        Calendar2.Visible = true;
        Button1.Enabled = false;
        Calendar2.Focus();
    }
    protected void btSubmit_Click(object sender, EventArgs e)
    {
        string DSN_RCA = Common.ToGetDsnByNCSR("R");
        String SQLStr = "";

        if(tbValue.Text.Length == 0) {           
        }

        if (rblFeature.SelectedValue == "dispatch")
        {
            SQLStr = "select orderid as 聯單號碼, exgname as 交換機, dispatchuserid as 操作員代碼,";
            SQLStr += " dispatchtime as 時間 from tkdispatch where dispatchtime >= \'";
            SQLStr += tbFromYear.Text + "-" + tbFromMonth.Text + "-" + tbFromDay.Text + " 00:00:00\' ";
            SQLStr += " and dispatchtime <= \'" + tbToYear.Text + "-" + tbToMonth.Text + "-" + tbToDay.Text;
            SQLStr += " 23:59:59.99999\'";
            if (rblCondition.SelectedValue == "tel")
            {
                SQLStr += "";
            }
            if (rblCondition.SelectedValue == "number")
            {
                if (Regex.IsMatch(tbValue.Text, @"^[1-9][0-9]*"))
                {
                    SQLStr += " and orderid =" + tbValue.Text;
                }
                else
                {
                    Label1.Text = "聯單號碼格非數字,改為搜尋全部條件。";
                }
            }
            if (rblCondition.SelectedValue == "op")
            {
                SQLStr += " and dispatchuserid like \'%" + tbValue.Text + "%\'";
            }
        }

        if (rblFeature.SelectedValue == "reply")
        {
            SQLStr = "select orderid as 聯單號碼, replyvalue as 回報代碼, replyuserid as 操作員代碼,";
            SQLStr += " replytime as 時間 from tkreply where replytime >= \'";
            SQLStr += tbFromYear.Text + "-" + tbFromMonth.Text + "-" + tbFromDay.Text + " 00:00:00\' ";
            SQLStr += " and replytime <= \'" + tbToYear.Text + "-" + tbToMonth.Text + "-" + tbToDay.Text;
            SQLStr += " 23:59:59.99999\'";
            if (rblCondition.SelectedValue == "tel")
            {
                SQLStr += "";
            }
            if (rblCondition.SelectedValue == "number")
            {
                if (Regex.IsMatch(tbValue.Text, @"^[1-9][0-9]*"))
                {
                    SQLStr += " and orderid =" + tbValue.Text;
                }
                else
                {
                    Label1.Text = "聯單號碼格非數字,改為搜尋全部條件。";
                }
            }
            if (rblCondition.SelectedValue == "op")
            {
                SQLStr += " and replyuserid like \'%" + tbValue.Text + "%\'";
            }
        }

        //Label1.Text = SQLStr;

 

//好用的GridView設定方法, 要把DataReader餵過去就ok了
        DBAccess db1 = new DBAccess();
        OdbcDataReader dr = db1.DataReader(….);
        GridView1.DataSource = dr;
        GridView1.DataBind();
        GridView1.Visible=true;

        dr.Close();
    }
}

2011/8/29

中華電信光世代50M

當晚跟中華電信的公關,工程師聊了不少網路環境的變速,除了Windows系統,軟體等環境,使用者最常遇到的應該是網路分享器硬體設備的問題,若使用者透過wifi分享器分享網路出來,建議該wifi分享器要有802.11n的水準才有辦法達到下載50M的速度,本來我以為802.11g就夠了(54Mbps),但是因為54Mbps是訊號滿格的標準,而且還要下載上傳共用,所以802.11n才是最理想的,而且筆電的無線網卡也要支援802.11n才行,若是真的很講究速度,我會建議還是接LAN最穩。還有一個令人頭痛的問題是,目前有多少網站的伺服器能夠像中華電信一樣的提供50M/秒的速度,Yahoo? YouTube? 線上遊戲? 目前網站似乎沒有公開自己的頻寬傳輸的習慣,所以我個人認為若你是個人戶,申請50M,想要在任何網站都能享用50M的速度,可能會不是很實際,若是像蛋蛋家裡的環境,同時可能有4~5人在共享網路,我才比較推薦使用光世代50M,因為在大家都在共享網路訊號的同時,每個個體戶都還是有機會分到5~8M以上的速度,面對各式各樣的網站,應該都是把對方伺服器榨到極限了。Anyway,透過這次的體驗,我也申請了光世代50M的方案,因為我家使用網路的人很多,還蠻適用的。這一兩天中華電信就要來我家裝了,大家未來使用上有什麼問題也歡迎留言討論~
雖然我不是網管相關的專業人員,但看完蛋大的這篇測試文不禁有幾點疑問:

1. 測試的地點是在中華電信的機房附近(或辦公室內)而非一般民眾的自宅,得出的結果也無法100%的達到50M,更何況由機房到民眾家中的距離之間會有更多的問題。
2. 用蛋大的TT92筆電跑SpeedTest.net時,伺服器也是顯示Taipei而非其他國家,得到的結果不足50M,中華電信的工程師怎麼沒有任何回應,而是蛋大用"落漆"兩字帶過。
3. 目前台灣網路最被人詬病的問題就在於中華電信國營時在全島鋪設的電路是用所有納稅人的錢,但轉為民營之後卻沒有將電路歸還於全民,導致其他家業者也須向中華電信承租,而這樣的結果中華電信怎會盡心維護這最後也最昂貴的一哩路。(這點問題有些偏離測試文的內容,但也是問題1的延伸問題)


1. 我的申請單已經過了,明天會有工作人員會來我家安裝,我家住在文山區的深山內,深到垃圾車不會經過我家我要跑下山去倒的那種,我日後也會貼上我家的數據給大家參考,別緊張啦

2. 坦白說,speedtest.net雖然寫台北,但是到底speedtest是用什麼樣的方式在測,好像也沒人知道,我用TT下載檔案的時候實際有45M的效果,這才是我覺得最重要的,啊不然speedtest.net測出50M,然後我下載檔案時只有10M,那有屁用

3. 挖,這個就有的討論嘍,我個人立場當然希望迴路費可以大幅降,多一點競爭,大家都有便宜又快的網路可以用,不過這就有點小離題了



若大家對我家裝好跑的數據比較有興趣, 不管有沒有到50M我都會貼出來啦, 我家1樓到4樓共有8台筆電, 我家用的幾乎全都是Win 7, 但我哥有一台XP, 我也都會一併測試.

啊若看完貼圖還是疑神疑鬼的, 歡迎組團來我家親自體驗, 老比價王的板主應該還記得我家在哪, 曾經有一屆的板主聚會是在我家辦的.

外包的裝機人員說
我們鎮上還沒有人申請50M/3M
說我是第一個申請的
因為整個瑞芳區都是他在跑的
我心想這裡有這麼落後嗎
下午才去幫我朋友臨櫃申請50/3M
我猜他可能是第二個吧

晚上才有空做10M升50M的測試
先接原本就有的Vigor2104IP分享器
這是好幾年前在PCDVD跟小峰大團購買的
很少熱當或斷線
用起來還滿穩定的

連上HiNet連線速率測試網頁
下行10.26Mbps 上行2.58Mbps

還記得自己以前從28.8K電話撥接時代開始上網,
然後到唸書使用學網,享用飛快的高速頻寬,一晃眼也十多個年頭。

隨著網路世代的演進,對於上網速度的需求也越來越多了!
像Wisely自己寫稿查資料,以及許多視聽娛樂,
全都離不太開網路環境,而速度的要求其實也變的越來越高。



或許有人會問,這麼快的超高速光纖網路速度能做什麼?

UX21 惠普、戴爾、宏碁表現不如預期,但是華碩、聯想表現仍然出色

全球前五大電腦品牌廠商財報已全部出爐,惠普、戴爾、宏碁表現不如預期,但是華碩、聯想表現仍然出色,呈現出「兩好三壞」的局面,其中聯想上季營收更達到歷史新高。

華碩與宏碁獲利更是兩樣情,宏碁上半年每股盈餘為負2.12元,反觀華碩有高達每股9.3元的成績。同樣是PC大廠,為什麼出現完全不同調的境遇?經過資料比對後發現,表現不如預期的廠商,營收重心皆放在成熟市場,而華碩、聯想則搭上新興國家的需求順風車。

根據研究機構指出,今年第二季,亞太、南美等地區的新興市場,PC市場規模已超越歐美為首的成熟市場,其中又以中國PC銷售量超越美國最具代表性。華碩就在新興市場取得好成績,大陸PC市占率約在第二、三名附近徘徊,僅次於聯想;另一方面,華碩在東歐第二季市占率成為第一,也是拜新興市場需求所賜。


華碩(Asus)推出輕薄筆電並沒啥了不起,重點是這款在 Computex 2011 前夕推出的 UX21 ,最厚處只有17mm(最薄則是3mm),重量只有約1.1公斤,重點是有 Sandybridge Intel Core i7 的處理器加持(詳細規格不明,應該是雙核心的低電壓版)。

另外,還配備了 SATA IIISSDUSB 3.0 ,續航力號稱可以持續「休眠」達一週(這說法很有趣),睡眠到醒來只要兩秒(拜SSD所賜),從鍵盤到機身都是使用金屬材質,而且是 Unibody !不過外殼的顏色相當地誘人,特別是燈光照明下的光暈(請看跳轉後的影片),「稍微」對華碩又有了點信心了。

在先前展前曝光內容當中,我們已經預期華碩將會在展前記者會上發表新款Eee PC,於是我們在現場所看到的就是一台相當輕薄,同時機身採尖銳切角設計的新款Eee PC,同時其售價僅只要美金199元,目前作業系統搭載MeeGo,但未來將推出Windows版本 (當然售價就會提高)。


華碩在展前記者會上正式發表新款小筆電系列「Eee PC X101,主要一改先前Eee PC有點圓潤的感覺,而改用較為細薄尖銳的外觀設計,使得最厚地方也僅有17.6mm,而重量也只有945公克。筆電表面採用紋路質感設計,一共推出紅、白、棕、黑4種顏色,鍵盤採用巧克力鍵盤設計,同時觸控板尺寸也十分足夠讓男生手指方便操作,其他則內建USB介面與micro SD記憶卡插槽。


2011/8/26

中華電信公布100年第2季及上半年合併營運成果

中華電信公布100年第2季及上半年合併營運成果

中華電信(2412)今日(8/26)公布1002季及上半年營運成果。該公司依據中華民國一般公認會計原則編製之100年第2季合併營收為544.2億元,較99年同期成長9.6%;歸屬予母公司股東之純益133億元,較99年同期增加2.8%;每股稅後盈餘1.71元。

 

針對100年第2季之營運表現,董事長呂學錦表示:「業務的持續拓展使我們第2季的營收高達544億,營收增加主要來自固網營收因訂價權回歸之提高,及行動加值服務與手機銷貨收入因智慧型手機熱賣之成長。在數位匯流的潮流下,為充分運用我們的市場地位及寬頻和資通訊服務的完整經驗,並與國內上下游廠商分享產業發展的成果,共存共榮,我們凝聚出『數位雨林』的願景。在此願景下,我們將提供雲端應用服務發展環境、提供整合服務平台、為綠能永續與國內廠商及國際各大營運商共同致力於節能減碳。此外,我們重新打造服務中心與門市,以提供客戶更貼心與精緻的體驗服務。我相信『數位雨林』將在我們的灌溉下成長茁壯,並挹注營收成長動能。」

 

財務資訊

營收

100年第2季合併營收544.2億元,較99年同期成長9.6%。各主要營收項目比重為:行動通信業務41.1%、網際網路業務11.5%、國內固定通信業務36.3%、國際固定通信業務7.1%及其他。除了固網撥打行動電話之訂價權回歸固網端的正面影響外,行動加值服務、手機銷售及子公司光世代建設營建案之銷售亦是營收成長的主要原因。

 

行動通信業務營收為223.5億元,成長1.1%。成長主因是智慧型手機熱賣帶動行動上網加值業務營收及手機銷售收入之增加,抵銷了行動語音營收之減少。行動語音收入減少主要來自固網撥打行動電話訂價權回歸固網端的影響。網際網路營收為62.5億元,年成長率3.4%。寬頻用戶數的增加及用戶持續由ADSL升速至光纖,帶動了HiNet上網業務的成長。

 

國內固定通信業務營收為197.8億元,成長14.1%。市話營收107.7億元,較去年同期成長33.6%,主要來自固網撥打行動電話訂價權回歸之影響。國內長途電話營收14.6億元,較99年同期減少13.9%,主要係行動電話與網路電話(VOIP)替代,與國家通訊傳播委員會(通傳會)要求降低費率。寬頻方面,包括ADSLFTTx業務,營收為51.4億元,較前一年成長3%;雖然ADSL營收因為升速至光纖服務及通傳會要求降價而減少,但是光纖營收的成長彌補了ADSL營收之下降。

 

國際固定通信業務營收較99年同期增加3.9%38.6億元,主要原因是國際長途電話及國際電路出租營收增加。

 

其他營收為21.8億元,較前一年增加369.3%,主要來自子公司光世代建設營建案之銷售

 

100年上半年合併總營收為1,069億元,年成長率7.7%。各業務對營收貢獻比重為: 國內固定通信業務36.5%行動通信業務42.3%,網際網路業務11.5%,國際固定通信業務7.2%,其餘來自其他非電信業務。

 

成本與費用

100年第2季總成本與費用為390.1億元,較99年同期增加12.3%,主要是因固網撥打行動訂價權回歸固網端,因而增加支付其他行動業者接續費及過渡期費,手機銷貨成本增加亦是成本費用提高的主因。

100上半年總成本與費用為775.4億元,較99年同期增加11.6%,原因如同前述。

 

所得稅

100年第2季所得稅費用為23.2億元,較99年同期的19.4億元增加了19.7%。主係99615日政府調降營利事業所得稅稅率至17%並溯自99年度施行,99年上半年度之所得稅降稅效益反應於996月份。

 

息前、稅前、折舊及攤銷前盈餘(EBITDA)與純益

100年第2EBITDA與去年同期相當為234.2億元營業利益增加3.4%,達154.1億元,反映了營收成長。

 

EBITDA margin及營業利益率分別為43.02%28.3%前一年之比率則分別為47.33%30.0%。第2季純益增加2.8%達133億元。每股純益1.71元,較去年同期增加27.6%,主要因為該公司獲利提高,並且於1001月完成現金減資,致在外流通股數減少20%。

 

資本支出與現金流量

2資本支出為55.4億元,較去年同期增加7.6%;其中59.6%用於國內固定通信業務,21.2%用於行動通信業務,9.3%用於網際網路業務,6.8%用於國際固定通信業務,其餘用於其他項目。2來自營業活動的淨現金流量為162.8億元,較去年同期減少5.6%,主要係該公司因99年獲利增加而增加發放獎金。

 

業務資訊

網際網路/寬頻業務

截至1006月底,該公司光世代寬頻客戶數已達220萬,佔寬頻總客戶數之49.7%,HiNet用戶數為363萬,較去年同期成長2.2% 622日該公司推出之20M50M寬頻「升速」、「降價」優惠方案,以刺激寬頻客戶升速及申裝動能,截至目前為止客戶反應熱烈。

行動電話業務

截至1006月底,行動電話客戶數為986萬,較去年同期945萬成長了4.4%;行動上網用戶數為115萬,較99年底80.9萬成長,100年年底目標數因此提升為140

2季行動加值營收年成長率為42%,達37.7億元,其中行動上網營收成長87.2%,成為行動加值營收之主要來源。

國內/國際固定通信業務

該公司仍維持其在固網市場的領導地位,截至1006月底,市話客戶數累積為1,227萬。MOD客戶持續成長,截至826日,累計用戶數已超過93萬戶,顯示多樣化的高品質內容確實滿足不同層次客戶的視聽需求。

2011/8/25

荷蘭則是認為三星Galaxy手機侵犯了蘋果的軟體專利

三星在德國及荷蘭的遭遇有些不同,德國法院認為Galaxy Tab違反了歐盟新式樣
(Community design)法令,該法令是用來保護產品整體外觀與設計,而荷蘭則是認為
Galaxy手機侵犯了蘋果的軟體專利。
荷蘭法院於周三(8/24)要求三星不得於歐洲特定國家銷售三款Galaxy手機,分別是
Galaxy S、Galaxy S II與Galaxy Ace,該禁令擴及德國、愛爾蘭、瑞典、瑞士、英國
與荷蘭等市場,並於10月15日起生效。
荷蘭法院認為三星侵犯了蘋果於可攜式電子裝置上的照片管理專利。專利部落格FOSS分
析,雖然蘋果在歐盟逾30個國家都申請了相關專利,但在部份國家未能完成保障該專利
的有效流程,使得此次的禁令只能在上述國家實施。
BBC引述三星的聲明指出,該判決確認了Galaxy產品線是創新且獨特的,法院只認定三
星侵犯蘋果一項專利,該公司將會透過包括法律行動在內的各種方式以確保荷蘭消費者
仍能購得Galaxy手機。
蘋果今年4月於歐洲控告三星的Galaxy產品抄襲iPhone與iPad的外觀及風格設計,並指
控三星侵犯蘋果的智慧財產權。德國法院已於本月禁止三星在歐洲銷售10.1吋的Galaxy
Tab平板電腦,三星預計於本周答辯。
三星在德國及荷蘭的遭遇有些不同,德國法院認為Galaxy Tab違反了歐盟新式樣
(Community design)法令,該法令是用來保護產品整體外觀與設計,而荷蘭則是認為
Galaxy手機侵犯了蘋果的軟體專利。市場分析指出,由於Galaxy系列採用的是Android
平台,該判決將會敦促Google修改該平台,以替三星或其他的Android製造商解圍。
智慧型手機是近年來最熱門的市場之一,而有關智慧型手機的專利訴訟亦層出不窮,特
別是以iPhone席捲全球智慧型手機市場的蘋果已相繼控告三星、宏達電與摩托羅拉侵犯
相關專利。三星為了挑戰德國法院所頒布的禁令,找出1968年製作的「2001太空漫遊」
科幻電影,指出電影中已出現類似iPad的平板電腦,企圖證明iPad的外觀設計屬於先前
技術(prior art)

我們第一次知道 Acer M310 存在還是在一周前,不過那時候沒有關於這部 Windows
Phone 手機的規格。根據 WindowsPhoneNZ 網站的消息,在新西蘭舉辦的微軟 Tech Ed
大會上,有人看到了這款將搭載 WP7 Mango 系統的 Acer M310 ,稱該機支援 HDMI 輸
出,並擁有 8GB 儲存空間。我們知道在今年秋季,會有很多 Windows Phone 機型配置
HDMI 輸出功能,包括:HTC Eternity 。根據目擊者描述,這款手機「外觀黑亮」且採
用「錐形切邊」設計,與 Acer W4(如上圖)的外觀基本相同,支援通過 WiFi 進行
DLNA 多媒體共享。同時他們還看到旁邊依偎著 ASUS 的 WP7 手機,規格未知,背部是
黑色磨砂質感,帶前置攝像頭。如果消息屬實,那麼今年秋季,無疑是 WP7 Mango 系
統手機大軍吹響進攻號角的時候。

一位荷蘭海牙的法官就蘋果控告三星侵犯其手機專利的案件作出裁決,指出三星的
Galaxy S、Galaxy S II 和 Galaxy Ace 因侵犯了蘋果的專利檔案 2,059,868,即「滾
動頁面的方法」,而下令禁售。不過根據該法院的一篇新聞公布,該法官認為三星的
Galaxy Tab 10.1 和 10.1v 並沒有侵犯蘋果的專利;而且裁決也指出三星沒有侵犯到
專利檔案 2,098,948 -- 在多點觸控時記錄一支「旗子」(Recording a "Flag"),和
專利檔案 1,964,022,即與用手指在螢幕上拖曳來解鎖的有關技術。另外有當地律師指
出,上述專利 1,964,002 在荷蘭已經再沒有法律約束力,所以蘋果不能再在荷蘭境內
就這個專利提出訴訟。

三星方面發表了一段聲明回應,說他們會採用所有行動,包括法律行動去確保有關的手
機能繼續在荷蘭發售。而且這個裁決並不會影響有關手機在其他歐洲國家的發售。根據
Tweaker.net 報導,三星會在軟體上作出修改(特別是 Gallery 程式),以防繼續侵
犯蘋果有關的專利,務求使到手機能在當地繼續發售。荷蘭的禁售令將會在 10 月 13
日開始,距離現在還有一段時間,相信是給三星一個緩衝期吧。懂荷蘭語的話,可以到
引用來源看看長達 65 頁的判決。