January 2006 - Posts

BudgetManager (v1.0.300)
31 January 06 06:48 PM | adrian | with no comments

Description

BudgetManager is a small application designed to help Event Organizers to create budget and keep track of expenses. BudgetManager is designed to work on multiple events, each with their own budget.

Primary purpose of BudgetManager is to provide latest financial status of the event and comparison between budget and actual results. BudgetManager also provides reminder about over-budget accounts.

Project Goals

·      Ensure user has access to budget and actual expenses.

·      Provide mechanism to keep track of expenses based on event, budget account, or payee.

·      Provide mechanism to design a budget for each registered event.

·      Provide reporting services.

Summary of Application Components

·      BudgetManager WinForms User Interface

o       High performance and rich UI that acts as a frontend to the user.

·      BudgetManager Core Library

o       A library of classes that deals with O/RM with SQL Server 2005 and Application Logic.

·      BudgetManager SQL Server 2005 Database

o       Tables:

§         Event

§         Category

§         UnitSize

§         Invoice

§         Entry

§         Allocation

Download Information

BudgetManager can be downloaded from GotDotNet workspaces at http://workspaces.gotdotnet.com/budgetmanager.

Share this post: | | | |
Filed under:
Imagine Cup 2006 Details
28 January 06 12:36 PM | adrian | with no comments

Yesterday, Microsoft Indonesia have released details about the local Software Design Invitation.

http://www.microsoft.com/indonesia/students/software_design_indo.aspx

For you guys lazy enough to click the link, here's the summary:

  • the first milestone you should take notice is the proposal submission deadline at 1 April 2006.
  • if you're first-timer in Imagine Cup Software Design Invitation, you can look into the web site to download reference proposal, otherwise the structure of your previous proposal are good enough because the scoring method has not changed.
  • if you're first-timer in Imagine Cup, you can look into the web site to learn how to register to Imagine Cup. It's quite different than last year, so veterans are welcome, too.
  • final note: Imagine Cup is the most inclusive competition for students. That means you don't have to be developer to join the competition and you don't have to be undergrads to join the competition, high school students, postgrads, art or social students are welcome! Even better, some invitations have high school specific sub-category. For the complete list of invitationals, please check www.imaginecup.com.

You know what to do, and then you don't have the tools to do it. Don't worry, I have compiled a list for each invitation in Imagine Cup 2006. Here they are:

  • Software Design:
    Any edition of Visual Studio 2005. You can download the Visual Studio 2005 Express for free.
  • Short Film:
    Windows Media Player 10. Your movie should use any codec that is available on the vanilla install of WMP10 (the safest to use is WMV9).
  • Interface Designer:
    Microsoft Expression Graphic Designer “Acrylic“. You can download the CTP/Beta for free. It is also very recommended that you watch the tutorial movies as it highlights many of the feature that does not present currently in any other graphic processing application. Acrylic requires .NET Framework 2.0.
  • Porject Hoshimi - Programming Battle
    The Software Development Kit. Downloadable from www.imaginecup.com after you have registered. You need .NET Framework 2.0 and any code editor to generate the DLL. Of course, you can always grab the Visual Studio 2005 Express Edition for free.
  • Algorithm and IT
    No special tools needed to compete, just grab an Internet connection and prepare you brain.

And if you still got some time, please check this link, it is an interview between Bernard Oh (of Singapore) and the guys who win the Imagine Cup 2005 Software Design (team Russia). A very good interview, because you'll know what to expect during the competition, and after you won!

Share this post: | | | |
Filed under:
Imagine Cup 2006 Campus Roadshow ITB Report
27 January 06 05:38 PM | adrian | with no comments

It's yesterday, and it's one of those “trials” that I greatly wanted to happen.

First and foremost, I tried (well, not exactly tried, but rather forced) to do an event in 4 days. 60+ people came, some of them are results of a one hour direct, sudden, and targeted publication campaign, done four hours before the event. Ha!

Second, I tried to change my presentation style. From static, slide-guided to dynamic, “me“-guided presentation. During the powerpoint design, I watched Steve Jobs' keynote at WWDC 2005. One of the most inspiring speeches that Jobs have made, and definitely not the only one. I tried to create a similarly styled presentation. (btw, I created three versions of the slide, the standard MS style, the refined one, and the presented one.) Minimal text, lots of beutiful things, and of course, a message. I have been able to accomplish the first two, but failed to deliver a good message. I think this is because I'm transitioning. And during the presentation, I'm not exactly Jobs-equaling yet, because of some file failures (video links not working), computer failures (not every application need to be demo-ed installed), and some nervousness that happens when you are trying something new in front of real audiences. Ha!

