Congratulations! The installation worked. You now have a fully functional installation of CMS Made Simple and you are almost ready to start building your site.

If you chose to install the default content, you will see numerous pages available to read. You should read them thoroughly as these default pages are devoted to showing you the basics of how to begin working with CMS Made Simple. On these example pages, templates, and stylesheets many of the features of the default installation of CMS Made Simple are described and demonstrated. You can learn much about the power of CMS Made Simple by absorbing this information.

Read about how to use CMS Made Simple in the documentation. In case you need any help the community is always at your service, in the forum or the IRC.


CMS Made Simple is released under the GPL license and as such you don't have to leave a link back to us in these templates or on your site as much as we would like it.

Some third party addon modules may include additional license restrictions.

Jan 30, 2018
Category: General
Posted by: alexkusuma

The news module was installed. Exciting. This news article is not using the Summary field and therefore there is no link to read more. But you can click on the news heading to read only this article.

Sep 14, 2016
Category: Tango
Posted by: alexkusuma

When I start learning tango I was told that I have to lean forward, so that I and my follower looks like forming a letter A; in order to be connected at the chest while still creating enough space for the lower body to move freely. As I progress and taking lessons from other teachers, as well as feedback from my followers and fellow tango dancers, I receive different information regarding whether I should lean forward or not, how should I lean forward, and how far should I do it. Each have their own idea about how far should one to lean forward. The differences in the opinions is so great that I remember that I had an argument with one of my follower regarding leaning forward. She insisted that I should lean forward even more because she feel that I didn’t give her enough pressure to maintain our connection; while I maintain that if I lean further even slightest I will lost my balance, won't be able to dance/lead properly, and will fell over. Her reply is what surprised me: that’s what supposed to be! she exclaimed.

The disagreement was caused by our respective teachers believe in different philosophy. Her teacher believe that both dancers should share their axis and each dancer should support/balance the weight of the other; mine believes that each should be responsible in maintaining own balance and connection hence not to lean as much.

Which one is right? Which one should I follow?
There's no right or wrong, unfortunately. Carlos Gavito dances with a very deep lean, Javier Rodriguez varies the lean though his dance, eventhough he's quite straight when he stand; Osvaldo and Coca tends to be quite straight all the time. All of them are some of the famous great tango dancers. Although they seems to be different in their choices on how far they lean forward, actually they're all the same. Because, they use what's comfortable for them, what's comfortable for their follower, what's comfortable for their tango at that time.

However, I believe that while you're learning, there's another factor that you should consider: which/what stage are you in?

In my experience, at the very early stage it is better for you to use, or at least learn the deep lean technique because it'll help you to building on the idea of maintaining the connection with your dance partner while at the same time creates a space for the lower body. As you become more skilled in tango, especially in your walk, start to experiment to lean less forward; this will helps you shift your weight from around the toes to your metatarsus, towards the middle of the arc of your feet and even on your heels.

The idea is to find your center point where you really feel comfortable and balanced. You should feel like walking leisurely with your friends having fun. Hence, you will always be in balance, and your body will always be relaxed; therefore, you can be assure that you won't take your dance partner off balance.

I used to lean forward quite a lot, but then my muscles become so tense - starting from my shoulder, upper back, lower back... Apparently, it is all because I put my balance too far ahead of my balance point. My muscles become tense, because they have to work extra hard to keep me stay in "balance". And when your muscles tense, you cannot dance properly - yes, I was still able to lead, somehow; but my lead apparently looked awkward and it become really-really hard to lead especially new followers.

As I learn to shift my weight towards my heels and middle of the arch of my foot, my muscles become more relax, which makes my dance more relaxed and make it easier for me to communicate with my dance partners through my movements.

So, there is no set of rules that says how far you should lean forward; it all depends on your dance style and your balance point. What is more important is to be able to keep yourself in balance and be relax all the time.

Tags: dance, reflection, thinking
Feb 3, 2016
Category: Tango
Posted by: alexkusuma

I start my tango journey by going to Irina Kapeli's class, where the first 2 sessions were dedicated to teach me how to walk; then she taught me basico, a set of basic steps commonly used when dancing tango, then I learn how to lead giro a la derecha (turn to the right), giro a la izquierda (turn to the left), hacia atrás y ocho (backward ocho), reenviar ochos (forward ocho), caminata con giro (walking with a turn), among other things. I was able to lead my classmates to do the steps that I wanted quite successfully, at least most of the time; hence, I was quite confident with my skill.

However, I also remember that learning tango 1 hr a week as well as practicing by myself, will only take so far. To be better in tango, let alone be good, I will need more practice; and I have to practice it with a partner. Unfortunately, I don't have a permanent practice partner; so, I have to find a way.

Luckily there's facebook! Through Facebook, I found Auckland tango community​, and I'm so happy that there's plenty of opportunity to practice.

After mustering up my courage, I went to the earliest practice that week, who happens to be on Thursday night. Once arrived, I almost chickened out; but Denise McCombe, the one who's in charge of that practica (practice session) saw me in the eyes. I knew it was too late for me to back out, and so I went in. After having a quick chat about my tango background, she asked me to lead her to walk. After a few steps, she stopped me and gave me a few tips, then she asked me to lead her again. This process happened over and over; so repetitive that after about half-an-hour, I felt that I need a break: both to rest as well as out of boredom of just walking around-and-around on the dance floor.

Safe to say, that my break was just in a matter of seconds, as I had a quick chat with Stu Johnstone, a gentleman who also happens to have a rest, and used to go to Irina's classes as well. He then asked me whether I can lead a cross, and when I said I can, he asked me to lead him to do a cross. Unfortunately, my attempts were epic failures. Then he taught me his technique, and it was different to what Irina have taught me.

To summarise, that night, I have to relearn 2 of the things that I've felt that I can confidently do.

A few days later, I went to another practica, and this time I had a chat with a chap called Steve; he asked me to show him how I do my basico; and so I did showed him. Again, he give me a feedback that's different than what Irina have taught me.

Once I got home, I felt very discourage! What have I put myself into? I thought. I've spent weeks to learn tango, and now it seems useless as what I have to redo or relearn what I've learnt in the class. What's the point of doing the class, what's the point of going & do the practica if what I have to do is kept re-learning things! So I share my frustration with my class-mate, and he said: "every teacher have their own way to teach, it's up to you which one to learn from." That statement really  stroke me.

Now, is it wrong for those kind people in the practicas to teach me their style - which implies that my style might be wrong? Is it wrong for me to insist on keeping my style while they teach me & share their knowledge and experiences with me? Unfortunately, I don't have a definite answer to any of those questions. I do remember a proverb that says: "When in Rome, do as the Romans do."

