<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6876410733543374862</id><updated>2012-01-27T12:49:37.641+08:00</updated><category term='GrapeVine'/><category term='Threading'/><category term='Visual Studio'/><category term='#SNMP'/><category term='Microsoft'/><category term='CandyCan'/><category term='Others'/><category term='CVS'/><category term='Alex'/><category term='Windows Live'/><category term='IIS'/><category term='HardQuery'/><category term='Google'/><category term='Open Source'/><category term='CodeGear'/><category term='Firefox'/><category term='MSBuild Launch Pad'/><category term='Linux'/><category term='SharpDevelop'/><category term='Delphi'/><category term='Eclipse'/><category term='IE'/><category term='Mono'/><category term='SVN'/><category term='.NET'/><title type='text'>The Half-Blood Programmer</title><subtitle type='html'>My name is Lex Li. I love pop music and badminton. Now I live in Shanghai, P.R. China.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.lextm.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://www.lextm.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default?start-index=101&amp;max-results=100'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>862</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-6048961928582972603</id><published>2012-01-27T12:49:00.001+08:00</published><updated>2012-01-27T12:49:37.703+08:00</updated><title type='text'>How I Migrated SharpSnmpLib From Mercurial to Git</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;There are tons of articles on this topic. Here I just summarized what I  have done.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;Generate Local Git Repository via Hg-Git&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;The Mercurial repository of #SNMP is at d:\sharpsnmplib&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;I am on Windows 7 and using the latest TortoiseHg. In this case I have to  roll back to TortoiseHg 2.0.5 (because Hg-Git does not support latest Hg)  first.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Then I install Hg-Git following &lt;A  href="http://candidcode.com/2010/01/12/a-guide-to-converting-from-mercurial-hg-to-git-on-a-windows-client/"&gt;http://candidcode.com/2010/01/12/a-guide-to-converting-from-mercurial-hg-to-git-on-a-windows-client/&lt;/A&gt;.  However,&lt;/DIV&gt; &lt;UL&gt;   &lt;LI&gt;TortoiseHg 2.0.5 does have Dulwich, so I don't need to install it right    now.    &lt;LI&gt;So I can go to step 3 directly, and clone the Mercurial repository of    Hg-Git from &lt;A title=http://bitbucket.org/durin42/hg-git/    href="http://bitbucket.org/durin42/hg-git/"&gt;http://bitbucket.org/durin42/hg-git/&lt;/A&gt;    to d:\temp\hg-git    &lt;LI&gt;Then I modified d:\sharpsnmplib\.hg\hgrc to include the following    lines,&lt;/LI&gt;&lt;/UL&gt; &lt;DIV&gt;&lt;SPAN  style="TEXT-ALIGN: left; LINE-HEIGHT: 19px; WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; DISPLAY: inline !important; FONT-FAMILY: ; WHITE-SPACE: normal; ORPHANS: 2; FLOAT: none; COLOR: ; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;[extensions]&lt;/SPAN&gt;&lt;BR  style="TEXT-ALIGN: left; PADDING-BOTTOM: 0px; WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; MARGIN: 0px; PADDING-LEFT: 0px; LETTER-SPACING: normal; PADDING-RIGHT: 0px; FONT: 13px/19px georgia, 'Times New Roman', times, serif; WHITE-SPACE: normal; ORPHANS: 2; COLOR: rgb(0,0,0); WORD-SPACING: 0px; PADDING-TOP: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;SPAN  style="TEXT-ALIGN: left; LINE-HEIGHT: 19px; WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; DISPLAY: inline !important; FONT-FAMILY: ; WHITE-SPACE: normal; ORPHANS: 2; FLOAT: none; COLOR: ; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;hgext.bookmarks  =&lt;/SPAN&gt;&lt;BR  style="TEXT-ALIGN: left; PADDING-BOTTOM: 0px; WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; MARGIN: 0px; PADDING-LEFT: 0px; LETTER-SPACING: normal; PADDING-RIGHT: 0px; FONT: 13px/19px georgia, 'Times New Roman', times, serif; WHITE-SPACE: normal; ORPHANS: 2; COLOR: rgb(0,0,0); WORD-SPACING: 0px; PADDING-TOP: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;SPAN  style="TEXT-ALIGN: left; LINE-HEIGHT: 19px; WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; DISPLAY: inline !important; FONT-FAMILY: ; WHITE-SPACE: normal; ORPHANS: 2; FLOAT: none; COLOR: ; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;hggit  = d:\temp\hg-git\hggit&lt;/SPAN&gt; &lt;/DIV&gt; &lt;UL&gt;   &lt;LI&gt;You can now try to push to GitHub in d:\sharpsnmplib by executing "hg push    git+ssh://git@github.com/schacon/hg-git.git".&lt;/LI&gt;&lt;/UL&gt; &lt;DIV&gt;&lt;STRONG&gt;Troubleshooting Issues&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;This push may fail due to an SSH error. In that case assuming you have set  up Git following &lt;A  href="http://help.github.com/win-set-up-git/"&gt;http://help.github.com/win-set-up-git/&lt;/A&gt;  , you may install TortoiseGit, and launch puttygen.exe from its installation  folder to load your private key. Then you can save the key in PuTTY format  (.ppk) and launch pageant.exe from TortoiseHg installation folder so as to add  this new key. After that you can push again to see if everything works  fine.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;In my case it failed with an invalid parameter error which I cannot  address. But the local Git repository is ready in d:\sharpsnmplib\.hg\git&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;Consolidate Local Git Repository&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;To be safe, I used TortoiseGit to create an empty Git repository at  d:\temp\sharpsnmplib. Then I copy d:\sharpsnmplib\.hg\git to  d:\temp\sharpsnmplib\.git.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Next I followed &lt;A  href="http://christoph.ruegg.name/blog/2011/7/30/cleaning-up-after-migrating-from-hg-to-git.html"&gt;http://christoph.ruegg.name/blog/2011/7/30/cleaning-up-after-migrating-from-hg-to-git.html&lt;/A&gt;  to perform the housekeeping at d:\temp\sharpsnmplib,&lt;/DIV&gt; &lt;UL&gt;   &lt;LI&gt;&lt;SPAN    style="TEXT-ALIGN: left; LINE-HEIGHT: 18px; WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; DISPLAY: inline !important; FONT-FAMILY: ; WHITE-SPACE: pre; ORPHANS: 2; FLOAT: none; COLOR: ; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;git    fsck --full&lt;/SPAN&gt;    &lt;LI&gt;&lt;SPAN    style="TEXT-ALIGN: left; LINE-HEIGHT: 18px; WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; DISPLAY: inline !important; FONT-FAMILY: ; WHITE-SPACE: pre; ORPHANS: 2; FLOAT: none; COLOR: ; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;git    prune&lt;/SPAN&gt;    &lt;LI&gt;&lt;SPAN    style="TEXT-ALIGN: left; LINE-HEIGHT: 18px; WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; DISPLAY: inline !important; FONT-FAMILY: ; WHITE-SPACE: pre; ORPHANS: 2; FLOAT: none; COLOR: ; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;git    gc --aggressive&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt; &lt;DIV&gt;&lt;SPAN  style="TEXT-ALIGN: left; LINE-HEIGHT: 18px; WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; DISPLAY: inline !important; FONT-FAMILY: ; WHITE-SPACE: pre; ORPHANS: 2; FLOAT: none; COLOR: ; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;If  you don't know how to find git command, you may read &lt;A  style="LINE-HEIGHT: normal; TEXT-INDENT: 0pt; WHITE-SPACE: normal; WORD-SPACING: normal"  href="http://help.github.com/win-set-up-git/"&gt;http://help.github.com/win-set-up-git/&lt;/A&gt;.  &lt;/SPAN&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;SPAN  style="TEXT-ALIGN: left; LINE-HEIGHT: 18px; WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; DISPLAY: inline !important; FONT-FAMILY: ; WHITE-SPACE: pre; ORPHANS: 2; FLOAT: none; COLOR: ; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;SPAN  style="TEXT-ALIGN: left; LINE-HEIGHT: 18px; WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; DISPLAY: inline !important; FONT-FAMILY: ; WHITE-SPACE: pre; ORPHANS: 2; FLOAT: none; COLOR: ; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;STRONG&gt;Upload  to GitHub&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;SPAN  style="TEXT-ALIGN: left; LINE-HEIGHT: 18px; WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; DISPLAY: inline !important; FONT-FAMILY: ; WHITE-SPACE: pre; ORPHANS: 2; FLOAT: none; COLOR: ; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;SPAN  style="TEXT-ALIGN: left; LINE-HEIGHT: 18px; WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; DISPLAY: inline !important; FONT-FAMILY: ; WHITE-SPACE: pre; ORPHANS: 2; FLOAT: none; COLOR: ; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;Finally  I went to GitHub to create a repository. It is time to upload everything to  it,&lt;/SPAN&gt;&lt;/DIV&gt; &lt;UL&gt;   &lt;LI&gt;&lt;SPAN    style="TEXT-ALIGN: left; LINE-HEIGHT: 18px; WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; DISPLAY: inline !important; FONT-FAMILY: ; WHITE-SPACE: pre; ORPHANS: 2; FLOAT: none; COLOR: ; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;git    push --mirror --progress &lt;A    href="mailto:git@github.com:lextm/sharpsnmplib.git"&gt;git@github.com:lextm/sharpsnmplib.git&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt; &lt;DIV&gt;&lt;SPAN  style="TEXT-ALIGN: left; LINE-HEIGHT: 18px; WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; DISPLAY: inline !important; FONT-FAMILY: ; WHITE-SPACE: pre; ORPHANS: 2; FLOAT: none; COLOR: ; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;STRONG&gt;Remaining  Issues&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;SPAN  style="TEXT-ALIGN: left; LINE-HEIGHT: 18px; WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; DISPLAY: inline !important; FONT-FAMILY: ; WHITE-SPACE: pre; ORPHANS: 2; FLOAT: none; COLOR: ; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;SPAN  style="TEXT-ALIGN: left; LINE-HEIGHT: 18px; WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; DISPLAY: inline !important; FONT-FAMILY: ; WHITE-SPACE: pre; ORPHANS: 2; FLOAT: none; COLOR: ; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;If  you use branching heavily, then you may experience more issues like me. Here are  my fixes,&lt;/SPAN&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;SPAN  style="TEXT-ALIGN: left; LINE-HEIGHT: 18px; WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; DISPLAY: inline !important; FONT-FAMILY: ; WHITE-SPACE: pre; ORPHANS: 2; FLOAT: none; COLOR: ; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;SPAN  style="TEXT-ALIGN: left; LINE-HEIGHT: 18px; WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; DISPLAY: inline !important; FONT-FAMILY: ; WHITE-SPACE: pre; ORPHANS: 2; FLOAT: none; COLOR: ; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;STRONG&gt;1.  Unnamed Branches&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;SPAN  style="TEXT-ALIGN: left; LINE-HEIGHT: 18px; WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; DISPLAY: inline !important; FONT-FAMILY: ; WHITE-SPACE: pre; ORPHANS: 2; FLOAT: none; COLOR: ; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;Use  TortoiseGit to show log on d:\temp\sharpsnmplib and I can see unnamed branches  (the branch names seem to be removed during conversion). To rename them, we can  simply create new branches in the log view, &lt;A  style="LINE-HEIGHT: normal; TEXT-INDENT: 0pt; WHITE-SPACE: normal; WORD-SPACING: normal"  href="http://superuser.com/questions/382602/git-repository-migrated-from-mercurial-shows-unnamed-branches"&gt;http://superuser.com/questions/382602/git-repository-migrated-from-mercurial-shows-unnamed-branches&lt;/A&gt;  . &lt;/SPAN&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;SPAN  style="TEXT-ALIGN: left; LINE-HEIGHT: 18px; WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; DISPLAY: inline !important; FONT-FAMILY: ; WHITE-SPACE: pre; ORPHANS: 2; FLOAT: none; COLOR: ; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;SPAN  style="TEXT-ALIGN: left; LINE-HEIGHT: 18px; WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; DISPLAY: inline !important; FONT-FAMILY: ; WHITE-SPACE: pre; ORPHANS: 2; FLOAT: none; COLOR: ; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;&lt;STRONG&gt;2.  Messy Committers and Authors&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt; &lt;DIV&gt;&lt;SPAN  style="TEXT-ALIGN: left; LINE-HEIGHT: 18px; WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; LETTER-SPACING: normal; DISPLAY: inline !important; FONT-FAMILY: ; WHITE-SPACE: pre; ORPHANS: 2; FLOAT: none; COLOR: ; WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"&gt;I  was not able to find a suitable way to clean up them without breaking the  repository, so I decided to leave it as it was. This is bit of expected after  Subversion to Mercurial to Git migration.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-6048961928582972603?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/6048961928582972603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/how-i-migrated-sharpsnmplib-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6048961928582972603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6048961928582972603'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/how-i-migrated-sharpsnmplib-from.html' title='How I Migrated SharpSnmpLib From Mercurial to Git'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-2780286104980131253</id><published>2012-01-27T12:12:00.001+08:00</published><updated>2012-01-27T12:12:25.562+08:00</updated><title type='text'>TritonMate: Migrated to GitHub</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;Due to the following reasons, I just converted the repository from  Mercurial to Git and host it on GitHub,&lt;/DIV&gt; &lt;UL&gt;   &lt;LI&gt;Git enjoys the first class support in most IDE and OS.    &lt;LI&gt;GitHub is more popular than Google Code or CodePlex, and it has code    search.    &lt;LI&gt;TortoiseGit is much more convenient to use now.    &lt;LI&gt;MonoDevelop does not have Mercurial support.    &lt;LI&gt;...&lt;/LI&gt;&lt;/UL&gt; &lt;DIV&gt;From now on, new change sets will only appear on the GitHub page,&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A  href="https://github.com/lextm/sharpsnmplib"&gt;https://github.com/lextm/sharpsnmplib&lt;/A&gt;  &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Please bookmark this link or watch this repository  :)&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-2780286104980131253?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/2780286104980131253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/tritonmate-migrated-to-github.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/2780286104980131253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/2780286104980131253'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/tritonmate-migrated-to-github.html' title='TritonMate: Migrated to GitHub'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-6707926107427951452</id><published>2012-01-25T21:22:00.000+08:00</published><updated>2012-01-25T21:23:00.853+08:00</updated><title type='text'>TritonMate Words: Sad News on Linux Support</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;Just started to dig on Linux/Mono side, as the changes we made on the 8.0  way are so huge. In a few minutes, a serious problem was found,&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A  href="http://bugzilla.xamarin.com/show_bug.cgi?id=3055"&gt;http://bugzilla.xamarin.com/show_bug.cgi?id=3055&lt;/A&gt;  &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Not sure how long it will take to have this issue resolved, but it makes  our Linux support bit of tough. However, more issues may be ahead, as I am not  sure whether SharpDevelop text editor works fine on Mono. In the coming days I  will test more on Mono side and report more issues to Mono guys.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Stay tuned.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-6707926107427951452?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/6707926107427951452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/tritonmate-words-sad-news-on-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6707926107427951452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6707926107427951452'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/tritonmate-words-sad-news-on-linux.html' title='TritonMate Words: Sad News on Linux Support'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-8626851372961595334</id><published>2012-01-24T17:25:00.001+08:00</published><updated>2012-01-24T17:25:46.442+08:00</updated><title type='text'>TritonMate Words: Syntax Highlighting for SMI/MIB</title><content type='html'>&lt;div style="margin: 0 0 10px 0; padding: 0; font-size: 0.8em; line-height: 1.6em;"&gt;&lt;a href="http://www.flickr.com/photos/lextm/6753954185/" title="smi_syntax_highlighting"&gt;&lt;img src="http://farm8.staticflickr.com/7162/6753954185_6eb4a9e404.jpg" alt="smi_syntax_highlighting by lextm" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;span style="margin: 0;"&gt;&lt;a href="http://www.flickr.com/photos/lextm/6753954185/"&gt;smi_syntax_highlighting&lt;/a&gt;, a photo by &lt;a href="http://www.flickr.com/photos/lextm/"&gt;lextm&lt;/a&gt; on Flickr.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;Finally syntax highlighting is added. Currently we use SharpDevelop's text editor control, and its syntax highlighting engine (line number as well).&lt;br /&gt;&lt;br /&gt;Since SharpDevelop does not have an SMI/MIB syntax file, I followed the standard approach to port smi-mib.xml from jEdit. Yes, without doing this you never know #D guys learned from jEdit :)&lt;br /&gt;&lt;br /&gt;Here I share the syntax highlighting file, http://code.google.com/p/sharpsnmplib/source/browse/Compiler/smi.xshd so that you may reuse it in your applications.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-8626851372961595334?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/8626851372961595334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/tritonmate-words-syntax-highlighting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/8626851372961595334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/8626851372961595334'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/tritonmate-words-syntax-highlighting.html' title='TritonMate Words: Syntax Highlighting for SMI/MIB'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-2105791567825558813</id><published>2012-01-22T22:12:00.001+08:00</published><updated>2012-01-22T22:12:08.143+08:00</updated><title type='text'>TritonMate Words: Compiler Update So Far</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;Here comes some good news on the ANTLR based compiler,&lt;/DIV&gt; &lt;UL&gt;   &lt;LI&gt;The port from ANTLR v2 to v3 is complete, and now we have the first open    source SMI grammar file for ANTLR 3, &lt;A style="LIST-STYLE-TYPE: disc"    href="http://code.google.com/p/sharpsnmplib/source/browse/SharpSnmpLib/Mib/Smi.g"&gt;http://code.google.com/p/sharpsnmplib/source/browse/SharpSnmpLib/Mib/Smi.g&lt;/A&gt;    (smi_no_action.g is the Java version without actions).    &lt;LI&gt;I contacted Nigel Sheridan-Smith, and he confirmed that his previous work    is open source under BSD license, and he also accepts LGPL.    &lt;LI&gt;My modifications of this grammar then is also released under BSD license    and LGPL.    &lt;LI&gt;As we cannot contact Vivek Gupta (no contact method can be found), we can    only assume he published the original ASN.1 grammar in public domain (since he    published it on ANTLR sample section, where most grammars are either under BSD    or in public domain).&lt;/LI&gt;&lt;/UL&gt; &lt;DIV&gt;Then we can see what are the features implemented right now in this new  compiler,&lt;/DIV&gt; &lt;UL&gt;   &lt;LI&gt;MSBuild compliant error and warning messages.    &lt;LI&gt;More accurate parsing on macros and other complex SMI entities.    &lt;LI&gt;Automatic ANTLR grammar to C# code generation at compile time.&lt;/LI&gt;&lt;/UL&gt; &lt;DIV&gt;Now the challenge is how to keep improving it and make it a better tool for  MIB authors. Of course, the code base is still messy, and I am going to do more  cleanup in the coming weeks.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Happy Chinese New Year :)&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-2105791567825558813?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/2105791567825558813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/tritonmate-words-compiler-update-so-far.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/2105791567825558813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/2105791567825558813'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/tritonmate-words-compiler-update-so-far.html' title='TritonMate Words: Compiler Update So Far'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-7160973437988740708</id><published>2012-01-07T16:29:00.001+08:00</published><updated>2012-01-07T16:29:13.249+08:00</updated><title type='text'>ASP.NET/IIS MVP This Year</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;I've just received the MVP award from Microsoft under ASP.NET/IIS category  for 2012. Though losing my 7-day-long brand new Android phone yesterday makes my  life bit of tough, I still consider that it is generally brighter this year for  me.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Not yet get my gift box, which FedEx says will arrive next Monday. But I  wish that I could do more than last year for the whole IIS/.NET community.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A  href="https://mvp.support.microsoft.com/profile=8115B1C4-6801-4480-BA8C-D01D1A310F96"&gt;https://mvp.support.microsoft.com/profile=8115B1C4-6801-4480-BA8C-D01D1A310F96&lt;/A&gt;  &lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-7160973437988740708?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/7160973437988740708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/aspnetiis-mvp-this-year.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7160973437988740708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7160973437988740708'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/aspnetiis-mvp-this-year.html' title='ASP.NET/IIS MVP This Year'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-546883745557516602</id><published>2012-01-03T20:34:00.009+08:00</published><updated>2012-01-03T20:34:36.149+08:00</updated><title type='text'>Windows XP Everywhere</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Jan 02, 2011)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;We all know that Windows XP is a great product. It is so great that  sometimes you don't know its existence.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A title=http://www.flickr.com/photos/lextm/5315763836/in/photostream  href="http://www.flickr.com/photos/lextm/5315763836/in/photostream"&gt;http://www.flickr.com/photos/lextm/5315763836/in/photostream&lt;/A&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A title=http://www.flickr.com/photos/lextm/5315169517/in/photostream  href="http://www.flickr.com/photos/lextm/5315169517/in/photostream"&gt;http://www.flickr.com/photos/lextm/5315169517/in/photostream&lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-546883745557516602?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/546883745557516602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/windows-xp-everywhere.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/546883745557516602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/546883745557516602'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/windows-xp-everywhere.html' title='Windows XP Everywhere'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-7759436924001045871</id><published>2012-01-03T20:34:00.007+08:00</published><updated>2012-01-03T20:34:28.928+08:00</updated><title type='text'>出席MY+上海活动</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Oct 20, 2010)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;上周六闲来无事，就去魅族在上海的MY+活动打发一下时间，顺便沿着北外滩的一小段走走，了解一下到底苏州河以北是个什么样子。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;自己没有带相机，也不想让M8那么早没电，所以就没有照片了。但是为了做到有图有真相，就把碰巧魅族工作人员拍下的准特写转贴一下，&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A title=http://www.flickr.com/photos/lextm/6587249233/in/photostream  href="http://www.flickr.com/photos/lextm/6587249233/in/photostream"&gt;http://www.flickr.com/photos/lextm/6587249233/in/photostream&lt;/A&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;是的，真的就是我。能在现场那么多人里面挑中M8 Theme Builder的作者，足见这位摄影师的运气。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;原帖见http://bbs.meizu.com/thread-2160200-1-1.html&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;P.S.,  看了看现场少男少女们青春无敌的架势，没敢等到晚饭和抽奖的热情大爆发时刻。反正自己从来也没被抽到大奖，就提前溜了。:)&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-7759436924001045871?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/7759436924001045871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/my.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7759436924001045871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7759436924001045871'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/my.html' title='出席MY+上海活动'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-5737437066028966513</id><published>2012-01-03T20:34:00.005+08:00</published><updated>2012-01-03T20:34:20.274+08:00</updated><title type='text'>突然涌出的回忆 Part 1</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN August 22, 2010)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;在自己的Twitter上面写了下面的文字，结果就被人误解了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;lextm: 每次听到As Long As You Love Me和Miss You的时候心情总是无法平静。也算是光辉岁月的美好回忆了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;PENG WU - 有爱情滋润的人，越发阳光和成熟了！Aug 15&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;陈正熙 - 发情了？Aug 15&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;朱骏涛 - 你是哪个单位的啊，谁让你知道那么多的啊Aug 16&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;david xiao - although loneliness has always been a friend of mineAug  18&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;的确个中原由并非高中同学、研究生同学和同事所能体会，因为他们没有经历和见证过。我想那些本科的同学或多或少应该有些印象才对。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;详细的细节我自己现在也没有那深刻的记忆了，朦胧开始成为一种常态。不过我留在武汉的日记里面是有详细记录的，所以开始热切的期待明年六月返回武汉的旅程了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;将在上海多呆上几年，而且回武汉的次数会比较少。不是因为我对武汉有什么不好的感觉，而是涌出的回忆总是五味杂陈，并非自己任何状态之下可以承受。或许明年六月是个不错的时间，去重读那时的文字，去重温那些光辉的岁月，去迷失在回忆里，然后看清现在的自己。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;注：Part 2看来要留给明年六月写了:)&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-5737437066028966513?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/5737437066028966513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/part-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/5737437066028966513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/5737437066028966513'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/part-1.html' title='突然涌出的回忆 Part 1'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-7257882165100987677</id><published>2012-01-03T20:34:00.003+08:00</published><updated>2012-01-03T20:34:12.678+08:00</updated><title type='text'>Windows在上海地铁中的应用</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN June 14, 2010)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;其实上海地铁的很多系统都是用Windows系统做的，在系统遇到故障时就会以明显的方式体现出来。图片中显示的是9号线车厢内的广告屏。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;其他使用Windows的还包括，新一些的刷卡机，莘庄地铁站建筑上面的大广告的屏。可惜这两个地方系统故障时我都没有能够留下如此可靠的照片为证。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A title=http://www.flickr.com/photos/38888472@N08/4697583287/  href="http://www.flickr.com/photos/38888472@N08/4697583287/"&gt;http://www.flickr.com/photos/38888472@N08/4697583287/&lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-7257882165100987677?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/7257882165100987677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7257882165100987677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7257882165100987677'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/windows.html' title='Windows在上海地铁中的应用'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-4735583446123177080</id><published>2012-01-03T20:34:00.001+08:00</published><updated>2012-01-03T20:34:07.472+08:00</updated><title type='text'>列车换乘的感觉</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN April 24, 2010)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;从外滩中心回家的感觉是之前自己不曾体会过的，一种突然的变化。 &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;自己也曾经在徐家汇的美罗大厦呆过了很久了，知道每次回家都是怎么样一种感觉，从一个繁华的市中心回到一个偏僻而嘈杂的小区。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;这的确又是一个奇怪的感觉，因为这一次自己的前途命运又有了不一样的方向，这又是一个改变的序曲。 &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;是的，前方列车到站，是换乘的时刻了。在这汹涌的人流中，我还知道自己的方向，所以就一路走好吧。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;(Update in 2011:  写这一篇的那天自己正是从家里去外滩中心与摩根士丹利签约。离开微软的确是一个纠结的决定。)&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-4735583446123177080?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/4735583446123177080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/blog-post_1026.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4735583446123177080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4735583446123177080'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/blog-post_1026.html' title='列车换乘的感觉'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-8164853845135371303</id><published>2012-01-03T20:33:00.016+08:00</published><updated>2012-01-03T20:34:04.038+08:00</updated><title type='text'>变老的自己</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN April 04, 2010)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;应该好好看待变老这个话题。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;从去年十二月起，突然又迷上了偶像剧。固然其中有缓解病痛的需要，但没有想到这之后的一两个月间自己的心境会因此有巨大的变化。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;首先看的乃是胡歌所饰演的《射雕英雄传》。的确是老剧了，而且自己之前对于胡歌同学也仅仅是模糊的一些印象。《仙三》并没有让人特别喜欢上这个演员，因为景天那个角色实在是有些令人难以接受。但是郭靖总归是金庸大侠笔下难得的特色人物，也算是对于天下所有男演员来说都是硬骨头。既不可以装傻过头，也不可以太过聪明，这个尺度的把握恐怕就够一个毛头小伙子苦闷一阵子了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;很难说其他人看了胡歌版本是个什么体会。但是我个人还是蛮喜欢那些木讷的表情和乖巧的表演。或许我看李亚鹏同学那个版本时是带着有色眼镜的，这次在没有任何预习情况下对于胡歌同学算是期待很低，因此才会让这个郭靖博取了我的一点欣赏。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;"英雄莫"一段不错的旋律也给了我病痛中极大的安慰。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;本来想继续看看《神话》。可惜突然发现自己并不喜欢那种怪怪的感觉。看连续剧的确很需要感觉，所以一月底终于放弃了这部剧。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;接下来终于忍不住看了看在搜狐视频排名很高的《命中注定我爱你》。其实扬子晚报早在08年便连载过剧情了，那个时候只是闲暇时瞟上了一两眼，并没有从只字片语中发现故事的曲折有趣一面。但是实际的看了一下第一集就不得不承认定力不强的自己被剧情牢牢抓住了。尽管还是那种老掉牙的灰姑娘路线，但是合适的情节和突然发生的爱情故事总是让人把持不住，禁不住一集一集朝下走。其实陈欣怡那样的人物在自己身边恐怕是会有的，但是纪存希那样的"富九代"估计出现的概率就不大了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;事后自然很容易理解为什么那么多人喜欢看这部剧集，因为它带给人的快乐的确很多。要承认这种如行梦田的感觉能够多么抚慰我们这些被世间苦痛伤害太久的心灵了。哈哈。顺着这个心情，连续又看完了《败犬女王》和《艋�》。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;开始通过百科全书考古相关背景资料的时候，才突然间发现其实胡歌和阮经天其实都是我的同龄人。胡歌出生在82年9月，比我还是稍微大了一点（不到一个月），而阮经天出生在82年11月，比我稍微小了一些（虽然还不到半个月）。这么说来在今年二月之前的几十年中，自己一直看的都是比自己年纪大的男一号，而从二月起男主角已经……比我小了。呵呵，原来还迷恋着"等待是一生最初苍老"的信条，傻傻的以为还小得很，居然就在这样凄冷的一个月间跨过了变老的界线。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;失眠。老了，就要花时间习惯了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;以上本来是小恙初愈的二月发的一些牢骚，却不想预言了自己后面三个月的现实。其实接受成熟原来是这么稀松平常却无比幸福的一件事情。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-8164853845135371303?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/8164853845135371303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/blog-post_1571.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/8164853845135371303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/8164853845135371303'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/blog-post_1571.html' title='变老的自己'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-7834060533240721614</id><published>2012-01-03T20:33:00.015+08:00</published><updated>2012-01-03T20:33:50.838+08:00</updated><title type='text'>也许这就是春天的气息</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN April 04, 2010) &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;因为WP的一片文章，忽然踩进了Sarah师姐的博客。是的，没有想到我们都是2005开始写博客，而且都是数量很大的那种写手。不同的是她专心于自己生活的点滴，而我只是为了技术。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;想想到了这个五年之后的春天，在师姐的博客上面能够看到的，是一个女生成为女人的大改变和小幸福，那么从我的博客呢，到底会看出如何的变化来呢？似乎这既是留给我，也是留给读者们的一个问题了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;春天了，我那从男孩到男人的改变也到了又一个收获的季节。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-7834060533240721614?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/7834060533240721614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/blog-post_5948.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7834060533240721614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7834060533240721614'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/blog-post_5948.html' title='也许这就是春天的气息'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-296406317419214859</id><published>2012-01-03T20:33:00.013+08:00</published><updated>2012-01-03T20:33:46.002+08:00</updated><title type='text'>3.0的第一弹</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Feb 21, 2010)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;终于花了一些时间看看M8主题大师的代码和M8新固件的匹配程度。其实检查起来并不复杂， &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Step 1 以同步模式将M8连接到本本上面。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Step 2 从/Windows下面复制Default2.mth到本本。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Step 3 用2.5版本的主题大师打开这个主题。 &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;差别居然这么不明显。哈哈哈。不过仔细的解压出最新的cfg文件一看还是变化多一些，多了一些图标的名字，没了电话背景等等。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;简单的改进了一下，现在3.0 Alpha出来了，&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A  href="http://mymobilepack.codeplex.com/releases/view/40828"&gt;http://mymobilepack.codeplex.com/releases/view/40828&lt;/A&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;敬请测试。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-296406317419214859?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/296406317419214859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/30.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/296406317419214859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/296406317419214859'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/30.html' title='3.0的第一弹'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-6203247866496834641</id><published>2012-01-03T20:33:00.011+08:00</published><updated>2012-01-03T20:33:37.457+08:00</updated><title type='text'>M8 主题大师 2.5 发布</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 19, 2009)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;M8 Theme Builder 2.5  已经与上周末发布了。作为一个阶段性的总结，这个版本完成了多语言版本，应该是终于满足了国内朋友的需要了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A  href="http://mymobilepack.codeplex.com"&gt;http://mymobilepack.codeplex.com&lt;/A&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;终于把手里的公测版寄回魅族换了SE。从初见的感觉来看，SE的质量应该还是好一些，睡死的问题终于没在第一晚出现。希望永远不要再现杯具了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;就到这里吧，准备圣诞和新年的计划去了。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-6203247866496834641?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/6203247866496834641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/m8-25.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6203247866496834641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6203247866496834641'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/m8-25.html' title='M8 主题大师 2.5 发布'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-3422667495184504654</id><published>2012-01-03T20:33:00.009+08:00</published><updated>2012-01-03T20:33:31.597+08:00</updated><title type='text'>给哥们的祝福</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 06, 2009)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;哥们和我同桌已经是10年前的事情了。对，正好十年了。我还记得哥们那时候出众的风采，保留着哥们那时候的宝贵录音资料。唉，时光NND过得真快。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;哥们的博客我肯定是首批订阅者，新鲜内容也经常被我占了沙发。所以这次哥们放了新视频到网上，我说不定也是第一个被感动得泪哗哗的人。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;本来听着开头，还以为哥们乃是在十年之后给这首经典歌曲注入不同的韵味。对，还是那个异常熟悉的旋律，拿着话筒的还是那个身影，只是……结局是一幕幸福的画面。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;对呀，这一天是哥们的幸运日，终于把他心仪的老婆大人追到了手。看着他们笑呀哭呀，自己的情绪也跌宕起伏，在办公室里差点就失态了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;哥们，再加把劲，给大家创造一个可爱的小David吧。哈哈。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A  href="http://v.youku.com/v_show/id_XMTI3Mjg3OTYw.html?full=true#full"&gt;http://v.youku.com/v_show/id_XMTI3Mjg3OTYw.html?full=true#full&lt;/A&gt;  &lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-3422667495184504654?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/3422667495184504654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/blog-post_6596.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/3422667495184504654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/3422667495184504654'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/blog-post_6596.html' title='给哥们的祝福'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-3341697489847032939</id><published>2012-01-03T20:33:00.007+08:00</published><updated>2012-01-03T20:33:24.106+08:00</updated><title type='text'>M8主题大师2.5的进展</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Nov 22, 2009)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;不知不觉中十二月快到了。似乎Meizu并没有能够在新UI之类上面做出特别值得关注的改进。但是新版本固件的发布多少曾经让我有些高兴。只是这种高兴不可能恢复我对于M8的一丝好感。对了，既九月屏幕罢工之后，我手里这台公测版也频繁出现睡死问题了。因为这两个问题算是M8公测版的顽疾，而且硬件因素比较大，我也就不多装行家来评论了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;对于M8主题大师2.5版本，我所希望的就是完成自定义按钮的添加和删除。不过添加的确很好做到，难点在于删除。所以现在最新的构建版实际上已经有了添加自定义按钮的功能，但是删除的部分还迟迟没有加入。希望能够在十二月间做完这个功能，届时2.5正式版也就可以发布了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;对于2.0正式版，我已经收到一些用户的反馈，下面也来回复一下。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;中文版&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;应该说中文版是大家十分期待的。可是现在界面元素的修改还是很频繁的，还不是开始汉化的最好时候。我希望在2.5正式版中间加入中文的支持，但是也可能留到3.0版本再说。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;预览模式&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;有用户希望能够暂时隐藏用于选择图片的那些文件夹按钮。那么就需要主题大师可以提供"编辑"和"预览"两个模式。在最新的构建版里面我已经完成了这一块，所以有兴趣的朋友可以自己检出代码编译之后试用一下。不是特别有用，但是想想也会有一些需求，例如仅仅为了看看某个下载后的样式到底看起来怎么样，这个时候编辑功能并不那么重要。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;标题的字体&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;其实大家都知道修改M8使用的字体需要一些手段。有用户希望主题大师上面的字体也是可以修改的。那么现在我也在构建版本里面提供相对应的菜单项，方便有需要的朋友试用。当然，选择的字体仅用于看看效果，最后生成的M8主题包并不会包含这个设置，也不会最后在M8上面生效了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;写在最后&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;我的M8很快就会寄回原厂去换SE了，所以开发和测试应该会中断一些日子了。这都是不可避免的耽搁，而且我还得使用自己那个旧旧的Nokia来备用。真是希望SE会质量好一点，对得起我支付的200块银子。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-3341697489847032939?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/3341697489847032939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/m825.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/3341697489847032939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/3341697489847032939'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/m825.html' title='M8主题大师2.5的进展'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-7510642150483091553</id><published>2012-01-03T20:33:00.005+08:00</published><updated>2012-01-03T20:33:18.302+08:00</updated><title type='text'>M8主题修改的对决？</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Nov 01, 2009)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;终于在发布到2.0版本的时候，Theme Editor的作者majiyunsea回复了我在魅族论坛的帖子。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A  href="http://bbs.meizu.com/thread-1216752-2-1.html"&gt;http://bbs.meizu.com/thread-1216752-2-1.html&lt;/A&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;当然了，肯定不是砸场子了，哈哈。应该说排除一些"牢骚"，可以看出majiyunsea对于魅族产品缺陷的体会比我要深许多。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;我也立即测试了一下深度美化的一些东西，例如替换资源dll的方法，果然ThemeManager在提示重启之后显示界面出现了严重的bug，完全就是显示错误。可以通过在MTH主题包里面嵌入那些资源dll是一个没法完成的任务。这也解释了为什么其他深入美化的帖子要么推荐手工替换，要么采用CAB安装包。看来都是为了绕过这个严重的bug。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;因此假如在后面的版本中我计划添加深入美化的支持，看来直接生成CAB文件是个必然的选择。我会仔细研究一下CAB的格式，看看是不是那里也有bug在等待着我。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;关于M8新UI，乃至于Android版本的固件，我其实抱着一个很悲观的态度。毕竟后面的版本很可能会使得M8 Theme  Builder需要重新设计，但是使用C#和.NET平台的好处就是我开发起来几乎不费什么力气，所以想要发布一个新版本并不是特别困难的事情。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;希望M8 Theme Builder和M8 Theme  Editor的竞争可以友好的继续下去。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-7510642150483091553?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/7510642150483091553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/m8.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7510642150483091553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7510642150483091553'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/m8.html' title='M8主题修改的对决？'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-6090660199216068428</id><published>2012-01-03T20:33:00.003+08:00</published><updated>2012-01-03T20:33:09.633+08:00</updated><title type='text'>M8主题大师（M8 Theme Builder） 2.0正式发布</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Oct 31, 2009)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;利用上面两个周末基本完成了2.0版本的主要开发。由于改进了很多M8界面模拟方面的细节，现在这个工具的预览效果同真机应该没有特别的差别了。另外就是用Inno  Setup做了一个方便一些的安装包。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;今天，也就终于发布了2.0正式版。感兴趣的朋友可以到该项目主页下载&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;http://mymobilepack.codeplex.com&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-6090660199216068428?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/6090660199216068428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/m8m8-theme-builder-20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6090660199216068428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6090660199216068428'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/m8m8-theme-builder-20.html' title='M8主题大师（M8 Theme Builder） 2.0正式发布'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-4152062657237234900</id><published>2012-01-03T20:33:00.001+08:00</published><updated>2012-01-03T20:33:02.185+08:00</updated><title type='text'>M8 Theme Builder 1.0/2.0版本已解决技术难点的汇总</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Oct 31, 2009)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;自定义控件&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;之前自己也做过很多WinForms项目了，包括为Cisco的EOC产品所做的网络设备管理工具，包括Code Beautifier  Collection这样的Delphi IDE插件，包括#SNMP MIB  Browser和Compiler这样的小工具。但是这几个东西都属于规矩的用户界面，几乎不需要采用任何自定义控件。实际上对于一个WinForms开发人员来说，制作自己的控件还是十分必要的。M8  Theme Builder也是很好的练兵机会。由于WinForms默认控件对于透明背景是没有支持的，为了能够搭建出高仿真的M8用户界面，Theme  Builder必须使用自定义的控件。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;关于透明背景的控件开发，其实互联网上相关的文章还是很多的。我主要参考了下面两篇文章。应该说最后Theme Builder  1.0基本上达到了预期的效果。而在2.0版本中，这些控件又稍微做了一下改进。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;主题包的解析&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;对于ZIP解压，我一直使用SharpZipLib。由于这个开源函数库已经十分完善，所以压缩/解压ZIP非常方便。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;读取和修改配置文件其实就是基本的INI文件读写操作。我最后采用的是RemObjects的ShineOn开源库，使用TIniFile类型。应该说INI文件已经逐步退出了历史舞台，但是凭借这些开源的函数库，读写INI文件是十分方便的一件事情。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;M8主题部件的两个bug&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Meizu的开发人员似乎没有意识到INI文件格式其实很宽松，所以他们仅仅提供的支持其实很不充分。例如下面的一行其实是有效的INI格式，&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;AudioPlayer = AudioPlayer.png&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;但是假如以这种格式做成配置文件并放入主题包中，那么M8并不能认出这一行。唯一能够被识别的格式是&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;AudioPlayer=AudioPlayer.png&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;之前我采用的Nini只能生成上面带有空格的格式，而不能生成下面紧凑的格式。我尝试过自己修改Nini代码来满足M8的要求,但后来还是换成了ShineOn。这实在是一个令人烦恼的bug。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;可是换成ShineOn又触及了另外一个bug。原因是CFG文件中好像不能有空行，否则M8上面使用主题时会出现ThemeManager.exe进程hang掉的严重系统故障（唯有重启M8才能恢复）。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;最后为了绕过这两个bug，我只能先用ShineOn生成INI文件之后手工删除空行来满足M8的CFG格式要求。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;预览效果图的生成&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;在1.0的版本中，一个很大的问题是Theme  Builder不能生成两个预览图片。这样最后保存的主题包可能在拿到M8上面安装之前，用户没有办法通过标准的预览界面看到效果，而只能到实施这个主题后才会看到。这是一个很不方便的地方。但是要在Theme  Builder中生成预览也需要几方面的考虑。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;直接将界面抓屏保存为图片，虽然可以说比较简单，但是由于选择图片的Shortcut控件是可见的，所以抓下来的效果是略有瑕疵的。因此最后我还是才用了手工绘制的方式，将一块画布（Graphics）传递给各个控件并由它们自己绘制到预览图片上。这样做得到了最好的预览图片效果，而且大图缩放之后就可以同时生成小图。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;应该说到这里2.0版本的开发也基本结束了，应该很快就可以正式发布。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;WPF和WinForms的抉择&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;由于WPF是一个更加适合界面制作的框架，我也尝试使用WPF做了一些技术研究。从尝试结果来看，WPF对于透明背景的支持乃是浑然天成，而Expression  Blend的设计体验又是十分舒服的，所以在制作同级别复杂程度的界面比较中，WPF还是胜出很多的。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;可能在我真正领悟了WPF的开发技巧之后，Theme  Builder的界面可以有一天切换到WPF。当然，这个不会很快到来，因为现在WinForms的界面我个人觉得已经够用了。你的感觉呢？&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;附：M8主题文件的格式&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;其实M8的主题包（MTH）就是一个结构严谨的ZIP包，这一点同Stardock产品的样式包是很类似的。MTH包解压后内容包括，&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;1. 配置文件theme.cfg。其实这是一个十分简单的INI文件。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;2. 程序图片。最新的M8固件需要90*90大小的PNG文件。图片到程序名字的映射关系其实在上面的配置文件中指定。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;3.  辅助图片。这包括三种背景图片（普通，呼叫，和锁定），以及两种大小的预览效果图（大图和小图）。背景以及大缩略图都需要480*720大小的JPG文件，而小缩略图是120*180大小的JPG文件。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;主题包的文件名即是该主题的名称。而作者信息是放在配置文件中的。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-4152062657237234900?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/4152062657237234900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/m8-theme-builder-1020.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4152062657237234900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4152062657237234900'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/m8-theme-builder-1020.html' title='M8 Theme Builder 1.0/2.0版本已解决技术难点的汇总'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-1561456676981800917</id><published>2012-01-03T20:32:00.011+08:00</published><updated>2012-01-03T20:32:54.840+08:00</updated><title type='text'>从Meizu的招聘职位看M8的未来</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Oct 31, 2009)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Meizu也开始了今年的校园招聘，&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A  href="http://bbs.meizu.com/thread-1275481-1-1.html"&gt;http://bbs.meizu.com/thread-1275481-1-1.html&lt;/A&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;从这里的信息来看，Meizu的确有考虑Android操作系统。只是那原来Windows  CE平台的开发人员呢？难道要裁掉不成？由于没有一个公开的路线图，这样的信息只是让人越发看不懂M8的未来。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-1561456676981800917?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/1561456676981800917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/meizum8.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1561456676981800917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1561456676981800917'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/meizum8.html' title='从Meizu的招聘职位看M8的未来'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-4476195224843432861</id><published>2012-01-03T20:32:00.009+08:00</published><updated>2012-01-03T20:32:48.082+08:00</updated><title type='text'>M8 Theme Builder（主题大师）用户手册: 教你简单制作魅族Meizu M8手机主题</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Oct 11, 2009)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;版本&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;适合2.5/3.0正式版。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;下载&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A  href="http://mymobilepack.codeplex.com"&gt;http://mymobilepack.codeplex.com&lt;/A&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;运行平台&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;（最低）.NET Framework 3.5 SP1 。支持Windows XP, Windows Server 2003, Windows  Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;用户界面&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;基本操作&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;1. 打开主题文件&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;通过File|Open Theme打开MTH文件。该主题将被显示在面板上。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;2. 新建主题文件&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;通过File|New Theme新建MTH文件。魅族设计的默认M8主题（937版本）将被显示在面板上。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;3. 保存主题文件&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;通过File|Save Theme将当前面板中的主题保存为MTH文件。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;4. 修改主题作者&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;通过Edit | Author可以修改主题作者的名字。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;5. 修改程序图标或者背景图片&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;点击图标右下角的文件夹图标就可以选择新的图标。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;点击每个屏幕背景右下角的文件夹图标就可以选择新的背景图片。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;其他&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;M8当前固件937的程序图标需要90*90大小的PNG格式图片，而背景图片最好是480*720大小的JPG格式图片。M8 Theme  Builder当前版本还不支持图片格式自动转换。推荐使用开源的Paint.NET工具 来提前处理图片。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;由于M8 Theme  Builder的界面现在是100%模拟M8真机的屏幕分辨率，因此窗口大小对于小屏幕来说比较不合适（窗口高度在800左右）。这一点将在后面的版本中进行改进。现阶段使用这个工具的推荐屏幕分辨率最小是1280*800，这也是我本本的屏幕分辨率了。假如Windows任务栏有影响（例如Windows  7），那么可以考虑把Windows任务栏停泊到屏幕左侧或右侧。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;主题文件的使用&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;连接M8到电脑。从电脑拷贝MTH文件到M8的Theme文件夹内（U盘模式），保存之后断开M8与电脑的连接。通过M8配置|主题启动主题管理器，刷新列表。选择刚才保存的新主题并启用即可。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-4476195224843432861?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/4476195224843432861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/m8-theme-builder-meizu-m8.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4476195224843432861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4476195224843432861'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/m8-theme-builder-meizu-m8.html' title='M8 Theme Builder（主题大师）用户手册: 教你简单制作魅族Meizu M8手机主题'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-1977398429349335575</id><published>2012-01-03T20:32:00.007+08:00</published><updated>2012-01-03T20:32:25.049+08:00</updated><title type='text'>Coding For Meizu M8</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Oct 10, 2009)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;使用小八也有一段时间了，总是感觉做美化的时候工具太少。虽然市面上已经有了M8 Theme  Editor，而且这个工具也凑合着够用了，但是和手工制作相比，这个工具还有一些缺陷，同时能够提供美化的内容也并不多。作为一个程序员，面对着如此困境总该有些特别的解决方式了。既然人家只是免费，而不提供源代码，那只能自己亲力亲为来做做开发M8  Theme Builder了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;也就是考虑到界面设计能够更好的锻炼自己Windows  Forms自定义控件的开发，我就用C#做了一下尝试。现在1.0的版本也终于发布了，基本上提供了MTH文件新建和修改的功能，应该是达到了M8 Theme  Editor初级版本的程度。下面就是尽快完善2.0的版本，提供更加漂亮的操作界面和补充一些有用的功能。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;竞争还是十分有利于创新的，希望Editor和Builder的竞争能够给MY们带来更多的选择。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;M8 Theme Builder可以从这里下载&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A  href="http://mymobilepack.codeplex.com"&gt;http://mymobilepack.codeplex.com&lt;/A&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;源代码基于GPL 2一并发布。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-1977398429349335575?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/1977398429349335575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/coding-for-meizu-m8.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1977398429349335575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1977398429349335575'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/coding-for-meizu-m8.html' title='Coding For Meizu M8'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-6313698739541941247</id><published>2012-01-03T20:32:00.005+08:00</published><updated>2012-01-03T20:32:17.795+08:00</updated><title type='text'>Borland传奇拾遗――最后一弹？</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN May 24, 2009)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Borland公司似乎终于走到了路之尽头，在油尽灯枯之前投入了Micro Focus的怀抱。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;对于从各种途径阅读过《Borland传奇》一书的读者来说，心中会是何种滋味呢？不论这个牌子是不是和Delphi还有现实的联系（此种联系在CodeGear过户到Embarcadero的那天应该就已终结），我本人还是难免遗憾。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;李维先生说自己大学毕业时只想着去两间公司，一个是Borland，一个是微软。最后先生还是有缘去了Borland，而且至今还是这个社区中的活跃一分子。这个故事对我的触动也是十分之大的。我临毕业的时候也是很看重微软和Borland。进入微软的几个机会都没把握住，而写给Borland的求职信则石沉大海一般。但是即使如此我也还是十分喜欢这个社区，追随着DelphiFeed的内容去了解动态。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;命中注定吧，在经历了Cisco这个驿站之后我还是投入了微软的阵营，算是遂我心愿。只是工作变动，使得我再也没有时间去继续Code Beautifier  Collection这样的项目，再也没有时间去尝试Delphi 2009和Delphi  Prism，因此自己对于CodeGear，对于Delphi，最后只剩下了关注，一时没有机会去亲身参与。似乎我与Delphi的缘分至此就要划上一个逗号了。是吗？&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;刚刚结束的Delphi Live  2009似乎又让人看到了完全不同的Delphi，完全不同的CodeGear。设想原生的Delphi实现了跨平台，反射（Enhanced  RTTI），Attributes，x64等的功能，这门注入了全新生命力的语言又会演化成怎样一个模样呢？Embarcadero又会是怎样的一段传奇呢？我依旧抱着热切的期待，希望能够被新的英雄感动，为新的故事记录。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-6313698739541941247?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/6313698739541941247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/borland_1447.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6313698739541941247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6313698739541941247'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/borland_1447.html' title='Borland传奇拾遗――最后一弹？'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-4094232037234311899</id><published>2012-01-03T20:32:00.003+08:00</published><updated>2012-01-03T20:32:11.699+08:00</updated><title type='text'>Tod Nielsen从Borland奔向VMware</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN March 22, 2009)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;昨天（翻译者加入：也就是2009年1月6日）Borland宣布了其CEO Tod Nielsen辞职的消息。仅仅数分钟后VMWare宣布委任 Tod  Nielsen 为COO这一新角色。眼下的情况对于Borland公司来说非常不利（Borland, The ALM  Company是那家已经与Delphi毫无瓜葛的公司）。上面的公告还提及Borland总预期收益将低于4千万美元（低于2008年第3季度的4.43千万美元），公司计划裁去130人（占15%），CEO与研发部门副总Peter  Morowski双双离职，公司的股价也跌至1美元附近（昨天收盘价是1.07美元）（翻译者加入：记得当年股价低于1美元就是垃圾股）。令我感到庆幸的是，Delphi早已被Embarcadero（易博龙）买走了，否则这个消息会是又一个糟糕星期的开始，那时每个人都会说"Delphi死定了"。不过，我为Borland感到悲哀。嘿，假如我们付给他们同样数额的现金（翻译者加入：不清楚是不是值得4千万美元？）买回Borland这个商标呢？  &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;----------&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;译者按 &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;本文乃是Delphi届名人Marco Cantu一月的博客一篇。其实早已翻译，放到了另外一处论坛上面。闲来无事，就贴回到这里做个留念了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A  href="http://blog.marcocantu.com/blog/Nielsen_Borland_VMWare.html"&gt;http://blog.marcocantu.com/blog/Nielsen_Borland_VMWare.html&lt;/A&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;个人的感觉是Embarcadero  Delphi其实也是一个不错的名字。虽然Borland这个牌子曾经辉煌，现在似乎已经不再是品质的保证了。Excellence  Endures的字样从Borland厂牌下面被拿掉，或许就是官方的一种姿态。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;关于Tod跳槽到VMware，Marco的blog上面还有精妙的点评。是不是这位微软前雇员如今的使命就是去把微软的对手一个个摧毁呢？呵呵，看起来挺是那么回事情。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-4094232037234311899?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/4094232037234311899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/tod-nielsenborlandvmware.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4094232037234311899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4094232037234311899'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/tod-nielsenborlandvmware.html' title='Tod Nielsen从Borland奔向VMware'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-1658365273424794495</id><published>2012-01-03T20:32:00.001+08:00</published><updated>2012-01-03T20:32:05.097+08:00</updated><title type='text'>Delphi命运的转折</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Feb 08, 2009)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;很久没有继续《Borland传奇拾遗》了。因为Embarcadero的缘故，CodeGear在失去了Borland这块光鲜亮丽的厂牌之后反而焕发出新生。这也似乎说明当年Borland的创始人选择的Scott  Valley的确是一块福地，只是之前数任CEO没好好耕耘罢了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;随着Borland总部迁往奥斯汀，这家标榜Open ALM的企业步履维艰。CEO易人，产品方面也许久没有见到力作。脱离了Scott  Valley，似乎这块牌子也快被人遗忘了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;然而CodeGear呢？虽然依旧还是那几款产品，但是类似Delphi 2009这样多年不见的新版本发布应该是终于让时局悄然转变：&lt;/DIV&gt; &lt;UL&gt;   &lt;LI&gt;CodeRage已经做完了整整三届。    &lt;LI&gt;秉承Borland Conference传统的Delphi Live将于今年的五月间在洛杉矶召开。    &lt;LI&gt;支持Unicode和泛型的Delphi 2009原生开发工具顺利发布。    &lt;LI&gt;同RemObjects合作发布了纯粹的.NET开发工具Delphi Prism。    &lt;LI&gt;公布了新的x64及跨平台编译计划，将展开下一代编译器架构的研究和开发。&lt;/LI&gt;&lt;/UL&gt; &lt;DIV&gt;一些之前的Borland没有做到的事情，现在CodeGear也开始实际操作了：&lt;/DIV&gt; &lt;OL&gt;   &lt;LI&gt;Delphi Prism完全基于微软的Visual Studio Shell，而不是Galileo    IDE。基于Wiki的帮助文档体系。纯粹的.NET编译器。――虽然这些变化主要源于同RemObjects的合作，但是如此合作也算是前所未见了。    &lt;LI&gt;Delphi Live会议不知道会不会年年有，但是CodeRage和Delphi Live的确起到了BorCon的作用。旧的传统得以延续。    &lt;LI&gt;更多的精力被投入到产品研发环节。Embarcadero的运营和管理方式更加接近初创时的Borland。&lt;/LI&gt;&lt;/OL&gt; &lt;DIV&gt;真的到了一个新传奇开始的时候了。今年又会有怎样的精彩呢？&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-1658365273424794495?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/1658365273424794495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/delphi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1658365273424794495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1658365273424794495'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/delphi.html' title='Delphi命运的转折'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-3504991001174355131</id><published>2012-01-03T20:31:00.013+08:00</published><updated>2012-01-03T20:31:57.608+08:00</updated><title type='text'>“对于开源的种种误读”的更新</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Sept 27, 2008)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;毕竟是个变化快的时代，从一月到十月间已经发生了这么多事情，以至于之前的这篇帖子已经显出了一些问题了，这里就针对微软公司的一部分做些更新。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;微软的开源策略&lt;/DIV&gt; &lt;DIV&gt;应该说之前微软的开源政策一直受到种种质疑。不错，很多时候微软"公开"了部分源代码，但是都不是基于OSI认证的授权协议。这不仅招致了开源社区的种种批评，以至于微软内部的开源部门也不是那么高兴了。所以围绕着这个问题，几个月来发生了好几件有趣的事情。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;首先是Sancastle项目在CodePlex上面的起起伏伏。这个项目首先取得了CodePlex注册，然后因为一直没有发布代码而被迫停下。最后，似乎是终于通过了内部的讨论，以Ms-PL发布了出来，而且很快取得了令人惊讶的下载记录。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;然后，还是一个遗憾的消息。很多微软的项目依然以其他未通过OSI认证的协议发布着，例如MEF。可笑的是，采用Ms-LPL之类协议的后果，居然是微软自己也会被绕进去。例如你使用MEF来辅助开发Sliverlight都会遇到问题，因为Silverlight支持Mac  OS  X，而不仅仅是Windows。有没有峰回路转的可能呢？因为Mono社区领袖Miguel的一篇博文，MEF产品经理似乎已经考虑申请修改MEF的授权协议了。这无疑是个好的契机，值得继续关注。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;最后不得不提的是，因为我将要加入微软开始新的工作经历了，今后似乎再来评论这样的内容就会有些"投鼠忌器"了。关于开源的一些讨论也就此草草收场吧，假如各位如果的确有兴趣，可以参考下面几个有关开源的优秀国外博客，&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;The Open Road&lt;/DIV&gt; &lt;DIV&gt;OSI Blog&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-3504991001174355131?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/3504991001174355131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/blog-post_337.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/3504991001174355131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/3504991001174355131'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/blog-post_337.html' title='“对于开源的种种误读”的更新'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-6474458516259548831</id><published>2012-01-03T20:31:00.011+08:00</published><updated>2012-01-03T20:31:47.717+08:00</updated><title type='text'>今天的东方时空主题是什么？</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Sept 13, 2008)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;2008年9月13日，是如此的偶然，我打开了电视看到了下午六点段的《东方时空》。虽然大家都知道微软状告番茄家园的案子，大家都知道微软一贯的做法，因此这个电视节目不太可能给我提供任何新鲜的观点――而且处于某些未知因素，一些我们大家记忆中很容易浮现的故事也没有被编辑到这个短短的节目中。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;但是，正在我质疑编辑想法的时候，片子居然突然转向了开源。WOW，真的吗？令我感到惊讶的变化。虽然几乎所有的开源部分都是围绕着红旗和  Linux，但我还是感到一些惊讶，毕竟这是我第一次在国内的电视节目上看到"开源"这样的字眼――很遗憾王开源同志的表演也一同登上央视的屏幕。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;但愿真的有民众会因为这个电视节目去尝试开源产品，例如 Linux，例如  Solaris。只是我必须指出在这短短的节目里面，或许是为了把描述变得简单，很多开源的基本概念都被扭曲了。&lt;/DIV&gt; &lt;OL&gt;   &lt;LI&gt;"开源没有版权问题"。这个估计是很严重的错误。即使代码开源了，这个产品还是有版权的。虽然不是 copyright，却是    copyleft。必须注意如果你不按照开源的规矩来使用这些代码，你一样会被至于版权问题的法庭上，就像 Skype 和 VMware 所经历的一样。    &lt;LI&gt;"微软没有公开源代码"。其实大家都能够看到，微软在各方压力之下确实在做公开源代码的工作――尽管只是在十分有限的情况下。是的，微软除了对合作伙伴（类似    Mainsoft）公开源代码，也被迫向竞争对手公开源代码，以保证这些对手的产品能够顺利在 Windows 上面执行。不过看起来似乎 Google    没得到授权，所以 Chrome 浏览器的源代码里面才会出现反编译了某个 Windows DLL 才能得到的知识。&lt;/LI&gt;&lt;/OL&gt; &lt;DIV&gt;虽然我们不能对央视编辑的技术背景有太高的要求，但是很遗憾节目里面出现如此纰漏。开源在中国，还需要走很长的一条路。另外很遗憾红旗软件的同志们似乎没有对采访做足准备，并没有能够很有说服力的支持开源的  Linux 与 Windows 相比到底哪些方面会有优势。我个人认为，那套模仿 Windows Vista 的视觉特效，并不能让我母亲这样的普通人选择  Linux。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-6474458516259548831?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/6474458516259548831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/blog-post_5531.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6474458516259548831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6474458516259548831'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/blog-post_5531.html' title='今天的东方时空主题是什么？'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-6447027935559522465</id><published>2012-01-03T20:31:00.009+08:00</published><updated>2012-01-03T20:31:39.568+08:00</updated><title type='text'>谨慎迎接 Delphi 2009</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Sept 10, 2008)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;很多 Delphi 开发者还在继续使用着 Delphi  7。本来当然是无可厚非的，只是面对着国际外包深入中国的现实，那个设计之初就没有考虑到国际化的古老 Delphi 终于显示出致命的问题了――不支持  Unicode。不论 TNT 控件是怎样漂亮的解决了部分问题，我们都必须承认，除非 CodeGear 出手，否则当前的这种困境是不可能根本解决的。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;终于，Delphi 2009 正式出货了，一个从编译器，RTL 到 VCL 都完全支持 Unicode 的 IDE 即将解决 Delphi  国际化问题的新产品或许会让坚持使用旧版 IDE 的广大用户最终升级到这个历史性的 IDE  版本。然而，任何新产品都会遭遇的窘境也初现端倪――怎么把旧的工程升级到这个新的 IDE 版本呢？当用户们满心欢喜的升级时，老问题又来了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;至今为止，市面上可以得到的升级参考资料都是英文的，而且能够达到全面级别的资料就更是少见了。因此，现在最中肯的建议，就是请各位收住热情，耐心等待。只有等到相关中文资料丰富一些，您再来升级自己的项目时，才不至于错误连连，叫苦连天。不要谈所谓的兼容问题，没有任何一个开发工具厂商可以信心满满跟你说自己的产品版本间兼容――即使是Microsoft。按照  Delphi  第三方大厂家们的一致意见，只要升级按照正确的规律做，应该是一条平坦的道路。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-6447027935559522465?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/6447027935559522465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/delphi-2009.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6447027935559522465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6447027935559522465'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/delphi-2009.html' title='谨慎迎接 Delphi 2009'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-9075821101957310182</id><published>2012-01-03T20:31:00.007+08:00</published><updated>2012-01-03T20:31:33.121+08:00</updated><title type='text'>学习编程：中国程序员入门的怪现象之一――中文的困惑</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN April 02, 2008)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;写在前面&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;首先表明一下我对于自己母语的喜爱，免得被人指为数典忘祖。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;游走论坛&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;游走Delphi论坛间，所见最多的就是两个可笑之事。一是问哪里有简体中文版的Delphi，另一个就是问哪里有中文版的帮助文件。估计这也是其他版上的通病了。那么为什么会常有这种问题呢？我个人的理解是，大家把programming当成了coding，认为什么人都可以到这里得一杯羹。非也。虽然中国程序员的待遇对比国外是差多了，但是想混口饭吃也不是只会码代码就可以搞定的。最起码，要把英文学好了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;以我现在从事的入门级职位为例，因为开发中经常需要寻找合适的开源库，或者查看别人的研究成果，那么拜读人家的blog或者阅读代码包里的说明文档简直就是家常便饭。虽然这些基本上也就是大学英语六级刚过的要求，如果你仅仅只会中文或者英语四级刚过，我认为都是比较困难的。（猜测那些老是发帖子问别人这类低级的同志们是不是该准备考考六级了，虽然我很喜欢接你们的分，但是好浪费时间哟。）&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;这个时候你感到中国软件业太差，怎么好东西都是人家说英文的做出来的，其实也不太合理。我就用过德国、法国、意大利程序员的开源代码，但是都是英文文档。毕竟在软件这个领域里，英文是唯一通用的语言――Ruby也没用日文做关键字呢。因此不仅仅是中国程序员在刻苦学习英文，所有其他非英语国家程序员也是靠学习来提升自己。许多看似奇怪的问题，只需要在Google里面用英文关键字搜一下（特别是遇到编译器报错之类的情况），就可能得到正确的答案。而使用中文关键字，或者去问百度知道，估计成功率够呛。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;那么是什么原因使得这些程序员不习惯使用英文，甚至想要一个全中文的编程环境呢？我感觉这和教育领域的现状十分有关。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;大学教材&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;国内大学所选用的软件科目教材，那应该更算得上是参差不齐，问题多多。这一点从校内图书馆的书籍配置和教辅材料的销售来看应该可见一般。鄙人当年的母校，虽然图书馆里书籍众多，但随意一扫，几乎是各类出版社的书籍一本不少（那些VB6的书居然还没被扫地出门）。但是每每想要借阅经典作品时，却发现就那寥寥几本，早已不知落在了哪个先知手上，于是对着架上那些虽然崭新，但是毫无用处可言的烂书兴叹。（试想将采购这些烂书的经费用来多多添置基本经典，那银子岂不是发挥了更大的作用。）&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;且不说其他，我个人最不认同的一点便是很多学校为C语言课程所选择的课本。本来这几乎是很多大学生一辈子唯一一次接触学习编程的机会，应该尽可能使用一个优秀的课本以激发那些有天赋学生的兴趣。但是看来看去，包括国内许多一流学府的计算机系，都在使用着一本国内老老教授编辑的"C语言练习册"，简直把编程课变成了毫无趣味可言的奥数课，失去了教学的本义。虽然这一招着实提高了这门课的通过率，但是直接的结果就是误导了千千万万的大学生，让他们从入门起就输给了别人。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;鄙人的幸运之处在于本科期间所有课程都是英文教学。严格的教师选拔体系使得最后有机会给我们授课的老师都是初出茅庐但是思维活跃、英文不错的年轻人，因此断然不会守着那种害人的练习册授课。正是由于接触到了K&amp;amp;R的The  C Programming  Language等经典书籍，我个人感觉学习编程更多的是在品味设计的思想，而不是做着算术题。或许正是这样的理解，才使得我从不把编程叫做coding，那种码代码的方式距离programming还是差别挺大的吧:-)据我的了解，现在能够采用这类引进版教材进行教学的高校还只限于国内顶尖的学府，而且仅限于部分班级，能够如我一般幸运采用英文课本配合英文教学过程的学生更是少得可怜。因此不得不说中国的教育水平在达到温饱之后，还有很长的一段路要走。要成为软件强国，照着coder那条路培养学生是走不通的。于是乎从开始编程的那一天起，我就十分习惯一个全英文的环境，而且读起那些英文的帮助或者网路上的文章都是轻松自如，仿佛一个宽大的厅堂对我敞开了大门。这无疑使我拥有了一个不错的开始。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;只是师傅领进门，修行靠个人。要拓宽自己的知识面，或者加深对某个领域的了解，买一本好书是十分必要的。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;买书故事&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;学完C语言，虽然自己的分数在班里还是蛮高的，但是却一直没有机会实际做做。只是因为大三上学期我便要开始做程序设计课程，所以在大二放暑假的当天和同学一同去图书馆借书未果后，我们二人便转到学校附近的一家小书店买了几本Delphi的书，回家各自研究。这里我就不多提那些书的名字了，只抱怨自己那时未曾看过任何导购的信息，因此上了奸商的当，白花了不少银子――当然，我指的奸商并非是那些不懂技术的可怜的书店老板。后来从网路上才知道除了Delphi  Developer's Guide和Mastering  Delphi两个系列之外，Delphi领域中其他的书籍多数评价都不怎么好。大三利用学习C++课程的闲暇拜读Mastering Delphi  7之后，我的编程思想也的确是转变良多。特别是读完了其中关于OOP的章节之后，我居然在C++课程的考试里面顺利答出了不少难题（在没怎么深入研究C++的情况下――  对不住了，老师）。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;这样的一个开始，也使我基本上划定了一条购书的界限――优先购买影印版（便宜），其次是名家翻译的中文版，最后才是原创的中文版。（现在工作了，手头也宽裕了不少，因此偶尔呢也会购买折扣特别合理的引进原版收藏。）可想而知按着这个规律，我手里的英文书越来越多，以至于中文书变得少极了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;对于影印版，我有种特别的偏爱，首先是因为技术英语十分容易懂，而且好的技术书一般逻辑严密，结构合理，是自己平时写技术短文或者开发文档的好范例，因此阅读起来不仅能够锻炼阅读能力，也可以提高写作水平。其次由于国内计算机领域的研究同国外还是有着明显差距，泛滥在出版界中就是一大堆所谓多少例子学什么技术的口水书，因此只有从影印版图书中能够找到技术的核心内容。况且很多新的软件概念都是由外国人提出，因此要吃透其中的奥妙，不看影印版是比较困难的。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;对于翻译版的书，感觉国内现有的基本上只是几个水平。一般来说，大概的内容还是翻译得不错，但是一到核心知识所在，就会出现一些你看不太懂的地方。一方面是英文描述本身就十分难以理解，一方面就是译者所赐的译错之处，导致你时常感觉如坠云雾之中，根本无心继续研读下去。我自己的经历便是如此，甚至有些翻译版我看到译错之处居然能反向推出原文大概是什么，正确的翻译是什么。这就只猜测可能是国内的出版行业太不景气，留不住或者培养不出一流的翻译团队，抑或是出版周期太短，复审的流程太过简单，故而影响了翻译的质量。（当然即使是像Harry&amp;nbsp;  Potter那样流行的书籍，有着良好的翻译团队，因为赶时间的缘故，书中错误也是少不了。）我手头的翻译书，现在只有一本带在身边，便是Contributing to  Eclipse。虽然熊节先生是国内的翻译高手，但是Java、Eclipse平台那些怪怪的专业术语仍使得译出的文字难以流畅。可惜这样的书籍未曾以影印版的形式发行，使鄙人常感遗憾。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;至于国内的原创书，这两年我未曾买过。只不过上次BEA在上海的User Group抽奖，我有幸得到了一本Spring  2.0核心技术与最佳实践。廖雪峰先生将一个庞杂的Spring框架娓娓道来，即使是围绕在周围的IoC、ORM、AOP以及MVC的复杂技术也是化繁为简，只抓精要，是我这个原本对于Java、Spring知之甚少的人也对其产生了浓厚的兴趣。因此我也开始偶尔看看China-pub上的一些免费章节，寻找不错的原创书。可惜虽然国内各个社每年会推出的原创书数不胜数，但绝大多数的定位本身就有问题（基本上是针对利润丰厚的高校教学或者各类培训、考级、练习册之类的低端市场），根本没有多少精品，因此总体状况依然不乐观。更有滥竽充数者，依然走着翻译某些开发工具的帮助文件来骗取钱财的老路，真是"令人发指"。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;总结&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;如果你真的希望提高自己的专业水平，能进入程序员领域或者在程序员这个职位上做出点成绩，那么研究技术和学习英文就是一个问题的两个方面。忽视任何一面都会令你的前进速度放缓。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-9075821101957310182?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/9075821101957310182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/blog-post_4472.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/9075821101957310182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/9075821101957310182'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/blog-post_4472.html' title='学习编程：中国程序员入门的怪现象之一――中文的困惑'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-908615685755039798</id><published>2012-01-03T20:31:00.005+08:00</published><updated>2012-01-03T20:31:20.087+08:00</updated><title type='text'>中国的学生们，免费的Visual Studio 2008 Professional你会试试看吗？</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Feb 19, 2008)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;面对着俄罗斯教育部门的大行动，  美国国内也是一场大讨论。终于，一直站在后台的微软旋即跳了出来，将自己主流的开发工具一股脑全部免费放出来了。这下，十一个国家的学生们有了一个难得的学习先进编程技术的好机会。相信在这样优秀IDE的帮助下，学生们的创造力可以得到一些展现――毕竟，我们不能幻想在八十年代的TC或者TP上做出现代化的软件来。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;只是这一次，终于不需要中国教育部跳出来做什么善事了。互联网的存在将障碍扫除干净了。如果你还是货真价实的学生，试试看到这里下载你的一份吧。可惜微软没有早两年做这样的好事，看来垄断被打破还是对大家都有好处的。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-908615685755039798?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/908615685755039798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/visual-studio-2008-professional.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/908615685755039798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/908615685755039798'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/visual-studio-2008-professional.html' title='中国的学生们，免费的Visual Studio 2008 Professional你会试试看吗？'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-7595049307532349919</id><published>2012-01-03T20:31:00.003+08:00</published><updated>2012-01-03T20:31:14.896+08:00</updated><title type='text'>学习编程：中国程序员入门的怪现象之一――古老的IDE</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Feb 17, 2008)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;本人学习编程乃是从高中开始。那时候拿到一个叫做Turbo C的东西，敲一敲代码能写出一个小程序自己是多么高兴呢。大一的时候用着Visual C++  6学习正经的学习C语言，才知道设断点调试好方便呢。等到大三用上了Delphi，我的天，做数据库和GUI开发那个快呀。也就是从这时起，终于有时间去研究一下OOP，重构，设计模式之类的高级玩意了。  &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;现在看了一下CSDN论坛，特别是C/C++那个版，似乎感觉1999年又回来了。那么多入门的还在用着Turbo  C，那么多人问的问题其实有个好一点的IDE就能立马解决。为什么TC还是那么流行呢？和我一个做高中教师的同学聊天的结果，是发现她还在教人家用Turbo  Pascal。哦的神呀，那玩意比TC还老呢。没办法，即使我告诉她用Delphi做简单，快捷，调试方便，她仍是无奈――将来学生们比赛的时候只能用TP，所以从头开始就只能用TP了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;这边是教育领域令人可笑的故事。难怪那些可笑之极的国产C语言入门书还在很多高校使用着，K&amp;amp;B经典的《C语言》却没有机会去影响那些将来注定会影响世界的学生们。本来嘛，培养程序员又不是学校的评价指标，老师们的责任只是指导学生们老老实实考试做题。是的，即使你讲了OOP，讲了设计模式，哪怕只是讲了一下VC那个东西怎么玩，虽然提高了学生们学习的兴趣，对于你自己的收入怕是没有什么好处。况且我一直怀疑自己母校到处安装的VC到底是不是正版。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;其实从当前的市场来看，各大厂商都是十分重视学生市场。CodeGear的Turbo系列重新回来了，像Turbo C++ 2006和Turbo  Delphi 2006十分适合替代古老的TC和TP。另外微软的Visual C++ Express 2008也十分适合初学C的学生来做编程和调试。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;看看我们的近邻俄罗斯吧，已经是一个优秀程序员很多的国度，教育部刚刚从全球顶尖的软件厂商购买了一系列的开发工具，将安装到该国的校园中。我们的教育部门在做什么呢？&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-7595049307532349919?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/7595049307532349919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/ide.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7595049307532349919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7595049307532349919'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/ide.html' title='学习编程：中国程序员入门的怪现象之一――古老的IDE'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-6327630799798436997</id><published>2012-01-03T20:31:00.001+08:00</published><updated>2012-01-03T20:31:06.031+08:00</updated><title type='text'>工作经验真的那么重要吗？</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Feb 08, 2008)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;刚刚看了这篇老外的博文，真是感慨万千。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A  href="http://www.codinghorror.com/blog/archives/001054.html"&gt;http://www.codinghorror.com/blog/archives/001054.html&lt;/A&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;去年的这个时候，真是没有任何工作经验的我找工作的关键时期。如果不是现在领导们拿出超人的气魄给我offer，此刻还不知道自己在哪里混呢。可惜现阶段有魄力的公司比较是极少数，不知今后是否会有改观。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-6327630799798436997?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/6327630799798436997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/blog-post_2598.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6327630799798436997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6327630799798436997'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/blog-post_2598.html' title='工作经验真的那么重要吗？'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-3401848018447254193</id><published>2012-01-03T20:30:00.009+08:00</published><updated>2012-01-03T20:30:59.556+08:00</updated><title type='text'>Code Beautifier Collection 的新动向</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Feb 08, 2008)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;经历了若干个里程碑，终于在年初一发布了 CBC  的6.0正式版。虽然现在已知很多问题还没有完全解决，所以很快就要开始在这个鼠年的业余时间里开始下一个关键版本的开发了。虽然6.0 Update  1我只是希望解决已知的缺陷，并没有计划添加新的功能，但是相信很多清理工作也是非常合适的重构机会。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;6.0的新特性包括，&lt;/DIV&gt; &lt;OL&gt;   &lt;LI&gt;+ 在所有合适的地方使用了 Vista&amp;nbsp; 样式和任务对话框。    &lt;LI&gt;+ 完全兼容 UAC 的相关标准。    &lt;LI&gt;× 改进了安装过程。    &lt;LI&gt;+ 加入了 Object Pascal 代码样式编辑器。    &lt;LI&gt;× 报告于 Google Code 站点的全部缺陷都得到了解决。&lt;/LI&gt;&lt;/OL&gt; &lt;DIV&gt;下载链接&lt;/DIV&gt; &lt;DIV&gt;尽管项目主页迁到了 Google Code (&lt;A  href="http://code.google.com/p/lextudio)，我依然使用着"&gt;http://code.google.com/p/lextudio)，我依然使用着&lt;/A&gt;  SF.net 的服务。现在你可以通过 PayPal 或者 SF.net 对 CBC  项目进行捐赠。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-3401848018447254193?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/3401848018447254193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/code-beautifier-collection_03.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/3401848018447254193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/3401848018447254193'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/code-beautifier-collection_03.html' title='Code Beautifier Collection 的新动向'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-5179619550993310569</id><published>2012-01-03T20:30:00.007+08:00</published><updated>2012-01-03T20:30:49.324+08:00</updated><title type='text'>对于开源的种种误读</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Jan 18, 2008)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;由于微软发布了.NET  Framework部分源代码，CSDN的论坛上面冒出来不少带有点"歌功颂德"味道的帖子，挂着"开源"的字眼表扬微软，十分的滑稽。这也让人不难理解为什么人家Linus说中国对开源  事业做的贡献少。国人对于开源始终还是抱着一知半解的心态，从一些简单的例子就可以反映出来。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;1. 漠视开源协议&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;不少国内人士对于GPL的代码也是拿来即用，根本不考虑自己的使用方式是不是违反了GPL授权。当然，考虑到国内盗版风行，类似把GPL代码用于商业软件开发的情况也就算不上奇怪了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;2. 认不清哪些是真开源，哪些是根本就不是开源&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;由于Open  Source的具体定义乃是英文，而且都是些法律方面的词汇，国内能够详查其内涵的人士不多（我也不过是稍稍比一知半解强一点罢了），所以遇到类似此次微软发布源代码的事件，很多不明就里的人便开始把开源这个词汇到处乱用。微软的MS-RL所明确的限制，远远超出了Open  Source的定义，设置严重限制了获取该源代码的程序员使用该代码的范围，因此是绝对不应该被冠以"开源"这个词的。虽然微软也的确将一些小软件――例如WiX之类置于开源范畴内，它的一些核心的东西，包括Enterprise  Library都是非开源的东西。因此提醒程序员小心注意。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;对于开源的CLR实现，Mono是纯粹的开源项目，使用Mono的代码自然比使用微软的代码更加自由了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;3. 矛盾心理&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;很多软件公司的管理层都有一种矛盾心理，研发的时候喜欢看看什么开源的库可以使用，而到了考虑自己软件的销售时，又喜欢摆出类似微软的套路。实际上只有更好的理解开源，把握住合适的开源盈利模式，做开放源代码软件一样是可以赢利的。当然考虑到中国实情，要出现类似Red  Hat一样的企业还是十分困难的，这种矛盾心理怕是短期内不可能消除的。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;总结&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;对于广大程序员来说，期望各位努力提高英语水平（共勉），好好研究Open  Source的各种协议，以便在开发自己项目的时候可以尽可能的借力，提高开发效率。基本上研究好了GPL，LGPL，BSD，MPL之后，相信你对于开源协议就有了一个大概的了解了，今后便可以深入研究了。另外就是不要人云亦云，面对"开源"的东西要擦亮眼睛。使用非开源的代码，一般都会引发严重的问题，所以切切小心谨慎。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;开源运动一度被称为软件行业的"共产主义革命"，相信在革命教育中成长起来的中国程序员，解读起来要比欧美人更加容易才对。所以，花点时间，熟悉"开源"吧。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-5179619550993310569?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/5179619550993310569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/blog-post_7455.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/5179619550993310569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/5179619550993310569'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/blog-post_7455.html' title='对于开源的种种误读'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-8840110209836737796</id><published>2012-01-03T20:30:00.005+08:00</published><updated>2012-01-03T20:30:46.029+08:00</updated><title type='text'>Delphi 7/2005/2006/2007的最新更新</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 07, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;对于不怎么关心CDN的用户来说，想发现Delphi最新更新是一件不那么容易的事情。当然，由于过去一段时间Borland对于IDE产品线的轻视，我们也看不到多少有价值的更新消息。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;但是CodeGear的诞生终于还是改变了这个情况。Delphi 2007的Update编号现在是3，而从李维先生的博客来看，Update  4估计是很快就要出来了。也许这个版本的Delphi会成为历史上升级包最多的一个版本，但是我们看到的是每一个Update都不仅仅是修补漏洞，还能够提供一些新的功能――例如Blackfish  SQL就是Update 3的一部分。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;当然，虽然名义上面CodeGear没有什么给老版本的升级包了，但是Delphi  7/2005/2006的用户们，开始享受一个新的补丁吧。这个补丁包含了Delphi  2007至今在WSDL方面的全部改进，可以让你使用现在市面上最流行的各个Web Service了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;不仅仅是Delphi，3rdRails和Delphi for  PHP的补丁也都是很有规律的放出来，让人感觉CG是一步步走上正轨了。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-8840110209836737796?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/8840110209836737796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/delphi-7200520062007.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/8840110209836737796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/8840110209836737796'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/delphi-7200520062007.html' title='Delphi 7/2005/2006/2007的最新更新'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-1835249538449536047</id><published>2012-01-03T20:30:00.003+08:00</published><updated>2012-01-03T20:30:44.696+08:00</updated><title type='text'>VirtualBox上面虚拟Ubuntu不能上网的解决方法</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Oct 26, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;受够了VMware Server的低下效率，转向了使用VirtualBox。  不过马上也遇到了Ubuntu虚拟机不能上网的问题。当然，在VirtualBox官方论坛上面找到了配置方法。下面就是本人对原文的一点粗浅翻译，仅供参考。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;1. 在host上面查看DNS服务器配置。在Windows host上面，打开开始菜单|附件|命令提示符，然后输入ipconfig  /all。回车开始执行。用笔记录DNS服务器的信息以备后面使用。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;2. 将VirtualBox的网络设置设为NAT类型。启动Ubuntu Linux  guest。打开System|Administration|Network菜单，选择Wired  Connection，单击Properties按钮，将其中配置改为DHCP，保存。重启Ubuntu。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;3. 在重启后的Ubuntu中打开System|Administration|Network  Tools菜单。将对话框中间部位的下拉列表选到Ethernet  Interface，然后可以看到对话框下面显示出VirtualBox给Ubuntu分配的IP，记录IP和子网掩码。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;4. 在同一个对话框内，选择Netstat标签，然后点击绿箭头获取Routing Table  Information。注意表格中有一列为Gateway，请记录其中不是全零的那一个IP地址。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;5. 回到2中间打开的Network对话框，打开属性，将类型从DHCP改为Static  IP。输入刚才3中记录的IP地址和子网掩码。再输入4步骤中记录的Gateway的IP地址。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;6.  保存，退出Properties，但不要关闭Network对话框。切换到DNS标签，删除这里自动设置的DNS服务器信息。然后添加1中间记录的DNS服务器。重启Ubuntu。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;做完上面几步，你的Ubuntu应该又可以连上网络了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;原文地址&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;http://forums.virtualbox.org/viewtopic.php?t=2430&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-1835249538449536047?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/1835249538449536047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/virtualboxubuntu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1835249538449536047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1835249538449536047'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/virtualboxubuntu.html' title='VirtualBox上面虚拟Ubuntu不能上网的解决方法'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-5980532000428918345</id><published>2012-01-03T20:30:00.001+08:00</published><updated>2012-01-03T20:30:42.544+08:00</updated><title type='text'>CodeGear 在线研讨会</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Oct 19, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;如果你对于CodeGear公司的新产品十分感兴趣，那么这个在线研讨的机会相信你不会放过。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;在此在线注册&lt;/DIV&gt; &lt;DIV&gt;&amp;gt;&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; JGear performance for Eclipse&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;&amp;gt;&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ASP.NET Ajax 编程&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;&amp;gt;&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 使用Ruby on Rails 和 3rdRail进行Agile  Web开发&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;&amp;gt;&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 使用3rdRail进行高生成力开发&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;&amp;gt;&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 用BlackfishSQL写入高性能Database系统&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;&amp;gt;&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; VCL.NET programming with ECO 4&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;注册与系统要求&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;请在weinar开始前至少10分钟注册。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;与会指南：本webinar将以InterWise提供，我们希望您能够在seminar开始前设置您的计算机。（也可以在您通过PC进入研讨会时计算机自动进行设置－但这需要几分钟的时间）。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;需要支持Internet Explorer的浏览器。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;什么人适合参加&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;?&amp;nbsp;&amp;nbsp;&amp;nbsp; 专业软件开发者&lt;/DIV&gt; &lt;DIV&gt;?&amp;nbsp;&amp;nbsp;&amp;nbsp; 开发项目管理员&lt;/DIV&gt; &lt;DIV&gt;?&amp;nbsp;&amp;nbsp;&amp;nbsp; 软件开发程序管理员&lt;/DIV&gt; &lt;DIV&gt;?&amp;nbsp;&amp;nbsp;&amp;nbsp; 学生&lt;/DIV&gt; &lt;DIV&gt;CodeGear深知您的时间宝贵－因此我们开办了一个线上技术研讨会系列。从7月份开始，我们将提供一系列不容错过的45分钟webinar，您可以在您的办公室甚至家里参与其中。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;发掘如何创建健硕的应用程序，从您的项目中获取更多东西，并在live和交互式环境中优化性能。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;JGear Performance for Eclipse&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;日期：&amp;nbsp;&amp;nbsp;&amp;nbsp; 2007年10月24日周三&amp;nbsp;&amp;nbsp;&amp;nbsp; Webinar的时间&lt;/DIV&gt; &lt;DIV&gt;长度为45分钟&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;时间:&amp;nbsp;&amp;nbsp;&amp;nbsp; 中国：&amp;nbsp;&amp;nbsp;&amp;nbsp; 12:00 (中午 12 点)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 中国台湾：&amp;nbsp;&amp;nbsp;&amp;nbsp; 12:00 (中午 12 点)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;JGear Performance  plug-in包为内存和CPU分析与调试提供了性能相关的分析工具。在本Webinar中，我们将演示数据如何实时显示，以帮助开发者了解性能问题是否  与CPU，内存或两者相关。同时还将向您演示自动内存泄漏监测如何改进您的代码质量。通过对对象定位的实时监测，了解经过分析的程序如何使用虚拟机内存才  能够支持开发者编写健硕和高质量代码。在本节中，我们还将演示代码覆盖及其如何提供实时Class Coverage  View以供快速查看每个类的覆盖详情，并识别未完全覆盖的类。&lt;/DIV&gt; &lt;DIV&gt;本session适合于初级到中级开发者。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;ASP.NET Ajax 编程&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;日期：&amp;nbsp;&amp;nbsp;&amp;nbsp; 2007年10月31日 周三&amp;nbsp;&amp;nbsp;&amp;nbsp; Webinar的时间&lt;/DIV&gt; &lt;DIV&gt;长度为45分钟&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;时间:&amp;nbsp;&amp;nbsp;&amp;nbsp; 中国：&amp;nbsp;&amp;nbsp;&amp;nbsp; 12:00 (中午 12 点)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 中国台湾：&amp;nbsp;&amp;nbsp;&amp;nbsp; 12:00 (中午 12 点)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;异步JavaScript和XML技术(AJAX) 为环球网带来了革命，在此次Webinar中，我们将演示如何使用RAD Studio  2007创建AJAX支持的ASP.NET应用程序。如果您需要创建web应用程序，那么您不要错过我们的Webinar。&lt;/DIV&gt; &lt;DIV&gt;本session适合于中级开发者。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;使用Ruby on Rails 和 3rdRail进行Agile Web开发&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;日期：&amp;nbsp;&amp;nbsp;&amp;nbsp; 2007年11月7日周三&amp;nbsp;&amp;nbsp;&amp;nbsp; Webinar的时间&lt;/DIV&gt; &lt;DIV&gt;长度为45分钟&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;时间:&amp;nbsp;&amp;nbsp;&amp;nbsp; 中国：&amp;nbsp;&amp;nbsp;&amp;nbsp; 12:00 (中午 12 点)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 中国台湾：&amp;nbsp;&amp;nbsp;&amp;nbsp; 12:00 (中午 12 点)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;在本次Webinar中，我们将讨论如何使用3rdRail创建支持Ajax的Web应用程序，已经整合了单位检测，且可以从企业模型中生成。&lt;/DIV&gt; &lt;DIV&gt;本session适合于初级到中级开发者。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;使用3rdRail进行高生成力开发&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;日期：&amp;nbsp;&amp;nbsp;&amp;nbsp; 2007年11月21日周三&amp;nbsp;&amp;nbsp;&amp;nbsp; Webinar的时间&lt;/DIV&gt; &lt;DIV&gt;长度为45分钟&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;时间:&amp;nbsp;&amp;nbsp;&amp;nbsp; 中国：&amp;nbsp;&amp;nbsp;&amp;nbsp; 12:00 (中午 12 点)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 中国台湾：&amp;nbsp;&amp;nbsp;&amp;nbsp; 12:00 (中午 12 点)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;在快速应用程序开发符合Ruby on  Rails开发架构要求时，您可以获得3rdRail。欢迎加入此Webinar来看看我们是如何将RAD加入Rails的。&lt;/DIV&gt; &lt;DIV&gt;本session适合于中级开发者。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;用BlackfishSQL写入高性能Database系统&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;日期：&amp;nbsp;&amp;nbsp;&amp;nbsp; 2007年12月5日周三&amp;nbsp;&amp;nbsp;&amp;nbsp; Webinar的时间&lt;/DIV&gt; &lt;DIV&gt;长度为45分钟&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;时间:&amp;nbsp;&amp;nbsp;&amp;nbsp; 中国：&amp;nbsp;&amp;nbsp;&amp;nbsp; 12:00 (中午 12 点)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 中国台湾：&amp;nbsp;&amp;nbsp;&amp;nbsp; 12:00 (中午 12 点)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;BlackfishSQL是CodeGear最新RDBMS产品，这一可管理数据库服务器支持以任何语言写入Stored Procedures,  Triggers 和 User Defined Function。在此次Webinar中，我们将演示如何使用Delphi.NET进行编写。&lt;/DIV&gt; &lt;DIV&gt;本session适合初级，中级以及高级开发者&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;VCL.NET programming with ECO 4&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;日期：&amp;nbsp;&amp;nbsp;&amp;nbsp; 2007年12月19日周三&amp;nbsp;&amp;nbsp;&amp;nbsp; Webinar的时间&lt;/DIV&gt; &lt;DIV&gt;长度为45分钟&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;时间:&amp;nbsp;&amp;nbsp;&amp;nbsp; 中国：&amp;nbsp;&amp;nbsp;&amp;nbsp; 12:00 (中午 12 点)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 中国台湾：&amp;nbsp;&amp;nbsp;&amp;nbsp; 12:00 (中午 12 点)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;随着ECOIV的发布，现在ECO可以支持VCL.NET框架，提供有使您的ECO体验更加轻松的范围全面的新VCL.NET组件，从而更具生成力，本Webinar将详细研讨这一新的技术。&lt;/DIV&gt; &lt;DIV&gt;本session适合于高级开发者。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;版 权? 2007  CodeGear。保留所有权利。你收到来自CodeGear的消息是因为你曾经询问或购买过我们的产品，或者提供过你的电子邮件地址。如果不希望收到与  CodeGear更进一步交流的来信，请回复消息告知不希望再预订这一主题。CodeGear将不会向无关的第三方出售或者与其共享你的电子邮件地址：  隐私政策。版权所有 ? 2007 Borland软件公司，20450 Stevens Creek Blvd。Suite 800, Cupertino, CA  95014。所有CodeGear商标和产品名称都为Borland软件公司在美国和其它国家的标志，商标或注册商标。其余商标所有权归其各自持有者所有。CodeGear－100  Enterprise Way－Scotts Valley CA 95066-3249&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;注册的流程对于新手来说比较麻烦。这里做一下简单说明，&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;1.  首先点击任何一个"请现在就注册参加"的连接，然后进入Interwise上面Borland公司的栏目。可以看到该研讨会的相关细节――您或许需要切换浏览器的编码。&lt;/DIV&gt; &lt;DIV&gt;2. 单击该研讨会的Register按钮。&lt;/DIV&gt; &lt;DIV&gt;3. 在注册提示框内可以看到需要输入用户邮箱地址和密码。点击注册来注册一个Interwise帐号。&lt;/DIV&gt; &lt;DIV&gt;4. 完成注册后请查看自己邮箱的邮件，查收密码。&lt;/DIV&gt; &lt;DIV&gt;5. 重新回到第一步，直到再次出现注册提示框，输入邮箱地址和密码就好了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;请注意提前安装Interwise客户端，然后届时参与会议。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-5980532000428918345?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/5980532000428918345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/codegear_03.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/5980532000428918345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/5980532000428918345'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/codegear_03.html' title='CodeGear 在线研讨会'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-5494258072755349016</id><published>2012-01-03T20:29:00.012+08:00</published><updated>2012-01-03T20:30:00.102+08:00</updated><title type='text'>Delphi 的用户们，早点开始享受 MSBuild 吧</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Oct 10, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Delphi 2007 的发布进一步表明了 CodeGear 对于 .NET 的态度――一切为我所用。当然，做到现在的阶段，Delphi  团队也是一步步走来。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;首先， Delphi for .NET 所使用的框架 VCL for .NET 重新封装了 CLI 的各个接口，使得 VCL Win32  的代码可以尽可能的迁移到 .NET 平台上。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;其次，在 Delphi IDE 中，重构和 Together 都是用 .NET 技术做好然后加入的――当然，后来为了提高执行效率一部分重构用  Delphi 重写了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;现在，Delphi 和 C++Builder 的生成引擎（build engine）换成了 MSBuild，使得 Delphi 同 C# 一样得到了  Windows 平台上最好的生成引擎支持。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;关于前面两个改变，相信多数新版 Delphi IDE 的用户已经比较熟悉了，这里就不多做介绍。这里重点要介绍一下 MSBuild 的引入对于  Delphi 程序员究竟带来了哪些好处。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;什么是生成引擎&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;对于长期仅仅使用 IDE 来做开发的初级程序员来说，生成引擎是一个陌生的概念。而对于使用 Console  命令来做开发的高级人员，和生成引擎几乎是天天打交道。从你是不是了解和熟悉生成引擎，大约也就可以看出你的编程境界到了什么阶段。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;我所接触的最古老的生成引擎就是make和nmake了，类似的还有gnumake。这些都是为C和C++应用开发的引擎。程序员编写makefile脚本文件，然后make.exe就会自动去调用C编译器和连接器从源代码得到最终的程序。当然，还可以利用脚本让make干些其他工作，例如删除中间文件等等。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;不要认为这个用批处理命令也可以实现，因为批处理对于操作系统的依赖性太强。不同的操作系统批处理命令还是差别很大的。makefile脚本作为一个操作系统上面的中间层，提供了通用的命令和语法，所以使得不少Unix到Linux的迁移变得不那么困难了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;现在可用的生成引擎&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;ANT 是 Java 平台的生成引擎标准。Borland 的重心一度集中在 JBuilder，所以 JB&amp;nbsp; 对于各种 Java  规范的支持都很及时，但是这方面 Delphi 却没有一直没有跟上时代的步伐，IDE一直使用着一个封闭的生成引擎。虽然以 ANT 为借鉴，SF 上面开了 WANT  项目，开发出了一个适用于 Delphi 的基本的引擎出来，商业软件如 FinalBuilder 也给予了 Delphi  不错的支持，可是真正能够将这些工具用于生产的项目却是不多――CnPack 使用了 WANT，算是一个很不错的范例了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;比较而言，商业软件 FinalBuilder 做的更加完备，可以做的自定义和扩展都很丰富。而 WANT  的开发一直没有达到一个很成熟的程度，所以我在做早期的CBC时一直都是使用自定义的 NANT 脚本来做 Delphi 项目的生成。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;MSBuild 的诞生&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Windows平台的生成引擎过去一直是Borland的make和微软的nmake的战斗。但是这两个都没有办法很好的支持Delphi和后来的.NET。NANT的出现，打破了这个古老的局面。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;可是开源的 .NET 工具是一段悲壮的历史。在 .NET 1.x 的时代，多个开源项目曾经在微软的地盘占尽风头，像 NUnit，NDoc 和  NANT。但是在 .NET 2 发布之后，微软以将自己的技术做到了 SDK 中，从根本上取代了 NDoc 和 NANT，NUnit  也是一直得不到微软的支持。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;MSBuild 出来的目的首先是为了让微软自己Windows平台上面的各种语言得到一个好的生成引擎。虽然 NANT  好用，可是不在微软自己手里，怕受制于人。NANT 实在是个好东西，对 Mono 的支持很好，长期下去对于微软是个威胁。可是自从 MSBuild  出现，Windows 平台上再使用 NANT 的开发者就不多了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;Chrome 对于 MSBuild 的支持&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Chrome 对于 MSBuild 的支持开始的很早。.NET 2 还在 Beta 阶段时 RemObjects 就很好的利用 MSBuild  引擎设计了 chrome 文件的格式，使得编译 Chrome 项目变得十分简单。可是那时 Delphi 2006 还是基于 .NET 1.1  所以还没有办法使用这个方便的引擎。既然 NANT 不能用了，MSBuild 也是 Delphi 唯一的选择。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;Delphi 使用 MSBuild&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;当你用 Delphi 2007 打开旧工程时，你会发现不管是 dpr 还是 bdsproj 都不在是真正的工程文件了。现在你需要好好研究的就是  dproj 文件了。这个 XML 文件同 C# 工程文件 csproj 采用了完全一致的格式，只是属性都是针对 dcc 编译器的。所以任何 MSBuild  的扩展，像 MSBuild Community Tasks，都可以用在 Delphi  工程的扩展上面。基于这个引擎，编译前后的动作都可以简单的用XML来定制，使得整个开发过程大大的简化。由于 MSBuild  可以看成是一个可以方便扩展的脚本引擎，所以用得好的话威力可是很大的。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;学习 MSBuild 并不是那么困难，就是需要一些合适的指导。下面这个网址就指向一个不错的培训材料，&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A  href="http://brennan.offwhite.net/blog/2006/11/30/7-steps-to-msbuild/"&gt;http://brennan.offwhite.net/blog/2006/11/30/7-steps-to-msbuild/&lt;/A&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;越早熟悉这个引擎就可以越早提高你的开发效率。因此，早点开始使用吧。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-5494258072755349016?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/5494258072755349016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/delphi-msbuild.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/5494258072755349016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/5494258072755349016'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/delphi-msbuild.html' title='Delphi 的用户们，早点开始享受 MSBuild 吧'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-4376399044885635669</id><published>2012-01-03T20:29:00.011+08:00</published><updated>2012-01-03T20:29:48.674+08:00</updated><title type='text'>Borland 传奇拾遗： CodeGear RAD Studio 2007, 转折继续，产品诱人</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Sept 27, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;本来CodeGear已经发布了Delphi 2007和C++Builder 2007，照理说这个仅仅添加了Delphi for  .NET的新东西――RAD Studio  2007应该不会带来太多的新特性，但是仔细梳理一下，还是可以看出CodeGear公司不像Borland那样只想着赚大钱。CodeGear的用户可以得到的现实好处还是很多的。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;升级策略&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;首先，来介绍一下CodeGear的产品升级策略。之前的Borland模式大家相信也比较熟悉，简而言之就是Update有限。如果你需要修正更多bug的机会，请购买下一代的产品。当然，这也意味着Update不会带来新的特性。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;虽然在Delphi 2005和Delphi  2006的时候这一策略有所松动，但是直到CodeGear成立，我们才有机会看到现在的新局面――Update也可以包含新的特性！当你将Delphi  2007和C++Builder 2007升级到Update  3，你的IDE立刻就开始支持AutoSave/AutoRecover了，而且又多出了BlackFish SQL这个小巧好用的数据库。这可都是RAD Studio  2007才加入的新东西呀！假如你还没有升级到Update 3，赶快行动吧！&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;Delphi for .NET的策略调整&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;如果你像我一样从Delphi 8，Delphi 2005，Delphi  2006一路走来，那么你肯定会惊讶于CodeGear这一次在.NET平台上的新策略――No Windows Forms，No WPF，Only VCL for  .NET。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;本来VCL for .NET同WinForms就是重叠明显的两个框架。两个都存在的缘故之一就是VCL for  .NET还不能完全代替WinForms――例如ECO当时不支持VCL for .NET。由于ECO 4正式加入了对VCL for .NET的支持，所以VCL  for .NET终于可以全面代替WinForms了。Delphi for  .NET也由此正式跳出了微软限定的.NET标准，建立了一个完全由CodeGear来主导的框架体系。一个很明显的好处就是CodeGear可以方便的加入新的API支持，例如VCL  for .NET对于Vista新API的封装是十分完善的，远远超出了WinForms――后者只能利用一些蹩脚的方法直接呼叫Vista  API来启用Vista特效。这样一来不论是VCL还是VCL for .NET现在都有了市场上对于Vista平台的最好支持――微软自己的Visual  Studio反而是落后了许多。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;另外，C#Builder也失去了和C++Builder、Delphi同等的地位，同VB.NET一样低人一等，只保留了代码编辑和简单调试的功能。我个人一直也认为CodeGear的R&amp;amp;D小组不应该同时支持那么多编程语言，现在看到这样的变化也在意料之中。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;正是由于Delphi小组的精力完全放在了VCL和Delphi本身，可以想见这一次的VCL改进还有将来的Unicode  VCL会给Delphi开发者带来怎样的变化。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;当然，这也不意味着Delphi for .NET没有跟随.NET平台的进展。打开CodeGear Developer  Network，你可以看到关于用Delphi for .NET进行WCF开发的文章，可以看到Delphi for  .NET关于Generics的支持。虽然Delphi确实慢了一步，但是微软为.NET注入的各种所谓新特性也并不是说每一个都那么不可缺少――很多语法糖就很容易让初学者看得发晕，不是十分合适放在实际的项目中――除非真的是为了提升执行效率。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;RAD Studio的未来&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;随着VCL地位的稳固已经Delphi小组重心的重新确立，我们可以期待在Win32和Win64平台上VCL和Delphi进一步提升的巨大空间。特别是Unicode  VCL和RTL将在下一版本的Delphi中完成，可谓万众瞩目。毕竟微软的MFC实在是太不完美，ATL又始终不能完全取而代之，成熟可靠的VCL还是原生Windows平台开发中不可忽视的一股力量。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;另一个值得期待的变化，将是Delphi语言对Generics的全面支持。下一版本的Delphi将会在Win32上面做出Generics来。这也似乎意味着Delphi也可以做出STL之类的容器。这也很可能会革命性的改变Delphi容器支持不是那么理想的问题。如果Delphi编译在这方面取得突破，Delphi和C++的相似性将得到进一步的提升，这也可能让Delphi进入之前无法触及的开发领域。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;至于更远的未来，相信在Nick  Hodges掌舵下Delphi小组会做出更多令人激动的创新，带领这一长寿的编程语言进入下一个开发的时代。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-4376399044885635669?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/4376399044885635669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/borland-codegear-rad-studio-2007.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4376399044885635669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4376399044885635669'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/borland-codegear-rad-studio-2007.html' title='Borland 传奇拾遗： CodeGear RAD Studio 2007, 转折继续，产品诱人'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-8553242537800090963</id><published>2012-01-03T20:29:00.009+08:00</published><updated>2012-01-03T20:29:39.561+08:00</updated><title type='text'>动态语言――BEA User Group之后的一点想法</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Sept 24, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;听说 BEA 是在阅读《Borland 传奇》的时候，而了解它则是在找工作的间隙。很遗憾自己一直没有选择做 Java，因此也就不可能应聘 BEA  的技术职位。但是很庆幸的这不妨碍我抽出一个下午的时间参与到 BEA User Group 里面。应该说到了上海之后自己也参加过了一次 EDA Tech  Forum，但其氛围和 User Group 还是两样。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;首先过来讲座的专家都不是以卖产品为目的的，除了开场由 BEA 的人士围绕的产品是 BEA 的 WebLogic 平台。用 Jython  来做脚本还是很不错的想法，但是其实假如选择的是其他动态语言例如 Groovy，效果应该也是一样。毕竟真正使得配置可以成功的是一套 WLS  接口。Microsoft 同样也将动态语言 JScript 作为操控配置 Windows  的一个解决方案，效果也是十分类似，大大简化了配置服务器之类的工作强度。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;我特别喜欢第二位介绍 Groovy 和 Grails的讲座。应该说我对于 Java  平台的一些技术还是有稍微的了解，因此听起这个讲座难度还不是很大。况且钱霄先生侃侃而谈，又有大量的举例，可以让你听一点皮毛也受益匪浅。契约编程看来已经是大势所趋了。从  Grails 的各种特性来看，其实 CodeGear 手中的 ECO 几乎全都具备――模型，持久化，各种 Action 和 Service 支持，可惜 ECO  一直没有像 Rails 和 Grails 之类这么流行――价格或许是一个因素。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;至于 XRuby，大概是由于主讲的些许紧张，效果并不是那么明显，起码我还没有兴趣去试试看。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;简单谈谈自己听完之后的对于动态语言发展的一些看法。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;首先，动态语言在开发中的重要性已经在提高了。在我自己的项目中，像 MSBuild  脚本之类的东西实在是方便极了。Rails之类的开发高效率相信很多人都希望尝试一把。这也引发了现有的主要软件厂商对这一领域的兴趣。BEA 利用 Jython  来实现 WebLogic 平台的快速配置，Microsoft 借由 Dynamic Language Runtime 将 IronRuby 和  IronPython 在 .NET 平台上面实现……相比较而言，Microsoft 的脚步要快上许多。DLR 基本上已经很成熟，便于各种动态语言迁移过来，而  JVM 上面还没有一个通用的动态语言基础可以使用。这也导致 JRuby 之类的项目都必须自己来开发 JVM Dynamic Language  Support。这一点同时也表现出了现有 Java 厂商目光的短浅，对于动态语言的支持十分有限。虽然 JRuby，Jython，Groovy  之类的开源项目也取得了一定成果，但是没有主力厂商的推动，发展还是很有局限的。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;其次，动态语言应用于开发的优势还远远没有被发挥出来。一个很明显的例子就是动态语言 IDE 的匮乏。这也使得 CodeGear  有机会进入一个用户群巨大但是竞争相对较小的市场。例如 Ruby，虽然 Eclipse 和 NetBeans 都有 Ruby  的支持，而且已经做了多年，但是问题多多。CodeGear 3rdRails 一面世似乎就已经在很多方面远远领先。可见应用开源 IDE  虽然可以有效降低使用者的初始投入，但是产出依然十分有限，并且 IDE 的不稳定常常带来新的麻烦。商业 IDE  的介入对于迅速提高生产力、加速动态语言的普及都是很有好处的。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;最后，就是动态语言的普及问题。当越来越多的程序员意识到动态语言的重要型，同时有了很好的 IDE  的支持，那么是不是动态语言普及的时候就到了呢？应该说在这个阶段，依然需要众多商业公司的参与。例如提供各种方面的控件、类库、DE  插件。最重要的还有培训和技术支持。唯有如此，才可能让动态语言真正进入主流的开发中，达到全盛。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;当然，User Group  的抽奖活动也蛮有意思的――当然，我这么说是因为自己很幸运的被抽到了：-）&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-8553242537800090963?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/8553242537800090963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/bea-user-group.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/8553242537800090963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/8553242537800090963'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/bea-user-group.html' title='动态语言――BEA User Group之后的一点想法'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-3086044016853105421</id><published>2012-01-03T20:29:00.007+08:00</published><updated>2012-01-03T20:29:30.501+08:00</updated><title type='text'>《Borland传奇拾遗》的将来</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Sept 14, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;一不留心在Google搜索的时候敲上了《Borland传奇拾遗》的名字，结果自然一半一半，高兴的是居然有2，370左右的链接，而不爽的是除了开头几个链接属于我自己的blog，其他都是没有得到授权的转载。似乎对于任何流行一时的东西，遭遇这种待遇是不可避免的。因此我只能宽慰自己，毕竟我的目的是让更多的人持续关注Borland的命运和开发工具的未来，现在这个目标算是基本上达到了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;CodeGear的茁壮成长，似乎终于摆脱了Borland一度的阴霾。因此这个拾遗的东西也越来越与Borland这个品牌脱节了。我想是时候改为《CodeGear传奇》之类的东西了。但是由于工作的缘故，自然还要慢慢抽空来写作。让人高兴的，现在CodeGear每隔一段时间就会给人带来惊喜，所以要延续这样一个系列也不是那么复杂了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;关于blog发布的问题，我也有了新的想法。今后草稿就发在这里好了。至于最终版本的PDF，我还没有想好以哪种方式来发布，也就到时候再说吧。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;感谢对于这一系列持续关注的读者们。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-3086044016853105421?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/3086044016853105421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/borland_03.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/3086044016853105421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/3086044016853105421'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/borland_03.html' title='《Borland传奇拾遗》的将来'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-7314709706080601257</id><published>2012-01-03T20:29:00.005+08:00</published><updated>2012-01-03T20:29:21.767+08:00</updated><title type='text'>所谓校歌</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Sept 07, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;我的母校正在准备发布校歌。都过了50多年了，突然发现别的学校有，也就要当作一件大事来做了。  总之费时费力，而像我这样好不容易毕业的人也根本没得兴趣去关心最后定下来的是首什么歌。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;不过其实仔细想想，最后顶板的东西说不定又是古老的要命的那种风格，让人似乎怀念起那些相片泛黄的东西来。这自然不是我喜欢的东西。但是转念一想，像Dancing  Queen那种经典的老歌还是不错的。就是不知道一些年过半百的决策者会做出怎么样的决定。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;稍微有点期待，不过即使听了蹙眉也无所谓了。毕竟我不会再花上时间去学唱这样的东西了。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-7314709706080601257?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/7314709706080601257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/blog-post_2117.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7314709706080601257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7314709706080601257'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/blog-post_2117.html' title='所谓校歌'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-726734146105151887</id><published>2012-01-03T20:29:00.003+08:00</published><updated>2012-01-03T20:29:14.150+08:00</updated><title type='text'>WPS 2007，写作《Borland 传奇拾遗》的好帮手</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Sept 02, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;为了整理《Borland 传奇拾遗》，我开始寻找免费的 Office 软件。无疑，开源的OpenOffice或者Google  Pack中的StarOffice都是很好的选择，但是，他们对 Microsoft Word 格式的支持一直让我犹豫不决。于是我又想起了同学写毕业论文时使用的  WPS 个人版来。可以说 WPS 2005 个人版十分的方便，标签页的结构使得同时开几个文档十分方便。当然，和词霸的整合也十分贴心。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;今天，你可以试试看 WPS Office 2007 新产品了。看起来的确更加漂亮。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;希望不久我就可以发布整理之后的《Borland 传奇拾遗》。当然，很多今年的新内容会添加进去。工作之后，我对于 Borland  的感受也从一个学生的角度变成了从一个软件工程师的角度。相信这是写出的内容会有所不同。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;(更新：没想到在Vista上面WPS  2007还是不稳定，总是被提示出错了要关闭。搞不清楚到底是WPS的问题，还是Vista的问题。)&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-726734146105151887?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/726734146105151887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/wps-2007borland.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/726734146105151887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/726734146105151887'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/wps-2007borland.html' title='WPS 2007，写作《Borland 传奇拾遗》的好帮手'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-5799566605453628815</id><published>2012-01-03T20:29:00.001+08:00</published><updated>2012-01-03T20:29:06.871+08:00</updated><title type='text'>读代码的感觉</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN August 28, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;必须承认阅读别人的代码是一种很必要的学习手段，同时也是一种了解别人的方式。李维先生最近的阅读兴趣也让他了解了DBX4背后的工程师。  这确实是一个很好的例子。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;我也常常阅读代码，不论是CodeProject的还是SourceForge或者CodePlex，这的确是一桩让人兴奋的事情。当然，总有精华，也难免糟粕。只看个人取舍了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;你的阅读故事又是如何呢？&lt;/DIV&gt;&lt;FONT color=#333333  face=Arial&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-5799566605453628815?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/5799566605453628815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/blog-post_03.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/5799566605453628815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/5799566605453628815'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/blog-post_03.html' title='读代码的感觉'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-4292677315882012934</id><published>2012-01-03T20:28:00.001+08:00</published><updated>2012-01-03T20:28:27.705+08:00</updated><title type='text'>Code Beautifier Collection 动态</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN August 13, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;对于不习惯看我英文blog的一些用户，我在这里讲一下CBC的最新进展。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Google Code 主页&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;项目的主页从GForge.oss.org.cn迁出，搬到了Google Code上面。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;老主页将继续保留，主要用来放置CBC 5.*的老版本。仍然在使用Delphi 8/2005/2006的用户可以去那里下载CBC 5.*。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;新主页将完全以CBC 6.0为主。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;CBC 6.0 GrapeVine&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;GrapeVine已经放出了三个Preview的版本（包括M1和M2）。现在最新的版本是GrapeVine Milestone 3，支持Delphi  2007、C++Builder 2007。M3还很好地支持Windows Vista。重做的安装包可以支持安装给所有的用户。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;好了，如果有兴趣，请访问&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A href="http://lextm.blogspot.com"&gt;http://lextm.blogspot.com&lt;/A&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;以获取最新的信息。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-4292677315882012934?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/4292677315882012934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/code-beautifier-collection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4292677315882012934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4292677315882012934'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/code-beautifier-collection.html' title='Code Beautifier Collection 动态'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-3433753312979269141</id><published>2012-01-03T20:27:00.001+08:00</published><updated>2012-01-03T20:27:28.414+08:00</updated><title type='text'>UI and UX: 软件还是艺术？</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt;&lt;FONT  size=2 face=Verdana&gt;(CSDN July 28, 2007)&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Paint.NET是一款免费的图片处理软件，完全由.NET编写。出于兴趣，我也订阅了这个项目blog。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;初次使用它给人一种震撼的是Paint.NET似乎不像GIMP那样功能丰富――对于很多图片格式都不支持，包括我平时经常用的EPS格式――但是界面十分的简洁和美观。开发者对于界面这样追求，在我所见过的开源项目中确实不多见。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;马上3.10的版本也会发布，可是从blog里面你可以看到的3.10的新内容，居然是两个界面的小改进，属于那种不仔细辨认难以察觉的变化。为什么会有这样的项目理念呢？从下面的blog内容中似乎可以窥见一些缘由。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;其实对于商业软件来说，现在竞争已经从技术实现细节逐步转移到了UI和UX的PK上面。Apple和Microsoft不是就在桌面观感上面斗的你死我活吗？iPhone的震撼，其实也多是在UI和UX方面。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;当然，对于小型的开源项目来说，做好功能已经很不容易了。可是，一个漂亮友善的界面，还应该作为我们争取用户的主要手段。是的，希望我可以在Code  Beautifier  Collection下面一个阶段的开发里多做一些界面的改善。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-3433753312979269141?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/3433753312979269141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/ui-and-ux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/3433753312979269141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/3433753312979269141'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/ui-and-ux.html' title='UI and UX: 软件还是艺术？'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-1856933532732831792</id><published>2012-01-02T20:18:00.013+08:00</published><updated>2012-01-02T20:18:14.254+08:00</updated><title type='text'>Google拼音: 当更新如此安静</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN July 20, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Google拼音的又一次更新开始了。和上次一样，都是在后台下载和安装，仅仅显示给我一个托盘图标。如今各式各样的软件都带上了自动更新的功能，方便又不打扰我们这些用户，不能不说是一个巨大的改进。当初那种总是要手工去找更新，手工安装更新的光景终于是一去不复返了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;细细想来，记忆中倒是Windows最先开始了这种安静的行为。不能不说MS看重用户的体验。喜欢这种体验。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;当然，Code Beautifier  Collection需要逐步向这个方向靠拢了。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-1856933532732831792?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/1856933532732831792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/google.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1856933532732831792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1856933532732831792'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/google.html' title='Google拼音: 当更新如此安静'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-8984982850188489547</id><published>2012-01-02T20:18:00.011+08:00</published><updated>2012-01-02T20:18:11.919+08:00</updated><title type='text'>新浪与搜狐的blog之争：让人发笑又无奈的垄断哲学</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN June 19, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;大概是学习了太多电力和电信业的垄断经验，这两个blog服务提供商也开始构筑堡垒了。你想从我的服务里面迁移出去？没门。即使你今天发布了搬家工具，我明天就让你的工具作废。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;当然，其实CSDN也是一样。上次就说了CSDN和Windows Live Writer配合不起来。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;为什么Blogger和Windows Live  Spaces反而支持公开的API，任由用户自己选择？难道它们不想吃这碗饭了？谁给你饭吃，你就要对谁负责任。吃了我们的，反而还想做垄断，真是让人不能接受的霸道行为了。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-8984982850188489547?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/8984982850188489547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/8984982850188489547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/8984982850188489547'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/blog.html' title='新浪与搜狐的blog之争：让人发笑又无奈的垄断哲学'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-899168333593026692</id><published>2012-01-02T20:18:00.009+08:00</published><updated>2012-01-02T20:18:09.989+08:00</updated><title type='text'>又一个放弃CSDN Blog的理</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN June 11, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;随着blog世界有一个新标准的出台，CSDN博客的落伍又变得明显起来。这个新的标准，就是同Windows Live  Writer兼容所需要的一系列标准。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Compatibility&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Writer is a great client for Windows Live Spaces but also works with other  weblogs including Blogger, LiveJournal, TypePad, WordPress (and many  others).&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Writer supports RSD (Really Simple Discoverability), the Metaweblog API,  and the Movable Type API.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;We want Writer to work well with every blogging service out there. If you  can't get Writer to work with your blog, we want to know.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;可以看到CSDN的博客还没有出现在列表之中。也不知道CSDN是不是和Writer兼容。只是越来越喜欢Writer的我现在很难找到一个继续使用CSDN博客的理由了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;国内的blog似乎一个也没有在列表中，真是令人感到失望――只是注重外表，根本不重视和业界标准的兼容性，只会让它们所提供的服务越来越落伍。Blogger和Live  Spaces所以流行起来也就不足为怪了。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-899168333593026692?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/899168333593026692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/csdn-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/899168333593026692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/899168333593026692'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/csdn-blog.html' title='又一个放弃CSDN Blog的理'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-4269337231494846616</id><published>2012-01-02T20:18:00.007+08:00</published><updated>2012-01-02T20:18:07.328+08:00</updated><title type='text'>Stardock: 创意总能令人兴奋</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN May 16, 2006)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;使用StyleXP的时候，感觉那东西真是bug多，而且每个皮肤都很大。于是放弃了。后来就看到同学使用CursorXP修改鼠标样式，觉得很好玩。于是就装了CursorXP，于是就知道了Stardock。再后来漫长的时间里，开始为Stardock充满想象力的新东西吸引，慢慢的喜欢上了这样一间公司。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;当然，从我使用的感受来说，WindowBlinds、IconPackager、ObjectDock和CursorXP都是非常值得一试的软件。WindowBlinds比StyleXP稳定，而且wba的样式文件一般都不大。iconPackager则可以让系统里面全部的图标都随意更改，也是十分好玩。ObjectDock可以让Windows也带上一个Mac机器一样的Dock菜单。其中ObjectDock我是从第一个试用版就开始使用。现在呢还在使用着Free的版本。应该说这个Free版本就已经足够我享受了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;其实现在Stardock免费东东包括ObjectDock，CursorXP、BootSkin和Logon&amp;nbsp;  Studio，但是后面两个同硬件的兼容性不是那么好，不知道在你的机器上面会不会运行正常，所以我在上班用的电脑上面并没有安装。但是前面这两个确实是值得天天使用。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;可惜WB和IP都是Stardock的主打产品，因此只提供试用版本，就让人不得不放弃了。不过，等我有了信用卡之后，说不定可以购买一套，毕竟都是20美元一件的东西，不算很贵了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;你经常使用什么好东西呢？&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-4269337231494846616?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/4269337231494846616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/stardock.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4269337231494846616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4269337231494846616'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/stardock.html' title='Stardock: 创意总能令人兴奋'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-1068006599011581505</id><published>2012-01-02T20:18:00.005+08:00</published><updated>2012-01-02T20:18:05.564+08:00</updated><title type='text'>VMware Workstation和Server: 艰难的选择</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN May 15, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;不得不承认VMware  Workstation是个好东西。不过，买一个还是很贵的。刚刚使用了版本6的几个试用版本，都十分的好用。可是现在6的正式版出来了，估计很快试用版就会过期了。怎么办？&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;今天才终于发现，那个免费的VMware Server居然就有Workstation的主要功能。可惜没有Shared  Folder，不然对我而言Workstation的功能就没有什么诱人的啦。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;你也使用VMware吗？还是使用Microsoft的Virtual  PC？&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-1068006599011581505?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/1068006599011581505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/vmware-workstationserver.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1068006599011581505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1068006599011581505'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/vmware-workstationserver.html' title='VMware Workstation和Server: 艰难的选择'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-4208900904943551177</id><published>2012-01-02T20:18:00.003+08:00</published><updated>2012-01-02T20:18:03.287+08:00</updated><title type='text'>Firefox 3和Google拼音</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN May 14, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Firefox 1确实比IE 6好用很多。不过，Microsoft终于还是推出了IE7。Firefox  2出来已经有好几个月了，不过我使用这个版本已经太久了――从Beta 1算起。感觉和IE  7相比，Firefox能够提供的好处就不是那么多了。现在试了试Firefox  3的Beta版本有一个多星期了，还没有看出比FF2好处多。不过，确实没有什么异常和问题，算是比FF2的Beta版本稳定多了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;另外一个新东西，是Heartsun大哥建议我使用的Google拼音。必须承认这正是我放弃微软拼音2007之后需要的东西。当然，微软官方放出的2003版本本来已经足够使用了，可是毕竟是多年之前的东西。Google拼音最让人省心的是它会把词库同步到Google的服务器上面。虽然对于保护个人隐私多少有些不妙，但是显而易见的好处是我在自己家里和单位里可以共用一套词库，并且不必担心重装系统后丢失。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;还有什么东西是你觉得最近比较好玩的呢？不妨推荐一番。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-4208900904943551177?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/4208900904943551177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/firefox-3google.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4208900904943551177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4208900904943551177'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/firefox-3google.html' title='Firefox 3和Google拼音'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-3392031147592560848</id><published>2012-01-02T20:18:00.001+08:00</published><updated>2012-01-02T20:18:01.954+08:00</updated><title type='text'>Delphi中安装OCX的最新说明</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN May 11, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;从Delphi 2005开始，Delphi进入了一个新的IDE时代，这也导致原来安装OCX的习惯必须做出改变。因此察看帮助是必须的一步。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;如果你还是看不懂帮助，下面是CodeGear工程师给出的进一步解答，相信足够权威和可靠。对于Delphi新版本的用户来说，应该是很值得参考的。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;http://blogs.codegear.com/fhaglund/archive/2007/05/09/34459.aspx&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-3392031147592560848?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/3392031147592560848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/delphiocx.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/3392031147592560848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/3392031147592560848'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/delphiocx.html' title='Delphi中安装OCX的最新说明'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-6776136101788850543</id><published>2012-01-02T20:17:00.051+08:00</published><updated>2012-01-02T20:17:59.370+08:00</updated><title type='text'>匆匆写就的近况</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN May 10, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;很幸运的和华工04级的研究生一起毕业离校，有很幸运的和05级一起等待着毕业证。这意味着自己现在的状态就是悬在天地之间，上不着天，下不着地。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;那些04级的人士，已经像我一样开始了上班的生涯，也就是开始拿钱了开始缴税了。而那些05级的同学们还在过着悠闲舒适的研究生活。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;拿着工资，却在怀念着实验室里快活的老样子，是不是有些愚蠢甚至懒惰呢？上班就没有那么快乐吗？这短短的一个月还难以给出一个确定的答案。我想，下个月或者可以多写一些感受。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;刚刚完成了对于求职经历的回顾，很多的机会擦肩而过，很多单位令人流连忘返。不过，总体来看我能够进入现在的位子就是十分十分的幸运了。最令我感到吃惊的是，自己居然投了那么多的简历，参加了那么多的笔试、面试。只是一切都过的太快，或者自己的记忆力越来越糟糕，竟然只留下淡淡的印记。多么遗憾呢。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;手上的项目还有多少bug没有解决呢？期待着明天收到bug  report。现在，这似乎已经成了工作中最重要的事情了。我想，我已经习惯。毕竟，做CBC和Alex的时候是没有人帮我做测试的。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;开始做一个幸福的程序员，开始一段自己喜欢的旅程。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-6776136101788850543?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/6776136101788850543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/blog-post_9891.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6776136101788850543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6776136101788850543'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/blog-post_9891.html' title='匆匆写就的近况'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-2092067736385073088</id><published>2012-01-02T20:17:00.049+08:00</published><updated>2012-01-02T20:17:57.208+08:00</updated><title type='text'>上班以来使用的开源东西</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN April 27, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;开源的东西还是应该多多采用。确实可以省很多钱。在SA的环境里使用开源的软件，我就不必总是去麻烦IT组的人员了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;我现在就安装了下面这些东西：Notepad++，7Zip，CVSNT，Firefox，Thunderbird，SharpDevelop，Inno  Setup，WinMerge，GIMP，NUnit，PDFCreator。当然，使用的免费软件也是挺多的，像Turbo  JBuilder，Sandcastle。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;加上已经用到项目中的很多CodeProject代码，感觉欠别人的人情还是很多的。不过，我也在努力的发布一些有用的Blog内容，讲讲自己开发中遇到的困难和解决方法。虽然都是一些常见的开发困难，但是希望可以作为别人的参考。当然，都是些英文的东西，放在了http://lextm.blogspot.com上面。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-2092067736385073088?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/2092067736385073088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/blog-post_9524.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/2092067736385073088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/2092067736385073088'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/blog-post_9524.html' title='上班以来使用的开源东西'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-4443394068657094779</id><published>2012-01-02T20:17:00.047+08:00</published><updated>2012-01-02T20:17:55.233+08:00</updated><title type='text'>开始上班的一些变化</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN April 09, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;开始上班了，换了一个城市，也换了很多东西。所以应该承认变化还是很大的。由于对于公司的规章制度还不是十分的了解，CBC和Alex两个项目将会暂停一个时期，还望各位用户谅解。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;下班了，该回家了。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-4443394068657094779?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/4443394068657094779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/blog-post_2429.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4443394068657094779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4443394068657094779'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/blog-post_2429.html' title='开始上班的一些变化'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-34905148251170314</id><published>2012-01-02T20:17:00.045+08:00</published><updated>2012-01-02T20:17:52.949+08:00</updated><title type='text'>HardQuery Report: RC 5 is out and the Final will be available late in April</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN March 26, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;I am now packing for leaving for Shanghai and I will start my career there.  As a result, I do not have plenty of time to make the 5.3.3 Final ready in  weeks. I wish I could have time to ship it in April. In fact this latest RC 5 is  stable enough for you to use.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Luckily I have fixed the Code DOM bugs which hides in the Source Navigator  and Typing Speeder features. Give the latest RC a try and you will see something  very useful for C# coding.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;The RC 5 can be downloaded from here.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Stay tuned. I will blog again once I reach  Shanghai.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-34905148251170314?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/34905148251170314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-rc-5-is-out-and-final.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/34905148251170314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/34905148251170314'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-rc-5-is-out-and-final.html' title='HardQuery Report: RC 5 is out and the Final will be available late in April'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-7918145160642433859</id><published>2012-01-02T20:17:00.043+08:00</published><updated>2012-01-02T20:17:50.717+08:00</updated><title type='text'>Google的不稳定性，或者是CERNET的无理由限制</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN March 23, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;本来计划用Google的邮箱+博客+Code，现在居然只有邮箱可以从CERNET直接访问，实在令人失望。或许我还要在等等看。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;或者今后使用公网上网就不会有这个问题了。但愿。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-7918145160642433859?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/7918145160642433859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/googlecernet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7918145160642433859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7918145160642433859'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/googlecernet.html' title='Google的不稳定性，或者是CERNET的无理由限制'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-7586982222040855885</id><published>2012-01-02T20:17:00.041+08:00</published><updated>2012-01-02T20:17:48.604+08:00</updated><title type='text'>Bug Report Reply: Delphi的Lite版本</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN March 19, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;这也是我第二次听说有Delphi Lite版的用户尝试使用CBC。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;我使用delphi 10 lite v3便携版，并已经打好对应的update2补丁。安装好CBC以后不能运行，告诉我&lt;/DIV&gt; &lt;DIV&gt;"应用程序正常初始化（0x0000135）失败"，不能使用。&lt;/DIV&gt; &lt;DIV&gt;不过，我使用cnPack就没有问题。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;还有，我已经安装好了jcf，astyle没有安装，是不是因为这个问题？&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;自然，这个问题我不可能遇到，因为我没有使用过Lite版本，一个非官方的裁剪版本。但是可以猜到为什么CnPack可以而CBC不行――CBC是C#做的。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Lite版本应该是删去了.NET部分的Delphi，没有Together也没有其它的部件，甚至没有Borland.Studio.ToolsAPI.dll这个关键的文件。这样bds.exe在启动的过程中不能正确地初始化.NET环境，也就不能加载CBC的框架。.NET是CBC存在的必要条件。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;同样的问题我想Delphi  5/6/7的用户在尝试使用CBC时也会遇到。因此，我认为这不能算是CBC的一个bug，毕竟设计CBC的时候，我就将Galileo IDE也就是BDS  1.0-4.0（Delphi 2007应该是5.0）考虑在内。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;我能给出的建议就是请使用Borland CodeGear官方发布的Delphi IDE，Delphi 8-2006都可以使用CBC。不过对Delphi  2007的支持需要在等待一段时间。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-7586982222040855885?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/7586982222040855885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/bug-report-reply-delphilite.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7586982222040855885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7586982222040855885'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/bug-report-reply-delphilite.html' title='Bug Report Reply: Delphi的Lite版本'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-2297251302546126476</id><published>2012-01-02T20:17:00.039+08:00</published><updated>2012-01-02T20:17:46.515+08:00</updated><title type='text'>免费的新东西：Turbo JBuilder 2007</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN March 19, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;JBuilder一直有一个免费的Foundation版本。不过从现在起，这个版本也被列入了Turbo系列，叫做Turbo JBuilder  2007。你可以从这里下载到&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A  href="http://codegear.com/Default.aspx?tabid=143"&gt;http://codegear.com/Default.aspx?tabid=143&lt;/A&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;当然，有了这个版本，我今后似乎就不会去下载光光的Eclipse  SDK了。免费的EasyEclipse也有了一个强大的竞争对手。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-2297251302546126476?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/2297251302546126476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/turbo-jbuilder-2007.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/2297251302546126476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/2297251302546126476'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/turbo-jbuilder-2007.html' title='免费的新东西：Turbo JBuilder 2007'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-2768613928040440851</id><published>2012-01-02T20:17:00.037+08:00</published><updated>2012-01-02T20:17:44.187+08:00</updated><title type='text'>Delphi 2007 for Win32的正式发布</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN March 19, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Borland  CodeGear酝酿已久的这个新产品终于发布了。由于有了直接下载安装版本，现在欧洲的很多用户估计已经用上了这个新东西。不过，国内究竟是什么情况难以估计。但是，对于CBC这个项目来讲，Delphi  2007是一个很难放入支持名单的东西。&lt;/DIV&gt; &lt;OL&gt;   &lt;LI&gt;Delphi 2007是基于.NET 2.0的IDE。这个就需要确认CBC这个完全在.NET 1.1上编译的产品可否在.NET 2.0上正确执行。    &lt;LI&gt;CBC主要的功能是支持C#，Delphi排在第二位。所以不知道现在使用CBC的Delphi用户究竟有多少。当然，我也在增加对于Delphi和C++的支持。     &lt;LI&gt;现在很难投入精力做CBC。终于要去上班了，开始一段不同的生活经历。这也意味着在转换期内事情很多。我想发布了5.3.3的下一个RC版本之后项目就会暂停一段时间。毕竟，我手里的银子多了才能更好的作CBC。&lt;/LI&gt;&lt;/OL&gt; &lt;DIV&gt;不论如何，祝CodeGear好运。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-2768613928040440851?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/2768613928040440851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/delphi-2007-for-win32.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/2768613928040440851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/2768613928040440851'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/delphi-2007-for-win32.html' title='Delphi 2007 for Win32的正式发布'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-2075515296867977580</id><published>2012-01-02T20:17:00.035+08:00</published><updated>2012-01-02T20:17:42.713+08:00</updated><title type='text'>炒作铁丝网</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN March 16, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;TSW是我本科时代所有同学中有幸同比尔盖茨这样的富豪握过手的唯一一个人。当然，这一切既是难得的机遇，也是对他一贯努力的回馈。在他从美国凯旋之后，我灵机一动给他联系了武汉本地报刊《武汉晚报》的记者。职业可以算作是一次成功的"炒作"吧（后来还有电视台作了他的节目）。下面就是在安排这一次采访的过程中发生在我、记者和TSW之间一些短信联系的记录。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;（L：Lex；J：记者；T：TSW）&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;L：J，你好。今天晚报27版转载了华西都市报中国实习生做客盖茨家的新闻。其实其中的一位就是我的同学，武汉人，华工电信系的研究生。这样的青年才子不知是否符合人物新闻的标准呢？2006/60/30  19：37：28&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;J：他现在在华工读书吗 他有没有被武汉其他媒体报道过 2006/7/3 10：57：24&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;L：你好，他名叫T，还在华工。据我了解还没有其他媒体报道他，因为今天他才从北京的微软亚洲研究院回来。19：42：30&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;J：哦，怎么联系他采访列？7/3 19：39：28&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;L：你回到武汉没有？我打算帮你联系武汉晚报的采访，不知你是否接受？19：46：02&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;T：干嘛呀？你不要把我吓得不敢回武汉了好不好，呵呵，我还在候车室呢！19：43：41&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;L：难得的机会呀，而且看了你的博客我就有了这个想法。你同意的话我就把你的手机号告诉记者了。19：50：21&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;T：不行不行的，你不要乱来哦，这么点小事还是不要麻烦人家了，呵呵，博客嘛，自己人看看就好了！19：48：12&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;L：你们十个人里面已经有被华西都市报报道过了，你又不比他差呀。就不要谦虚了。19：54：44&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;T：这个我知道的啦，不用麻烦啦，都市报教育专刊的人我也见过了，我还是回来休息几天，我的手机可不是免接听的哦！19：52：53&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;L：人家可以等你回来武汉采访呀。给武汉人争了光，给华工人争了气，还要躲躲闪闪，真是的。赶快接收吧。又不会吃了你，呵呵。20：04：39&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;T：我怕还不行吗？我们在那边采访都有人看着的，避免有比较棘手，呵呵！20：02：48&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;L：那边？晚报的记者只是想做个专栏，了解一下你在微软实习和出国的体验了。其实不会太棘手。要怎么样你才会接受呢？我妈妈都蛮有兴趣的，希望你考虑接受。20：15：06&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;L：都市报？华西都市报采访过你？没有见到你的名字呀！20：21：19&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;T：不是，楚天都市啦，好吧好吧，随便你好了，不过我到后天才会去学校那边的！20：19：02&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;L：楚天都市？你什么时候和他们接触过？又做过专门的采访吗？任务专访栏目还是别的？我给你联系的是人物类的专栏，不是一般的新闻。20：27：12&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;T：啊？不要吧，不要不要，你就不要主动帮我联系了，我可不是什么人物！绝对不是！都市的是应研究院邀请过来的，简单的聊了一下，没什么大不了啦！20：25：24&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;L：这样跟你说吧，前段时间华工有个本科生也是接受了晚报这个专栏的报道，他绝对比不过你。你还顾虑什么？另外楚天都市是什么时间采访你的呀，从美国回来以后？20：35：35&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;T：上个星期五，呵呵，无所谓啦，比我牛的多了去了，还是不要麻烦人家了，人家也挺忙的，呵呵！20：33：03&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;L：人家就是不忙呀，武汉也不是处处出人才嘛，你这样的还是不多。我就把你的手机号告诉人家记者了，人家已经等了一个钟头了。楚天都市对你的采访是针对你个人的吗？20：43：15&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;T：什么叫等了一个钟头了？不要给人家乱吹风嘛！人家只是了解一下大概的情况而已，呵呵！20：41：36&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;L：我本来是试试看，不过人家蛮诚心的。你呀，就是谦虚，作为你的同学，我一直就感觉你是那种做事情有激情，学东西有灵气的人，是很值得他人学习的那种类型。机遇只偏爱有准备的人。MSRA这么多实习生，也只有你一个武汉人出国门，这难道不足以表明你的特别？相信我们提高班的同学也同样希望你偶尔Shine一下嘛。我会跟那位记者说你需要休整，让他明后天跟你直接联系。把握机会，等着好消息。21：00：29&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;T：简单的说，了解一下研究院的情况，我没有意见，针对个人的我想没有这个必要啦！大概就是这个样子，呵呵！20：43：22&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;L：上报纸也不算复杂吧，本来你要一个人一个人的说，现在说一次全部的人都知道了，不是更简单了？和你联系的记者叫J，手机号是1388615****。好了，我就说这么多。希望你一路顺利啦。21：12：04&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;T：汗啊，我怕你了，我们不要把这个事情弄得太复杂，更多的还是一种机遇罢了Simply is  wonderful，呵呵！到学校我们再聊就好了，嘻21：00：53&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;L：T终于同意了，他的手机号是1387120****，你可以和他直接联系。由于他今晚的火车返汉，所以请明后天直接与他联系。据他自己说，由于微软亚洲研究院的安排，楚天都市报曾在北京对他在内的实习生们做过非常简单的采访。不知道这对于你采访他会不会有障碍？21：19：10&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;T：好的，多谢多谢！21：09：10&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;J：好的，谢谢，我明天联系他再谈，但是楚天上登了相关的文章列21：17：15&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;L：我只看晚报呀，老订户啦。感觉在我的同学之中，T是个十分特别和优秀的，也是一个很不错的榜样。和众多迷惘彷徨重的学生完全不同，他有目标，有激情。这才是促使我向你推荐他的理由。21：30：21&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;L：T的博客在：**，有关他在微软亚洲研究院实习的体验，和在美国微软总部的经历。照片不是很多，因为空间有限。很多照片存在他笔记本电脑里面。2006/7/4  11：28：36&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;============&lt;/DIV&gt; &lt;DIV&gt;我必须承认到了最后，我对于TSW只剩下羡慕和祝福了。现在他就要踏上MSRA正式员工的征途了，让我们继续为他祝福，希望他可以修成正果。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-2075515296867977580?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/2075515296867977580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/blog-post_440.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/2075515296867977580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/2075515296867977580'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/blog-post_440.html' title='炒作铁丝网'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-6014724273071238314</id><published>2012-01-02T20:17:00.033+08:00</published><updated>2012-01-02T20:17:40.025+08:00</updated><title type='text'>免费的CodeGear开发者日</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN March 02, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;免费的CodeGear开发者日又来了，而且包含Delphi和JBuilder的两个产品。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;日期和场地&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;北京&lt;/DIV&gt; &lt;DIV&gt;星期一，3月12日&lt;/DIV&gt; &lt;DIV&gt;场地: 国宾酒店, 大宴会1厅&lt;/DIV&gt; &lt;DIV&gt;北京市.西城区阜成门外大街甲9号&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;上海&lt;/DIV&gt; &lt;DIV&gt;星期三，3月14日&lt;/DIV&gt; &lt;DIV&gt;场地: 富豪环球东亚酒店&lt;/DIV&gt; &lt;DIV&gt;绿宝石宴会厅&lt;/DIV&gt; &lt;DIV&gt;上海 徐汇区 衡山路516号&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;深圳&lt;/DIV&gt; &lt;DIV&gt;星期五，3月16日&lt;/DIV&gt; &lt;DIV&gt;场地: 深圳香格里拉大酒店, 珠海厅和香港厅&lt;/DIV&gt; &lt;DIV&gt;深圳市建设路1002号火车站东侧&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;演讲者&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;琚伟(Wayne Ju)&lt;/DIV&gt; &lt;DIV&gt;李维(Gordon Li)&lt;/DIV&gt; &lt;DIV&gt;范路(Luke Fan)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;议程&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;CodeGear开发者大会将包含2个场次，我们诚挚的邀请您参加适合您的场次或是同时参加2个场次:&lt;/DIV&gt; &lt;DIV&gt;上午场次 (Delphi 和 PHP)&lt;/DIV&gt; &lt;DIV&gt;9.00am&lt;/DIV&gt; &lt;DIV&gt;注册&lt;/DIV&gt; &lt;DIV&gt;9.30am&lt;/DIV&gt; &lt;DIV&gt;CodeGear 最新状况简介&lt;/DIV&gt; &lt;DIV&gt;10.00am&lt;/DIV&gt; &lt;DIV&gt;Delphi&lt;/DIV&gt; &lt;DIV&gt;11.15am&amp;nbsp;&amp;nbsp;&amp;nbsp; RAD Web Development with PHP&lt;/DIV&gt; &lt;DIV&gt;12.15pm&amp;nbsp;&amp;nbsp;&amp;nbsp; InterBase 2007&lt;/DIV&gt; &lt;DIV&gt;1.00pm&amp;nbsp;&amp;nbsp;&amp;nbsp; 上午场次闭幕&lt;/DIV&gt; &lt;DIV&gt;下午场次 (Java)&lt;/DIV&gt; &lt;DIV&gt;1.00pm&lt;/DIV&gt; &lt;DIV&gt;注册&lt;/DIV&gt; &lt;DIV&gt;1.30pm&amp;nbsp;&amp;nbsp;&amp;nbsp; CodeGear最新状况简介&lt;/DIV&gt; &lt;DIV&gt;2.00pm&lt;/DIV&gt; &lt;DIV&gt;JBuilder 2007&lt;/DIV&gt; &lt;DIV&gt;4.15pm&lt;/DIV&gt; &lt;DIV&gt;InterBase 2007&lt;/DIV&gt; &lt;DIV&gt;5.00pm&amp;nbsp;&amp;nbsp;&amp;nbsp; 下午场次闭幕&lt;/DIV&gt; &lt;DIV&gt;赶快预定你的座位吧！&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;（比上次的Delphi 2006发布会隆重多了，呵呵，只可惜我还在武汉，没有去上海上班。如果是四月举行这个活动就好了。）&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Go CodeGear!&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-6014724273071238314?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/6014724273071238314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/codegear.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6014724273071238314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6014724273071238314'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/codegear.html' title='免费的CodeGear开发者日'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-4210204000468911733</id><published>2012-01-02T20:17:00.031+08:00</published><updated>2012-01-02T20:17:37.955+08:00</updated><title type='text'>Borland传奇拾遗: CodeGear元年的计划</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Feb 27, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;说明：这些消息多数是从CodeGear员工的blog中整理出来。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;CodeGear的成立&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;CodeGear将于Q1正式成立，现在企业标识之类的东西已经经过了最后的审核阶段估计很快就会出来。有一种说法是今后CodeGear会在线销售T-Shirt之类的纪念品。这倒是一个很好的主意――毕竟我只有一件Borland标识的T-Shirt。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;新产品的发布&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;CodeGear将在Q1最后――即今年三月发布两个重要的产品，Delphi 2007 for Win32（Spacely）和Delphi for  PHP。后者李伟先生刚刚做了一篇blog来说明，我就不赘述了――虽然是个1.0的产品，但是看起来十分有Delphi  1那时的气势。前者则是完全针对Win32开发的IDE力作。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Delphi 2007 for Win32似乎并非此前一直传言很多的Highlander。它具有下面几个特点：&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;1 IDE需要.NET 2.0  Framework。由于Build框架完全转移到了MSbuild上面所以这个IDE还是需要.NET框架。（之前我还担心Code Beautifier  Collection能不能支持Delphi 2007，现在看来担心是多余的。）&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;2  全新的安装包。CodeGear放弃了之前使用多年的InstallShield的安装包制作技术，这一个新版本的安装包是使用InstallAware技术制作的，因此具有很高的灵活性和配置性，可以很方便的实现在线更新。一个例子就是文档的更新不再需要长时间的等待，只要CodeGear方面做出了更新，用户方面的文档就可以第一时间在线更新。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;3 VCL针对Vista操作系统作了修改，完全支持新的API。（当然，这个要求IDE安装在Vista上面才可以。）&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;4 RTL集成了更多的FastCode项目的精华，执行效率得到了大幅提高。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;5 IDE方面修改了很多地方，使得执行效率堪比Delphi 7。（特别是类似Delphi  7的悬停状视图得到了更多的测试应该是十分稳定了。）&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;6 DBExpress引擎的底层有了大幅的改写，现在是DBX  4了，但是保持了版本兼容性。这一修改大大的改善了DBX对于更多数据库的支持，也进一步强化了DBX数据库开发的能力，执行效率没有下降，在一些测试中还取得了明显的改善。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;应该说Delphi 2007并不是一个革命性的版本，没有加入泛型，没有.NET开发。但是这个版本应该可以消除Delphi  7以来Win32方面用户的怀疑，也可以巩固Delphi已有的用户族群。这一点对于现在的CodeGear来说无疑是十分重要的。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;这里有一位Beta测试人员的blog可以作为参考。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;Highlander？&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;可以想见由于Spacely的出现，Highlander计划包含的特性将会在下一个版本（Delphi 2008）中出现。在Delphi  Hour中Nick Hodges已经明确表示了CodeGear将不再尾随MS的步伐，而是更加贴近用户的需求。这似乎意味着说不定Highlander中间.NET  2.0/3.0的支持为Unicode VCL和Win64让路。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;不论如何，这说明CodeGear确实是在遵循Where Developers  Matter这一准则，确实是在努力的开发用户所需要的产品，推进着技术的进步。因此这样的产品一定会取得市场的响应，重现Borland当年的辉煌。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;其他&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;据说不久将会出来一个JBuilder 2007 Release 2，不知道是不是真的。很期待JBuilder的新面貌。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;PHP的新产品之后，CodeGear下一个目标就是Ruby。不过Ruby将会加入哪一条产品线是一个问题。PHP最后还是同Delphi作了邻居。但是Ruby这边很可能就是借用JBuilder/Eclipse的点子。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;CodeRage&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;由于时间的关系，我就不打算注册CodeRage了，不过，这确实是一个难得的盛事。免费的年会，而且完全是藉由互联网搭建的虚拟会议。好主意。正如现在CodeGear主页上面所宣传的，可以在家里享受到Borland  Conference的感受。如果你有空的话，不妨注册并且参与这个难得的年会。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-4210204000468911733?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/4210204000468911733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/borland-codegear.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4210204000468911733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4210204000468911733'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/borland-codegear.html' title='Borland传奇拾遗: CodeGear元年的计划'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-9209290375095047349</id><published>2012-01-02T20:17:00.029+08:00</published><updated>2012-01-02T20:17:36.687+08:00</updated><title type='text'>The long goodbye</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Feb 07, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;I have been using this blog long. In the latest months I have been  struggling a lot. Because I could not stand up the poor quality CSDN Blog  Service, I was searching for alternatives.&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;There are several factors a new service has to met:&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;1. CERNET access. I should be able to write entries without a proxy server  and my classmates can access it.&lt;/DIV&gt; &lt;DIV&gt;2. Firefox compatibility. Live Spaces fails to meet this.&lt;/DIV&gt; &lt;DIV&gt;3. Easy to use.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;After all, I find Blogger today. Soon I will stop posting here and build up  a new blog there. Thanks for those who read and comment here. You may see my new  blog here:&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A href="http://lextm.blogspot.com/"&gt;http://lextm.blogspot.com/&lt;/A&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;P.S., I have to mention that in fact, CSDN provides more features than  Blogger. However, I am caring about stability more.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;也懒得逐字翻译。上面的意思就是说CSDN的blog服务我受够了，马上就转到谷歌Blogger上面去了。请关注这个博客的朋友们注意更改你们的RSS设置。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-9209290375095047349?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/9209290375095047349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/long-goodbye.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/9209290375095047349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/9209290375095047349'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/long-goodbye.html' title='The long goodbye'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-1951915923610312459</id><published>2012-01-02T20:17:00.027+08:00</published><updated>2012-01-02T20:17:33.129+08:00</updated><title type='text'>HardQuery Report: the Release 2 Update 2 RC 5 improvement</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Feb 02, 2006)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;When you edit a C# XML comments such as&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Logging service class.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;Debug related functions such as  &amp;lt;see cref="Debug"&amp;gt;Debug&amp;lt;/see&amp;gt;,&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;see  cref="EnterMethod"&amp;gt;EnterMethod&amp;lt;/see&amp;gt;, and &amp;lt;see  cref="LeaveMethod()"&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// LeaveMethod&amp;lt;/see&amp;gt; are&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// available only in Debug Build  mode.&amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;and press Alt + Q in Delphi 2006 with CBC installed, you may see the Doc  Preview dialog and see a few hyper links in it. However, when you click on one  link, because the target page is not available, an annoying default error page  of IE will be displayed. It is a bug, but I cannot fix it until the day before  yesterday.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;When I was asked to browse an article on the Code Project for a friend, I  came across an x.doc plug in for VS which does similar task as CBC Doc Preview.  In the article, its author shows how to prevent the above mentioned error page.  In fact, the browsing action should be disabled when a user clicks the links. I  found his idea and used it in CBC now. As a result, a long life bug is now  fixed.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-1951915923610312459?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/1951915923610312459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-release-2-update-2-rc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1951915923610312459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1951915923610312459'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-release-2-update-2-rc.html' title='HardQuery Report: the Release 2 Update 2 RC 5 improvement'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-6476885048089807936</id><published>2012-01-02T20:17:00.025+08:00</published><updated>2012-01-02T20:17:30.383+08:00</updated><title type='text'>See my translation at DN.CodeGear.com</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Feb 02, 2006)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;I have sent my translation of DN strings to John Kaster. And now, you can  see them there.&amp;nbsp; Oh my god, it is another great chance that my efforts  serve so many people. Thanks to the CodeGear guys who make a flexible web  site.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;If you'd like to translation the site to your native language, you should  read this ahead. Let's make CodeGear a better place for  developers.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-6476885048089807936?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/6476885048089807936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/see-my-translation-at-dncodegearcom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6476885048089807936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6476885048089807936'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/see-my-translation-at-dncodegearcom.html' title='See my translation at DN.CodeGear.com'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-1899342953816346868</id><published>2012-01-02T20:17:00.023+08:00</published><updated>2012-01-02T20:17:28.253+08:00</updated><title type='text'>HardQuery Report: Who freezes BDS when launching</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Feb 01, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Hi Lex,&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;I tried to use your CBC in D2006 but it prevents D2006 from opening. &lt;/DIV&gt; &lt;DIV&gt;Completely freezers up the loading process.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;I would like to have a look when you get this resolved so please keep me  &lt;/DIV&gt; &lt;DIV&gt;posted.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Kind Regards&lt;/DIV&gt; &lt;DIV&gt;Grant Brown&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;==========================&lt;/DIV&gt; &lt;DIV&gt;This is another email sent from a CBC's user. Thanks Grant.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;And the following is my reply:&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;==========================&lt;/DIV&gt; &lt;DIV&gt;Grant,&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Thanks for reporting this. &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;When I worked on older versions of CBC, I already met this hundreds of  times. The only work around I see so far is to kill the bds.exe process in  Windows Task Manager, and then restart Delphi 2006. For me this works fine. You  can have a try to see if it works for you.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;I have been digging to see what is the matter but I find out that it is  csc.exe (the C# compiler) process that actually blocks Delphi 2006. If you kill  this process at first, the frozen Delphi 2006 will be active. As a result, I  think it is something wrong inside the compiler, not CBC.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;However, I guess there may be some bugs left inside the InDate feature. So  if the workaround above does work, you can turn off InDate feature in the Plus  Manager of CBC to see whether anything else goes fine.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Thanks again for your report.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Best regards&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Lex Mark&lt;/DIV&gt; &lt;DIV&gt;2007.01.31&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;====================&lt;/DIV&gt; &lt;DIV&gt;Why I post the emails here?&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;1. Wish you could send me bug report every time you meet one bug.&lt;/DIV&gt; &lt;DIV&gt;2. Quick reply from me may not be included in the Readme.pdf shipped along  the installer. Adding entries to&amp;nbsp; this blog may be quicker.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;BTW, you can send me feature requests or suggestions,  too.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-1899342953816346868?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/1899342953816346868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-who-freezes-bds-when.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1899342953816346868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1899342953816346868'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-who-freezes-bds-when.html' title='HardQuery Report: Who freezes BDS when launching'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-8394180011095855118</id><published>2012-01-02T20:17:00.021+08:00</published><updated>2012-01-02T20:17:25.913+08:00</updated><title type='text'>CBC Code Templates</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Jan 31, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Pawel Glowacki, a CodeGear guy, blogged about his xdoc Code Template  here.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;The fact is that I have done a few xml-comments-related templates when  designing CBC. After installing CBC, there is a menu item in the Start Menu  named ''Install extra templates''. Click it and a few C# templates will be  added.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;You can download CBC from &lt;A  href="http://cc.codegear.com/Item/24010"&gt;http://cc.codegear.com/Item/24010&lt;/A&gt;.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;The only problem is that these templetes are manual, not auto.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;In fact I am wondering why Delphi cannot generate basic xml comments for  us. SharpDevelop has such a nice feature.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;The usage of these templates are complex because the IDE does not work as I  expect.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;The templates do not have "///" in the beginning. I make it because after  typing a line of xml comments and hitting the ENTER, BDS will lead you to the  next line and append "///" automatically. &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;However, keywords after "///" will not be fired by SPACE or TAB, so you  must use CTRL + J.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;An example of using the templates is&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;1. type ///.&lt;/DIV&gt; &lt;DIV&gt;2. type sum or summ.&lt;/DIV&gt; &lt;DIV&gt;3. Hit CTRL + J, and the template ''summary'' is triggered.&lt;/DIV&gt; &lt;DIV&gt;4. After finishing this tag, hit ENTER.&lt;/DIV&gt; &lt;DIV&gt;5. The IDE adds /// for you. &lt;/DIV&gt; &lt;DIV&gt;6. Type re.&lt;/DIV&gt; &lt;DIV&gt;7. Hit CTRL + J, and choose remarks tag from the popped list.&lt;/DIV&gt; &lt;DIV&gt;8. Finish the remarks  tag.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-8394180011095855118?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/8394180011095855118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/cbc-code-templates.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/8394180011095855118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/8394180011095855118'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/cbc-code-templates.html' title='CBC Code Templates'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-1603405827199911319</id><published>2012-01-02T20:17:00.019+08:00</published><updated>2012-01-02T20:17:23.582+08:00</updated><title type='text'>HardQuery Report: Ready for Highlander</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Jan 30, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;According to the latest Delphi Hour, field test process of Higlander will  start soon. A piece of very good news. &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Now I am still not sure if CBC is ready to go with it. After some testings  I find the code works well under .NET 2.0. But I do not know what new features  will be available in Highlander, and whether they conflicts to CBC's features.  So we must be patient enough. &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;In my opinion Highlander will be released in April or May. But it must be  out before we get tired of BDS 2006, isn't it? However, in fact I think BDS 2006  is good enough for .NET 1.1.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;In order to make a small difference between LeXtudio (the office) and Code  Beautifier Collection (the product), in the latest version you see a new icon I  made for CBC (the old icon will be reserved for LeXtudio) in GIMP. It is a sole  that has three claws.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Many changes are delayed to GrapeVine but in the latest versions of  HardQuery I keep cleaning the code. I wish by the time Highlander is released  CBC's codebase would have been nice and tidy.&amp;nbsp; As a result, although there  are few new features, a solid base for later additions will be created.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Stay tuned and the R2U2 will be available  soon.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-1603405827199911319?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/1603405827199911319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-ready-for-highlander.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1603405827199911319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1603405827199911319'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-ready-for-highlander.html' title='HardQuery Report: Ready for Highlander'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-1669454976129712824</id><published>2012-01-02T20:17:00.017+08:00</published><updated>2012-01-02T20:17:21.299+08:00</updated><title type='text'>Why I love taking buses now?</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Jan 25, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Every time I go home I have to stay on the bus for an hour and a half. It  seemed to be boring in the past, watching through the windows. However, I start  reading books during this period. Yep, I know it is bad for my eyes. However, I  only read the titles and pictures, and ignore those tiny little letters.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;For example, Martin Fowler's UML Distilled is my latest favourite. I love  the sketches he draws. Personally I prefer Together to Visio but I think no  matter which tool is used, the meaning of the diagram is the key. When I watch a  diagram I will first try to guess its meaning. As a matter of fact, most of UML  diagrams are not hard to understand. What's boring is the details but they can  be ignored at first. After knowing the diagram's meaning I try to focus on the  details. I have drawn a few diagrams before I read this book, so I can see what  in these diagrams I do not understand. Then I can choose to read only a few  lines of Martin's description and find it out. Thus, in all, I spend most of the  time thinking, not reading.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Travelling on a bus is now more pleasing than ever. In this way, I have  finished reading Refactoring to Patterns and Design Patterns twice in the second  half of 2006. And thanks to the efforts, CBC have evolved a lot.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Reading is fun.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-1669454976129712824?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/1669454976129712824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/why-i-love-taking-buses-now.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1669454976129712824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1669454976129712824'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/why-i-love-taking-buses-now.html' title='Why I love taking buses now?'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-864605644118058936</id><published>2012-01-02T20:17:00.015+08:00</published><updated>2012-01-02T20:17:19.310+08:00</updated><title type='text'>HardQuery Report: RC 3 and 4 gives you a better AutoComplete feature.</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Jan 25, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;I have been working on this piece for long and finally make it clear this  time. A little bit help for Patterns and Refactorings make things easy  again.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Also I use an AutoCompleteComboBox unit for The Code Project done by Matt  Berther. Although it is not perfect, I find it useful on .NET 1.1 --- on .NET  2.0, AutoComplete is already a feature of ComboBox.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;So try it now and stay tuned. The Update 2 is on its  way.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-864605644118058936?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/864605644118058936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-rc-3-and-4-gives-you.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/864605644118058936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/864605644118058936'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-rc-3-and-4-gives-you.html' title='HardQuery Report: RC 3 and 4 gives you a better AutoComplete feature.'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-139398940736827222</id><published>2012-01-02T20:17:00.013+08:00</published><updated>2012-01-02T20:17:16.971+08:00</updated><title type='text'>HardQuery Report: 5.3.2 RC 2 is out.</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Jan 17, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Today I received a letter from Pierre-Jean.Robin. In fact, it is a bug  report.&lt;/DIV&gt; &lt;DIV&gt;Hello,&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;I have just installed Code Beautifier V5.3.1.1123 and have a problem with  beautifying a document (i run Delphi 2006): the source code is a Delphi unit  with 2500 lines. Pressing ctrl+W starts de beautifier but it deletes the end of  the source code ! It deletes approximately the last 200 lines of the unit… I  have problems with smaller source code. What's wrong ??&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Pierre-Jean&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Since the description is so clear, I can easily reproduce the bug using a  OTA source file ToolsAPI.pas. And for this 5000+ lines file, the bug is even  clearer, because only about 50 lines left! &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;After debugging for a while, I found that jcf.exe worked fine, so I knew it  was something wrong inside CBC. FillBufferWithFile was tested first, and it was  okay. Then I was sure CreateFileFromBuffer was the problem. As a matter of fact,  these two functions were implemented by David for Sharp Builder Tools and both  of them contained bugs.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Now the bug is fixed and I am releasing a new build. &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;I'd like to say thank you again for all my dear friends for your support.  And what I can do to pay back is working hard on this project in the  future.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Stay tuned.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;P.S.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;This bug affects all versions from 5.2.0 to 5.3.1, and 5.3.2.1001. If you  are using one of this versions I recommend you download this  RC.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-139398940736827222?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/139398940736827222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-532-rc-2-is-out.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/139398940736827222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/139398940736827222'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-532-rc-2-is-out.html' title='HardQuery Report: 5.3.2 RC 2 is out.'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-5727984504555210123</id><published>2012-01-02T20:17:00.011+08:00</published><updated>2012-01-02T20:17:14.909+08:00</updated><title type='text'>HardQuery Report: New RC and File Aid</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Jan 15, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Lately I have been working on the UI, or more precise, the forms and  dialogs. As a result, the File Aid feature is a good assistant. However, David's  implementation is buggy because of OTA bugs. Not all Forms are listed in the  WinForms Tab.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;In this latest buildI present a brand new File Aid. Everything is redone  and Interpreter Pattern is used to make code clean --- I am not sure if it is  Pattern Happy here.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;I have been working on HardQuery for a long time, and I wish Highlander  could be released by CodeGear soon. Only after that I can build some GrapeVine,  isn't it?&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Stay tuned.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-5727984504555210123?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/5727984504555210123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-new-rc-and-file-aid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/5727984504555210123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/5727984504555210123'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-new-rc-and-file-aid.html' title='HardQuery Report: New RC and File Aid'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-5296564136547392568</id><published>2012-01-02T20:17:00.009+08:00</published><updated>2012-01-02T20:17:13.034+08:00</updated><title type='text'>JBuilder Hour</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Jan 12, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;JBuilder 2007发布已经了一段日子，而Borland  CodeGear也是攒足了劲来推广这个自立门户后第一个重量级的新产品。下面就是CodeGear精心准备的一些资源：&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;录像资源：&lt;A  href="http://dn.codegear.com/article/33880"&gt;http://dn.codegear.com/article/33880&lt;/A&gt;&lt;/DIV&gt; &lt;DIV&gt;访谈节目：&lt;A  href="http://dn.codegear.com/article/33964"&gt;http://dn.codegear.com/article/33964&lt;/A&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Delphi Hour开播已经几个月了，现在JBuilder  Hour也开始了运作。CodeGear也一直在兑现承诺――更好的为开发者服务。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;当然，还有试用版可以下载了。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-5296564136547392568?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/5296564136547392568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/jbuilder-hour.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/5296564136547392568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/5296564136547392568'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/jbuilder-hour.html' title='JBuilder Hour'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-2608341888931652885</id><published>2012-01-02T20:17:00.007+08:00</published><updated>2012-01-02T20:17:10.840+08:00</updated><title type='text'>HardQuery Report: 1.0 and 0.9, WiseEditor and NFamily</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Jan 12, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Many features of WiseEditor and NFamily are taken from Sharp Builder Tools.  However, after some investigation I find some places inconvenient. For example,  the File Aid dialog, FormViewFiles, is complex. I decide to update it in the  coming weeks. While doing this, I will also fix some UI bugs in NFamily Plus ---  there are many, I am sorry. But you see they are version 1.0 and 0.9 now. I wish  soon I could make them better.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Doing something new sometimes is easier than maintaining old code. However,  I think many features David implemented for Sharp Builder Tools is still useful  for BDS 2006 users. As a result, I will do my best. Luckily, Refactoring and  Patterns help me a lot along the way.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;When all is said and done, I think an Update 2 (5.3.2) will  come.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-2608341888931652885?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/2608341888931652885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-10-and-09-wiseeditor.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/2608341888931652885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/2608341888931652885'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-10-and-09-wiseeditor.html' title='HardQuery Report: 1.0 and 0.9, WiseEditor and NFamily'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-4717726051818637472</id><published>2012-01-02T20:17:00.005+08:00</published><updated>2012-01-02T20:17:09.218+08:00</updated><title type='text'>Stopwatch的手术</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Jan 08, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;本来设计Stopwatch的时候，仅仅打算实现Boost库中的timer类型就好了。不过，一个用来测量时间间隔的Elapse函数也用处不小。这样的一个单元本来已经够用了。但是元旦的时候遇上了一个新的问题，一个Stopwatch能否在某段时间停止工作，然后在另一个时刻被唤醒然后继续工作？这样的需求导致了我又加上了挂起和继续两个操作。代码也就因此变得复杂起来。  这样一来自然就引发了重构的问题。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;从感觉来看，向着State模式前进总是可以的。所以开始的时候加入了一些状态的东西，不过仔细看起来还是问题不少。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;// lextm: this is stopwatch class.&lt;/DIV&gt; &lt;DIV&gt;// Copyright (C) 2006-2007&amp;nbsp; Lex Mark&lt;/DIV&gt; &lt;DIV&gt;// &lt;/DIV&gt; &lt;DIV&gt;// This library is free software; you can redistribute it and/or&lt;/DIV&gt; &lt;DIV&gt;// modify it under the terms of the GNU Lesser General Public&lt;/DIV&gt; &lt;DIV&gt;// License as published by the Free Software Foundation; either&lt;/DIV&gt; &lt;DIV&gt;// version 2.1 of the License, or (at your option) any later version.&lt;/DIV&gt; &lt;DIV&gt;// &lt;/DIV&gt; &lt;DIV&gt;// This library is distributed in the hope that it will be useful,&lt;/DIV&gt; &lt;DIV&gt;// but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/DIV&gt; &lt;DIV&gt;// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&amp;nbsp; See the  GNU&lt;/DIV&gt; &lt;DIV&gt;// Lesser General Public License for more details.&lt;/DIV&gt; &lt;DIV&gt;// &lt;/DIV&gt; &lt;DIV&gt;// You should have received a copy of the GNU Lesser General Public&lt;/DIV&gt; &lt;DIV&gt;// License along with this library; if not, write to the Free  Software&lt;/DIV&gt; &lt;DIV&gt;// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA&amp;nbsp;  02111-1307&lt;/DIV&gt; &lt;DIV&gt;using System;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;namespace Lextm.Diagnostics {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Stopwatch class.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class Stopwatch {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Construtor.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Stopwatch( ) {}&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Starts the timing.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;seealso  cref="Stop"/&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;seealso  cref="Suspend"/&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;seealso  cref="Value"/&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;seealso  cref="Interval"/&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Restart( ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  internalState = new State();&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  internalState.Start();&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Stops the timing.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;remarks&amp;gt;Once stopped,  you have to &amp;lt;see cref="Restart"&amp;gt;&amp;lt;/see&amp;gt; it.&amp;lt;/remarks&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;seealso  cref="Restart"/&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Stop( ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  internalState.Stop();&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  internalState = null;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Resumes a timing.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;seealso  cref="Suspend"/&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Resume( ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if  (internalState != null) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  internalState.Wake();&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Suspends timing.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;seealso  cref="Resume"/&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Suspend( ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if  (internalState != null) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  internalState.Sleep(null);&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Count in milliseconds.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;remarks&amp;gt;This counts  from the beginning of timing.&amp;lt;/remarks&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;seealso  cref="Interval"/&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int Value {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get  {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  if (internalState == null) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  return 0;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  } else {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  return internalState.GetValue();&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Interval in  milliseconds.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;seealso  cref="Value"/&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;remarks&amp;gt;This returns  a count of interval since last call of this function.&amp;lt;/remarks&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int Interval {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get  {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  if (internalState == null) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  return 0;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  } else {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  return internalState.GetInterval();&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private State1  internalState;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;}&lt;/DIV&gt; &lt;DIV&gt;看看上面的代码你可以感觉到两种明显的Bad Smell。&lt;/DIV&gt; &lt;DIV&gt;首先，太多的if == null判断。熟悉模式的同志自然看出可以使用Null Object――不过还是按照Martin  owler的习惯叫作Special Cases更好。&lt;/DIV&gt; &lt;DIV&gt;其次，sleeping这个标志位引发了太多的判断，造成了代码书写的凌乱。这个可以通过向State模式重构来解决。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;此外的问题是很多例外的情况都没有做处理，比如连续Stop两次，会是什么情况？不过一旦完成了整个重构，这样的问题应该会迎刃而解。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;重构的步骤在BDS 2006中可以分为下面几步：&lt;/DIV&gt; &lt;DIV&gt;1  将涉及状态转换的几个函数参数列表修改。Start，Sleep，Wake，Stop都加上一个Stopwatch类型的参数，因为Stopwatch这个类在最后的State模式中将作为Context存在。此外为了统一起见，后面将四个状态转换操作统一命名为Start,  Stop, Suspend, Resume。&lt;/DIV&gt; &lt;DIV&gt;2  从已有的State类型中抽离出一个CustomState基类型。同时给Stopwatch和CustomState加上SetState函数。这个自然是State模式的一点要求了。&lt;/DIV&gt; &lt;DIV&gt;3 创建一个继承于CustomState的Dead类型，作为Special  Case。该类型仅仅在Start函数被调用时修改Context状态为State。同时在Dead类型下面的Value和Interval输出都设为0。&lt;/DIV&gt; &lt;DIV&gt;4  将原来的State拆分为两个具体的状态，Working和Idle。根据就是sleeping标志。这样最后实现了下图所示的一个状态转换设计。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;上面几步中比较复杂的就是第四步，因为Idle和Working两者的转换比较复杂。到底保存哪些信息可以很好的保存Working状态下面的数据到Idle中，怎么才能够很好的从Idle状态复原到Working状态。这都有些许的麻烦。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;总体来说，重构到模式的确很方便，免去了开头就要一步设计到位的难度。虽然Stopwatch是一个很小的部件，但是看得出来想实现一些更加灵活的测量功能，没有合理的设计是比较复杂和容易出错的。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A title=http://www.flickr.com/photos/lextm/6587031081/in/photostream  href="http://www.flickr.com/photos/lextm/6587031081/in/photostream"&gt;http://www.flickr.com/photos/lextm/6587031081/in/photostream&lt;/A&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A title=http://www.flickr.com/photos/lextm/6587031109/in/photostream  href="http://www.flickr.com/photos/lextm/6587031109/in/photostream"&gt;http://www.flickr.com/photos/lextm/6587031109/in/photostream&lt;/A&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;重构的结果如上图，分为五个单元：&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Stopwatch.cs&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;// lextm: this is stopwatch class.&lt;/DIV&gt; &lt;DIV&gt;// Copyright (C) 2006-2007&amp;nbsp; Lex Mark&lt;/DIV&gt; &lt;DIV&gt;//&lt;/DIV&gt; &lt;DIV&gt;// This library is free software; you can redistribute it and/or&lt;/DIV&gt; &lt;DIV&gt;// modify it under the terms of the GNU Lesser General Public&lt;/DIV&gt; &lt;DIV&gt;// License as published by the Free Software Foundation; either&lt;/DIV&gt; &lt;DIV&gt;// version 2.1 of the License, or (at your option) any later version.&lt;/DIV&gt; &lt;DIV&gt;//&lt;/DIV&gt; &lt;DIV&gt;// This library is distributed in the hope that it will be useful,&lt;/DIV&gt; &lt;DIV&gt;// but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/DIV&gt; &lt;DIV&gt;// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&amp;nbsp; See the  GNU&lt;/DIV&gt; &lt;DIV&gt;// Lesser General Public License for more details.&lt;/DIV&gt; &lt;DIV&gt;//&lt;/DIV&gt; &lt;DIV&gt;// You should have received a copy of the GNU Lesser General Public&lt;/DIV&gt; &lt;DIV&gt;// License along with this library; if not, write to the Free  Software&lt;/DIV&gt; &lt;DIV&gt;// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA&amp;nbsp;  02111-1307&lt;/DIV&gt; &lt;DIV&gt;using System;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;namespace Lextm.Diagnostics {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Stopwatch class.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class Stopwatch {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Construtor.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Stopwatch( ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  internalState = new Dead();&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Starts the timing.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;seealso  cref="Stop"/&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;seealso  cref="Suspend"/&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;seealso  cref="Value"/&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;seealso  cref="Interval"/&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;remarks&amp;gt;If it is  working, it will ignore other &amp;lt;see cref="Start"/&amp;gt;  calls.&amp;lt;/remarks&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Start( ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  internalState.Start(this);&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Stops the timing.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;remarks&amp;gt;Once stopped,  you have to &amp;lt;see cref="Start"&amp;gt;&amp;lt;/see&amp;gt; it.&amp;lt;/remarks&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;seealso  cref="Start"/&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Stop( ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  internalState.Stop(this);&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Resumes a timing.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;seealso  cref="Suspend"/&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Resume( ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  internalState.Resume(this);&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Suspends timing.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;seealso  cref="Resume"/&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void Suspend( ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  internalState.Suspend(this);&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Count in milliseconds.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;remarks&amp;gt;This counts  from the beginning of timing.&amp;lt;/remarks&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;seealso  cref="Interval"/&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int Value {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get  {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  return internalState.GetValue();&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Interval in  milliseconds.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;seealso  cref="Value"/&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;remarks&amp;gt;This returns  a count of interval since last call of this function.&amp;lt;/remarks&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int Interval {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get  {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  return internalState.GetInterval();&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private  Lextm.Diagnostics.CustomState internalState;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; internal void SetState(  CustomState state ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  this.internalState = state;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;}&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;CustomState.cs&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;// lextm: this is custom state class.&lt;/DIV&gt; &lt;DIV&gt;// Copyright (C) 2007&amp;nbsp; Lex Mark&lt;/DIV&gt; &lt;DIV&gt;//&lt;/DIV&gt; &lt;DIV&gt;// This library is free software; you can redistribute it and/or&lt;/DIV&gt; &lt;DIV&gt;// modify it under the terms of the GNU Lesser General Public&lt;/DIV&gt; &lt;DIV&gt;// License as published by the Free Software Foundation; either&lt;/DIV&gt; &lt;DIV&gt;// version 2.1 of the License, or (at your option) any later version.&lt;/DIV&gt; &lt;DIV&gt;//&lt;/DIV&gt; &lt;DIV&gt;// This library is distributed in the hope that it will be useful,&lt;/DIV&gt; &lt;DIV&gt;// but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/DIV&gt; &lt;DIV&gt;// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&amp;nbsp; See the  GNU&lt;/DIV&gt; &lt;DIV&gt;// Lesser General Public License for more details.&lt;/DIV&gt; &lt;DIV&gt;//&lt;/DIV&gt; &lt;DIV&gt;// You should have received a copy of the GNU Lesser General Public&lt;/DIV&gt; &lt;DIV&gt;// License along with this library; if not, write to the Free  Software&lt;/DIV&gt; &lt;DIV&gt;// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA&amp;nbsp;  02111-1307&lt;/DIV&gt; &lt;DIV&gt;namespace Lextm.Diagnostics {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Base class for stopwatch states.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; internal abstract class CustomState {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public abstract int GetInterval(  );&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public abstract void Suspend(  Lextm.Diagnostics.Stopwatch context );&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public abstract void Resume(  Lextm.Diagnostics.Stopwatch context );&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public abstract void Stop(  Lextm.Diagnostics.Stopwatch context );&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public abstract void Start(  Lextm.Diagnostics.Stopwatch context );&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public abstract int GetValue(  );&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void SetState(  Stopwatch context, CustomState state ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  context.SetState(state);&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;}&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Dead.cs&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;// lextm: this is dead state class.&lt;/DIV&gt; &lt;DIV&gt;// Copyright (C) 2007&amp;nbsp; Lex Mark&lt;/DIV&gt; &lt;DIV&gt;//&lt;/DIV&gt; &lt;DIV&gt;// This library is free software; you can redistribute it and/or&lt;/DIV&gt; &lt;DIV&gt;// modify it under the terms of the GNU Lesser General Public&lt;/DIV&gt; &lt;DIV&gt;// License as published by the Free Software Foundation; either&lt;/DIV&gt; &lt;DIV&gt;// version 2.1 of the License, or (at your option) any later version.&lt;/DIV&gt; &lt;DIV&gt;//&lt;/DIV&gt; &lt;DIV&gt;// This library is distributed in the hope that it will be useful,&lt;/DIV&gt; &lt;DIV&gt;// but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/DIV&gt; &lt;DIV&gt;// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&amp;nbsp; See the  GNU&lt;/DIV&gt; &lt;DIV&gt;// Lesser General Public License for more details.&lt;/DIV&gt; &lt;DIV&gt;//&lt;/DIV&gt; &lt;DIV&gt;// You should have received a copy of the GNU Lesser General Public&lt;/DIV&gt; &lt;DIV&gt;// License along with this library; if not, write to the Free  Software&lt;/DIV&gt; &lt;DIV&gt;// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA&amp;nbsp;  02111-1307&lt;/DIV&gt; &lt;DIV&gt;namespace Lextm.Diagnostics {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// The dead state. &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;remarks&amp;gt;A stopwatch is in this state before  &amp;lt;see cref="Start"/&amp;gt; and after &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;see cref="Stop"&amp;gt;&amp;lt;/see&amp;gt;. As a result  &amp;lt;see cref="Resume"/&amp;gt;, &amp;lt;see cref="Suspend"/&amp;gt;,&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;see cref="Stop"/&amp;gt; calls will be  ignored.&amp;lt;/remarks&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; internal class Dead : CustomState {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void Suspend(  Lextm.Diagnostics.Stopwatch context ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void Resume(  Lextm.Diagnostics.Stopwatch context ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void Stop(  Lextm.Diagnostics.Stopwatch context ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override int GetInterval(  ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return  0;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void Start(  Lextm.Diagnostics.Stopwatch context ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  SetState(context, new Working());&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override int GetValue( )  {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return  0;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;}&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Working.cs&lt;/DIV&gt; &lt;DIV&gt;// lextm: this is working state class.&lt;/DIV&gt; &lt;DIV&gt;// Copyright (C) 2007&amp;nbsp; Lex Mark&lt;/DIV&gt; &lt;DIV&gt;//&lt;/DIV&gt; &lt;DIV&gt;// This library is free software; you can redistribute it and/or&lt;/DIV&gt; &lt;DIV&gt;// modify it under the terms of the GNU Lesser General Public&lt;/DIV&gt; &lt;DIV&gt;// License as published by the Free Software Foundation; either&lt;/DIV&gt; &lt;DIV&gt;// version 2.1 of the License, or (at your option) any later version.&lt;/DIV&gt; &lt;DIV&gt;//&lt;/DIV&gt; &lt;DIV&gt;// This library is distributed in the hope that it will be useful,&lt;/DIV&gt; &lt;DIV&gt;// but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/DIV&gt; &lt;DIV&gt;// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&amp;nbsp; See the  GNU&lt;/DIV&gt; &lt;DIV&gt;// Lesser General Public License for more details.&lt;/DIV&gt; &lt;DIV&gt;//&lt;/DIV&gt; &lt;DIV&gt;// You should have received a copy of the GNU Lesser General Public&lt;/DIV&gt; &lt;DIV&gt;// License along with this library; if not, write to the Free  Software&lt;/DIV&gt; &lt;DIV&gt;// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA&amp;nbsp;  02111-1307&lt;/DIV&gt; &lt;DIV&gt;using System;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;namespace Lextm.Diagnostics {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// The working state.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;remarks&amp;gt;&amp;lt;see cref="Start"/&amp;gt; and &amp;lt;see  cref="Resume"/&amp;gt; calls are ignored.&amp;lt;/remarks&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; internal class Working : CustomState {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private readonly int  lastTick;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private int  lastValueBeforeInterval;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void Suspend(  Lextm.Diagnostics.Stopwatch context ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int  valueBeforeSleep = Environment.TickCount - lastTick;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int  lastInterval = GetInterval();&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  SetState(context, new Idle(valueBeforeSleep, lastInterval));&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void Resume(  Lextm.Diagnostics.Stopwatch context ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void Stop(  Lextm.Diagnostics.Stopwatch context ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  SetState(context, new Dead());&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override int GetInterval(  ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int  result = (Environment.TickCount - lastTick) - lastValueBeforeInterval;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  lastValueBeforeInterval = (Environment.TickCount - lastTick);&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return  result;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void Start(  Lextm.Diagnostics.Stopwatch context ) {}&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override int GetValue( )  {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return  Environment.TickCount - lastTick;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Working( ) :&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  this(0, 0) {}&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Working( int value )  :&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  this(value, 0) {}&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Working( int value, int  interval ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lastTick  = Environment.TickCount - value;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  lastValueBeforeInterval = value - interval;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;}&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Idle.cs&lt;/DIV&gt; &lt;DIV&gt;// lextm: this is idle state class.&lt;/DIV&gt; &lt;DIV&gt;// Copyright (C) 2007&amp;nbsp; Lex Mark&lt;/DIV&gt; &lt;DIV&gt;//&lt;/DIV&gt; &lt;DIV&gt;// This library is free software; you can redistribute it and/or&lt;/DIV&gt; &lt;DIV&gt;// modify it under the terms of the GNU Lesser General Public&lt;/DIV&gt; &lt;DIV&gt;// License as published by the Free Software Foundation; either&lt;/DIV&gt; &lt;DIV&gt;// version 2.1 of the License, or (at your option) any later version.&lt;/DIV&gt; &lt;DIV&gt;//&lt;/DIV&gt; &lt;DIV&gt;// This library is distributed in the hope that it will be useful,&lt;/DIV&gt; &lt;DIV&gt;// but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/DIV&gt; &lt;DIV&gt;// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&amp;nbsp; See the  GNU&lt;/DIV&gt; &lt;DIV&gt;// Lesser General Public License for more details.&lt;/DIV&gt; &lt;DIV&gt;//&lt;/DIV&gt; &lt;DIV&gt;// You should have received a copy of the GNU Lesser General Public&lt;/DIV&gt; &lt;DIV&gt;// License along with this library; if not, write to the Free  Software&lt;/DIV&gt; &lt;DIV&gt;// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA&amp;nbsp;  02111-1307&lt;/DIV&gt; &lt;DIV&gt;using System;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;namespace Lextm.Diagnostics {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// The idle state.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;remarks&amp;gt;The stopwatch is in this state  between &amp;lt;see cref="Suspend"/&amp;gt; and &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;see cref="Resume"/&amp;gt;. So &amp;lt;see  cref="Start"/&amp;gt; and &amp;lt;see cref="Suspend"/&amp;gt; calls &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// are ignored.&amp;lt;/remarks&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; internal class Idle : CustomState {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void Start(  Stopwatch context ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void Stop(  Stopwatch context ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  SetState(context, new Dead());&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void Suspend(  Stopwatch context ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void Resume(  Stopwatch context ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if  (thisInterval == 0) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  SetState(context, new Working(valueBeforeIdle));&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else  {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  SetState(context, new Working(valueBeforeIdle, intervalBeforeIdle));&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override int GetValue( )  {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return  valueBeforeIdle;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override int GetInterval(  ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int  result = thisInterval;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  thisInterval -= thisInterval;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return  result;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private readonly int  valueBeforeIdle;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private readonly int  intervalBeforeIdle;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private int thisInterval;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Idle( int value, int  interval ) {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  valueBeforeIdle = value;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  intervalBeforeIdle = interval;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  thisInterval = interval;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt; &lt;DIV&gt;}&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-4717726051818637472?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/4717726051818637472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/stopwatch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4717726051818637472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4717726051818637472'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/stopwatch.html' title='Stopwatch的手术'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-2336919369179245826</id><published>2012-01-02T20:17:00.003+08:00</published><updated>2012-01-02T20:17:04.869+08:00</updated><title type='text'>隐藏在Thinking in Java中的Delphi信息</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Jan 08, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;作为知名的C++/Java技术专家，Bruce Eckel的Thinking in  C++/Java系列一直是畅销书。不过，仔细看看书中一些容易被忽略的细节，可以看出Bruce同Delphi也有不小的联系。&lt;/DIV&gt; &lt;OL&gt;   &lt;LI&gt;首先Bruce出过这样一本书，Computer Interfacing with Pascal &amp;amp;    C，1988。一看便知Bruce对于C和Pascal是一样的熟悉。    &lt;LI&gt;Thinking in Java 4th Edition的Acknowledgements中有下面的一段："It's not that much    of a surprise to me that understanding Delphi helped me understand Java, since    there are many concepts and language design decisions in common. My Delphi    friends provided assistance by helping me gain insight into that marvelous    programming environment. They are Marco Cantu (another Italian―perhaps being    steeped in Latin gives one aptitude for programming languages?), Neil    Rubenking (who used to do the yoga/vegetarian/Zen thing until he discovered    computers), and of course Zack Urlocker (the original Delphi product manager),    a long-time pal whom I've traveled the world with. We're all indebted to the    brilliance of Anders Hejlsberg, who continues to toil away at C# (which, as    you'll learn in this book, was a major inspiration for Java SE5)."&lt;/LI&gt;&lt;/OL&gt; &lt;DIV&gt;呵呵，连这样级别的Java专家都承认懂得Delphi有助于理解Java，我看Delphi程序员将来想转行也不是那么困难。当然，Marco  Cantu，Zack Urlocker，Anders Hejlsberg在Borland传奇中都有出现了，Neil  Rubenking却是一个陌生的名字。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;从我自己的经历来看，从Delphi转向C#没有特别的障碍。最近看了一点Java的书，感觉也是十分的容易入门。看来花在Delphi上面的时间是一点也没有白费呢。  &lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-2336919369179245826?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/2336919369179245826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/thinking-in-javadelphi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/2336919369179245826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/2336919369179245826'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/thinking-in-javadelphi.html' title='隐藏在Thinking in Java中的Delphi信息'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-2935587686638739399</id><published>2012-01-02T20:17:00.001+08:00</published><updated>2012-01-02T20:17:02.549+08:00</updated><title type='text'>GrapeVine Report: Use Delphi 2006 to test GrapeVine now</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Jan 04, 2007)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;What is GrapeVine?&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;What is GrapeVine? If you do not remember, remind you that it is the next  major version of Code Beautifier Collection exclusively for BDS 5. There are a  few things I have to finish before its birthday.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;First, surely it will be compiled against .NET 2.0. It is easy to compile  HardQuery against .NET 2.0. When NAnt was used to compile the assemblies,  -t:net-2.0 is sufficent. It is not hard for MSBuild projects now, if you compile  CBC without MSBee installed or referenced.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Second, debug and test GrapeVine in the BDS IDE. If you build CBC on .NET  2.0 and try to load it in BDS 2006, you will see an exception because BDS 2006  or in fact .NET 1.1 runtime can not understand the assembly file format.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Now CodeGear R&amp;amp;D is working hard on Highlander, or Delphi 2007, which  will support .NET 2.0 and 3.0. It can be sure that this IDE will be running on  .NET 2.0 and must be able to load GrapeVine. However, I have not applied to the  test project. Why? I can easily test GrapeVine builds now using Delphi 2006 with  only one line of code modified.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;If you ever take a deep look into bin folder of Delphi 2006 installation,  you will see a file named bds.exe.config. It is apparent that bds.exe is a Win32  executable, but why does it need a .NET configuration file? Open it in Notepad  and you will see something very interesting. Yes, it defines what version of  .NET runtime BDS should use. &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;startup&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;supportedRuntime  version="v1.1.4322"/&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/startup&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;If you change it to .NET 2.0, well, BDS 4 loads .NET 2.0 runtime and runs  on it. After this modification, CBC GrapeVine which is compiled against .NET 2.0  can be loaded and tested.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;startup&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;supportedRuntime  version="v2.0.50727"/&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/startup&amp;gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;How I find this method?&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Did you use C#Builder 1.0 ever? When you install .NET 2.0, you will see a  strange but cute thing happening. C#Builder 1.0 will mistakenly run on .NET 2.0,  and this change will prevent you from developing in it. For example, all forms  you create then will be .NET 2.0 forms and cannot be compiled against .NET  1.1.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;BTW, even if you change bds.exe.config you cannot easily develop .NET 2.0  projects in BDS 1-4 because they lack a lot of necessary supports.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;Another Hint&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;In last year I thought it was impossible for BDS 1-4 users to use  GrapeVine. However, now I see some possibilities. If you are using Delphi  8/2005/2006, and focusing exclusively on Win32 platform, you can modify your  bds.exe.config file as described above. After that, you can enjoy the fun  GrapeVine provides. But if you are working on .NET and using C# or Delphi for  .NET, you have to upgrade to BDS  2007/Highlander.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-2935587686638739399?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/2935587686638739399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/grapevine-report-use-delphi-2006-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/2935587686638739399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/2935587686638739399'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/grapevine-report-use-delphi-2006-to.html' title='GrapeVine Report: Use Delphi 2006 to test GrapeVine now'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-7709130546182352150</id><published>2012-01-02T20:16:00.032+08:00</published><updated>2012-01-02T20:17:00.209+08:00</updated><title type='text'>2007 Wishes</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 31, 2006)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;A lot of things are done in 2006. Just in this week I released HardQuery  Release 2 Update 1, the last stable version of CBC in this year and after that I  moved Alex to CodePlex.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;What will happen in the year of 2007? I cannot imagine. But I keep a long  list here and see which would be fulfilled.&lt;/DIV&gt; &lt;OL&gt;   &lt;LI&gt;A job to start my career.    &lt;LI&gt;Release of GrapeVine.    &lt;LI&gt;Alex 2.0.    &lt;LI&gt;Two novels on lulu.com.&lt;/LI&gt;&lt;/OL&gt; &lt;DIV&gt;What are your dreams, my dear friends? Wish some of them would come true in  2007.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;See you soon in the new  year.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-7709130546182352150?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/7709130546182352150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/2007-wishes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7709130546182352150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7709130546182352150'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/2007-wishes.html' title='2007 Wishes'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-8600173565062744241</id><published>2012-01-02T20:16:00.031+08:00</published><updated>2012-01-02T20:16:58.323+08:00</updated><title type='text'>CodePlex.com: Alex has been moved to a new home</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 29, 2006)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;AStyle AddIn for SharpDevelop, or Alex, has been available for a few weeks.  Because I was lazy, I had not tried to build a separate page for it. Since  GForge is now not a perfect place to host projects (I hate HTTPS), I decide to  try other free service. Luckily I find CodePlex.com quite well - although it is  supported by Microsoft. As a result, I move Alex there and see whether the  service is good enough.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;As I wish, it is amazing in certain aspects. First, it is very easy to  learn than GForge or SF.net. Second, I can write a long enough summary in the  front page. Third, it looks nice. But there is a sad limitation - no direct link  to the file package is available. If you decide to download one package you have  to accept the license in your browser. It seems InDate of CBC cannot consume the  service, either. However, this CP service is enough for Alex project.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;If you like to know more about Alex or CodePlex.com, please pay a visit  here&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A href="http://alex.codeplex.com"&gt;http://alex.codeplex.com&lt;/A&gt;  &lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-8600173565062744241?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/8600173565062744241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/codeplexcom-alex-has-been-moved-to-new.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/8600173565062744241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/8600173565062744241'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/codeplexcom-alex-has-been-moved-to-new.html' title='CodePlex.com: Alex has been moved to a new home'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-7165093835868285992</id><published>2012-01-02T20:16:00.029+08:00</published><updated>2012-01-02T20:16:55.783+08:00</updated><title type='text'>News! Code Beautifier Collection 5.3.1 Hotfix 1 and source package are available now</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 28. 2006)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;After installing the Hotfix 1, the InDate feature in Utilities Plus will  work fine again. See the readme file in the zip package for details.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;The source package contains changes made in Hotfix  1.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-7165093835868285992?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/7165093835868285992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/news-code-beautifier-collection-531.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7165093835868285992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7165093835868285992'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/news-code-beautifier-collection-531.html' title='News! Code Beautifier Collection 5.3.1 Hotfix 1 and source package are available now'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-7082766074978176031</id><published>2012-01-02T20:16:00.027+08:00</published><updated>2012-01-02T20:16:53.336+08:00</updated><title type='text'>DevCo2CodeGear: Allen Bauer眼中的2006</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 28, 2006)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Allen Bauer在新鲜出炉的blog中仔细回顾了06年这个动荡曲折的年份里发生在Scott  Valley的故事。如果你有兴趣，可以去阅读一下。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;另外，现在上国外网页没有问题了。JBuilder  2007下载中……&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-7082766074978176031?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/7082766074978176031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/devco2codegear-allen-bauer2006.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7082766074978176031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/7082766074978176031'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/devco2codegear-allen-bauer2006.html' title='DevCo2CodeGear: Allen Bauer眼中的2006'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-4611860609425901117</id><published>2012-01-02T20:16:00.025+08:00</published><updated>2012-01-02T20:16:50.778+08:00</updated><title type='text'>JBuilder 2007试用版：地震的后遗症</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 27, 2006)&lt;/DIV&gt; &lt;DIV&gt;&lt;FONT color=#333333 face=Arial&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;很遗憾发生了那么厉害的地震。不过这样一来最近几天都没有办法连上外国站点了。唯一幸运的就是还可以收到RSS，所以看到了CodeGear最新的公告，  例如JBuilder 2007的试用版。本来打算第一时间下再来看看，现在就没有办法了，除了等待。耐心似乎成了这个季节里面的一种必备品了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;我呢，住在武汉一件公寓楼的四楼，所以昨夜没有感觉到任何异样。当然，那些可以安详住在高楼中的人们，可以一边欣赏着武汉的夜景，一边感受到一点点振颤，那一定十分有趣了。只是看得出来，出得了海啸的地震真是严重的毁坏了海底光纤。  &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;等待吧，等待着我所需要的一切。既然已经等待了这么久，在等等也无妨了。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-4611860609425901117?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/4611860609425901117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/jbuilder-2007_02.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4611860609425901117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4611860609425901117'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/jbuilder-2007_02.html' title='JBuilder 2007试用版：地震的后遗症'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-8354758532835268636</id><published>2012-01-02T20:16:00.023+08:00</published><updated>2012-01-02T20:16:49.173+08:00</updated><title type='text'>Unsigned long December</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 26, 2006)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;This is my December; This is my snow covered home.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;最初购买Linkin  Park的专辑只是为了看看这个乐队是不是很特别。不过听过这样一首歌曲之后，我感觉自己被深深触动。的确，孤独的人会被孤独的音乐吞噬。所以又是十二月，又是孤身一人，异样的感觉总会回到这里。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;因为还没有和任何一家单位签约，这样的两个多月过得十分的快，以至于一周之前的事情仅仅存在于日记之中，不留一丝记忆。我依然在寻找合适的机会，当然也需要是公平的机会，假如是想方才EDS一样给出太不合理的价格，我也很难落笔签字。我想在短短的接触中展现自己的能力似乎还是一件问题，毕竟不是CS出身会对自己有一点点不利。继续寻寻觅觅吧。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;有些时候确实需要一些运气哟。新的一年，很多东西应该会改变吧。希望下一个十二月不再是这样的色彩！&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-8354758532835268636?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/8354758532835268636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/unsigned-long-december.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/8354758532835268636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/8354758532835268636'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/unsigned-long-december.html' title='Unsigned long December'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-2523743738309122005</id><published>2012-01-02T20:16:00.021+08:00</published><updated>2012-01-02T20:16:46.919+08:00</updated><title type='text'>Hardquery Report: In Date is not working normally.</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 26, 2006)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;GForge has encountered a huge change. All links from that site are using  HTTPS at this moment. As a result, InDate cannot download the update package  list or any packages from that site. This is why you can no longer get updated.  I will see if there is something I can do.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;I do not want to make this as a bug, although it really bores me. Just  because I cannot build a site for CBC, I start to use this free service and  every unexpected changes of that GForge site surely impact on CBC.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;I guess SourceForge is much better, but as a CERNET user I cannot access  SF.net easily. I wish when I graduate I could move CBC to SF.net.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Temporarily, you should not depend on InDate any more. I am very sad about  this.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Stay tuned.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-2523743738309122005?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/2523743738309122005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-in-date-is-not-working.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/2523743738309122005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/2523743738309122005'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-in-date-is-not-working.html' title='Hardquery Report: In Date is not working normally.'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-3824906217372518082</id><published>2012-01-02T20:16:00.019+08:00</published><updated>2012-01-02T20:16:44.710+08:00</updated><title type='text'>News! Code Beautifier Collection 5.3.1 is available</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 25, 2006)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Hi, friends. I am glad to announce the availability of Code Beautifier  Collection 5.3.1. &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Merry X'mas and happy new year.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;What's the new version?&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;This version is titled HardQuery R2 Update 1. The version number is  5.3.1.1124.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;What's new in this version?&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/DIV&gt; &lt;DIV&gt;There are about ten main changes:&lt;/DIV&gt; &lt;OL&gt;   &lt;LI&gt;+ Add Lextm Logging Service based on log4net.    &lt;LI&gt;- MarcClifton's Debug unit is removed.    &lt;LI&gt;* NDoc project is replaced by a Sandcastle project.    &lt;LI&gt;* JCF 2.25 is used.    &lt;LI&gt;+ An easter egg is added.    &lt;LI&gt;+ MSBuild and MSBee are used in the build process.    &lt;LI&gt;+ InDate UI is changed to a compact one.&amp;nbsp;    &lt;LI&gt;+ Source Navigator is enhanced.    &lt;LI&gt;* Two bugs are fixed.    &lt;LI&gt;* All documents are updated.  &lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-3824906217372518082?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/3824906217372518082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/news-code-beautifier-collection-531-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/3824906217372518082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/3824906217372518082'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/news-code-beautifier-collection-531-is.html' title='News! Code Beautifier Collection 5.3.1 is available'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-6169904201106176608</id><published>2012-01-02T20:16:00.017+08:00</published><updated>2012-01-02T20:16:42.141+08:00</updated><title type='text'>HardQuery Report: Finally 5.3.1 is on the way</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 20, 2006)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;I know you've been waiting because HardQuery R2 or 5.3 is not flawless. We  see there are bugs inside and I fix some of them in this version, 5.3.1. Also  during my job hunting days I make a few new units to simplify the development of  CBC and LeXDK. I have to say the sad days teaches me a lot of lessons, and I  really learn a lot.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Wish I could finish the tests soon in this week. I may not be able to  finish them before X'mas, but it will be ready before 2007.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Stay tuned my friends.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-6169904201106176608?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/6169904201106176608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-finally-531-is-on-way.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6169904201106176608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6169904201106176608'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-finally-531-is-on-way.html' title='HardQuery Report: Finally 5.3.1 is on the way'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-4191652062554547883</id><published>2012-01-02T20:16:00.015+08:00</published><updated>2012-01-02T20:16:39.538+08:00</updated><title type='text'>HardQuery Report: Using LoggingService class</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 20, 2006)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;What is LoggingService&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;LoggingService is a new unit I create lately to replace Marc Clifton's  wonderful Debug/Dbg unit used in early versions of CBC. This new unit is a  wrapper on log4net, an amazing logging library. But it is more than a wrapper,  and makes thing even easier in certain aspects. As a result, I use it across CBC  now. You can find it in the source package under  src/lextm/diagnostics/loggingservice.cs. It is covered by LGPL.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;Configuration&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;When using log4net, you have to do something configuration ahead. You can  place the settings in exe.config or web.config. Even when you cannot touch those  two, you can use a totally different file in the same format and loading it at  runtime to configure the loggers and the appenders. Because I cannot modify  either exe.config or web.config in CBC, I choose the last approach which affects  LoggingService heavily.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;When you start to use LoggingService, write you settings file and send the  path to Start function as the only parameter. For example, &lt;/DIV&gt; &lt;DIV&gt;LoggingService.Start("C:/cbc.exe.config");&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;Leaving messages in the log&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Then you can use LoggingService's Debug, Info, Error, Fatal, and Warn  functions to log any important steps inside your code. Because they are just  wrappers of ILog's Debug, Info, Error, Fatal, and Warn functions. &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;STRONG&gt;Key improvements&lt;/STRONG&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;What makes LoggingService easier to use is that you don't need to define a  logger per unit using&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;ILog log =  LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;LoggingService manages that for you internally.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Other new features are .NET Framework Debug and Trace unit style functions,  Indent and Unindent. I add two useful fuctions, EnterMethod and LeaveMethod. By  their names you know you can use them to log StackTrace information easily. You  can write the following code&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;void Sample() {&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LoggingService.EnterMethod();&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //....&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LoggingService.LeaveMethod();&lt;/DIV&gt; &lt;DIV&gt;}&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Then in your log file you will see&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;--&amp;gt;SomeClass.Sample&lt;/DIV&gt; &lt;DIV&gt;//...&lt;/DIV&gt; &lt;DIV&gt;&amp;lt;--SomeClass.Sample&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;I love this kind of hint when I use CodeSite, and now successfully I bring  it into LoggingService.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Wish you love this unit. It will be available  soon.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-4191652062554547883?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/4191652062554547883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-using-loggingservice.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4191652062554547883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4191652062554547883'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-using-loggingservice.html' title='HardQuery Report: Using LoggingService class'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-5592778989042691915</id><published>2012-01-02T20:16:00.013+08:00</published><updated>2012-01-02T20:16:37.323+08:00</updated><title type='text'>2ccc.com暂停</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 15, 2006)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;很遗憾这个站点因为某些人不负责任的言语停了。这样的结果已经是一年接一年一次接一次的发生了，  在我常去的几个站点里面这已经是第四桩了。对于我这种只去不到十个站点的人来说算是概率很大了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;继续无奈了。毕竟言论自由嘛。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;期待盒子早日再次开张。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-5592778989042691915?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/5592778989042691915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/2ccccom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/5592778989042691915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/5592778989042691915'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/2ccccom.html' title='2ccc.com暂停'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-4850290590891659715</id><published>2012-01-02T20:16:00.011+08:00</published><updated>2012-01-02T20:16:34.963+08:00</updated><title type='text'>Adobe Reader 8的安装</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 13, 2006)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;其实Adobe Reader  8的安装十分简单，如果有网络连接，那么即使将来需要新的插件――例如繁体中文字体，也可以轻松搞定。但是相比较之前的版本，这一次Adobe居然没有将繁体中文字体的安装包发布在官方网站上面。为了在家中那台还没有上网的机器上面看繁体书，只好手工寻找这一安装包了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;当然，Adobe Reader 8下载的所有插件似乎都放在{My  Documents}/Updater5/ExpressRequests/reader8rdr-en_US这个文件夹下面，所以我很快就找到了  刚刚自动下载的FontPack80_zh_TW.msi这个安装包。把这个带回家去，我的繁体中文书就可以看了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;BTW，Adobe Reader  8的界面确实有不错的改进，简洁实用。反正是免费的，你不妨一试。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-4850290590891659715?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/4850290590891659715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/adobe-reader-8.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4850290590891659715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/4850290590891659715'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/adobe-reader-8.html' title='Adobe Reader 8的安装'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-1692620467074075704</id><published>2012-01-02T20:16:00.009+08:00</published><updated>2012-01-02T20:16:32.568+08:00</updated><title type='text'>Borland传奇拾遗：BDS的启动速度</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 13, 2006)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;为什么Borland/CodeGear很晚才意识到Delphi 8/2005的启动速度慢？ &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;下面是我个人的猜想了。最近Delphi小组的Steve  Trefethen在其个人的blog上面介绍了他刚刚预定并且到货的Workstation机器的配置――two dual core Intel Xeon  CPU's with 4GB of RAM and two 250GB 7200 RPM hard  drives。看得懂吗？我想再这么好的机器上面即使是跑Delphi 8也不会很慢吧。 &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;希望CodeGear的测试组还是使用一两台老式的机器来测试一下Delphi  2007，不要让我们普通的用户承受不了才好。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-1692620467074075704?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/1692620467074075704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/borlandbds.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1692620467074075704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1692620467074075704'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/borlandbds.html' title='Borland传奇拾遗：BDS的启动速度'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-3789872187535747273</id><published>2012-01-02T20:16:00.007+08:00</published><updated>2012-01-02T20:16:29.636+08:00</updated><title type='text'>总点击数停了？！！</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 08, 2006)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;不知道从什么时候开始特别关注自己blog的被点击数，于是才会在期待中看到了100，1000，10000，20000，30000。可是从前天开始吧，我发现这个功能似乎被管理员禁止了。呵呵。好无奈呀。现在每天的第一件事就是看看这个计数变了多少。又少了一点乐趣。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;不过，似乎这也让我们这些blogger不需要一种"应试教育"残留的排名心理了吧。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-3789872187535747273?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/3789872187535747273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/blog-post_7497.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/3789872187535747273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/3789872187535747273'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/blog-post_7497.html' title='总点击数停了？！！'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-1302366060025298352</id><published>2012-01-02T20:16:00.005+08:00</published><updated>2012-01-02T20:16:27.095+08:00</updated><title type='text'>HardQuery Report: R2U1 RC3 is available from now on</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 07, 2006)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;I have to say time passes on so fast. It is already December now and it is  cold outside.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;I am still hunting for a job now, but during the tiny little breaks I add  more stuffs into CBC. You have seen many new changes in the first two RCs, and  in this one you will see some more. &lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;The InDate UI is very compact this time, so by default, InDate starts with  BDS to ensure your CBC is up-to-date.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Also, log4net is taking the place of Marc Clifton's Debug unit. I add a new  unit LoggingService in the Lextm.Common assembly.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;I should have spent more time on my career but I think I cannot drop CBC.  The new year is coming and I wish to send all my dear friends a present. And you  know and I know a new, stable, and feature-rich CBC version 5.3.1 will be  it.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Stay tuned. After I update the documents I will make the release  ready.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-1302366060025298352?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/1302366060025298352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-r2u1-rc3-is-available.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1302366060025298352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1302366060025298352'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-r2u1-rc3-is-available.html' title='HardQuery Report: R2U1 RC3 is available from now on'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-6065426761831186116</id><published>2012-01-02T20:16:00.003+08:00</published><updated>2012-01-02T20:16:25.182+08:00</updated><title type='text'>遭遇“盗版”的感觉</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 06, 2006)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;很高兴自己做的《Borland传奇拾遗》系列这样受欢迎。不过紧接着就是今天发现有人copy了这一篇到上面的连接。哎，既然我已经在博客首页上写了"谢绝转载"各位剪刀大侠就请高抬贵手吧。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;我还没找到工作，自然请不起律师来搞定这样的事情。可是要我自己天天去搜也不太现实。只能听之任之？&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;不过也有别的办法，那就是今后不再免费发布了，而是利用lulu.com那样的机制在线售书了。不知道各位意下如何。欢迎讨论。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-6065426761831186116?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/6065426761831186116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/blog-post_02.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6065426761831186116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/6065426761831186116'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/blog-post_02.html' title='遭遇“盗版”的感觉'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-1151526900884285852</id><published>2012-01-02T20:16:00.001+08:00</published><updated>2012-01-02T20:16:08.295+08:00</updated><title type='text'>SUN技术日的见闻-06.12.06</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt;&lt;FONT  size=2 face=Verdana&gt;(CSDN Dec 06, 2006)&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;SUN是一间让人敬仰的公司，因此得知其将在武汉作两站技术日的活动。因此今天特意前往湖滨花园酒店，参与了第一天的活动。我匆匆赶到时，其实活动已经开始了。我的号牌十分有意思，全部是2。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;没有坐到前排是一大失算，因为后来发了很多礼品都是前排的同志们得了。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;第一场讲座就算是一个大大的SUN广告了，着重讲的是多年以来SUN主导的创新。Solaris和Java自然是首当其冲。不过由于是提问环节，又有奖品，所以我们自然是搜肠刮肚。不过，很奇怪的是几个回答的人居然都没有说到OpenOffice和StarOffice。呵呵，看得出武汉这边用MS  Office的实在是主流。可是大家没有注意，整个活动所有的讲稿都不是用的PowerPoint，呵呵，全是StarOffice哟。我个人十分感兴趣的是其中介绍的关于SPARC  CPU架构的一点内容，RFID，以及Smart-Dust技术。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;接下来是关于Solaris  10的内容。我个人自然不是十分感冒。我已经很习惯于使用Ubuntu之后，就逐渐失去了对其他OS的好感。毕竟我们一般的开发人员很少去考虑OS级别的东西。不过呢，看得出来，SUN一直嘲笑MS不会做OS还是有些道理。比如DTrace之类的调试技术真的很好看和实用，同时不用付钱就可以安装，又有很好的虚拟技术支持，像Xen  3。我现在还感到疑惑的就是ZFS这个东西了，粗听起来倒和WinFS有点类似。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;上午最令我印象深刻的自然是Java Persisitence APIs的一讲。本来我一直在看Martin Fowler的Patterns of  Enteprise Application  Architecture一书，很多持久化的东西看起来很麻烦。如果Martin现在写这本书，似乎使用了Annotation之后会好懂很多。O/R  Mapping本来技术林立，现在有了SUN主导的JPA上阵，终于一统天下。感觉JPA很多内容都是十分类似于Borland的ECO，不过更加简化和自然――这自然是为了写代码方便，可是做ECO几乎不需要写代码，RAD的风格一如既往，所以自动生成的代码显得麻烦似乎也不是问题。利用已有的ECO经验，我发现理解起来JPA十分容易。比如Persistence  Context，几乎就和EcoSpace是一个含义。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;吃午饭十分混乱，当然，今天的人也太多。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;赶回大堂的时候已经一点，所以就接着听JDK 5/6新特性的一讲。JDK 5是同.NET  2.0决战的一场，所以我之前的了解已经不少。Java的Generics距离C++/C#还有不小的距离，所以这里列出来似乎只能糊弄没有细心学过C++/C#的部分人。而Annotation看起来就是C#从1.0就支持的属性这个特性。反正JDK  5除去JPA之外很多改进都来自于.NET的压力。至于JDK 6的一些新特性我个人认为不是那么大众化，所以我也不知很想一一列举――我也不是很懂。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;最后的一讲是NetBeans。我一直使用Eclipse，所以对于NetBeans只是知道而已。看起来也是一个不错的IDE了，比之SUN最初贡献的几个超级搞笑的IDE还是强劲了不少。关于这些特性我自然不想一一列举，但是我必须指出的是做讲演的那位SUN雇员似乎对于Eclipse和JBuilder的最新动态了解太少。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;首先，NetBeans以Ant脚本作为Project文件自然是不错，可是Eclipse那样采用Metadata的做法也不是错误。再者JBuilder  2007现在是基于Eclipse的，那么两者之间肯定是使用的同样的Project结构。在这个问题上面，显示出他并不了解JBuidler 2007。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;其次，NetBeans在代码编辑器上面确实有不错的特性，不过即时显示JavaDoc也不是什么很了不起的东西，赶MS的VS即时显示帮助标题的技术还差得远啦。智能提示错误和改进方案也很不错，但是我还有很多疑问，关于很多情况下的提示质量如何还有待考察，仅是现场演示的几个还不能令我信服。再一个不足是很多设置，像Code  Template，都需要打开额外的对话框，而不是像Delphi 2006那样直接在IDE面板上面做，显得麻烦。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;再者，Swing窗体设计器上面用于控件定位的提示看得出来同.NET  2.0做出的效果几乎一样，也算是大家扯平。"VB和Delphi没有这样的特性"，这句实在有错。VB  6自然没有这个，可是VB.NET现在肯定有，而Delphi自从Delphi 2006开始就完全支持这一特性，并且是在VCL for Win32以及VCL for  .NET 1.1上面都作了出来。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;最后是移动开发的向导和设计器。这个确实是SUN强过其他IDE的一个重要特性。我还没有在JBuilder中看见。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;不过，JBuilder  2007页有很多东西是NetBeans一时无法做出的――TeanInsight肯定不会比NetBeans的Collaboration差，而EJB  3/SOA的RAD工具似乎NetBeans里面没有对应的东西。还有就是由开源项目Continuum，Maven，Subversion，XPlanner和Bugzilla做成的全新ALM线为基础做成的ProjectAssist不论对于个体软件过程还是团队协作都肯定是一流的支持。现在不是就有很多Delphi用户强烈要求Delphi  2007支持SVN和Bugzilla？呵呵，希望能有呀。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;得到了印有Duke的漂亮T恤，还得到了两张光盘，呵呵，很满足了。至于Duke玩具和iPod  Shuffle就不是我个人的运气可以帮我拿到了。等待下一次的运气吧。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;当然，如果你和我一样更加关注JBuilder，那么这里有关于JBuilder  2007的一点资料。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-1151526900884285852?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/1151526900884285852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/sun-061206.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1151526900884285852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/1151526900884285852'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/sun-061206.html' title='SUN技术日的见闻-06.12.06'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-8802549608859034647</id><published>2012-01-01T17:50:00.009+08:00</published><updated>2012-01-01T17:50:49.061+08:00</updated><title type='text'>JBuilder 2007的快捷键</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 06, 2006)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;由于新鲜出炉的JBuilder 2007使用了Eclipse  SDK作为IDE，所以快捷键之类改变很大。这里有CodeGear雇员给出的对照清单。如果你发现了遗漏，还可以给他留言。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;&lt;A  href="http://blogs.borland.com/CharlesOverbeck/archive/2006/12/05/30271.aspx"&gt;http://blogs.borland.com/CharlesOverbeck/archive/2006/12/05/30271.aspx&lt;/A&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;JBuilder  2007的试用版和Foundation版本似乎还没有放出来，还需要再等等，不过相关的录像已经可以在BDNtv上面看到，你可以先睹为快。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-8802549608859034647?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/8802549608859034647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/jbuilder-2007_01.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/8802549608859034647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/8802549608859034647'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/jbuilder-2007_01.html' title='JBuilder 2007的快捷键'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-8630318303852702928</id><published>2012-01-01T17:50:00.007+08:00</published><updated>2012-01-01T17:50:46.271+08:00</updated><title type='text'>在Windows Vista上面安装Delphi 2006</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 05, 2006)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;很遗憾，我没有机会拿到Vista的RTM版本来玩一下，甚至RC版本也没有机会，因为我的机器太水。不过，很多人似乎已经开始抱怨Delphi没有办法安装到Vista上面了。真的吗？&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;我想如果事实真是这样，那么Borland/CodeGear的生意就不用做了，成千上万家依赖Windows的厂商也就挂了。事情绝不会这样。只不过想要安装的顺畅确实比较麻烦，有兴趣的话可以看看CodeGear成员的这篇blog。&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;相信MS还不敢冒天下之大不韪。呵呵。&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-8630318303852702928?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/8630318303852702928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/windows-vistadelphi-2006.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/8630318303852702928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/8630318303852702928'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/windows-vistadelphi-2006.html' title='在Windows Vista上面安装Delphi 2006'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6876410733543374862.post-5292357662176779219</id><published>2012-01-01T17:50:00.005+08:00</published><updated>2012-01-01T17:50:06.982+08:00</updated><title type='text'>HardQuery Report: Using log4net now</title><content type='html'>&lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV  style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none"&gt; &lt;DIV dir=ltr&gt; &lt;DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt"&gt; &lt;DIV&gt;(CSDN Dec 04, 2006)&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;It is hard to find what I need now when I look into the log file generated.  There are a lot of lines in that file that prevent me from finding the most  important one.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;As a result, I have to try something better than Debug and Trace. I have  tried Microsoft's shared source Enterprise Library. However, it is not easy to  use it in CBC - the assemblies are loaded by BDS.exe. So I have to search again  and find log4net suitable.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;In 5.3.1.1003, log4net is used to make the log file. I have to say it is  easy to learn and use, although the migration costs me a lot of time. I will  finish this boring task these days and release an RC 3 soon.&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt; &lt;DIV&gt;Stay tuned.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876410733543374862-5292357662176779219?l=www.lextm.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.lextm.com/feeds/5292357662176779219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-using-log4net-now.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/5292357662176779219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6876410733543374862/posts/default/5292357662176779219'/><link rel='alternate' type='text/html' href='http://www.lextm.com/2012/01/hardquery-report-using-log4net-now.html' title='HardQuery Report: Using log4net now'/><author><name>Lex Li</name><uri>https://profiles.google.com/111458545451096142117</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-emPW6oNhSfE/AAAAAAAAAAI/AAAAAAAAApw/HcHCvCXb-eA/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