And no, I won't upload the slides because it's too simple to be read. And no slide notes because of the prep constraint. You'd better off reading the Imagine Cup Specification included in the Starter Kit CD/DVD (I'll talk about this later tonight).

At the end of the day, it's the experience that matters most. A quick recap on the feedback forms, my session was rated with high variability (ranging from 1 to 9), some complained the publication was too short, and one of them actually wanted a demo on XBOX 360!

You guys can see the gallery which includes one of the images generated when demoing the use of PhotoMontage feature in Microsoft Expression Graphic Designer.

After the event, we were entertained to a dinner (+ reps from local newspaper + photo session by one of the rep) and breakfast (on the train station) by our beloved Academic Developer Evangelist. (Z: post something amazing in your blog, it's dull!)

In lieu to the presentation style I tried, I read Howard's post to a link about presentation style titled Gates, Jobs, and the Zen aesthetic from Presentation Zen (just added to my OPML list). Reflected to what I have done yesterday, I admit that the style Microsoft have been using in their Powerpoint application and Speeches are too technical. I was trying to imitate what Steve had done, but haven't grasped the entire concept of simplicity. I wanted it to be simple, yet I have added things that does not exactly worth mentioning...

That link also supports my assumption that “Bill is Geek and Steve is Artist”...

What do you guys think about presentation styles? What is your style?

Share this post: | | | |
"Acrylic" and "Sparkle" Duo CTP
25 January 06 10:41 PM | adrian | with no comments

Finally, two out of three Expression product are available to try!

Soma's Blog: http://blogs.msdn.com/somasegar/archive/2006/01/24/516886.aspx

I have seen the tutorial videos of  “Acrylic” and they are impressive! I might as well do them on tomorrow's roadshow.

Speaking of tomorrow's roadshow, I'm trying to compile a list of application needed for Imagine Cup 2006, dubbed Imagine Cup 2006 Starter Kit. This kit is planned to be available on CD or DVD. What do you think about this?

Share this post: | | | |
Filed under: ,
Imagine Cup 2006 Campus Roadshow ITB
24 January 06 10:30 AM | adrian | with no comments

Time: Thursday, January 26 2006, 15:00 - til' you drop.

Venue: CDC ITB - GKU Baru Lt. 2 - ITB

Agenda:

  1. Opening Speech (15.00-15.15) - Zeddy Iskandar
  2. Imagine Cup 2005 Final Video (15.15-15.45) - Narenda Wicaksono
  3. Imagine Cup 2006 Specification (15.45-16.45) - Adrian Godong
  4. How to Make a Good Presentation (16.45-17.15) - Dr. Ir. Inggriani Liem
  5. Questions & Answers, Door Prizes (17.15-end)

No registration required, just be there!

P.S.: For those who still doesn't have a clue about Imagine Cup; Imagine Cup is the most inclusive global technology competition. If you are a coder, or interface designer, or filmmaker, or network admin, or just a guy with imaginations, you should join the competition, and get a chance to win a total sum of US$215,000!

Imagine Cup 2006 will have these categories: Software Design, Interface Designer, Algorithm, IT, Short Film, and Programming Battle. More information can be found in www.imaginecup.com or just come to the roadshow. See you there!

Share this post: | | | |
Bug Tracking
23 January 06 03:29 PM | adrian | 2 comment(s)

I'm starting up a new project. This application will provide a management platform for bug tracking in personal level. I'm planning to extend this project to team level, but not enterprise.

I need to know what kind of bug management are you using right now? Are you using Comments on Visual Studio? Excel Spreadsheet? .txt files?

Share this post: | | | |
Filed under:
OPML, Anyone?
22 January 06 01:45 PM | adrian | with no comments

Lately I have been using a lot OPML-ing around. I decided to extend System.Xml Namespace to System.Xml.Opml. Please review the code from GotDotNet Workspace here:

http://www.gotdotnet.com/Workspaces/Workspace.aspx?id=2036e4db-2580-49b7-8da1-469b0f44c556

P.S.: The code was designed with usage in mind, so it might not be extensible right now. Next version should be able to extend the OPML code for use other than feed-listing.

Share this post: | | | |
Filed under:
Cracking Up TestRunner!
21 January 06 04:08 PM | adrian | with no comments

OK, so in my last post I have said that TestRunner is a trialware. It runs for 30 days, and then expires (which a point, I haven't reached yet). Before that point, I tried looking up at the code of TestRunner. Interested in what I got? Review this article then!

Exploit: TestRunner v2.2 http://blogs.netindonesia.net/adrian/articles/8407.aspx

Read up to the conclusion to prevent this from happening to your code!

Share this post: | | | |
Filed under:
Cool Test Suite
18 January 06 11:50 AM | adrian | with no comments

I was wondering whether any particuler third part add-on for Visual Studio that does Code Profiling and Code Coverage Analysis. Yes, these features are available on Team Suite edition, but what I currently have is a lowly Professional Edition.

I got a link from TestDriven.NET (www.TestDriven.net), to TestRunner (www.MailFrame.net/Products/TestRunner) (which is, BTW a competing product). Both TD.NET and TR are based on NUnit Framework. I was having problem using TD.NET, VS seems having problem with the TD.NET DLL registration. So I tried TR, and found out that it has more than TD.NET...

TestRunner has a window that shows Test Result. It is also bundled with Code Coverage Analysis and Code Performance Profiler! Finally I can dump that slow debug logger class and move on to a better solution. The only drawback is that TR is not freeware, it's trialware. Well, good products don't come cheap, right?

Share this post: | | | |
Filed under:
Active Bug in 5 Years?
16 January 06 04:15 PM | adrian | with no comments

http://support.microsoft.com/kb/286872/en-us

I came across the bug mentioned above today on Word 2003. What are the Office guys doing?

Share this post: | | | |
Filed under:
BinarySearch Revisited
14 January 06 03:51 AM | adrian | with no comments

Last September on dIM, I presented a small implementation of Strategy Pattern. Risman then asked about why did a binary search need to be implemented using a Strategy Pattern. So here goes what happens:

I recently got involved in a small algorithmic project around permutations, random numbers, and of course binary search. The component that was presented that day has proven very valuable. Using the DLL (without any modification to the source), I have been able to create a running binary search function within minutes.

So how come this DLL is so powerful? Strategy.

FYI: Strategy Pattern is based on Encapsulate Variation Principle. I have encapsulated the objective function for the binary search. This approach provided an easy way to use the binary search component for different objective function.

The original post: http://blogs.netindonesia.net/adrian/archive/2005/08/22/6289.aspx

Share this post: | | | |
Filed under:
Indonesian Local Software Design Imagine Cup 2006 Invitational
13 January 06 03:00 AM | adrian | with no comments

A lot of people start asking me things about deadline and rules and stuff, here's what I got to date:

  1. No dates are announced yet for anything Software Design related. All we know is that the final worldwide announcement deadline (announcement of who are going to go to India) are on May. You can check out my timeline here.
  2. Software Design rules and specifications can be found on theSpoke or from ImagineCup.com.

If you need more information, you can always read my feeds on Imagine Cup updates. I'll keep you posted for the latest information.

Category link: http://blogs.netindonesia.net/adrian/category/976.aspx

Category RSS link: http://blogs.netindonesia.net/adrian/category/976.aspx/rss

Share this post: | | | |
Generic Strategy Pattern
11 January 06 12:21 PM | adrian | 7 comment(s)

When asked about what is the most important feature in .NET 2.0, I'll say: Generics! This feature does a lot of job now and a lot more in the future technologies (LINQ, etc.).

I was in a project, coded using VS 2005 Beta 2, so there are Generics there, also bugs. A day before deadline, I asked myself whether porting the code to 1.1 is better. The questions stopped when I realize that when moving back to 1.1, I'll have to change all those Generics to old-school inheritances... That's a no-go.

So, when working on a running project (due late January, will be released on freeware license), I've found out that those old ORM codes using Strategy Pattern is obsolete. I've created a new, more flexible approach using Generics and Strategy, and it's called Generic Strategy Pattern. Here is an example of the actual code:

Public Interface IDataAccessProvider(Of [Object])

  Event ObjectChanged(ByVal e As Collection(Of [Object]))

  Function [Get]() As Collection(Of [Object])

  Function [Get](ByVal id As Guid) As [Object]

  Sub Add(ByVal O As [Object])

  Sub Update(ByVal O As [Object])

  Sub Delete(ByVal id As Guid)

End Interface

This code highlights a basic ORM logic. The implementing class should define what Object (from the O part of the ORM) is to be mapped to relational form. Furthermore, by parameterizing the Object part I've been able to provide a flexible approach to the old Data Access Layer classes. Using this Interface, you can define a mapping for specific Object (well, Class) to specific Relational form. Afterwards, you will need to create a Class that contains an implementation of IDataAccessProvider for all Object that you need to be mapped. For example, I have two Objects (Classes), Foo and Bar. And I have two database implementation, SQLServer and XML. Using IDataAccessProvider, I have created 4 implementations, that is Foo-SQL, Foo-XML, Bar-SQL, and Bar-XML. The final step is compositing those implementations. I can use a data access layer where Foo is stored in a SQL Server database and Bar is stored in XML file, without the need of declaring another Interface. Helps a lot! Please contact me for a code sample. Those codes are not for public use (yet!).

Share this post: | | | |
Filed under: