早安,2007
一个不留神,双脚已踏入了2007,没有太大的期望,也没有太多的幻想,只想老老实实地做好工作,快快乐乐回家过年,接受了现实,也停止了梦想。
过年
一直是个开心的代名词,新衣新帽新气象,好像一切都可以重新开始,但,发现我的心还停在昨天,不懂得回来。还好,可以和家人团圆,和朋友同学相聚,一切都是很美好。
开工
新的一年,工作没有新的开始,项目依旧没有更好的进展,自己也向公司说明实际情况,一个人负责不了全局,没有得到更好的业务帮助,一期工作总算粗略完成了,但二期工作不知如何开展,再加上项目得不到上头重视,心好累了。
失眠
那时,很流行失眠,分不清什么原因了,就是想失眠。也许,工作上没起色,也许心已累,也许隔壁很吵,也许想逃离。
离开
求学和工作,在广州差不多呆了五年,还来不及多考虑,辞职的第二天就离开了,没有更多的不舍,只想静静地离开。那时,广州好像伤城一样,今天,我却时刻想着回去。
变迁
没有太大的变迁,只是换了工作地方,离广州只有半个小时的车程,工作性质没变,依旧是MIS开发,还是用C#,只是webForm转到winForm,没有太大的不适,很容易上手就可以做项目了,没有太多的不习惯,一切都很容易融入新的生活环境,这里没有闹市的繁荣,只有乡间的恬静,晚上可以闻虫吟赏星辰,失眠有了很好的改善。
激情
新的工作,总会带来新的挑战,触发更大的激情,每天都在忙碌中渡过。也开始了漫长的Debug工作,每次为客户解决一个问题,心里就能感觉到自己存在的价值。
冷却
过份地爆发,只会加快平静地到来。日复一日地做后期维护工作,已麻木起来了。怨声少了,叫骂也停了。程序员最痛苦的事就是维护别人没有规范的代码,比这更痛苦的事就是维护没需求文档和注释的代码。心里知道,现在有很大部分程序员都在干这事,自己也认了,自己也认知到文档的重要性,以后尽量做到代码注释文档同步,少让一个程序员干这累人的事。
出差
第一次,总是那么地笨拙。早上七点的火车,由于看错时间,四点就打电话给司机,搞得司机糊里糊涂的,在街上还被巡警查这查那,最后总算没误时,顺利出差了。呆了一星期,原来出差就是这样子。之后的几次出差,也是平平淡淡了,现在,可以不出差就不想出差了。
吞并
由于种种原因,全集团内更换程序,我们被打败了。最最最上头的一句话,全集团内的差不多一百个厂用新程序,我们做起了新程序的实施员,开始了一个多月的流浪生活,到各分厂去实施。
浴火
经理给我们三个月的时间学C++,能力达到者可以转入C++项目,工资也会提升一个档次。接下来,每天都没有计划地进行,除了一些突发任务就是学习看书。
返朴
开始看《window程序设计》,知道了比.NET开发更需理解的东西,知道了窗体如何炼成的,懂得了程序如何诞生的,一切都是那么的原始,也让自己感觉像真正地在编程了。看《MFC深入浅出》,也知道用VC如何做界面,document/view地完美,也开始感叹框架缔造者的高超,我想,以后将是框架盛行的时期了。
重生
上头公司立项做厂内部ERP软件,开发环境又回到.NET。
年结
又买了几本厚书<frameWork的设计与应用> <sql server2005从入门到精通> <vc++.net技术内幕>,帮朋友做了几个小网站,用到了asp.net2.0,JQuery,php,ext,asp,就剩jsp,我想明年也会搞一点点的。今年阅读英语文章稍微多了起来,但感觉进步不大。和客户面对面沟通多了一些,但还是放不开。也了解了很多新技术,但都停留在应用上。越来越多知识需要学习,时而担忧时而高兴起来了。现在也不敢做太多地计划了,计划是永远赶不上变化,只希望做个合格的程序员。
晚安,2007。
posted @
2007-12-29 22:06 Share赖 阅读(30) |
评论 (0) |
编辑
这两天忙着给越南那边的程序翻译,一个头变成两个了,自己的英语水平只能用三脚猫来形容,再加上对制版的专业用语不熟,金山词霸,goolge翻译,CSND英语栏目,全部多线程开着,哈哈,听几门牌了。下午接到短信开发新任务,用的是深圳商悦GSM猫,五百来块,也不算贵,相当于一部低档手机,再通过串口和PC连接,我需要做的就是做个接口给程序调用,可以发短信和接收短信,然后作处理记录保存在数据库里,也谈不上有难度,不就是接和发,哈哈,信心十足地跟老大把任务接了下来。自己知道这些硬件商都有提供demo和文档给开发者,大概看一下就明白。打开光盘发现没有c#的demo,只有vb.net的,没计啦,再装个VB.NET,打开vb.net的demo,唉,对VB.NET代码不敢恭维啊,密密麻麻地涂在一起,还好,自己不是学vb.net的,不然会没有学下去的欲望。没办法,还得硬着头皮看一下代码,知道了主要是Axalasun.Axalasunsms这个类。
整个步骤如下:
一、注册两个COM
regsvr32.exe c:\winnt\system32\alasunsmscon.ocx
regsvr32.exe c:\winnt\system32\mscomm32.ocx
二、在工具箱上添加选项
在com组件选项卡里选中Alasun SMS Control
三、把这个控件拖到窗体中
窗体代码自动生了private Axalasun.Axalasunsms axalasunsms1 = new Axalasun.Axalasunsms();//这个是主角,刚开始不知道,花了一个来小时寻找它
四、开始对这个实例对象操作了
axalasunsms1.OpenComm();//打开GSM猫
axalasunsms1.ReadMsgByIndex(..);//读信息
axalasunsms1.SendMsg(...);//发送信息
axalasunsms1.CloseComm();//关闭猫猫
总结:
1、开始直接在项目里引用COM,以为在代码可以自动找到主角类,搞了半天也找不到,后来把它放在工具箱再拖到窗体中才可以。
2、发送信息时,不懂手机中心号码是什么,信息提示发出去了,但是收不到,以为手机卡没钱了,反复拔插了几次,最终是中心号码设置错了。
3、当手机收到信息时,不能触发OnReceive事件,这个得问一下别人,如果不行的话,只能靠线程定时读取猫了,这样会消耗点性能。
4、总体来说还不错,一个下午搞懂一个小知识点,以后大有所用。
待续...
posted @
2007-06-30 21:34 Share赖 阅读(266) |
评论 (2) |
编辑
用c#做winForm,一个字“很慢”,大都数人都在叫BILL骂dotNet框架,我没骂,但埋怨过,有网友说过,MS是大哥,大哥没有错,
有错也是我们的错。其实主要还是我们的开发功夫没到家,UI界面处理上没有把握好,很多时候打开窗体出现假死机现象,间接影响
了中国的国民收入,原因就不说了,也说不完的。
这篇文章的出生,主要因昨晚偶和BackgroundWorker组件的懈逅,在webcast上知道有这个组件,经过数分钟的众里寻它千百度,没
错,我用的是百度,终于把它一层层华丽的衣裳剥去,只剩下DoWork和RunWorkerCompleted两个中心(事件),
WorkerSupportCancellation 一个基本点(属性)
让我们开始用艺术的眼光欣赏了
第一步:
把它请到我们的窗体上
第二步:
轻轻点击它的两个中心,生成两个事件方法
第三步:
设置WorkerSupportCancellation为true,不true就不是重点了啊。
老毛说过,没有实践就没有发言权,接下来是时候动手了,用代码说话吧!

