June 2005 - Posts

As the title says, I *MIGHT* be doing a presentation on how to start game programming with Managed DirectX. Even if I'm not doing it, I should still be creating the slide decks and demos for future use. :) So be prepared for lots of upcoming resources on Managed DirectX on my blog.

As more details on when and where I'll be doing the presentation comes out, I'll update you guys again.

It's pretty exciting to do this presentation, since I've playing with Managed DirectX since it's beta days, and seen it grow from an infant stage until it becomes matured. And it's been so long since I've been doing game development, and I hope I still remember most of the game architecture I learnt long time ago, and hope it still applies. Oh well, I hope those who are free will be able to attend this presentation. I hope and intend to make this presentation exciting, funny, and lots of energy, as games should be. I won't be able to demo a full fledged game to you, maybe just the simple portions of it.

Hope you guys like it when it's out. Heh!

EnterpriseServices - mainly used for it's Transaction capability.

J2EE - Used for it's Enterprise Services, like Transaction and Messaging Services, Mail Services, Security Services, Connection Pooling.

I know you guys are going to say, but hey, .NET Framework has already all those, and more! How many can say that they are re-useable, and not tightly integrated into Windows itself? How many can say that they don't have problems writing Enterprise-Level development on it, without spending on more Microsoft technologies to buy? How many can say working on the .NET Framework allows you to interop with other Enterprise-platforms easily?

What I'm trying to say is, it's high time the .NET Framework sees the light for Enterprise development, and create a .NET Enterprise Framework. Comparing the .NET Framework with J2EE, the developers of the .NET Framework seems like small kids playing around in the mud, trudging through dirt and grime just to get something done, if not SOLID. Relook at the fact that J2EE has been around for so long, and it's the Grand Daddy for Enteprise development, but hey, we should learn from the best and improve them.

Look at how JBoss improved the entire J2EE architecture and how it affected  the J2EE specifications as a whole. It's fantastic, with constant changes and improvements to the way everything is being worked on. Ok, I'm not very experienced with J2EE, but from what I see, they do really provide some cool services, and they aren't part of Windows, or comes with additional costs. Being able to extend the services provided from J2EE specifications, and being able to re-use and extend the capabilities, I think this is what .NET is lacking.

Up next on my drawing board, is study Enterprise Services, not the .NET Framework but actual what Enterprises need, so that I can comment more. And maybe I'll be able to draft out the specifications for .NET Enterprise Framework. In order to create a successful and holistic Framework, one must use best practises like J2EE and provide the tools to use this Framework easily, like Visual Studio.

You heard it from triplez first! :P .NET Enterprise Framework.

P.S.
There's something called the Microsoft's Enterprise Library which is somewhat the beginnings of an Enterprise Framework, but it's not quite there yet.

Microsoft Windows AntiSpyware (Beta)
For those who have been using the Antispyware, there's a new Beta refresh available. Here are some of the changes.

In this second beta refresh (Build 1.0.614), we’ve made other enhancements to the detection and removal capabilities, including improved Winsock LSP removal capabilities and support for long descriptions of categorized software. In addition, we have also extended the Windows AntiSpyware beta expiration date to December 31, 2005.

Existing users of the beta (Builds 1.0.501 and 1.0.509) will receive a software update that extends the expiration date and includes the enhancements to the detection and removal capabilities. The second beta refresh is also available for download through this site.

There we go. I've just downloaded it and installed it. Not much of a difference to me. :) 

From the beginning of last week until the end of this week, life has been hectic for me, rushing the never-ending-user-requirements project. I've been coding non-stop and becoming quite "mad", in a sense that I'm actually laughing more than usual, and it's mostly because of the stress I guess. But frankly speaking, I think I might actually be enjoying it; the coding non-stop, not the never-ending-user-requirements-and-changes. I guess I'm a coder by heart, and I really love to code with people who loves to code too. It's really reliving the experience I've felt a long time ago when I first started working full-time way back in 2002 when something similar happened with my first job.

A few things I realise is that coke and pizza really helps alot when it comes to re-fueling the "tank'. After eating a slice of pizza and a cup of coke, I was re-energized and able to continue coding again, with an actual working brain instead of dying brain not functioning anymore. Another thing is that there must definitely be air-con, really cold, because once I start coding I start to get very hot. Back then when I was working OT in office without air-con, I was practically perspiring in my seat, just coding.

Just recently I announced that I'll not be involved in any SgDotNet administrative-related activities anymore. This frees up alot of my time, and actually all my time. I've always been coming up with new ideas, new ways to improve SgDotNet, hooking up with people, emailing people regarding SgDotNet, making friends and telling them about SgDotNet, organizing and preparing activities, and a whole lot of other things that shouldn't be said in the open (some of you know).

