| Xiuqi's profile木头de老虎窗PhotosBlogLists | Help |
|
|
September 01 06年的那个夏天 - 完结篇summer intern 的正式工作应该就这么结束了,下周再去办办手续,拿个报告,也许,我不再有机会踏进这个地方了...
2个月不到的朝九晚五的生活,果然是和想象中的不一样的.以前认为的白领们潇洒自在的office生活原来也是飘浮在一堆堆繁忙工作之上的那些闪闪的泡沫.看着周围的人们每天匆忙的身影,再看看自己每天只是坐在电脑前coding一天,心下暗想,也许,我还是比较清闲的吧.不用去想着每天要去开几个会,有多少report要做,还是像学生生活多一些.
manager就是这么说我的,说是以后如果还有机会,要让我多参加一些training,包括怎么和别人合作,怎么待人接物,林林总总的学习怎么做个白领.这次没学会怎么做白领,但是在项目上的经验还是学到了很多.毕竟这是第一次完全一个人独立完成的项目,可以寻求帮助的渠道少之又少,在这种情形下,解决问题的能力"噌噌"地往上长,获益匪浅啊~
比较遗憾的,还是没和同事们好好地接触.除了我的mentor,其他的人我基本没怎么在饭桌之外交流过,还是没有融入公司这样一个别样小社会的觉悟啊...
比较欣慰的,做出来的tool,只要是用过的人都说好,非常好,那种被承认的欣喜是永远在大作业中无法获得的...
30多天的实习,一天8小时的实习,每分钟都在抓耳挠腮coding的实习,say goodbye了~ 这个blog系列,也over了~ August 23 intern tag - 08/23/06首先补充一下昨天说的那个Dock,容器设置完DockStyle之后,有些还需要设置Set to Back,调整层的顺序,否则在显示上还是会出现一些问题.
进入正题~,今天做东西的时候想到,能不能给TextBox加上气球提示功能,网上搜索了一下,发现.net framework已经实现了该类.这就是ToolTip类.
MSDN中对ToolTip类的说明: 表示一个长方形的小弹出窗口,该窗口在用户将指针悬停在一个控件上时显示有关该控件用途的简短说明。
我将其显示方法Show()封装在一个类TipShow里面,方便以后调用.
public void Show(System.Windows.Forms.Control control, string content)
{
System.Windows.Forms.ToolTip myToolTip=new System.Windows.Forms.ToolTip();
myToolTip.AutoPopDelay=8000;// myToolTip.InitialDelay=100;//显示气球前的延时
myToolTip.ReshowDelay=100;//从一个气球显示到另一个气球显示之间的延时
myToolTip.ShowAlways=true;//无论窗口是否激活都可显示气球
myToolTip.SetToolTip(control,content);//设置气球关联的控件及显示信息
}
这样任何控件都可以添加气球提示效果了.而我比较青睐的事件响应是MouseEnter. 可惜我用的是.net framework 1.1,在新出来的2.0中,ToolTip类还添加了诸如isBalloon(是否使用气球状窗口),ForeColor,BackColor,OwnerDraw(是否使用用户自定义代码绘制窗口),ToolTipIcon,ToolTipTitle,UseAnimation,UseFading等等属性,方便制定更加美观易读的提示 August 22 intern tag - 08/22/06发现现实总有着惊人的相似的,上星期系版上还在讨论怎么让控件随着Form Size的变化而变化,今天我就用到了大家回贴时的解答方法(还好,否则我就要用自己回贴时那拙劣的方法了-,-)
用panel作为放置需要随form变化大小的控件,Dock设置为Fill,然后设置panel的Dock为Fill,同时为了留边以及放置其他的控件,设置panel的DockPadding.DockPadding的属性有All,Top,Bottom,Left,Right,设置起来简单便捷.
然后设置那些不需要变化大小而只需要随着form变化位置的控件,如Label,Button,TextBox等等,这就需要设置这些控件的靠边悬停属性Anchor.默认是Top,Left的.发觉这个属性不错,以后可以用来做那种钉子效果的功能(可惜还是没想出好的移动控件的方法@_@) August 21 intern tag - 08/21/06DECODE作为Oracle函数中唯一具有条件判断功能的函数(目前发现唯一的),其功能是十分具有拓展性的.今天,就用了DECODE做了一个替换值的查询.
要求为:有一字段A,其值可能具有多值(a,b,c...),也有可能只有单值(a).现要求在聚集操作时,当A的值为多值,用字符x替换;为单值时,不做替换.
语句如下:
DECODE(count(distinct A),'1',MIN(A),'x')
现猜测,可能不需要MIN这个聚集操作也可以.当然,关键不在这里,而在于,条件的判断值是count的值,计数唯一化的A得到A的个数,判断其是否为1,为1时得到值MIN(A),不为1时值是x August 17 intern tag - 08/17/06今天写了一个类,加入到一个ArrayList中,看到ArrayList有Sort方法,就想当然的用了,然后报错....想了好久,在太师父的指点迷津下,发现:犯了个老低级的错误.没有给这个自定义类加上比较的方法-,-....主要是以前写的类从来没去想过需要去比较,去排序,也就从来没去考虑过这档子事,现在想想,其实在UDF里面就提到过的....
之后...就是再次尝试接触Excel类的各种属性和方法,现在已经掌握了选定整行,整列,给整行加背景色,调整行宽,按选定范围内的某列排序等等,盲人摸象的感觉真不错,hoho
由于在很久很久的之前,受某人影响,生成的新窗口我一向是使用ShowDialog来显示,这样,新窗口就作为子窗口出现,父窗口这时候是Disable的.如此先入为主的印象使我想当然的以为,窗口的生成就占用了这个线程,原窗口当然是不能激活的....于是今天mentor让我搞个能同时开启多个窗口的report时,我还在想是不是要去new一个thread什么的-,-...后来发现,直接把Form Show就可以了....刻板印象害死人啊~~~~
--------------------------------------------------------------------------------------------------------------------------------------
我已经受不了每天写tag了!!!我已经受不了每天上班了!!!!
我要放假!!!我要出来玩!!!我想回学校T_T August 15 intern tag - 08/15/06有好些天没写intern心得了,主要是因为最近的工作都是重复性的,把数据抓出来,层层嵌套放在一个一个ArrayList中,然后用上次写的那个Variance Control去掉异常值,再计算,等等等等....只要细心,问题倒是不大
今天写sql语句的时候,倒是又发现问题了.照道理,Oracle应该是支持级联搜索的,可是我把一个查询语句放到from clause这倒是没出问题,可如果我再加另一个表,就不行了,不知道是不是ODBC和Oracle的兼容问题,还是有隐含的问题我没有考虑到,最后我这个查询出来的表放到了where clause中,解决了,而且查询逻辑感觉更清晰,嘿嘿^_^ August 10 intern tag - 08/10/06由于开发的需要,写了一个超级烂的方差控制算法...明天要用这个算法去改写以前的东西了.sigh~~~第几次改动啦T_T
August 07 intern tag - 08/07/06今天继续上礼拜的工作,开发一个新的report tool.有了前两个礼拜的经验,上手很快,而且很多代码可以重用.想不到下午在数据库操作中倒碰到了极其有意思的问题.
bug是这样的:将sqlcommand搜索到的table Fill到一个DataSet的时候报错.
一开始以为是Fill的方法不对,因为将Fill这句注释掉后,debug可以通过,想了许久,也查了msdn,觉得Fill应该没什么问题.然后尝试将sql command语句替换了一个,发现Fill也能成功.于是,把重点放到了自己写的command string上面,对照之后,发现问题如下:
在查询语句的where clause部分,加入了一个字段,然后没有给这个字段任何条件限制,例如:select A,B,C from Table1 where A='xx' AND B AND C='yy'.记得原理书上有说过这样的语句是illegal的(-,-书不在身边,也无法查证),但奇怪的是,直接在Oracle里执行这个语句,居然可以返回结果,只是速度比正常的慢;而在C#中使用这个语句,报错行不在执行上,而在Fill上,实在让人有点想不通了@_@
吃一堑,长一智,以后sql语句写的时候还是要仔细仔细,再仔细! August 03 intern tag - 08/03/06昨天说的导入Excel的方法,今天发现了点问题.在Excel退出之后,它实际上还驻留在进程中.几次导入之后,这个内存的开销着实吃不消.因此,今天继续google,寻求dipose的方法.
其实就是一步步把申请到的资源手动释放了,然后再回收所有的内存.
System.Runtime.InteropServices.Marshal.ReleaseComObject(r);
System.Runtime.InteropServices.Marshal.ReleaseComObject(myBook); System.Runtime.InteropServices.Marshal.ReleaseComObject(myExcel); //你申请的所有内容都可以用上述方法释放,比如WorkSheet,WorkBooks等等 GC.Collect(); GC.Collect 方法 () [C#]
强制对所有代进行垃圾回收。
[C#]
public static void Collect(); 备注
使用此方法尝试回收所有无法访问的内存。然而,Collect 方法并不保证可以回收所有无法访问的内存。 无论对象在内存中的时间有多长,所有的对象均被考虑回收;不过,在托管代码中引用的对象不会被回收。使用此方法强制系统尝试回收最大可用内存量。
这样,Excel的问题看上去是完美解决了^_^
之后....mentor又布置下来大量的任务,sigh~不过,今天大boss过来看了一下,连连说"good",哈哈,还说要保留我的internship
明天又是礼拜五啦,有新专辑,有活动,yeah \O/
-----------------------------以下为友情广告---------------------------------
把旧报纸作为礼物送给别人,应该是比较别致的吧.这是同学今天跟我宣传的,他给的优惠是5折+送礼盒,感觉还不错 August 02 intern tag - 08/02/06
July 31 intern tag - 07/31/06昨天晚上突然发起了低烧,步入了"小队一周不活动就生病"的怪圈@_@,本来还想着今天上班可怎么办,谁知道早上吃了一颗百服宁,在班车上睡了一觉,到了公司就没事人样了^_^
上午本来在继续摆弄着那个ZedGraph控件,在毫无头绪之际,mentor让我去参加了NEO training.这实在是个boring的课程,就是个ABC伯伯操着一口美音介绍公司的历史,文化,价值等等等等每个公司必备的条条总总.不过还是有蛮开心的事,在group introduction时,我们组有个蛮PP的JJ,大四刚毕业的SEer,英语说的好,人也很nice~可惜忘记了她的全名...联系不到她了@@
下午继续搞ZedGraph,回头看了下demo,发现同时显示两张图表以上它用了ImageTag模式,试了下,果然解决了问题,不过又带来了另一个问题:ImageTag会在指定目录下生成图表的图像文件,然后生成页面时去引用该文件,如果有2个用户同时点击的话,前一个用户很有可能看到的是后一个用户想要生成的图表,现在想到的解决方法是生成文件的名字以当前时间的tick命名,可以保证不重名,但是时间一长,这个文件夹必然会变得庞大,怎样去定时删除生成的图表文件呢,我开始晕了@@ 然后就先把这问题丢在一边,先把东西做出来再说了^_^
由于有了上个礼拜链接数据库抓数据的经验,今天抓数据还是比较顺利的,还生成了双y轴的图表,不过数据库中有些数据不符合查询标准,无视掉的话可能造成数据的失真,明天再问问mentor这些数据应该怎么处理了...
------------------------------------------以下非tag---------------------------------------------------
最近疯狂喜欢泳儿的专辑<感应>,发觉粤语歌也是很好听的~下次K歌我要去唱<感应>!hiahia July 28 intern tag - 07/28/061. 今天上班还是先解决昨天的遗留问题.先是换了个sql语句,证明了不是后面读出数据出错,可以把焦点集中到如何把空格表示出来了.对着电脑发了好一会儿呆,还是没想法,于是上水源发贴求助,谁知道刚按下ctrl+enter,灵光咋现啊~真的是一种flash的感觉,hoho.想到了一种近乎bt的方法:把string按照空格split开来,然后之间插入通配符%,yeah~问题解决,虽然很勉强,而且可能会出现错误匹配,但是这样的几率应该是极其小的,毕竟能匹配如此多的字符段的ID还不太可能重复出现的,如果真的出现,我只能说,intel的设计师太bt了! -,- 老子不干了!!
2. 以前一直以为"灵光咋现"是很轻松的事情,仿佛贪了小便宜一样,今天证明,这完全是错误的.搞定空格问题之后,脑子近乎缺氧,一下子什么问题都不想去想,人就瘫在椅子上了.这也导致了这一整天在这之后没有了多大的进展....
3. 然后,我写出了至今为止最长最复杂的sql查询语句.其中包含了时间段的条件.查阅了前人的代码,发现oracle居然有个如此强大的函数(不知道其他DBMS有否):TODATE,这是一个可以按照用户指定的格式format时间日期的函数,用起来极方便.具体方法是TODATE('date time string','format string'),format 可以是YYYY/MM/DD,也可以是MM-DD-YY,反正只要你能保证前后的数据能匹配起来,怎么定义格式都可以.
4. 下午2点多的时候,我已经把任务做完了,但是不想告诉mentor,嘿嘿,周末习惯性怠工.想不到,才偷了一会懒,mentor自己过来了...没办法,告诉他做完了,他检查之后,留下了新的需求T_T.这次就又bt了...我需要回头继续学习ZadGraph控件的使用,sigh~希望能找出解决方法来....
--------------------------------------------以下非tag---------------------------------------------
今天F.I.R出了他们的第三张专辑,现在正在听,发觉第一首歌就是那个啥饮料的广告曲,瞬间对这张专辑就么撒好印象了-,- 听到现在,发现<雨樱花>还可以听听
昨天出了一张新人专辑,泳儿的<感应>,名字很好听^_^.粤语专辑,介绍说其声音类王菲,这个是言过其实了,王菲大人实在是个颠峰了,admire~~ 不过声音还是不错的,歌曲也比较清新,有首歌的副歌部分还是某首传唱歌曲的旋律,不过实在记不起来是哪首了-_-b 这张专辑值得推荐的!
最近最期待的专辑就是8/4发行的陶喆新专辑<太美丽>,大哥级的专辑,希望表让人失望~ July 27 intern tag - 07/27/06抓狂的一天...
今天的主要任务是把昨天做的tool连到数据库上,用数据库里的data来生成图表.本来以为是蛮easy的事情,想不到搞了一天都没搞定T_T
1. 业务不熟悉.由于intel的数据库实在庞大,从里面抓数据简直是大海捞针.而且要抓的数据也不是现成的,要通过一定的运算,然后我就开始犯晕了@_@.和mentor讨论了一个上午,才勉强有了大概的思路,sigh~其实还是没怎么搞明白
2.然后照着上学期数据库大作业的范本,搞好了Database Adapter类.想先拣个比较方便的data先试试看,这个时候,厄运降临,不幸的我遭遇了大不幸....要搜索的一个ID里面包含了一些连续的空格,把它从文件中读出来的时候,这些连续的空格会被缩成一个空格,然后搜索的时候当然就不可能匹配,自然也查不出结果了.在试图解决这个问题期间,得到了大哥的鼎力相助,在此万分感谢.虽然问题没解决,但是收获还是不小的
i.知道了vs会把读进来的空格缩掉,但是这不表示这些空格被吃掉了.使用string.Length()可以发现总长度是包括这些空格的.并且,如果把这个string再次写回文件,空格会回来.
ii.string里面可以插入char[]字符,不过需要一个字符一个字符的插入
3.其实我还想到了另外一种可能.sql查询完全没有问题,出问题的地方是在把table里的数据读出来.不过按道理这个可能性不大,明天再去看看吧T_T
在此,再一次狠狠bs一下intel的database设计师,ID怎么设计不好,偏偏要加这么多空格干啥,用下划线不好吗?晕! July 26 intern tag - 07/26/060. 前天在家里调试出了ZedGraph的demo,想不到昨天在公司里居然就运行不出来了,所谓"内事不决问老婆,外事不决问google",上网一搜,结果还是在ZedGraph的主页上找到了解决方法,添加了一个事件响应函数,就OK了,不过还是很奇怪,在家里调试的时候怎么没问题呢@_@
1. 今天在mentor的要求下,继续把project做下去,本来想的很好的事情,却不是一帆风顺的.首先,要用到我很是不熟悉的文件读写方法.google了大致方法之后,出问题了,ASP.net居然没有权限访问要读写的文件.我晕....本地文件居然也没办法访问?后来一气之下,我把所有的account的全部权限都勾上了读写问题搞定,估计还是跟intel的安全限制有关的问题,sigh~
2. 紧接着的问题是,.net下的ListView居然只是WindowsForm的类,WebForm不支持...本来想的很好的一个实现现在弄的一天世界,还和mentor解释了半天-_-b,我好弱啊~~~~最后用了个CheckList替代了
3. 之后,顺风顺水了很久,直到我要把处理完的数据放到一个表格中显示出来.当然,最理想的显然是ListView,再sigh一次.其次是DataGrid,但是由于数据是从几个数组中传过来的,用DataGrid绑定起来不是很方便.最后,决定尝试从未涉足的Table类.在msdn上查了下构造方法,开始实现^_^
4. 数组的传递这时候也出现了问题.由于我把一个数组的处理放在一个被调用的aspx页中,可能由于该页并没有在前台线程中生成过,所以在该页用Session传递数组失败,不过也有可能其他原因被dispose了.anyway~最后,把该数组的处理放在了其父页中实现,然后传递到该页,嘿嘿,变相解决,yeah~
下班前3分钟基本搞定了今天的任务,心安理得的回家^_^ July 24 intern tag - 07/24/061. cleared out the database, tables, columns would be used in the project.
2. get the rough idea about what i should do.
3. take the first task : make an simple indicator with static data
i. find the opensource chart component: ZedGraph. Thanks muziwen and Wang Zilin a lot.
ii. trying to familiar with the structure of ZedGraph but failed. too many classes. time consuming.
iii. used a lot of time to run the web demo. Thanks god! succeed finally~
iv. Zzzzzz too late now. have to leave the job of the demo's understanding tommorrow. Hopes i'll make it.A men~ July 20 有点累了拿到电脑了,忙碌的工作就开始了....
mentor给了我一个前辈写的website的源代码,让我先看懂,然后在这个基础上开发.可惜,前辈用的是vs.net 2003...而我现在却找不到这个安装文件....在大公司就这点麻烦,什么东西都要合法的,授权的.碰到了在学校从来不会碰到的问题,以后也要多注意下了,要多学些open source的开发环境,免得又吃苦头.
今天用Web Develop看了一天的代码,发觉头好涨...看别人写的东西就是没概念,大概所有的程序员都不习惯写注释,所以弄的后续开发变的艰难许多.学到了第二点:以后有闲力,一定要写注释!
公司里面所有的文件,包括Email都是E文写的,一开始让人很不适应,不过我想过了2个月,偶滴E文应该也能提高些吧(先yy下出口bla bla的样子,hoho)
日志先写到这里,今天一天太吃力了,准备早点睡....
July 17 么劲额第一天"今天看见~今天看见,么劲额第一天~么有实现,ibm的T系列~时间将一切拉远~每一分钟,没有改变~~"
——题记
====================================================================
今天是上班的第一天,为了不迟到,我昨天可是10点半就去睡觉了(3年来的破天荒啊~~~),果然,今天5点不到就醒了过来,在床上赖了会床,6点就起来了....
洗洗弄弄,吃好早饭,居然才6点半-_-b,么事体做,又见"天是那么的蓝,云是那么的白",操起DC拍了几张,PP见后....
7点赶到那个怎么看都不想班车点的班车点,诶~果然有班车诶~~~^_^,兴高采烈的上车,筋疲力尽的下车(1个小时的车真不是好坐的....)8点我来到了intel.
拨通可爱hrjj的电话(声音很可爱~),1让我去xx楼yy区zz交材料@_@,最后我搞定了x和y,怎么都找不到那个z....无奈之下,只好再拨通可爱jj的电话,让她来领我-_-b不一会来了一个超级可爱的hrjj,剪的那个头发实在是太可爱了~穿的又老运动的,怎么看都不像hr的白领么,hoho
然后就是on board手续....再然后call了mentor,他跟我说了惊天第一噩耗"你的电脑可能还么申请到".夸嚓...崩溃了...么电脑我干什么啊T_T
不幸之中的小幸是,我的座位是临窗的,在看training materials累的时候,还可以远眺保税区繁荣的厂区和欣欣的野草地-_-b.然后Leo带着我去见了我们部门的同仁,顺便熟悉了下偶以后可能走的路线,回办公室途中差点迷路.....
下午....重复上午的活动,外加等下班.....
5点正~么劲额第一天over~~~蹦蹦跳跳回家去~~
==================================================================
体会:
teammate都好强啊....不是清华就是复旦,还有好多交大的师兄师姐~偶是team里面文凭最低的,本科文凭都么有T_T
漂亮JJ有很多,嗯~
办公椅坐的很不舒服,怎么调整都没用....
==================================================================
我要电脑啊~~~~~~~~~~T_T
==================================================================
以下....晨拍,这么好的光线,摆明了要我用40嘛~~~灭活活,可惜云没摆出什么好pose....
July 11 实习前综合症候群这两天,大家都开始忙着实习了,bbs不时的会出现show ip,"上班好无聊","等下班".....此类刺激人的字眼.知道我的intern还在路上T_T,我要实习啊~~~~(围城心理作祟....)
这两天处理一些hr的事务时发现,自己真的很不老练,电话接的没啥技巧,mail写的不正规,连问个问题都是塌头落配额,sigh~希望这次实习也能让我的人际能力得到些历练.(还是期待实习啊~~ lol)
另外发现的是,大多公司(其实是由于大多公司现在都是合资的)的第一语言都是E文,mail必然是E文的,phone call也常常掺一点E文(或者是掺一点中文,这个比较要命-_-b),要是碰到os也是E文的,连个chatting都是E文满天飞了(在此严重bs某明明可以打中文,却弄出E文假相诓我入局的某人-,-),真的是很累人啊.......不知道这么一个暑假后,偶滴E文会不会突飞猛进呢,hoho
实习~来得再猛烈些吧! |
|
|