public partial class Form1 : Form

{
private DataTable dt;
public Form1()

{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)

{
backgroundWorker1.RunWorkerAsync();
}

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)

{
dt = db.getDT("server=(local);database=test;uid=sa;pwd=", "select top 10 * from tbl");
}

private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)

{
dataGridView1.DataSource = dt.DefaultView;
}
}
posted @
2007-06-28 16:13 Share赖 阅读(253) |
评论 (0) |
编辑
程序员的工资少,所以代码也不想写多,搞了几行就把导出Excel功能实现了!-_-#
这个也可以重写一下,换成控件导出Excel,只要取出DataSource就行了,原理一样!
public static void ExportExcel(DataTable eDataTable)

{
try

{
Excel.ApplicationClass ExcelApp;
ExcelApp = new Excel.ApplicationClass();
Excel.Workbook ExcelBook = ExcelApp.Workbooks.Add(1);
Excel.Worksheet ExcelSheet = (Excel.Worksheet)ExcelBook.Worksheets[1];

ExcelApp.Visible = true;

//写列标题
for (int i = 0; i < eDataTable.Columns.Count; i++)

{
ExcelSheet.Cells[1, i + 1] = eDataTable.Columns[i].ColumnName;
}

//写值
for (int r = 0; r < eDataTable.Rows.Count; r++)

{
for (int i = 0; i < eDataTable.Columns.Count; i++)

{
ExcelSheet.Cells[r + 2, i + 1] = eDataTable.Rows[r][i];
}
}


}
catch (Exception ex)

{
ErrLog.ExcelErr(ex.ToString());
}
finally

{
GC.Collect();
}
}
posted @
2007-06-25 11:08 Share赖 阅读(871) |
评论 (2) |
编辑
摘要: 今早又一杰作,虽然不完美,但还凑合用,不作过多注释,给初学者动脑筋的机会,学会看懂别人的代码和思路,特别像我这些土代码,更可以磨练你的耐心 -_-#1 Grid 实体类1publicclassGridEntity2{3publicGridEntity()4{5}67privatestring_GridName;8privatestring_DataPropertyName;9privatestri...
阅读全文
posted @
2007-06-20 11:30 Share赖 阅读(2316) |
评论 (1) |
编辑