2011/8/31
寫程式,第一步想的不是資料結構也不是演算法。
首先,需求者會丟出想法,需求者可能是老闆,可能是End-User或自己。
接下來第二步,我會用直覺,真的就用直覺,應該說資訊科學的學養,想看看這種想法
能不能實作出來,試著跟需求者溝通後調整。
第三步,大致上在紙上畫出幾個系統架構,衡量自己熟悉與不熟悉的部分,當不熟悉的
份額太大時,往往是失敗的開始。
第四步,幫不熟悉的技術部分找到資源,大部分來自書籍與網路資料,並就瓶頸技術部
分先寫一些小程式熟悉並突破。
第五步,當所有不懂的部分都有些眉目之後試著把這些技術,組合起來,就變成了系
統。所謂有眉目,就是有自信在系統開發時完整時做出來。
接下來回歸主題,每個功能怎麼安排。以物件導向程式設計的觀點來看:
第一步,要切割class,以及繼承關係。
第二步,盡可能地列出member function的名稱,包含Constructors,Destructors,
operator overloading,對呀,只有名稱。
第三步,盡可能地列出data member。
第四步,開始設計member function,由被呼叫的class著手(比較複雜的function,需
額外寫一些簡單的驗證程式),一邊寫一邊調整data member、member function與class
的切割,包含member function的修飾子(public or private等等)。
第五步,除錯。
Google+要挖社群網站一哥臉書(Facebook)的牆角大不易。「憤怒鳥」Angry bird
的時間成長停滯,顯示Google+要挖社群網站一哥臉書(Facebook)的牆角大不易。
根據Experian Hitwise,27日止當週,用戶平均造訪時間5分47秒,較前週增加約4%。7
月16日止當週,用戶造訪Google+平均時間為5時50分,登上巔峰。
Google+是Google和臉書一決高下的社群網站利器。
Altimeter Group分析師查琳.李(Charlene Li)表示,雖然Google+提供一些和社交
圈朋友分享內容的不錯功能,但臉書擁有超過7.5億的用戶,不容易被取代。
李指出:「你想要加入的朋友,很多人已在臉書玩得很開心,他們不想再加入另一個社
群網站。」
根據Experian Hitwise,27日止當週,美國造訪Google+的人次減少5.5%,至116萬人
次,較前週攀升2.6%。在7月16日止當週,Google造訪人次成長幅度為283%。
顧能(Gartner Inc.)分析師加騰柏格(MichaelGartenberg)指出,由於Google尚未
對大眾開放這項服務,因此要判斷會員數目還言之過早。
「使用這項服務的用戶初步反應似乎相當正向,但我們討論的是尚未廣泛開放的系統,
多數消費者不得其門而入的服務。」
Google+旨在讓使用者和自己社交圈內的朋友分享資訊,今年6月28日開始測試,只有獲
得邀請函才能加入。從那時開始,Google即不停致力增加新功能。
本月初,Google+和Zynga Inc.與人氣遊戲「憤怒鳥」業者Rovio Entertainment Oy等
遊戲開發商合作推出遊戲服務。
Experian Hitwise的研究方法仰仗網站的造訪,不納入行動裝置用戶,或利用
Google.com網站上方黑色通知欄登錄進入的次數。
Google昨天收盤上漲1.62美元,或540.70美元。該股年來計跌9%。
出現了!Google+ 的遊戲服務終究還是來了,首波陣容找來《憤怒鳥》、《寶石方塊》
等 16 款人氣作品站台。功能乍看之下與現有 Facebook Google 強調遊戲服務可提供
使用者與親朋好友分享、同樂,還要有線上遊戲般的使用體驗。
Google+ 甫推出時,許多人看重他少了 Facebook 遊戲的設計,訴求更純粹的社群系
統;但發表後幾天卻有跡象顯示 Google 是有打算為 Google 添加遊戲功能,企圖增加
互動、凝聚人氣等。首發的 16 款遊戲,包括《憤怒鳥》、《寶石方塊》、Zynga 的
《德州撲克》以及《Dragon Age Legends》等。
▲最上方就是未來會新增的 Google+ 遊戲圖示;左方是主要功能列,包括遊戲清單、
設定、最近玩過的遊戲等。選擇遊戲時,系統會告知你近期哪位朋友也在玩這個作品。
(圖╱轉載自 Google 官方部落格) (接下一頁)
Google真是厲害,居然一開始就強打推出最夯的遊戲:憤怒鳥(Angry Birds)
右側有「精選遊戲」、「所有遊戲」和「遊戲通知」三個選項,
下方還有個「最近玩過」的記錄選項,設計上滿簡單方便的。
除了Angry Birds外,在裡頭還有撲克、寶石方塊和射擊遊戲Crime City可玩,
目前總共推出16款不同類型的遊戲,但多以美式風格遊戲為主。
Google+ 遊戲網址:https://plus.google.com/games
玩遊戲時,要先點選遊戲然後提供授權;結束後,可用社交訊息選擇你的小圈圈,
去分享比較分數戰果。若不想給遊戲存取權限,那就要在右上的『Google+設定』,
在「帳戶總覽」裡選擇「授權應用程式和網站」內的「編輯」選項,
然後選擇取消應用程式的權限;這相對於臉書不斷干擾的模式,真是好上許多。
自我修練 – 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)
{
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
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市占率約在第二、三名附近徘徊,僅次於聯想;另一方面,華碩在東歐第二季市占率成為第一,也是拜新興市場需求所賜。
另外,還配備了 SATA III 的SSD 、USB 3.0 ,續航力號稱可以持續「休眠」達一週(這說法很有趣),睡眠到醒來只要兩秒(拜SSD所賜),從鍵盤到機身都是使用金屬材質,而且是 Unibody !不過外殼的顏色相當地誘人,特別是燈光照明下的光暈(請看跳轉後的影片),「稍微」對華碩又有了點信心了。
在先前展前曝光內容當中,我們已經預期華碩將會在展前記者會上發表新款Eee PC,於是我們在現場所看到的就是一台相當輕薄,同時機身採尖銳切角設計的新款Eee PC,同時其售價僅只要美金199元,目前作業系統搭載MeeGo,但未來將推出Windows版本 (當然售價就會提高)。
華碩在展前記者會上正式發表新款小筆電系列「Eee PC X101,主要一改先前Eee PC有點圓潤的感覺,而改用較為細薄尖銳的外觀設計,使得最厚地方也僅有17.6mm,而重量也只有945公克。筆電表面採用紋路質感設計,一共推出紅、白、棕、黑4種顏色,鍵盤採用巧克力鍵盤設計,同時觸控板尺寸也十分足夠讓男生手指方便操作,其他則內建USB介面與micro SD記憶卡插槽。