What I meant is, if someone teaches you, then do as you're taught. There's no right or wrong, both are right, in my experience. Which style that you will adopt in the end, it's up to you. It's your prerogative. It's your right to choose. What I found is that when a person share their experience to you, teaches you, or give you feedback about your tango, if you open-mindedly accept or listen, they'll be happily do that, and give you so much more. If you genuinely asks someone, and genuinely listen to their answer, they'll give you a lot more that what you asked; but you have to be genuine. If you shuts down whenever their answer isn't as what you expected, they'll stop giving you constructive feedback.

When you're learning & trying to improve your tango, constructive feedbacks are what you really-really needed.

Be open-minded, genuinely receive the feedback, listen when they share experience. Then, mix it with what you already have and know. Experiments with them, then choose what's right for you.

A concrete example of this is: my basico. Step-wise, I'm using Irina's basico; of which as a leader, I cross my foot on the 5th count; even though people advises me not to do that. However, following the feedback, I do improve my lead in doing the steps of that basico; so I'm no longer just doing the step, but I'm also leading my dance partner to do it. And that's exactly the point! I manage to own that basico.

There's no right or wrong basico or right or wrong set of steps in tango. Whatever it is, it's all just an improvisation of tango's 3 basic steps: walk, pivot, and weight-shift. Just like what my class-mate told me: "each teacher have their own way, their own style, it's up to me which one that I want to use." It's like: "it is my dog", and "it's my dog"; those 2 phrases are correct with just minor differences between those sentences. Whichever you choose, it doesn't matter as long as you use it correctly. One more thing to remember is that people will be very supportive & happily give you constructive feedbacks if you're open-minded & genuinely listen to what they tell you.​​

Tags: lesson, practice, class, learning
Dec 8, 2015
Category: Tango
Posted by: alexkusuma

Irina Kapeli and Ian Russell kept telling me the other students to dance tango in circle to get us used to how to dance in milongas; and should not pass whoever in front of you. Initially I followed but I start to think: why? Why people dance in circles in milongas, why don't they dance in different ways or path. Why can't I pass the one in front of me, especially if they're really slow and blocking the path, or being inconsiderate.

Initially I thought that it is just the courtesy, the norm, the tradition that is passed on from previous generation to the next; it could also be the most optimal path; but rectangular is actually the best path if you want to really use the whole floor. Luckily I found an interview clip of Osvaldo & Coca Cartery, a husband & wife milongueros, sharing their tango story.

He share how he "conquer" his wife, Coca, and how she makes him have to work hard to get her. And one of their story is how in the past there's no tables in milongas; only benches on the walls where the mothers seats and their daughters standing nearby, while the young men in the center of the dance floor. There was hundreds of them, and not all of them dance, so their best options is to actually dance around the people who are standing in the middle of the dance floor; and for the same reason they can't pass the couple dancing in front of them without the risk of bumping to the people who are standing in the middle, and most definitely one cannot cut across the middle of the floor; everyone knows this and they then become more considerate towards other dancers.

I personally believe Osvaldo & Coca's story is the most accurate because it's their first-hand experience, and Osvaldo was born in 1938 and has been dancing since he was still very young; so he's one of the old tangueros.

Now, at the modern day milongas, there's no more young men standing in the middle of the dance floor; and to optimise the dance floor, people now dance in multiple lanes. Which brings us to the next question: On which lane should I dance? I was told that the outer most is for the most experienced, but other people told me the opposite that the outer most is for the least experienced. Which one is right?

When I do my research, the statement "the outer-most lane is strictly respected, and dancers are expected to respect other dancers' space by not colliding either by stepping, kicking, moving their bodies into other dancer's space' kept coming up; while the closer the lane to the centre of the dance floor, the less structured and less defined it become.

So, if you want to dance with moves like gancho, high boleo, it's highly recommended to take the one closest to the centre of the floor. The same goes with how experienced are you with your floor craft. Floor craft seems like a simple thing, but the busier the club, the more skilled you have to be with your floor craft. For instance, in a very busy club where you can only move for 1 m or maybe less for the whole tanda (usually 3 songs long), you'll find it really hard to make the dance enjoyable within the limitations of keep moving forward, respects other dancer's space, and staying in your lane; if you aren't skilled in navigating the floor.

And as the outer-most lane is the most strictly respected, it usually is reserved for the most skilled of dancers.

Tags: dance, reflection, thinking, research, history
Nov 19, 2015
Category: Tango
Posted by: alexkusuma

At the end of my previous post, I share how I was very hesitant to go out and go to the practica. This time I want to share how it was.

As soon as I open the door I saw Denise McCombe​, and she saw me. And my mind said: "Damn, no turning back, now.​" So, trying to be a good guest, I approach her, shook her hand and introduce myself. Apparently she remembered me from my comment earlier in the Tango Club facebook page. I had a quick chat then off I go to change my shoes.

I looked around, and I was the 6th person there. And 4 of us were males. Other than Denise and I - who is still changing my shoes - everyone is either warming up or practicing.

Being an introvert, I did what is natural for me. I go to the furthest corner and do what Irina Kapeli taught me to do at the beginning of every class I have attended up to that point. So I practice walking forward, and walking backward; exaggerating each and every backward steps, of course. :) :)

Then Denise came and asked me to walk and lead her. I feel like going into a final exams. What if I lead her wrongly, what if I walk funny, what if I step on her foot... are some of the thought that ran across my mind at that time.

Luckily, she's very friendly, and my first ever tango walk with someone outside of my tango class went smoother that I imagined it would be. At least I didn't step on her foot. LOL. She gave me a few tips and feedback before leaving me to practice, and to help other people. By this time, there are 4-5 more people came. Most are ladies.

Feeling a bit bored and shy - because what I did was just walking, while everyone else seems to practice some sort of dance moves - I decided to sit. And there's this guy already sitting on the side. So I decided to introduce myself.

That's how I met Stu Johnstone​, one of my best confidant and discussion partner in my tango journey so far.

Me and Stu had a chat and he asked me to lead him to a cross. Unfortunately, it was a rather epic fail. LOL. The good thing is, he gave me a tip on how to lead cross, albeit it's a different way on how lead a cross.

After leading him for a few times, he asked one of the ladies to be led by me.

And that's how I met Lorraine, my favourite practice partner.

I practice my walk and also led her to a cross for a few times. Albeit most of the time I failed, it was an awesome practice.