Recently, someone told me that I look more refreshed, happier, and lots of energy, more than what I was/had when I was slogging my way contributing to SgDotNet in whatever ways I can, while juggling with a full-time job, and freelance jobs. With my part in the project roughly 60-70 percent completed, I'll slow down and wait for more user-requirement changes and addition before speeding up again. I've learnt my lesson that completing something too early will mean that you'll have to redo it again when the requirement changes.

So right now, with this much free time, what should I be doing? With much thought, I'll be refocusing my energies on a few new/belated things.

Firstly, I'm officially announcing that I'll actually start working on Paladin and start upgrading the code to .NET Framework 2.0, as promised a long time ago. This is for you, firedancer. :) Top on my priority list.

Secondly, I'll also be working with Shunjie on Stickies.NET 2005, which will be based on .NET Framework 2.0 also.

Thirdly, I'll be attaining my Certified Technical Trainer and start brushing up my presentation skills, and you'll see more presentations from me pretty soon.

Fourthly, I'll start focusing and writing my planned Generics series articles with Prasanna as promised. I've been so busy lately, but right now, I'll stop procrastinating and start doing it.

Fifthly, I'll be starting something up pretty soon, and it's really hidden under wraps right now. But it'll be exciting, and it'll blow your mind out. :) I hope it gets done real soon. Look out for it.

These are the 5 major things I'll be refocusing all my energies on. I'm also going to be playing with DotNetNuke and CommunityServer to see how I can make them work together in harmony, but that's just a side-line. You'll see more written stuff from me more often from now onwards, and lots of new happenings going on in my life, especially when I start packing off to Canada. :) This chapter is ending soon, and a new chapter awaits being written. I hope these 5 things will be part of the new chapter, and I hope all the friends I made in the previous chapter will continue to be friends in the next.

Just thought you guys might wanna know, my old blog's url is at http://triplezone.blogspot.com. It has equally as many resources and great links and writeups before I moved over to this blog. The only thing I wish for is to be able to export all my blog content to and able to upload to another blog, namely this one. :)

Here's some great episodes of some great flash shows.

Xombie: The Animated Series

Xombie's story is pretty weird, and still in it's initial stage where everything's not quite known as of yet. The music's fantastic, and it has an interesting plot, which hasn't been revealed yet.

Ninjai: The Little Ninja

I actually watched the first few episodes of Ninjai way back 3 years ago, and now it's grown to 12 chapters. Pretty cool effects and storyline's great.

I'm not good at giving reviews, but these two are good stuff. :)

I'm stepping down as being a council member from this day onwards, and shall not be making any more decisions whatsoever relating to SgDotNet. As from today onwards, everything pertaining to the administration of SgDotNet shall be referred to alvin, kitkai, and aaron. I will take no more responsibilities as to anything that goes on within SgDotNet.

The stepping down is with regards to various reasons, and one of them is, as everyone knows, that I'll be going overseas to study really soon. I will still be around to attend the meetings until I leave for Canada, but only as a normal member, and I will not in anyway interfere with whatever goes on.

From now on, please refer everything that you need to discuss with regards to SgDotNet to  aaron, alvin and kitkai. Whether if it's the decision of the council members to keep me updated in the happenings within SgDotNet council, or partake in their discussion to make a decision, is entirely up to them.

I had a great time in SgDotNet, and helped it grow to what it is today, and I hope it will continue to flourish and grow into something bigger.

Thank you very much for all those who have helped and supported SgDotNet all these months, and I hope you continue to help and support SgDotNet.

Cheerios. Do keep in touch.

For those I've called and lament yesterday on why my DataBinding doesn't work, and why my controls doesn't get updated, here's the problem. ViewState. Apparently the ViewState for each control within my Repeater is enabled, and thus keeping the previous value cached, and that's why the DataBinding doesn't update the control value. So to solve this, I set every control that requires a DataItem from my Repeater EnableViewState="False" and now everything works wonderfully.

Never fall in the trap of ViewStates. *UGH* I did.

Note: Only tested on ASP.NET 1.0. But from my knowledge, ASP.NET 1.1 ViewStates are all defaulted to true. If I remember correctly, ASP.NET 2.0 ViewStates are all defaulted to false. That's all folks!

Update:
It's not becuase of the ViewState! I forgot to switch off my hack to repopulate the textboxes. UGH!!! It still doesn't work!!!

