April 2005 - Posts

I think I've just made 1 or 2 interesting quotes yesterday. Hell, I was half-drunk already, with all the beer they were draining down our throats. Here's one that Aaron caught out of me, which I think is good. Quote me on that. I couldn't believe I said that, and actually came up with something like that.

I think the semi-colon has got more curves than a woman.

~ Justin Lee (triplez)

But you must understand, I'm a C/C++/C#/Java guy, I've lived on semi-colons most of my life. So... nevermind. But good quote yeah? :)

Just to confirm with everyone, that STL.NET is available in Visual Studio 2005 Beta 2. I'll be researching on that during the next few days to give all of you a review on what's there, and what's good, and how to use it, on other languages besides C++.

Netcraft Phishing Site Feed

Phising is the act of sending an e-mail to a user falsely claiming to be an established legitimate enterprise in an attempt to scam the user into surrendering private information that will be used for identity theft. The e-mail directs the user to visit a Web site where they are asked to update personal information, such as passwords and credit card, social security, and bank account numbers, that the legitimate organization already has. The Web site, however, is bogus and set up only to steal the user’s information.

Netcraft launched an anti-phishing system at the start of 2005: people install a toolbar and effectively become part of a giant neighbourhood watch system whereby the most experienced members of the community can report phishing sites and effectively block them for the rest of the community.

Netcraft is now making available the list of phishing sites reported by the Toolbar community and validated by Netcraft as a continuously updated feed suitable for ISPs, hosting companies, enterprises, and other companies that operate mail servers and web proxies, or network monitoring systems.

Metaspec C# Library

Metaspec C# Library 1.0.3 is released!

C# parser library is designed to provide the kernel for applications which require processing C# source code: refactoring, formatting, and verification applications, and other similar tools.

C# parser is available in two versions: a compilation parser and a transformation parser.

The compilation parser is designed for applications that require converting source code into the internal format as fast as possible. Only the significant data required for correct analysis of the program is preserved. This parser is useful for the development of compilers, interpreters, analyzers and other tools that do not require modification of source code.

The transformation parser preserves all information in the program's source code (including comments, spaces and preprocessing directives). This parser is useful for the development of refactoring and formatting utilities and other programs that do transformations on the program's source code.

---

Note to self : Need to check it out. It looks interesting, a library that provides the kernel to do parser. Sounds interesting to use it to create a C# scripting language which I was reading up on previously in my blog.

Today was the last day of the Asia MVP Summit, and we had a great time at dinner. :) I finally met someone who's equally interested in generics and know quite alot of things. He's called Prasanna. Go to his blog and take a look. I'm happy I found someone that I can click with.
I'm not really into databases and reports and such, but OpenRPT is something that you should look at, for a free enterprise level reports writer. It works cross-platform, and it's written by OpenMFG, the makers of open source ERP software.

C++ creator upbeat on its future
I was just reading this article on the future of C++, about there are as many as 3 million developers using C++. It got me thinking. C++ will always be around. C++ is what I'd call the "low-middle-high" level language, where it covers a wide range of possilities. C++ is a language with limitless potential, and C++ will have to be around to create Java, C#, VB languages, and the .NET Framework.

I asked a question today at the Longhorn presentation @ the Asia MVP Summit, about whether win32 api will still be around in Longhorn, or will it be totally replaced with managed code, aka WinFX. Win32 API is there to stay. Win32 API is based on C/C++, and offers more flexibility and power than the other .NET languages.