The practice session was so exciting and fun that I lot track of time, and suddenly, it's home time. And it was my first of so much more practice sessions.

This time, I learnt that there another way to lead a cross. Nothing is more right than the other, it's just a different approach to lead a move. It's just what your teacher has been taught to do by his/her teacher.

Tags: dance, reflection
Nov 19, 2015
Category: Tango
Posted by: alexkusuma

I remember when I watch the tango scene in Scent of a Woman for the first ​time around 2003, and thought: Wow, the dance is very beautiful. I want to be able to dance like that. Then around end of 2005 when I did my post-graduate study, I had the opportunity to take an 8 weeks of 1 hours tango class with John & Felicity Flower and I love it. However, 1 hour a week to learn tango, or even anything, is not enough. I need lots and lots of practice just to remember the steps, let alone getting into its philosophy. Although my uncle's place have a rather large wooden-floor living room - which I can use to practice - it's very difficult to practice by myself; especially because I had just starting to learn.

Finding a practice is even more difficult. Facebook was still in its early days and it was still about sharing photos between your friends. Social media wasn't even a thing at that time. So it was a huge mission just to find a practice partner. Being a broke international student didn't help as well, as I didn't have the resources to continue with private or additional lessons.

Therefore, I have to let my tango to die out. - at least for awhile.

My chance to rekindle tango didn't come until June 15th, 2015 when I found a beginner tango class voucher at GrabOne. Fortunately, I manage to overcome my hesitation and push myself to get the voucher and to the class at Viva Dance Studio. It was interesting and challenging at the same time as I encountered the same issue of finding my practice partner. Luckily, social media was already a thing, now, and almost everyone is on the internet and facebook. This time, I found the Tango Club for Auckland. I joined the group in June 26th and read several posts about practice sessions.

I left comments on several posts asking whether I can come by myself or I need to find my own partner. Fortunately, none of them require me to bring a partner. Sweet, I think. It's sorted, then. :)

The next thing is to actually get into the practica itself. I'm a socially awkward, shy, introvert nerd; so getting myself out there and introduce myself to a stranger is already a challenge for me, let alone dancing with one.

The first practica that I went to was the one on Thursday, run by Denise McCombe; and I remember that I was very hesitant to get in. I parked my car, got out, and into the building. Then I paused, because it was a church hall. Part of me felt confused and disappointed, but bigger part kinda reliefed because I found my excuse. LOL.

On my way out, I saw a lady at the entrance. I was battling myself whether I should ask her or not. Then I told myself: 'I should ask her, if she knows where it is I should come and join the practica, if she doesn't know then I'll go home.' I muster my courage and I asked: 'Excuse me, is this the right place for the tango practice?' and she replied: "Yes, this is the right place. The dance practice is inside the hall. Second door on the right."

That was it! I have no more excuse to run away. I found the door and I open it.

And tango grow to be one of the biggest part of my life, now.

Tags: dance, reflection
Sep 4, 2014
Category: DIY
Posted by: alexkusuma

A few months ago, I accidentally break the LED panel of my laptop; unfortunately, I don’t have a content insurance. Believing that getting an LCD/LED panel will cost me a fortune, I keep delaying to fix it. A few weeks ago I was browsing around eBay and found a relatively cheap led panel (compatible) for my laptop. I also found several tutorials on how to replace the led panel on YouTube such as the following:

The first time I watch the videos, the top video caught my attention as it seems to be so much easier and less hassle. Unfortunately, unless you have the bottom part of the screen bezel (highlighted in red square at the image below) already opened, you would have to follow the bottom videos; unless you’re willing to risk breaking the bezel.

Highlight of the bottom of the screen bezel 

I also found the repair manual for my laptop on dell’s website; and the steps shown on the last videos conforms to the steps prescribed in the repair manual. And all of the hassling steps of taking of the cables and hinges are there to allow to safely open the bottom part of the screen bezel.

Yes, it took a while to do all of the work, but it is way easier than I initially thought, even for an absolute newbie (in opening & replacing laptop parts) like me. In my experience, what you really need is several small containers to store the screws; or a piece of A4 paper to place the screws on as it was located on the laptop. You also need some space to store the parts while you’re working; it doesn’t have to be a big one –I replace the panel in the midst of rearranging the furniture in my apartment.

Although it’s nice to have a plier so you can easily and safely open the bezel, it’s not necessary; you can use any tools you have that thin enough to go through the crack. I use a butter knife to do the job. However, you do need a Philip screw-driver; preferably a small with long neck one.

One thing that you have to be aware is that most – if not all - replacement panels sold on eBay usually have a policy of 1-3 dead pixels. However, in my experience, a dead pixels is not really an issue. I can only identify that dead pixel during the start-up screen – it’s the only white 1 pixel dot in otherwise a completely black screen.

Another occasion where I can identify that dead pixel is when I was editing an image with Photoshop. I was puzzled why that pixel doesn’t change colour no matter how many times I fill the area – before I remembered and realize that that pixel is the dead one. LOL.

I guess I learnt 2 things from this experience: first, content insurance could be a necessary evil, it might cost me something, but might be useful on some occasions. Second, it actually quite cheap and easy to replace the LCD/LED panel of your laptop/netbook.

Tags: laptop, notebook, hardware, repair
Jul 4, 2014
Category: Tango
Posted by: alexkusuma

Note: In this article, I only write a general guide to implement this, and 1 extra thing that you have to do if you want to host it in IIS/AWS; and I won't write any code this time, but there's a link at the bottom of the article where you can get the code.

With the release of Unity version 3.x, the implementation of IoC pattern is greatly simplified. All you have to do is basically:

  1. Create the project
  2. Install the Unity DI package using NuGet. To do this, then follow the steps below:
    • go to: Tools > NuGet Package Manager > Manage NuGet Packages for Solution...
    • Search for 'Unity DI'
      Search for Unity DI in nuget
    • Click install
    • Select the project and/or solution you want Unity DI to be installed to
    • Accept the license
  3. Create the contract interface
  4. Create the contract implementation using constructor injection
  5. Create the service host, and
  6. Create the instance provider.
    The easiest way is by right clicking on the down arrow shown when you hover the mouse on the class name, then select 'Generate class for ...'

Basically, now the code is done; however, your service is still inactive, hence can't be consumed yet. To make your service available and consumable, you can either: self-host your service, or host it through IIS/WAS. This decision will determine what you have to do next.

If you decide to self-host your service, then what you do next is to instantiate the UnityServiceHost class directly in your hosting application. In other words, you have to code your own service factory.