Ever wished you can create multiple websites in your Windows XP Pro just like your Windows 2003 server? Now you can with IIS Admin. It's pretty useful for developers who work on multiple websites at the same time, and feel the frustration of working on an XP desktop instead of a 2k3 server. Now with IIS Admin, it's just a simple switching of virtual websites.
iTextSharp
Needing to create PDF files, I was just searching around for a PDF creation assembly API on .NET, and this is what I came up with. iTextSharp. It's a port of the iText JAVA-PDF library, version 0.95, which in itself is a pretty good library for creating PDF files. Here's a iTextSharp Tutorial to learn how to use it.

I got an invitation email some time back and a snail mail again recently too to attend Meltdown 2005, one of the biggest events for game developers, which they're going to expose (HOPEFULLY) some of the new stuff in DirectX and the upcoming Windows Graphics Framework 1.0 (WGF) and also XNA, the next generation development platform for game developers. In my opinion, there's definitely going to be some talk regarding all those I just mentioned. I wish I have the opportunity to go. They have SO many great topics being covered, especially on the Technical Artist tracks, which I so very want to attend, regarding the HLSL(high level shading language). They even personally sent me an invitation card to the event. UGH! Sigh. Maybe next year. Anyway, here's the email.

July 26-27, 2005; Sheraton Seattle Hotel & Towers

Join the Microsoft Windows Gaming & Graphics team for two explosive days to test your limits with gaming industry experts and to celebrate 10 years of graphics excellence.  Learn the latest news about gaming's hottest advances, discover how to get the most from your gaming & graphics applications and prepare for the next-generation Windows operating system, codenamed "Longhorn".  Meltdown 2005 in Seattle will feature tracks covering: Microsoft® Visual Studio® 2005, Windows codename: "Longhorn", Graphics, General Windows platform best practices, Publishing and Business Development as well as testing/meeting suites where you can go one-to-one with the leading hardware, tools and peripherals developers.

Who should attend?    

Graphics developers:  Learn about the latest advances from the Microsoft DirectX Graphics team and get deep inside information on the next-gen Microsoft operating system codenamed "Longhorn".

Software developers/Game programmers:  Get insider tips and tricks for working with Microsoft Windows technology and getting the most out of DirectX.

Microsoft Visual Studio® Users:  Learn more about Microsoft Visual Studio 2005 - and get a prerelease copy of Visual Studio 2005!

Technical artists:  Discover content creation and variety that goes way beyond HLSL, pre-computed radiance transfer (PRT) and Spherical Harmonics.

Business developers & Publishers:  Get timely, concise and valuable insights about the business side of gaming from industry luminaries.

Special Testing/Meeting Suites allow attendees to schedule private on-on-one compatibility testing sessions and/or product discussions with participating companies.

Join us at the Sheraton Seattle Hotel & Towers July 26-27, 2005, and join the forces of truth, justice and graphics for all!  You can learn more about Meltdown and register by visiting our website at http://www.microsoftmeltdown.com.  

It's been some time since I posted anything on security, and here's something I thought you guys would be interested. BlackHat USA 2005. The previous BlackHat Asia 2003 was held in Singapore, and sadly I wasn't free to go. But nevertheless, BlackHat briefings has always been interesting and well taken for security guys. Here's the invitation email I got.

I just wanted to let you know we got some new content on-line as well as a reminder about upcoming registration deadlines. Hope to see you there!

REMINDER: Register before July 1st to take advantage of the earlier pricing!

http://www.blackhat.com/html/bh-usa-05/bh-usa-05-index.html

Speakers are selected for the USA summer show, July 27th and 28th. The speaking selections were the most difficult this year due to a large number of excellent submissions. Unfortunately we only have so much space and time, so some tough decisions were made. Check it out:

http://www.blackhat.com/html/bh-usa-05/bh-usa-05-schedule.html

Black Hat's Training line up for this summer is also the largest ever.

http://www.blackhat.com/html/bh-usa-05/train-bh-usa-05-index.html

Lots of new stuff is happening this year, including the Jericho Challenge, Black Hat Poker Tournament, Black Hat Golf Tournament, Executive Women's, Forum Workshop, Black Hat Public Hearings, and the mysterious Black Hat Awards Ceremony.

If Caesars Palace is full, check this page for other hotels Black Hat have room blocks set aside:

http://www.blackhat.com/html/bh-usa-05/bh-usa-05-venue.html

Black Hat USA 2004 videos and presentations are now on-line! Please feel free to browse Black Hat's media collection and watch past speeches.

http://www.blackhat.com/html/bh-media-archives/bh-archives-2004.html#USA-2004

NEW: The Black Hat store is now on-line. Buy Black Hat related merchandise, past conference CDs, and other shiny things.

https://commerce.blackhat.com/merchandise/

