Total Pageviews

Disclaimer

This is a personal web page. The views expressed on this blog are mine and do not necessarily reflect the views of my current employer.

I am currently employed by Morgan Stanley.

July 31, 2007

GrapeVine Voice: Break The Path

A PathTree class was used in HardQuery builds to organize all files deployed with CBC assemblies. However, because some of the files are going to be modified in order to store user settings, they cannot be placed in Program Files any more on Windows Vista.

What I am working at is to break the original tree structure into small pieces and install them into different folders, such as local application data folder and common application data.

It is very very complicated to decide which file goes to where. But it is also a chance that I can fully understand how to install an application for all users and for a single user.

In all, if you install CBC GrapeVine builds, remember that you install it only for yourself. There is no option to install it for all users.

I will try to make an install-for-all installer in later versions.

July 29, 2007

Overseer: Use It For .NET

I loved CodeSite. During the short trial, I found it easy to log most information I needed in a friendly way. But then I turned to C# and .NET and thought that I could not use CodeSite anymore. I was totally wrong, because soon CodeSite added support to .NET.

However, as an open source developer, I had to resort to open source solutions most of the time. So I searched Code Project and found some alternatives. log4net entered Code Beautifier Collection at last. I'd like to say that it serves CBC very well.

When I started my career, I found I was in bad need of CodeSite. The problem was that nobody knew it here and it was not listed in purchase plan. Luckily I found Overseer for .NET at that moment (although it was not used immediately).

Today I finally have some time to try Overseer for .NET. The only disadvantage is that no document is available to tell me how to set it up. So after compiling I find that I cannot see the logging.

What's wrong then? Yes, there are something missing. You have to download the original Overseer! Original Overseer is the watcher, while you should use Overseer for .NET in your .NET project to send messages.

BTW, you should always manually run overseer.exe before any debugging. Why? overseer.exe adds a registry flag so your project can find it later.

In all, when you cannot afford CodeSite, Overseer is a good alternative.

July 28, 2007

VMware Server vs. Player

I am using a Vista Home Basic machine. And when I try to launch a VMware image of OpenSuSE, the system freezes. Why?

After reading the Release Notes carefully, I see that VMware Server I installed does not yet claims itself Vista compliant. As a result, I turn to VMware Player and find it just right.

It seems VMware spends more time on Player which is also bundled with Workstation and ignores Server most of the time which is totally free.

Pity that I cannot create any image now on Vista except using Virtual PC 2007.

July 27, 2007

Microsoft Lends A Hand To Open Source?

If you have time, please go and see this page on Microsoft.com, named Open Source at Microsoft.

I find it ironic because in fact even if an application running on Windows is claimed as Open Source, it is not that free. For example, it is not free of Windows. Windows is closed-source. If one day Windows is dead (and Microsoft starts another platform), that application may be dead.

For a truly open source project, its basis should be open source, too. That's why the KDE guys spent so many years with Trolltech on persuading it open Qt under GPL.

Also I find myself stupidly building CBC on Windows. Yes, CBC is not open source in some aspect according to the analysis above. But is there a CodeGear RAD Studio for Linux?

Microsoft vs. Adobe: A War Before Time