If you decide to host it through IIS/WAS, you have to be aware that IIS/AWS will be the one who looks after the creation of any service hosts, and IIS do it by creating an instance of ServiceHost. The only way you can tell IIS to instantiate your service host class is by extending the ServiceHostFactory class. In other word, you can't code your own service factory because IIS is the one who will do that, but you can influence/modify this behaviour by extending the ServiceHostFactoryclass.

What to do if you host WCF in IIS or WAS

As of the time I write this, the NuGet Unity DI package doesn't include the reference to System.ServiceModel.Activation. Hence, first of all you should check whether System.ServiceModel.Activation is listed in the References folder. If it isn't there, you can add it through the following steps:

  1. Right click at the References folder, and select 'Add Reference...'
  2. Select Assemblies > Framework on the left hand side menu
  3. Scroll down the middle column until you findSystem.ServiceModel.Activation
    Finding Unity DI in Reference Manager
  4. Click and tick on it
  5. Click OK

Then you can extend the ServiceHostFactory class so when IIS/WAS create a service host it instantiate your service host code, and this class is also where you register the types

The final step is to edit the .svc file:

  1. Right click on it and select 'View Markup'
  2. Replace the
    part with
    Factory="<your contract implementation>"

Compile, run, and enjoy the service.

Soon, I will write how you can wire Unity to WebAPI. Stay tune. :)

Where you can get the code

You can get the code from Patterns and Practices site for Unity.

Tags: unity, visual studio, wcf, service
Apr 2, 2014
Category: Technology
Posted by: alexkusuma

Around the end of 2013, I finally force myself to make time to upgrade my office365. I spared plenty of time for me to do that and to my surprice, the upgrade process was really-really fast and hassle free. So not typical of microsoft. :)

I've also made copies of all of my customisations just incase things go wrong and I have to gone through all of the customisation process again; and again, I was surprised that it wasn't necessary.

Then up to my public website. With the old Office365 and old SharePoint public website the experience wasn't that good; glad to see that Microsoft what improve the user experience with SharePoint 2013. The designing process is very easy & intuitive, the themes are more sleek & feel more modern. The best part, blog is now publicly accessible out of the box. In the past, make the blog public has been the biggest pain with SharePoint and Office365.

Unfortunately, what still is an issue is migrating the content of my blog. I can't seems to find a way to migrate the list, and Windows Live Writer doesn't seems to work with my Office365. Google search doesn't offer much solutions as well. One potential solution I found is to use Microsoft Word linked to both SharePoint blog, at least that solution works for Alaska SharePoint Users Group; unfortunately, not for me.

Luckily, since my blog is still very tiny I can just manually migrate each posts; still it took me a while to get through all of my contents. Although it also giving me a change to review and update some of the content.

Then come the bizzare thing when I'm ready to flick the switch from my old SharePoint public site to the new one. I followed the recommended steps but my url kept taking me to the old webiste. Yes, I know about the DNS record update trickling process; that's why I've also tried to wait for my devices to unresolved the DNS name before associating my domain name with the new public site. Still, it doesn't work; my domain name keep taking me to the old public website. So stubborn! Since it was already morning and I'm by then so tired and sleepy, I went to sleep. 9 hours later, when I checked again, it works! the www.1sweetlove.com took me to my new SharePoint public site.

I'm a happy man. For now, at least. :)

Tags: office, office365, o365, 365, administration
Apr 1, 2014
Category: General
Posted by: alexkusuma

​After an unfortunate incident around the end of last year, I finally manage to sort some issues with the servers at my home, and start to upgrade my web site and blog.

The incident was caused by faulty power supply which unfortunately, burnt my motherboard. Hence, there goes the CPU with it. At least I can still recycle my huge memory modules.

Well, at least I'm now manage to restore and reconfigure most of my servers, and migrate to the upgraded Office365 platform; although the experience wasn't a pleasant and smoothly as I hoped.

Now, I hope that I can spare some time to update my blog. :)

Tags: blog, welcome
Sep 1, 2011
Category: Programming
Posted by: alexkusuma

After attending TechEd and Code Camp 2011, I receive a code from Jeremy Boyd which potentially I will use quite often. My first instinct is to copy-and-paste those lines of codes into a text file. However, I quickly change my mind because in the future, at least it would be quite a feat to remember where I store those codes in the first place. Then I remember about snippet. Sounds like a good idea; especially I'm also don't have a clue on how to use snippet in Visual Studio. So, I got 2 good reasons to find out how to create and to use snippet.

So, first of all, how to use snippet. You can use snippet in 2 ways:

  1. Right-click > Insert Snippet... > [Choose your snippet]
  2. Ctrl-K + Ctrl-X > [Choose your snippet]

That simple, and now I felt stupid that I was struggling upon how to use snippet especially during the Hands-on-lab time. This would have save me lots of time from typing the lab codes. :D

Now, how to create a snippet. The easiest way is to follow these steps:

  1. File > New File > XML File
  2. Ctrl-A
  3. Insert a snippet called "Snippet" (Ctrl-K + Ctrl-X > Snippets > Snippet)

This will give you the snippet template, and you'll only have to update some part of it. Handy. The template will look like the following image:


Next is the steps to customised the snippet:

  1. First of all, you have to change the Language part at line 19, into the language of your code. The options are:
    • VB
    • CSharp
    • VJSharp
    • XML

    You should change the language into the language of the code that you will put as the snippet.

    The language also have to match the location of your snippet, e.g. if you will store it in the XML folder, the language should be XML, and if it will be in the Visual C# folder then the language will have to be CSharp, if the code is for a snippet for web.config, then the language should be XML, and should be stored in the XML folder.

    Failure to do so, will give you the "Missing or unspecified Language attribute" error message (in the Output window).

  2. You should change the title of the snippet
  3. Change the author of the snippet
  4. Assign shortcut to the snippet. However, please note that the shortcut only available for codes that support intellisense; hence, the shortcut won't work for XML pages such as web.config.
  5. Update the description of your snippet, as this will help to remind you what your snippet is all about sometime in the future.
  6. Place your code in between the square brackets.
  7. And if you got some dynamic content such as file location, variable name, class name, etc you can use the <Literal> (or <Object> for object name) to make it easier to customise the code. In my case, I add:


    and in my code, I use %filename% at the location where I should place the location of the log file.

  8. Save the code using .snippet extension.

That's all. If you want to learn further, MSDN got an excellent set of articles.

Tags: visualstudio, programming, tools
Jun 20, 2011
Category: Programming
Posted by: alexkusuma

In the past few days, I was troubled by some issues ​with my code. Unfortunately, the error messages that I got is just like the following snapshot:

default error message

Just saying "The server encountered an error processing the request. See server logs for more details." is not very helpful isn't it? So, I dig my eyes and head into every server logs that I know and can think of, but to no avail. Out of desperation, I stumbled upon So Special - InitializeService in ADO.NET Data Services, a blog post by Marcelo Lopez Ruiz. Following his suggestion, I add the following single line of code


so my code now look like the following:

namespace publicationLibrary { [System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults=true)] public class ListOfPublications : DataService { 

When I check the error message, I finally got the detailed one like the following snapshot:

Detailed error message

I can see the detailed error message! Yay! Problem solved.

One very important thing to do before I enabled the service into the production is to take that line of code; to minimize the security attack surface. I understand that this activity is easily forgotten. Therefore, I explore further and found out that I can use web.config to enable or disabled this feature.

What I did next is to remove that 1 line of code from my program. Then I modify my web.config files. By default, web.config disabled the includeExceptionDetailInFaults. Thus, assuming that you're using the default web.config files, if you change the default web.config.debug into the following:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <system.servicemodel> <behaviors> <servicebehaviors> <behavior> <servicedebug xdt:transform="Replace" includeexceptiondetailinfaults="true" /> </behavior> </servicebehaviors> </behaviors> </system.servicemodel> </configuration> 

you will automatically achieve the same effect without even have to change your code. It will automatically display the detailed error message if you compile the code in Debug mode, however, if you compile your code in Release mode, it will automatically display the concise 1 line default error message, as in my first screen snapshot. Perfect!

Tags: wcf, .net, web service, data service
Jun 9, 2011
Category: Technology
Posted by: alexkusuma

Last night when I search through the co​mmunity forum regarding how to change the main account email address from for example john.doe@mydomain.onmicrosoft.com into john.doe@mydomain, I found at least 6 threads, and all of then recommends that I have to create a new account for john.doe@mydomain and then delete the old john.doe@mydomain.onmicrosoft.com account. It works, but you have to do it at the very begining, before you created anything, receive/send any emails, or even joining the community. In my opinion, eventhough it works, it's not a good solutions. The following steps is, in my opinion, a much better solution.

  1. Start with loging in to por​tal.microsoftonline.com using your onmicrosoft account, e.g.john.doe@mydomain.onmicrosoft.com
  2. Then go to your 'Admin' site, and then to 'Domains'. The status of your domain should be 'Active'. At this point, it doesn't matter whether you've change your NS entries of your domain or not. However, to ensure smooth email transitions, I personally prefers not to change it yet.
    List of domains setting
  3. Then go to 'Users'.
  4. Select john.doe@mydomain.onmicrosoft.com's name, and then click 'More', followed by 'Change mailbox settings.'
  5. On the popped up window, go to 'E-mail Options.'
  6. Click 'Add' and enter john.doe on the text box and select mydomain from the dropdown list. Then click 'OK.' If John Doe have other email aliases, then you should add them too.
  7. Click 'Save' once you're done, and the popped up window will close.
  8. Click 'Save' on John Doe's page. This will take you back to the 'Users' page.
  9. Click 'New' > 'User'.
  10. Create a temporary user, e.g. temp@mydomain. Don't forget to give this user administrator permissions.
    Assign permissions
  11. Once temp@mydomain has been created, log out from your current user, then login using temp@mydomain. You'll have to assign new password before you can continue.
  12. Go to 'Admin' site, then go to 'Users,' and followed by repeating step 4.
  13. Click on 'Properties', and then change John Doe's username into: john.doe@mydomain.
  14. Click 'Save.'
  15. Log out, and relogin using John Doe's new username.
  16. You'll find that John Doe's primary email is now john.doe@mydomain, and all of your existing email, contact list, community access, SharePoint site(s), etc. are all still intact with your account.

The best thing with this solution is that you can do this whenever you want, don't have to be the very first thing that you have to do.

Another few steps that I would like to recommend you to do are:

  • Immediately delete temp@mydomainaccount. It's dangerous to leave unused account accessible, plus this unused account might cost you once the beta period had lapse.
  • You can now change the NS entries of your domain, and you won't loose any incoming emails. Although, for the next few days (usually around up to 72 hours), some of your emails might still go to your old email provider/account.

And now, I can say happy emailing with Office 365.

Tags: exchange, office, office365, 365, internet, administration
Jun 7, 2011
Category: General
Posted by: alexkusuma

Finally, today I move my blog to a new sytem, as well as to a new host. It's no longer being hosted in a mock server that sits under my desk, and prone to service disruptions whenever my ADSL modem feel like dying on me, or when my internet provider feel like disrupting my internet connection.

Since my new host is running different blog engine, and I don't have control over what I can install into the host server, then I have to use a new system to run and manage my blog.

And this all began about 1 week ago, when I finally able to get my hands dirty with Office 365, and also getting a new Windows Phone 7. My excitement level at that time was stellar. Unfortunately, today I can't say the same.

There are disappointments upon disappointement came to me in the past week, starting from: (1) the SharePoint under Office 365 Small Business Plan is not accessible from Windows Phone 7 (Microsoft says that this will be fixed when "Mango" ship), (2) I accidentally delete my whole website when I actually just wanted to delete one of its sub-site, (3) Difficulties to customise/hide the "ribbon" on top of the blog site, (4) No support for tagging the blog post, and (5) Cannot install custom WebParts, such as the Cloug Tagging. Those are just some of issues I encountered that are either worth mentioning, or I still remember.

However, my move to Office 365 system isn't just a-bag-full-of-pain. It got happy memories too, such as: (1) How easy it is to transfer my contacts from my Outlook, (2) Better calendaring system that allows me to sync multiple calendars without messing each other up, and (3) Seamless transitions from my old email and web system to Office 365. To name a few.

It's true that there are challenges, but, I believe that this is my opportunity to finally learn about, and how to use SharePoint. Hopefully, at the end of the tunnel I'll master SharePoint once I'm done with this; and also because I have to administer SharePoint at work, soon.

Tags: blog, sharepoint, office, office365, o365, 365
Jun 7, 2010
Category: Programming
Posted by: alexkusuma

My previous post talks about how to create server-control shown in the Toolbox and click-and-drag enabled, and also about creating a server-control shown in toolbox with own icon but what if you want to automatically add/inject javascript? This post will talk about exactly that.

There's two approach for this:

  1. to dump the JavaScript code directly into the page
  2. to put the JavaScript code into a file and link that file

Although the first approach is straight forward, I personally prefers the 2nd approach as it's more efficient and allow the browser to cache the code, hence reduce the bandwidth usage and time to download.

Now, let's assume that we have a JavaScript file called Funky.js with the following code in it:

function TestFunction(ctrl) { alert("Test"); }

First of all, we need to add Funky.js into the project, and afterwards your Solution Explorer will look like the following:

Embed Server Control

Then, just like with adding the BMP as custom icon in creating a server-control shown in toolbox with own icon, we will have to set its Build Action property into Embedded Resource like the following image:

Server control with JavaScript

Afterwards, we have to modified the code, from:

using System; using System.Web.UI; using System.Web.UI.WebControls; namespace AdvSolutions.MyControlLibrary { [ToolboxData(@"<{0}:LogoControl runat=""server"" CompanyName="" "" LogoUrl="" "" />")] public class LogoControl : WebControl { public LogoControl() { } public String CompanyName { get; set; } public String LogoUrl { get; set; } protected override void Render(HtmlTextWriter writer) { writer.RenderBeginTag("div"); writer.Write("<img src=\"{0}\" /><br />", this.LogoUrl); writer.Write(this.CompanyName + "<br />"); writer.RenderEndTag(); } } }

into the following:

using System; using System.Web.UI; using System.Web.UI.WebControls; namespace AdvSolutions.MyControlLibrary { [ToolboxData(@"<{0}:LogoControl runat=""server"" CompanyName="" "" LogoUrl="" "" />")] public class LogoControl : WebControl { public LogoControl() { } public String CompanyName { get; set; } public String LogoUrl { get; set; } protected override void OnPreRender(EventArgs e) { Page.ClientScript.RegisterClientScriptInclude("LogoUrl", Page.ClientScript.GetWebResourceUrl(this.GetType(),_
"AdvSolutions.MyControlLibrary.Funky.js")); base.OnPreRender(e); } protected override void Render(HtmlTextWriter writer) { writer.AddAttribute("onclick", "TestFunction(this);"); writer.RenderBeginTag("div");​ writer.Write("<img src=\"{0}\" /><br />", this.LogoUrl); writer.Write(this.CompanyName + "<br />"); writer.RenderEndTag(); } } }

You'll see that we have to override OnPreRender as well, otherwise, it will be too late for us to tell ASP.NET that we want to link Funky.js.

Now, many tutorial stops here. However, I found that you have to perform another crucial step. Which is to add the following code:

[assembly: WebResource("AdvSolutions.MyControlLibrary.Funky.js", "text/javascript")]

at the end of your AssemblyInfo.cs file.

If you observe carefully, that line is composed from the Namespace and the filename. Now, if for instance you move Funky.js from the root folder of your project to a subfolder called Scripts for example, then you will have to change that line into:

[assembly: WebResource("AdvSolutions.MyControlLibrary.Scripts.Funky.js", "text/javascript")]

and we also have to modified the line in the OnPreRender from AdvSolutions.MyControlLibrary.Funky.js into AdvSolutions.MyControlLibrary.Scripts.Funky.js.

When you use this control, whenever you click on the logo the javascript will pops out a message. I know that the functionality is trivial, but I believe this will teach you the fundamentals to do more exciting things.

Have fun.

Tags: .net, c#, programming
Jun 6, 2010
Category: Programming
Posted by: alexkusuma

My previous post talks about how to create server-control shown in the Toolbox and click-and-drag enabled, but it is shown in the Toolbox with the generic icon. It's ok if you have a few custom controls, but when you got a bunch of them displayed using the same icon, then it will take you a while to find the one that you're looking for.

To make your custom control displayed with your custom icon, then we will have to modified our code into the following:

using System; using System.Drawing; using System.Web.UI; using System.Web.UI.WebControls; namespace AdvSolutions.MyControlLibrary { [ToolboxData(@"<{0}:LogoControl runat=""server"" CompanyName="" "" LogoUrl="" "" />"), ToolboxBitmap(typeof(LogoControl), "AdvSolutions.MyControlLibrary.LogoControl.bmp")] public class LogoControl : WebControl { public LogoControl() { } public String CompanyName { get; set; } public String LogoUrl { get; set; } protected override void Render(HtmlTextWriter writer) { writer.RenderBeginTag("div"); writer.Write("<img src="\"{0}\"" /><br />", this.LogoUrl); writer.Write(this.CompanyName + "<br />"); writer.RenderEndTag(); } } }

PS: You can find the original code in how to create server-control shown in the Toolbox and click-and-drag enabled.

After we modified the code, the next step is to add your icon (BMP) file into the project. Afterwards, your Solution Explorer will look like following:

Embed server control

The image file that you want to use as the icon will have to meet the following criteria:

  • It has to be 16x16 pixels BMP image/icon file.
  • It should have the same name with the class name you want it to represent. In our example it should be named LogoControl.bmp
  • You have to set its Build Action property into Embedded Resource like the following image:
    Server Control
Tags: .net, c#, programming
Jun 5, 2010
Category: Programming
Posted by: alexkusuma

I was assigned to develop a server control using .NET, and altough it's quite easy to create a server control; making it drag-and-drop capable is a bit of a challenge. Although there are some tutorials out there, all that I've read have pitfalls that make me scratch my head.

Now, lets assume that we have the following code:

using System; public class LogoControl{ public LogoControl(){ } public String CompanyName {get; set;} public String LogoUrl {get; set;} }

And let's assume that this server control inherits directly from the WebControl class. hence, the code will be like:

using System; using System.Web.UI; using System.Web.UI.WebControls; namespace AdvSolutions.MyControlLibrary { public class LogoControl : WebControl { public LogoControl() { } public String CompanyName { get; set; } public String LogoUrl { get; set; } protected override void Render(HtmlTextWriter writer) { writer.RenderBeginTag("div"); writer.Write("<img src="\"{0}\"" /><br />", this.LogoUrl); writer.Write(this.CompanyName + "<br />"); writer.RenderEndTag(); } } }

Now, the web server-control is done. However, you can only use it from the source view of your Visual Studio. To give click-and-drag capability to this control, you have to modified the code into:

using System; using System.Web.UI; using System.Web.UI.WebControls; namespace AdvSolutions.MyControlLibrary { [ToolboxData(@"<{0}:LogoControl runat=""server"" CompanyName="" "" LogoUrl="" "" />")] public class LogoControl : WebControl { public LogoControl() { } public String CompanyName { get; set; } public String LogoUrl { get; set; } protected override void Render(HtmlTextWriter writer) { writer.RenderBeginTag("div"); writer.Write("<img src="\"{0}\"" /><br />", this.LogoUrl); writer.Write(this.CompanyName + "<br />"); writer.RenderEndTag(); } } }

Although most people says that this is enough, it actually not. There's another step that you have to do, which is to modify the AssemblyInfo.cs file. Add the following line into it:

[assembly: TagPrefix("AdvSolutions.MyControlLibrary", "acl")]

Oh, you might also need to add

using System.Web.UI;


Why? Because, if you look at the code again at line 7, you will find ... @"<{0}:LogoControl .... By adding that single line into AssemblyInfo.cs file, when you click-and-drag this control, it will automatically register the assembly and create the tag prefix, therefore, when you click-and-drag this control into the consuming project the line 7 on the code above will be automatically translated into:

<acl:LogoControl ID="LogoControl1" runat="server" CompanyName=" " LogoUrl=" " />

Now, if you look carefully at the code and AssemblyInfo.cs file again, you'll see that the namespace for this project is AdvSolution.MyControlLibrary. If we change the namespace into something like RandomNameSpace then we have to replace every AdvSolution.MyControlLibrary with RandomNameSpace.

I hope this help.

Tags: .net, c#, visual studio, programming
Mar 15, 2010
Category: Technology
Posted by: alexkusuma

When I tried Outlook 2010 Beta, the first things that I noticed are:

  • Outlook now starts so much faster even if I got a rather big outlook file
  • Can automatically open the online map of contact's address
  • The Outlook Social Connector, at the bottom of an email or contact's detail 

outlook 2010 beta contact

As you can see on the image above, it listed all of the email, attachments, meetings, and other stuff that I've received or I've sent to that contact; and also his/her status updates. I personally think that this is a good addition, and bring outlook up to speed with its main competitor.

Unfortunately, the standard Social Connector that comes with Outlook 2010 beta can only connects to Microsoft SharePoint. A big disappointment for such of a nice feature. However, there are now updates for this feature, and at present, you can connect to:

  • LinkedIn
  • MySpace

with connections for Facebook and Windows Live coming.

To enable these new connections, you have to:

  1. Download the Outlook Social Connector 32 bit (February 2010 Beta)
  2. If you're using Outlook 2010 Beta, then you have to uninstall current Outlook Social Connector. If you are using Outlook 2003 or 2007, then you can skip this step.
  3. Run the Outlook Social Connector that you have downloaded in Step 1, and follow the instructions on the screen
  4. Restart Outlook
  5. Download the connector for LinkedIn or MySpace
  6. Install the downloaded connector
  7. Restart Outlook
  8. Provide the credentials for each of the social network that you want to connect to

You can then see the additional feeds on your Outlook Social Connections area.

Tags: office, social network, outlook, linkedin
Mar 6, 2010
Category: General
Posted by: alexkusuma

​After a few months battling issues with networking and server settings at my place, I finally manage to sort things out and bring most of my servers back to life. And one for sure, is to bring my blog back from death. Although I am very disappointed with this incident, however, I have tons of material for my blog posts. Hopefully I can manage to spare some time to put them all on. For now, I'm just glad that I've manage to put this blog online, and kindly ask you to look forward for more postings in the near future to share my battle experiences. :)

Tags: blog, welcome
Oct 22, 2009
Category: Programming
Posted by: alexkusuma

When I try to look for an example on how to properly use ReadOuterXml and ReadInnerXml, my search results returns lots of thread about people having issues when using any of those, but no real answers were given. Hence, the following is my contribution.

When we want to read XML documents, we usually use the lightweight readers derived from System.Xml.XmlReader, and most likely it will be XmLTextReader. For this example, let's assume that we want to read the following XML file:

<?xml version="1.0" encoding="utf-8" ?> 
<book title="Book1"> 
<author name="Author1"></author> 
<publisher name="Publisher1"></publisher> 
<book title="Book2"> 
<author name="Author2"></author> 
<publisher name="Publisher2"></publisher> 
<book title="Book3"> 
<author name="Author3"></author> 
<publisher name="Publisher3"></publisher> 

And we usually write our code as follows:

XmlTextReader xtr = new XmlTextReader(XMLFile); 
while (xtr.Read()){ 
switch (xtr.Name.ToLower()){ 
case "book": 
result += "<br />" + xtr.GetAttribute("title"); 
case "author": 
result += xtr.GetAttribute("name"); 
case "publisher": 
result += xtr.GetAttribute("name"); 

if (xtr != null) 

And when whe want to use ReadOuterXml or ReadInnerXml, we'll most likely will modify the code above into the following:

XmlTextReader xtr = new XmlTextReader(XMLFile); 
while (xtr.Read()){ 
if (xtr.Name.ToLower().Equals("book") && xtr.NodeType.Equals(XmlNodeType.Element)){ 
result += xtr.ReadOuterXml(); 

if (xtr != null) 

And that's when the problem starts. Most of the issue encountered is the reader only read every other record. This is caused by the fact that both ReadOuterXml and ReadInnerXml actually behaves like Read. Hence, after ReadOuterXml or ReadInnerXml is executed, it will move the cursor to the next Element/EndElement. Hence, our modified code actually shift the cursor twice which then explains why it only reads every other record. Once we know the reason, we can then re-modified our code into the following:

XmlTextReader xtr = new XmlTextReader(XMLFile); 
while (!xtr.EOF){ 
if (xtr.Name.ToLower().Equals("book") && xtr.NodeType.Equals(XmlNodeType.Element)) 
result += xtr.ReadOuterXml(); 

if (xtr != null) 

When this code is executed, it will correctly read every records in the XML file.

Just incase you're wondering about the if statement within the while loop, that if means that if the cursor is at the right element, then reads its inner or outer XML; otherwise, go to the next correct element. If you forgot to put the cursor advancement statement, you'll end up with infinite loop. And that's, my friend… something that you want to avoid.

Tags: .net, c#, programming, xml
Oct 18, 2009
Category: Technology
Posted by: alexkusuma

​If you have mp4 files you must have been really frustrated on trying to make Windows Media Player (WMP) in Windows Vista to list them in its library. And having the files listed in the library is the prerequisite to make WMP able to stream them. Since WMP 12 in Windows 7 is able to natively recognize MP4 files, it’ll automatically add your MP4 files into the library; hence, it'll be very easy to stream them.

The following are the steps on how to enable streaming on WMP 12 in Windows 7:

  1. Make sure that you either: (a) Put your video files in one of the default folders, or (b) Add the folder(s) where you put your videos into the Library Locations.
  2. Manage you Media Streaming Options. You can either do it either through:
    • Start > Control Panel; followed by: Network and Internet > Network and Sharing Center > Media streaming options, OR
    • through WMP's interface: Stream > More streaming options. as depicted in the screen snapshot below:
      Streaming options
  3. On the next screen, I would recommend you to rename the media library. I prefer to use Windows7 as its name. Feel free to use whatever that you want. Don't forget to make sure that you Allow the access for 'Media programs on this PC and remote connections...' otherwise, your XBox won't be able to pick it up. Your screen will look like the following image:
  4. Click 'OK' and you're done.

Well, it’s very easy. The next step is to connect your XBox to your Windows 7’s WMP. Which is in the scope of my next blog.

Now, if you are concern with security, and don't want arbitrary people to access your media, once you're done connecting your XBox to WMP12, you can revisit WMP 12's streaming option, and change the permission to Block 'Media programs on this PC and remote connections...' and only Allow your XBox. Your screen will look like the following:

Tags: xbox, xbox360, 360, streaming, windows media player, wmp, windows 7, mp4
Oct 17, 2009
Category: Technology
Posted by: alexkusuma

I have to admit that I’m a big fan of Microsoft Outlook, especially as my Information Manager. I use it with work email, personal email, and now with my Hotmail account.

The initial experience of integrating Hotmail/MSN/Live email account with Microsoft Outlook in around 2004 was a bad one. It was more like an web browser enclosed in the Outlook. However, it now have come a long way; and here is how you can do it:

  1. Remember to close your Outlook, then download and install the Microsoft Office Outlook Connector
  2. Open your Outlook, and fill out your email address, password, and your name when it prompt you to do so. Oh, to make your life easier, remember to tick on ‘Remember my password’
  3. Restart your Outlook.
  4. Wait for the connector to configure your account. Once it has finish doing its job, you can find your hotmail account in your Mail Folders list.
    list of accounts
Tags: hotmail, outlook, intregration, mail, email
Oct 17, 2009
Category: General
Posted by: alexkusuma

Many said that appreciating small things can give us a much happier life. Initially, I don't really buy into that idea. However, over time, I realize that it is true. Really true.

Let's start with something simple; what come into my mind when I wake up in the morning. On the days where I thought about: 'Sh*t! I'm late.' I usually will have a very bad day. On that day I will experience that the water temperature is not quite right, I drop the tooth brush, wore my socks inside-out, my favourite café ran out of my favourite breakfast, the red lights always caught me, snowed under with work, I felt so exhausted, etc. However, on the day when I thought about 'Wakey, wakey! Rise and shine!' things seems brighter, and already in place: I always got the green lights, my favourite café have plenty of my favourite breakfast, I felt that I'm always on top of my work, arrive early in the morning, bursting with energy, etc. You might say that: "Well, that's because I woke up early on those bright days." Well, my friend… I have to disappoint you: I woke up at the same time - 8.30A – in those mornings. The difference is just my attitude when I woke up that day.

Another thing is about lucky draws. I never believe that I'll win anything. However, since I've change my attitude from complaining on everything into appreciating everything – even small things; and believe that I could win something: I've won a 24-inch Samsung LCD monitor, a lottery (albeit that it's just $1 profit, it's still a profit :D), got an un-expected tax refund from the IRD. To name a few.

So my friend. The message is: you'll only get what your mind is focusing on. So, appreciate small things; It help you to get into the vibe of acquiring big things.

Tags: luck, vibe, attraction, fortune
Oct 11, 2009
Category: Technology
Posted by: alexkusuma

Now that I have a blog and has been using Windows Live Messenger for ages, I do want to use Windows Live Writer (WLW) so I can tap on the added functionality that WLW offer plus because WLW conveniently come as a free add-on for Windows Live Messenger. Just like any good web-denizen, I go straight to Google and lucky enough, I found several articles, but to my surprise each of them describe very different steps. So to help me decide, I fire up WLW and see what's the actual steps.

The first time you open WLW, you'll be presented with a screen where you have to select your blog service. Select Other blog service and then click on 'Next'; as shown in the following image.


On the next screen, you'll have to fill in the URL to your blog; in my case it would be http://blog.1sweetlove.net/. You also have to fill in your username and password that you use to create blog entries. I would recommend you to tick on 'Remember my password' so you don't have to type in your password all the time. Once you're happy, click on 'Next'. The following image depict this step.


The 3rd screen is where WLW will automatically configure itself, just like the following picture.


However, you might be presented with a different screen like below.


When that happens, please check your blog site on the server. Most likely, the site has been turned off. At least, that's what happened to me. :P Basically, if you've set BlogEngine.NET correctly, you shouldn't get that screen.

Once WLW finish setting itself up, you'll get the last screen below where you have to nickname your blog account in WLW. I personally just leave it as it is. Once you click on 'Finish' you can start creating your post with WLW. However, I would recommend you to click on 'Share my blog on Windows Live' at least it will give you leverage to promote your blog.


If you decide to do so, all you have to do next is follow the instruction on the browser opened by WLW when you click on 'Share my blog on Windows Live.'

Well, that's all. Happy blogging.

Tags: blogengine, blogengine.net, windows live writer, wlw
Oct 10, 2009
Category: General
Posted by: alexkusuma

Finally! I manage to setup my blog! After years of pondering and being indecisive about having a blog or not, the BlogEngine.NET manage to persuade and lured me in. :) So, yes... it's now official. :) I have my blog and I host it myself. And if you're wondering whether or not I'm a fan of Microsoft products, I'm frankly declare that yes, I am.

In my opinion, Microsoft have now sort out their act and now have begin to follow the standards. No more 'enhancements.' I personally love their ASP.NET and ASP.NET MVC. It's just a brilliant product. Windows 7 also another great product that they have. Yes, there are some negative feedback, but I believe that that's normal. However, I do ask you evaluate it fairly. Most of the reviews that I've read so far are a bit unfair. Either the writer actually never use Vista, or they use the Beta or RC versions but call it as the review to the RTM product.

I guess that paragraph will immediately indicate about what my blog is gonna be. However, that's just partially correct. You'll find that through this blog, I will share my flair of technology: hardware, software, concepts, and its interconnectivity. You will also find my comments and views on politics, general issues, my research, and interests; in addition to a simple posting about my daily life.

Feel free to comments; and although I sometimes is quite opinionated, I believe that I can still put myself in a neutral position hence, I will stil be able to see from your point of view. So, please do comment.

It's already early in the morning, so I guess I better go to sleep, now. I'll try to regularly posts stuff. :)

Please enjoy.

Tags: blog, welcome