Although this is a .NET community, I feel that we need to be exposed to a variety of technologies to get the best out of each of them. I originally was an advocate for Java since it's v1.2 years and left it when it hit v1.4 but still meddled in it briefly. The reason why I left it was that it's simply a programming language, with lots of great practises and great design, BUT it didn't consider 1 very big issue, which was usuability and ease of development. Although we're developers, we also must be treated as clients and how we use your product (J2SE) affects us clients as a whole.

I'm hoping Mustang would be something great, with more advances in XML and Webservices, they are finally concentrating on a few things.

  • Compatibility and Stability
  • Diagnosability, Monitoring, and Management
  • Ease of Development
  • Enterprise Desktop
  • XML & Web Services
  • Transparency

    These are the aims and goals of the new Mustang. I'm not really that excited as of yet what the development would be like and the major changes, but I feel that the amount of legacy within J2SE must be broken away, and that Generics must be re-implemented and more tightly integrated into the Virtual Machine, instead of some hacked up code. Furthermore, I feel that constraints and restrictions to the developer isn't the way to go. Don't force the developer to learn best practises through restricting them only to do it this particular way. This way of philosophy isn't really a very welcoming thing. In my opinion, you should adopt the C++ and Perl way, and the famous Perl quote - "There's more than one way to do it". But, don't go into the extreme of Perl. :) Balance - Balance.

    I like the old Java, and some of the design patterns they use to incorporate into their framework (oh bless .NET Framework but in terms of this, you simply suck), which is well designed and has a tinge huge bang of beauty in it. For those hardcore developers who knows how to appreciate the beauty of code, you'll know what I mean. Frankly speaking, this all went down the drain when they started v1.4 and J2SE 5. You start to see legacy code, and you start to see code going stale, and the java framework started to smell and turn bad. Old - Dead.

    Well, I'm not too sure what's it really like for Java developers now, but I'd like Mustang to concentrate more on cleaning up their code, and provide more tools with ease of development. Languages are nothing without the tools provided.

    Here's an article on the core features of Mustang.

    Core Java Technology Features in Mustang

    Reading this article, I notice a few things that's going to be available, which is this.

    "Another language-related JSR planned for Mustang is JSR 223. This defines a framework to allow scripting language programs to access information developed in the Java platform. We currently plan to integrate this into Mustang for b40. Aside from the framework, we will also include a JavaScript engine based on the Mozilla Rhino implementation. Later, we hope to include a scripting shell that is script language independent. This will be a very cool way to create a prototype, do some exploratory coding, and learn new APIs."

    You know something? I need someone to help me do that exact thing with .NET Framework, and to create a new Client-Side script engine for Mozilla and IE that interfaces properly with the DOM and the .NET Framework APIs, and I hope too, this very Java API. :)

    As for the .NET Framework, there's just one thing to tell you guys. Improve on your design, and incorporate all your architecture best practises you've been accumulating into the .NET Framework. But true to true, remember that flexibility and not restrictions are what developers like. We're not babies.

  • I just found out not long ago on how to create the site on your local machine, configure everything, then bring it to another DotNetNuke site and deploy. What you're looking at is called the Portal Templates. Once you're finished designing, skinning, creating all the modules for the site you're working on, just follow these few steps.

    1. Log in as Host account on your development machine
    2. Under the Host menu, click on Portals
    3. Type your portal template name and description, check the "Include Content" checkbox
    4. Export

    This will create a portal template under <dnn>/Portals/default/<portal template name>.template and .template.resources.

    After that, just deploy your skin and container, copy this .template and .resources to the same directory, under default. To deploy, follow these few steps.

    1. Log in as Admin (doubt they'll give you host unless you own the server) on your deployment machine
    2. Right on top at the Control Panel, on the right side there's this Wizard button. Click it.
    3. Check the "Build your site from template (below)"
    4. Select the template that you want to use
    5. Click on next. Select the skin you want to use.
    6. Click on next. Select the container you want to use.
    7. Click on next. Configure everything else.
    8. Finished.

    And you have your complete deployed site.

    Continued from Accessing controls within asp:Repeater blogpost.

    I've updated the code to be used in any heirachy possible, meaning in nested repeaters, and nested controls.

    string[] atrTest = (Control)sender.ClientID.Split('_');
    int ItemNumber = Convert.ToInt32( 
                      atrTest[ atrTest.Length - 2 ].Remove( 0, 3 )
                     ) - 1;

    Notice that instead of atrTest[2] I changed it to atrTest[atrTest.Length-2] to retrieve back the control id. It's because it will always be the 2nd last in the array, therefore the -1. The additional -1 is to make up for the array starting from 0.

    That's all folks.

    More Posts Next page »