I'd like to give a few examples of C++'s limitless potential. Templates are the best thing that ever happened to C++, and the worst (which I won't talk about today).

But first, let me try to explain what Templates and Generics are. I was trying to explain what they are actually all about to some MVPs today @ the summit. Here's my two cents worth. Object Oriented Programming is like an abstraction of data and its behaviors and reuseability, where classes and objects come in play. Templates, or Generics (in .NET sense) Programming, is like an abstraction of those very classes and objects, into a higher level of abstraction, to create behavior and reuseability of those classes themselves. Data has information and behaviour on how to make this information be useful. Classes take these data and abstract and encapsulate them to form something that can put these data behaviors together. Classes have all these behaviors, but templates further abstract all these behaviors to form something that can create different classes out of a "schema", so to say.

Now with that explanation of what Generic Programming is, let me give a few examples of C++'s limitless potential.

Originally, when templates came out, it was really just to do exactly what I just mentioned above. After a few years, someone (I can't remember his name) was researching and playing around with C++ templates, and discovered something called "Meta-Programming". The original ideas for templates have branched out into something different. For those who don't quite understand what meta-programming is, it's actually making use of templates and the compiler to generate numbers (or information) (disclaimer: I didn't really research much on meta-programming) during compile-time. It's actually very useful in the field of mathematics and optimisation where you generate, for example, the answer of cosine 62 degrees during compile-time, and not during run-time, which saves quite a lot of calculation and cpu cycles.

Another example I'd like to point out is Policy-Based Programming. Who'd ever think of that?? But yes, it's also a spin off from templates. It's basically creating a template that accepts policies(which are light-weight classes) to generate a different type of class altogether. It's basically like "Aggregation" of classes. Combining the policy of using malloc to assign your memory instead of new. And you can switch and swap to generate lots of different classes that behave differently just with 1 class, and many small and light-weight classes called policies.

And there are many more examples to explore new ways to doing things on C++. This gives you untapped power for those who knows how to use it, but with power comes great responsibilities. And most people can't handle that kind of responsibilities, thus they get their leg blown off. But that's really the majority of the developers here. That's why Java, C#, VB languages have to exist. These languages are what I'd like to call "logic-abstraction" languages. They basically define what you can and cannot do with the language, which restricts any potential in growing the language outside the box without modifications to the language itself. It's like a "sandbox" language, where you can't really destroy your entire leg even if you do something wrong.

Productivity wise, I feel that Java, C#, VB, and other similar languages will have to be around. They promote productivity, and do things faster, and neater, and cleaner, and understandable. That's why those languages catch on really well. It takes everything that you don't need to bother, and gives you more time to think about the architecture of the solution.

But C++?? It will be around to create innovation. And it will never die out. It is essential for people to know how to create and make life easier for developers, like creating a RAD-driven programming language like VB. But then again, the implementation of C# in mono has gone into a cyclic compilation stage (I don't quite know what's that exact word they use), which means that they are using their own C# compiler to compile the C# compiler itself. Much like GCC, (4.0 was just released yesterday), where they actually have multiple bootstrapping to create stages of the compiler to compile itself. Confusing? Yeah. :)

But coming back to its future of C++, it's staying for good definitely, but is it actually growing (the language itself)? From what I know, the new specifications for the new standards for C/C++ should be somewhat finalized already. Does anyone know anything about it? I've stopped keeping track of the C++ guys already. They just do things too slowly. That's one of the problems of C/C++ standards. Another problem is adoption of the standards itself. How many compilers do you know that can say they are 100% compliant to the current C++ standards (I think it's the C99 standards, can't remember)? It's been what, 5-6 years already? So how long will the new standards take to get finalized and released, AND get adopted by the industry leaders? Another 5 to 10 years? Come on, technology is moving so much faster than C++ is. Unless they do something about it, C++ is going stale, though it's NOT that bad to go stale, but nevertheless, stale.

Why do I say that it's not bad to go stale? Because stability of the particular "technology" will bring about assurance that today's technology will not become tomorrow's garbage, which is really what's happening now in the industry. Right? Another MVP was telling me today that technology moves so fast, it's difficult to catch up, and recommend the current technologies to their clients. C++ stays the same. Even with the new standards, there isn't many changes to the language itself. The changes are mostly STL changes, to update it. And one of the advantages of C++? It works everywhere, any platform.

So I've written alot already. And now I'll stop.

The topics today were ok, nothing really fantastic. But what I can tell you is, get ready for some really cool stuff with Longhorn. That's all I can reveal I guess, and maybe telling more would require me to kill you after you read this. I'm shacked out. So I've got nothing much to talk about.

They are planning some grouping together the MVPs with common interests together during lunch and dinner tomorrow. So yeah. That would be good.

WinHEC 2005 Conference Presentations and Papers
Not much time to blog about this. WinHEC 2005 is happening now. Download the slides there. Enjoy.

Design Patterns for Searching in C#
Something I happen to browse on early in the morning. It's cool, and it heavily uses generics and iterators. I've yet to take a good look at it, but I'll do so later today. Good algorthms going on there. It's a free e-book thing. :)

Morning was horrible. I couldn't wake up, and had to order a double espresso to wake up. Yawnz. Longhorn is nice. :) That's all I can say. Hope today's presentations are good. Cheerios.

Free refactoring plug in for VB 2005

Interesting! VB now has refactoring too. Cool.

I'm exhausted from all the crowd, and the noise, and the travelling, and everything. Today after the presentations, which leaves nothing much to be said about it, we had a few minutes to actually freshen up in our rooms before heading to the Singapore Zoo and the Night Safari. Being a Singaporean, I've never in my whole 20 over years of being on this small island, been to either the Zoo or the Night Safari. It was an experience for me, but I got too tired even before dinner. During dinner at the zoo, we had some interesting entertainment. We had some people in tribal clothes dancing in the first session, then after that it was a fire-magician act. One of the Singapore MVPs, Lee Cheung Yuen (forgive me I don't quite know how to spell your name), got his head "cut" off by the magician. Anyway, the biggest event/session for that night was the belly-dancers which aroused the "wild beasts in everyone". Sean O'Driscoll had a wild time dancing with the belly dancers. We took some photos of him and the belly dancers, but I'm sure there are alot of people already posting up the discriminating photos of him.

Anyway, something weird happened this morning @ icelava's room. Let me explain our room structure. The toilet has a glass panel that shows the entire toilet from the outside, and there's blinds for it. So, icelava was taking a dump in the toilet when Tristan, another Singapore MVP which icelava is bunking with, walked in, and the blinds weren't drawn!! So, weird moment there. Hahaha! You guys can figure out the rest. And another thing happened with icelava and breakfast, which you can read it at his forum/blog.

It was a very interesting day today, with a rather slow morning and afternoon, and evening was quite wild and rowdy, but I really didn't have the stamina to continue on. Kitkai didn't allow me to bring my laptop to the zoo, so I was rather drained out. Oh well, I'm a geek at heart anyway. :)

So, more adventures of the Asia MVP Summit for the next few days. Tomorrow will be tracks day. I'll only be attending 2 presentations, that's about it. I should be resting and catching up on my mails and such. I've got lots of anime downloading to catch up with, and will be RDCing home to get my downloading done. Sigh.

Well, cheerios. :)

The morning was boring, nothing new to really get from the first few slides. Someone commented this, "A dog barking while we read the slides ourselves would have been better." :P

I hope the afternoon is much better. Nothing new!!

And yes, we all know we're on NDA.

It's in the morning and I just had a wonderful breakfast. Aaron didn't know there was breakfast downstairs and ordered from the hotel. I hope he doesn't have to pay for it. Chuckles. I met up with Stanley this morning @ the breakfast room, and he's leaving this afternoon. I'm in the bus now on the way to Suntec for my first day @ the MVP summit. Gotta go soon!

More Posts Next page »