When I tried XPS Essentials Pack 1.0, I found it similar to PDF. Yes, what is missing is a Acrobat product line (I didn't try the Expressions, so maybe I was wrong).

So, now Microsoft is fighting against Adobe in any way,

  • Silverlight vs. Flex,
  • Expression Studio vs. Creative Suite,
  • XPS vs. PDF,

Who will win? I have a guess. Who wins developers' hearts who wins at last.

Visual Studio and Expression Studio may provide some advantages over Adobe. Up-to-now, I see XPS format easier to manipulate than Adobe PDF format because it is XML based. I see XAML great for building GUI (also XML based), but Adobe fails to provide a similar language. Even at this moment, I see no easy way to set up a development environment for Adobe technology (I am not a Java guy, so if Eclipse supports Adobe technology please let me know).

IMHO, Microsoft has more experience in this field - winning developers, so although Adobe starts as the dominator, it may lose in the end.

BTW, I am not quite biased even if I use Visual Studio 2005 every day. I am just wishing Adobe could learn from Microsoft in certain aspects, make it easy to learn and develop with its technology.

July 24, 2007

Visual Studio Team Explorer: Don't Make The Mistake Again

I have been wondering why after installing Visual Studio 2005 I could not find Team Explorer anywhere.  Until today when I tried to find a client tool for CodePlex, I saw a notice Team Explorer is a separate installer from Visual Studio which you have to download directly from Microsoft.

As a result, I have to install Team Explorer and Visual Studio 2005 SP1 again, which takes a very very long time.

Why not add Team Explorer into Visual Studio 2005 installer as a feature?

Chinese Translator In Firefox And Thunderbird

If you are learning Chinese, this tool should be a good helper.

Chinesepera-kun: Chinese Popup Dictionary

It is an add on for Firefox and Thunderbird.

Product Review: ExtractNow

This is a small utility that can extract files from archives. Either ZIP, RAR, or IMG format is supported.

Sometimes when you need to make an archive, consider 7-Zip.

July 23, 2007

Product Review: ClearContext IMS

From a C# guru's blog I read about CC IMS. And soon I installed and tested it today. And the value it provided was attractive.

For most users ClearContext Information Management System Personal is enough, which is an Outlook add in that helps you organize emails. Professional Edition supplies more powerful functions but for me they are not useful.

In a word, IMS Personal colors your Inbox according to a few rules (e.g., sender, Topic, and Thread). Then you can see which mails are important and read them first.

See if you have few mails a day, IMS does not suit you. But if you do have lots of mails, yep, it helps a lot.

I love the color scheme. Rules customization is available in IMS but not very easy to set for me, so I use default settings.

The manual "Version 3.0 User Guide" is greatly organized which provides enough information during the review process.

If you use Outlook and have trouble with your mails, you should give CC IMS a try.

Windows Live Update: Live in Firefox and Thunderbird

For a long time Windows Live Spaces of my friends cannot be viewed both in Firefox 3a and Thunderbird 2. I have been tired of switching to IE until today Windows Live starts a special update.

I do not like the new look - a Vista clone style in blue (I rather pick up black personally). However, I appreciate that the page source code is corrected and now feasible to feed Firefox and Thunderbird.

Keep going, Live guys.

BTW, wish I can export my Windows Live Writer settings to another computer in a later version of WLW.

July 22, 2007

GrapeVine Voice: M2 On New Google Code Homepage

This is a new homepage for Code Beautifier Collection I registered on Google Code. At this moment, GrapeVine Milestone 2 is already there. Yep, you can download it fresh there.

But please notice InDate feature is not yet complete, so I cannot guarantee it works correctly. Believe me, I would make it complete at least in M3.

What is new in this version,

  1. Expert Manager works again but needs elevation on Windows Vista.
  2. Vista UI controls are used everywhere necessary.
Stay tuned.

Another Gear: SourceGear DiffMerge

I have been using WinMerge for a long time and it serves me quite well. And now, after reviewing SourceGear's Vault, I meet DiffMerge. Wish I can see some differences within.

Talking about SourceGear, yep it is another "Gear" that provides amazing products. For example, Vault, a great SCM tool, is built completely on .NET platform.

I would start to use Vault at office. I'd say I would love it very much then.

(Updated: DiffMerge has a great feature. Yep, when you want to merge two files, it provides you a three file view, so all differences can be merged into a new file. In this way, you do not need to modify any of the original two files during the merge.

However, DiffMerge has a disadvantage that it cannot compare two binary files. For source code comparison, this limitation is not a problem but for most developers who need to handle binary files, DiffMerge cannot supply any help at all.

In this case, I still prefer WinMerge.)

GrapeVine Voice: Last Issue On Milestone 2

UAC problems are solved today. After digging, some bugs are verified my mistakes, not UAC problems at all. So M2 is nearly finished except InDate - Auto Update feature still need tests. I wish I could provide a full feature set this time, so I rather keep you all waiting for a few more days.

The homepage of CBC on GForge is down again today, which makes me frustrated. And in order to make future migration to another service provider easily, I have already started to make InDate more flexible. As a matter of facts, it now should work well with Google Code (further test needed). Of course when I start migration one day I will leave a note here.

Stay tuned.

(Updated: All things are done but M2 is still a Preview. I make it complete in M3.)

July 21, 2007

Over UAC: Batch Build On Vista

Because of security concerns, I reactivated UAC on Vista. And now how can I use make.all.bat to make a CBC build? In fact, it is quite easy if you become familiar with UAC.

The steps are,

  1. Launch a cmd.exe console as Administrator,
  2. cd to the folder containing make.all.bat,
  3. Run make.all.bat.

Isn't it simple? Yep, in this way, you find yourself back to XP days.

Why MS provides us such a simple way (although not easy to notice)? I guess for MS guys who develop pieces on Vista, UAC is also something blocks their way. A console walk around may ease their (and my) pains.

July 20, 2007

Microsoft Uses .NET In Their Products

In the past, it was said that Microsoft never used a line of managed code in their products.

Yep, Windows and Office may not contain managed code, but after reading this old post, I know at least MS uses managed code somewhere.

And if we expand the scope, some MS Research projects are purely .NET, such as Windows Live Writer, GLEE, and Pex.

July 19, 2007

Safari: Is It Firefox?

When I tried to find a Google Toolbar for Safari, I was redirected to a Firefox only page at http://tools.google.com/firefox/toolbar/FT3/intl/zh-CN/index.html

Does Google think that Safari is Firefox or in fact it is?

BTW, to open a new tab in Safari, you can press Ctrl + T, which is the same as in Firefox.

July 18, 2007

Harry Potter: Issues About The Official Film Site Screensavers

I find they provide two screensavers there. However, I cannot install them both. I have to choose between them which is very very hard.

Again, the site has no place to report this issue. It seems the developers are confident about their work. Yep, I am glad to see the beautiful UI, but I believe there are more issues behind the scene.

Did you meet such issues at similar sites? Could you report the issues? I'd like to know your experiences.

Normal Behavior: SharePoint Binds to IE

My team uses a SharePoint site to communicate. The problem is that I cannot use Firefox to enjoy all features of the site. Many features such as discussion can only be available when browsing in IE.

In China, using IE to explore the Internet is proved to be dangerous, and using Firefox or Netscape is recommended by our IT guys. However, except Windows Update there are other ways MS can prevent you from using another web browser.

Stop this MS, or I will give up Windows completely.Angry

(Updated: Why using IE in China is dangerous? Many crackers in China who write spyware and viruses for money prefer to make use of IE vulnerabilities. I know Firefox has vulnerabilities too but only a few Chinese use Firefox so FF-specific viruses or spyware is rare.)

GrapeVine Voice: Milestone 1 is Incomplete

I have to confess Vista User Access Control brings me a lot of trouble. Up to now, I cannot make Expert Manager work correctly. The should-be-deleted registry items cannot be deleted yet.

As a result, Milestone 1 is still a Preview version, which cannot update to later versions and Expert Manager does not function well. However, other parts are alright.

BTW, the settings file is resident in a user-specific location so after installation, CBC can be used on by who installed it.

Download it from here.

July 16, 2007

Flags Icons

When I tried to find icons for some nations' flags, I came across this web page. Yep, the icons are awesome.

There are other goodies created by the author, such as Silk Icons, terrific! Have a look.

GrapeVine Voice: Milestone 1 is Coming

Most Vista changes are not hard to overcome. After some digging, there are only two issues left. One is that Expert Manager cannot delete a registry because of UAC or some other security feature of Vista. And the other is a new naming schema for CBC GrapeVine packages.

For the latter, I have just made up my mind. Every package will have a prefix ''gv'' which stands for GrapeVine. In this way, they can be distinguished from older versions.

I would solve the first problem at first then update InDate code to conform to the new naming rules.

I have uploaded another Preview version to GForge here. It is still a Preview, but much better than last one.

Stay tuned.

(Updated: UAC compliant will be achieved easily if a manifest file is used. Inno Setup creates Vista-compatible installers in this way, too. You can use Kenny Kerr's Manifest View 1.0 to see inside them.)

So Many Modeling Tools

I used Together, ROSE, and ModelMaker before. However, now I find Visual Paradigm, Apollo, and Poseidon. What a wonderful world!

BTW, there must be something I missed. Please tell me what modeling tool you are using.

In fact, most tools are for Java. C# or C++ support is not that popular as I expected.

Safari on Windows: Free and Easy

Do you know Safari? Apple's web browser for Mac OS. And now, it can be installed on Windows.

Nice UI, and similar shortcuts as Firefox (like Firefox in iTunes theme). Firefox now has more competitors on Windows (IE, Safari, Maxthon, Opera and so on).

For me, Firefox is a better one. And I surely will give Safari a try.

(Updated: If you are a Chinese like me, you will find it impossible to input Chinese with Google Pinyin. I do not try other input method because I love Google Pinyin. I have reported this to Apple. Wish they can find a solution soon. In this aspect, Firefox 3 Alpha - Gran Paradiso plays much better.)

July 13, 2007

Pex: Test What?

Microsoft Research has a project named Pex. Yep, when I tried to build QuickGraph, a CodePlex project I found a reference named Microsoft.Pex.Framework.

According to GuickGraph's author's blog, features of this new test framework is very amazing. Wish it could be made public soon.

BTW, QuickGraph is a nice project. Maybe I will use in my project later.

July 12, 2007

Australia Visitors: Welcome

Today I see three Australia visitors to my blog here. Welcome. Now all continents contribute to the visitor counts.

Thanks for visiting, guys. Thank you very much.

Popfly Explorer: Add-in For Visual Studio Express

I registered Popfly long time ago, but I am not a artist and not fond of design web pages. That is why I do not visit that site much. But today I find Popfly Explorer, an Addin for Visual Studio (Express Edition supported).

What catches my eyes is that I can upload projects to my Popfly space easily. In this way, I can store all projects online.

What is Popfly? I do not understand well now. But I will continue to explore in this field.

July 11, 2007

License Management Basic

For shareware developers, it is reasonable to develop sort of license management system - a license generator for internal use, and a license verification module inside your software.

It seems to be a lot of work but the logic is simple,

  1. Get some kind of ID from your user. Network adapter MAC address was once the best choice. And now HDD serial number is preferred. As a matter of facts, you can combine them to generate a foot print for one computer.
  2. Encrypt the ID to a license file.
  3. Distribute the license.
  4. Add a module in your software to verify the license.

Although all kinds of protection can be cracked, you can still gain some money from loyal users.

For Code Beautifier Collection users, there would never be license management system issues. Why? It is open source.

Isn't it wonder?Puppy dog eyes

MiCTeX: Beyond CTeX

I have been using CTeX for a long time. From the beginning of Code Beautifier Collection, documents have been written in TeX. I never dreamt that I would start to use TeX in a real world project, but I have. And thanks for WP and Huang Ying. They give me the courage to try.

On my Dell 640m, Vista Home Basic is installed and I find that CTeX cannot function as usual. gbksong45 font cannot be found. I switch to MiKTeX, but it cannot handle CJK* well. And at last, I find MiCTeX and everything goes fine.

I have to complaint that MiCTeX is not well treated. I never know it until Googling for a solution.

CTeX is still using MiKTeX 2.4 as the core, which contains many defects. And MiCTeX uses newer version of MiKTeX which should be installed instead of CTeX in most cases.

If you do TeXing like me in China, please switch to MiCTeX if necessary.

Post from Blogger in Draft

This post is the very first post I make in Blogger in Draft. If you log in Blogger.com from draft.blogger.com you will understand what I am saying.

I do not have time to try those new features yet, but I will certainly give each of them a try.

Blogger guys, thank you very much.

July 10, 2007

GrapeVine Voice: After Preview

What happened tonight is that I turned off User Access Control on Vista. CTeX and MiKTeX had been removed while MiCTeX was installed instead which generates PDF documents correctly now.

So now CHM and PDF files are back.

After the half-cooked Preview, I would provide a Milestone 1.

  1. Documents will be included.
  2. UAC traps will be overcome.
  3. Vista dialogs are supported. Refer to this article for details.

Stay tuned.

July 09, 2007

Vista Hell: UAC Blocks

I have been using Ubuntu for a long time. Yep, I know it prompts me every time I try to make a big change. UAC is just a copy of that on Windows.

When I try to publish GrapeVine Preview, I find it blocks me. CBC saves the settings in Program Files which violates UAC's rules.

In later versions, I will move the settings and .plus2 files to a user folder instead.

What Vista brings me is not only this problem. MiKTeX cannot update itself correctly. I have to say the compatibility is too poor.

GrapeVine Voice: A Special Preview

I am planning to release a special GrapeVine Preview. Why? There are several reasons,

  1. Now I am using a Vista Home Basic machine to develop GrapeVine, and CTeX cannot generate PDF documents. So, there is no document available at this moment.
  2. There is no Delphi for .NET compiler for me to build Lextm.AddMany.dll on .NET 2.0. I know I can do it in Delphi 2006, but now I do not have it installed. So, AddMany feature is not available.
  3. Delphi 2007 IDE is much stronger than Delphi 2006, which means some features in CBC must be turned off. So, some features are missing.
  4. I am planning to change the package naming schema to distinguish GrapeVine builds from older builds in order to prevents older versions from updating to GrapeVine. However, the InDate update would be provided after publishing the Preview. So, the Preview build cannot update to later Milestone builds automatically.

Don't get me wrong. As a matter of facts, the Preview can do a lot of work for you except for the missing parts.

I will publish it soon (Maybe tonight). Stay tuned.

BTW. Because this version cannot update itself, no version number is given. If there is one, it is meaningless. So, never report a bug of it to me.

Remember, GrapeVine is for Delphi 2007/C++Builder 2007 only.

(Updated: I did not take care of UAC at first, and now find that CBC is not UAC compatible. So the Preview build cannot function correctly if UAC is turned on. It should run well on other Windows.)

It is now available at GForge.

July 08, 2007

GrapeVine Voice: InDate's Future

I once decided to move CBC to Google Code. I still think it is a good plan but cannot make it in a flash. So the GrapeVine Preview would be released on GForge this time. As a result, Preview users may not be able to update CBC to later versions. Sorry for the inconvenience.

Stay tuned.

GrapeVine Voice: Stronger coreide.bpl

When I switched to CodeGear RAD Studio 2007 IDE (BDS 5), I found that an exception occurred after closing the IDE if CBC was installed. Yep, it seemed that some pluses had bugs.

Today I tried again. After disabling WiseEditor, NFamily, and Utilities pluses, the exception had gone. So I will try to locate which features cause the exception. Luckily CBC has a flexible plug-in architecture, so every feature can be turned on/off easily. I believe soon the bug will be found and fixed.

You can see that CodeGear has improved the IDE a lot. Delphi 2006 ignores the bug while Delphi 2007 catches it. In fact there are hundreds of bug fixes and improvements.

Stay tuned.

(Updated: A few features have been disabled from this version, because some are already obsolete or need reimplementation. I promise that when GrapeVine ships the problems would be solved.)

July 07, 2007

GrapeVine Voice: Prepared For First Preview

Delphi for .NET will only support VCL for .NET designer in Highlander, which means WinForms with Delphi for .NET becomes obsolete. So now I am not sure that some assemblies used in CBC can be still used.

Today I test and see that Mauro Venturini's Invisibles library and Visibles library are not compatible to .NET 2.0 (they refer to Borland.Delphi 10 which no longer exists). The solution for TBackgroundWorker component is to use BackgroundWorker directly. For Visibles library I have to disassemble it to C#. Reflector accomplishes this well.

At last, WebBrowser ActiveX is removed. WinForms WebBrowser component is used instead.

Compile, and everything is alright.

Because I have to setup the whole build environment, it takes time to release a preview.

Stay tuned.

July 06, 2007

Free Anti-Virus Solution From Grisoft

I have to say I was startled to see AVG Anti-Virus Free Edition. It worked better than an old version of Norton Anti-Virus. Also, you can find free Anti-Spyware and Anti-Rootkit software, and even Anti-Virus for Linux. If you can not afford an expensive but complete security solution, I guess the AVG free tools are just for you. You can download them here.

Overseer, Let Logs Be Eye-Candy

When log4net is used, the logs are text only. Most of the time I get confused when analyzing a large log file.

CodeSite is a great tool to remove this pain from your development. however, this time my company will not buy it. As a result, I have to find something similar but free.

Overseer for .NET is such a solution I come across when I search for ActionList for .NET. I tried the Delphi Win32 version a lot time ago, so will definitely give the .NET version a try.

Yes, using such a log analyzer, logs become eye candy. The icons help a lot to clarify different kind of messages.

Thanks for SharpPlus.

HardQuery Report: Release 2 Update 3 Final is Finally Out There

Code Beautifier Collection 5.3.3 is now ready to reach you.

The following features are implemented or enhanced in this version,

  1. * Delegate type support is added in Source Navigator.
  2. + XML comments support is added in Typing Speeder for C#.
  3. + Icon Browser is added as a new feature.
  4. * Disabled pluses assemblies are no longer loaded.
  5. + Line Counter feature is added.

You can download the installation file from here.

Sorry for the delay (about three months).

Because I do not have plenty of time, you should refer to Change Logs section in Readme.pdf to understand what the new features are. The manual.pdf is in fact out-of-date.

Soon a GrapeVine preview will be released and the term HardQuery  will phase out.

July 04, 2007

HardQuery Report: RC5 Becomes Final

I was about to make a Final version but finally have no time to do it at this moment. While I am moving forward to RAD Studio support, I do not want to be trapped by BDS4. As a result, I will not update HardQuery anymore and start to cook GrapeVine instead. Wish soon GrapeVine will be out.

Sorry for those who are waiting for a 5.3.3 Final. IMHO, RC5 is solid enough to be a feasible version. Maybe I should rename the package to 5.3.3.1005.zip, then InDate can find it for you.

And if everything goes well, this is the last post under "HardQuery Report". Thanks for using HardQuery builds.

Logging, Exceptions, and Hacks

In the development of my project, I have to connect to a device through sockets. The problem is that this device driver has a bug that prevents a PC to create a second socket with it. This means I have to take care of the socket I create every time. If a socket is not closed, I will never be able to connect to the device again. I do not want to reboot the device. However, there seems to be necessary.

Since I am not the only one on this project, I ask for help. There is no positive reply. The one who is responsible to the socket part does not want to share the source with me. So what I can do is disassemble his part and modify it directly. Luckily I know how to use log4net, so I can insert some code to generate logs about socket creations and deletions. After reading the logs I can find out where is the leakage.

The conclusion is that most leakages are caused by exceptions. Because some exceptions are not correctly handled, some created sockets are not deleted at all.

The code quality is not quite good which causes a lot of trouble. But, I am not the one who designs the software, which means sometimes I have to fix some bugs in the background (such as hacking some DLLs). Maybe when Vault is installed and used here, I can publicly merge the fixes into the code tree.

Anyhow, it is funny to work in this project. Refactoring and patterns help me a lot.

July 02, 2007

Viruses From U Disk

A U Disk from a team member filled my hard drive with viruses. And now I have to reboot to Safe Mode to remove them.

Yep, never double click on the U Disk icon in My Computer. Use Windows Browser is much safer.

Also, remember to disconnect to Internet ASAP when you found any virus. In this way, you can prevent further harms. Some virus can download more of them from Internet in seconds.

Wish the Anti-Virus process finish soon. And yep, it has finished.

July 01, 2007

Blogspot Is Blocked At Home

The access at home has just been setup. Some domains have been blocked by the Service Provider. Unluckily, Blogspot.com is blocked. What is interesting is that I can in contrast write posts through Blogger.com interface. Because Windows Live Writer cannot access the blocked domain, it fails, too. I will report this to the SP. Wish they could make thing right some day.

(Updated: When I got back to office, I cannot view my blog, too. The only lucky thing is that Writer at office can still work. That's alright.

In fact, Blogspot.com has been blocked many times in the past. I guess this time some people crossed the line again.)