Goodbye, SkypeGadget

 Nov 3rd, 2012 

 , ,

Five years after releasing the first version of SkypeGadget, I decided to stop supporting and developing SkypeGadget. I believe that I discontinued it about a year ago when I provided the latest update but today it is official. Starting today, Nov 3rd 2012, I will no longer offer support for SkypeGadget.

There are a few reasons behind this decision: (1) Windows 8 is out and it does not have support for gadgets. (2) Skype4COM, the library that allowed SkypeGadget to talk to Skype, is no longer supported and from what I’ve heard, it does not work with the latest version of Skype. (3) Gadgets are an old technology; the new era of live tiles is here.

Before I end, I give you the SkypeGadget memorabilia:

  • SkypeGadget’s first name was SkypeConversation.
  • It started as a contest entry. The first prize was an HTC Touch. SkypeGadget got on 6th.
  • October 27, 2007 is the date of the oldest SkypeConversation version that I have (see the screenshot). I started developing it 1-2 weeks before that date.
  • In July 2009, it reached 100.000 downloads on Gallery Live.
  • Last time I checked the Gallery Live website, before Microsoft discontinued it, there were more than 300.000 downloads.
  • On top of the numbers above, there are about 40.000 downloads from this website. I think the total number of downloads, from all places, is close to 350.000.
  • The SkypeGadget page on this website has 95.000 views.
  • SkypeGadget has less than 500 lines of code, including CSS and HTML.
  • Believe it or not, people donated REAL money. Four people donated a total of $13 (2x$5, 1x$2, 1x$1).
  • SkypeGadget was and will remain free and open-source.
  • SkypeGadget was the first ever gadget that allowed interaction with Skype. There were at least 3 other gadgets that copied my code.
  • There are people who use outdated versions of Skype just to run SkypeGadget (Thanks guys!).

You can still download SkypeGadget, I’ll keep the page up and running.

C# error CS1540

 Sep 12th, 2012 

 , , ,

There are many ways in which one could violate the rules of Object Oriented Programming in C#. Fortunately, the C# compiler is smart enough to prevent many of them, like the one in the example below. Can you  figure out why the compiler doesn’t allow the call in the last method?

abstract class BaseClass
    protected abstract void AMethod(BaseClass arg);
class Derived : BaseClass
    protected override void AMethod(BaseClass arg)

Read the rest of this post »

Guess who’s back?

 Sep 9th, 2012 

 , ,

Yes, I am still alive :) I was too lazy to write any posts in the last months.

Stay tuned for the next technical post on Wednesday (Sept. 9, 2012) morning. Until then, here’s a picture taken from the 73rd floor of the tallest building in Seattle:

Random value

 Nov 20th, 2011 

Do you follow xkcd? It yes, then you mostly sure know the Random Number episode:

Image credits:

I believe it is very funny and it actually happened, a few days ago, to me. Here is my “random” code that was caught in a code review by the eager eye of a colleague:

//Pass random language. It doesn't really matter
string assemblyPath = ProxyHelper.GenerateAssembly(ProxyLanguage.CS);

And the code review comment: “Although it is hard coded to CS.  :)”

The U.S. is full of… ads

 Oct 30th, 2011 

 , ,

I’ve been in the US for one month now and I’m already sick of commercials and ads. I totally understand that some services must deliver ads to control their costs and I agree with some ads but what happens here is insane.

If you are from Europe (as I am), you probably know that youtube has ads in the form of AdSense delivered as small popups at the bottom of the player. Here, in US, there are video ads delivered before the actual content. So, before being able to watch a video, one has to enjoy a 10-15 seconds commercial (luckily, longer ones get a Skip button after about 15 seconds).

Southpark Studios (the official site) delivers about 3 sessions of commercials/episode. Well… they need someone to sponsor the free videos but the same ad is delivered twice or even trice in a row. It might be a bug in their player but still this is no excuse. I know the IE9 and  Jack in a Box commercials so well now that I can predict the next frame… oh, and there is a new one with a guy that gets hit by a frisbee – very annoying.

I was very surprised when I received a call, on my cell phone, which turned out to be an ad. Basically, it was a recorded message trying to sell me something. This is unbelievable because the number was 1 day old, only the phone company had it and I am pretty sure that I unchecked any “I want to be spammed box”. I was even called once by a real person who was trying to sell something.

Television used to be made of TV show with some ads… Here is ads with some TV show. Approx. every 15 minutes, the movie gets interrupted by 5 minutes of commercials. Also, my provider has an interactive TV guide from where I can pick the show that I want to see. The guide is full of ads and today something happened, something that made me write this post: during a movie I got an interactive (!) ad at the bottom of the screen. The commercial was asking me to press some button on the remote control if I want more details. WTF?? This is hilarious, I am being flooded with commercials…

The last example of ads-world is Amazon’s Kindle. They offer a $30 discount for Kindle, but there is a catch: “You’ll receive special offers and sponsored screensavers directly on your Kindle, including AmazonLocal deals in select cities. Your offers display on your Kindle’s screensaver and on the bottom of the home screen—they don’t interrupt reading”. So, what is this actually? It means that they will give you the Kindle cheaper but it will display ads forever.

The American society has many positive and negative aspects but the quantity of delivered ads is not the former class.

A new start… again

 Oct 19th, 2011 

 , ,

It’s been a while since my last post. I believe that this was the longest inactivity period of this blog. However, there is a good reason why there were no posts – I was in vacation and then I did a big change in my life. The vacation was great but this post is about the change.

I started a new job at Microsoft in the United States. I am now working with the X++ compiler team. In case you haven’t heard of X++, you should know that X++ is the programming language that allows developers to extend Dynamics AX so that it matches their needs and business.

Also, I now live in the Seattle area. One of the most famous attraction in the area is the Space Needle, therefore I included a picture of the top platform of the tower. I took the picture on Saturday when the weather was sunny – it was one of the two sunny days that we had in the last three since I arrived here.

Retrospective (2009-2011)

 Jul 26th, 2011 

Goodbye Copenhagen, goodbye Microsoft, goodbye Netherlands, goodbye Delft, goodbye University, goodbye good Danish pastries and bad food! This is where my one year (and a few days) stay in Denmark ends. Also, my journey on the fascinating pastures of academia, in the Netherlands, ended a few days ago when I defended my master thesis. Least but not last, my internship in Microsoft ended about a month ago, but as the song says, “you can check out any time you like but you can never leave”. More about this will follow in another post, hopefully soon. I am now in the Copenhagen airport waiting for a plane that will take me back to Romania. I will take advantage of the waiting time and do a short retrospective of this memorable year.

The biggest achievements come first, so as I already mentioned in the first paragraph, I managed to successfully complete a master in Computer Science at the Technical University of Delft, in the Netherlands. It was definitely harder than I expected but I managed to do it (see my project here). I learned a lot and I would like to share some of the things that I will remember from TUDelft (random thoughts that barely worth 2 cents):

  • Research requires a lot of time and a lot of study. Until getting there (in NL) I never did academic research in the true sense
  • Spending more than two years for a two years master programme is fine and students are not always supposed to be young. However, spending too much time should raise an alarm.
  • Academic research can bring real value to the world (see TUDelft’s Incubators and research)
  • Sleeping 5-6 hours/day and working the rest is not sustainable and one can only do it for a limited amount of time. Is more productive to sleep more.
  • Wikipedia is not a valid reference

Next is the Microsoft experience. Getting in Microsoft was a big dream that I wasn’t able to complete about four years ago when I tried to get an internship. However, last winter I tried again and it worked. I spent one year as a Tester or, the official title, Software Development Engineer in Test (SDET) working on Dynamics AX2012. Before Microsoft I only worked in a small company (with ~50 employees) and the MS experience was something completely different. I believe that now I can tell the difference between working in different size companies and I know which are the (dis)advantages of each. I think the biggest gain from Microsoft is not the programming/testing experience but the understanding of the process and how big projects are developed.

Moving from one place to another is not one of my favorite activities – what I hate is the process of moving, not being in a new place. However, there is an advantage when getting to new places: you meet people and make connections. I met many great individuals both in Holland and Denmark and I will miss them. However, because of different social networks, I believe that it will be quite easy to stay in touch and, at least, exchange some words from time to time.

The people that I met Denmark and in the Netherlands were great and crazy (in a positive way). We had a lot of fun, went to a lot of parties (unfortunately not so many in Holland because of the study load) and spent memorable moments – I just checked and I have 2000+ pictures just from Denmark and I know that there are many others that I haven’t got because of various reasons. Did you know that people in Microsoft love parties? Being a geek doesn’t mean only going to LAN parties :-)

The last two years were amazing but, in the same time, extremely exhausting. For the first time in the last 4-5 years, I have nothing to do. There are no school assignments, no projects, no meetings, nothing. Even though is a weird feeling, I guess I should enjoy it and take advantage of the situation. Therefore, I hereby declare the beginning of my extended vacation.

Weak passwords is a feature of Apache

 Jun 11th, 2011 

 , , ,

I was looking for an SVN provider for a personal project. One of the providers that I found (will not disclose the name) had a very nice offer and some extra features compared to the others. So, I started playing with their website and SVN. By mistake, I found that only the first 8 characters of the password are validated when logging in to the SVN repository. What does that mean? It means that if my password is “MySuperStrongPassword” then I can login with any of the following:

  • MySuperS“,
  • MySuperSXX”,
  • MySuperSUselsessCharacters”

because only the bold part gets validated making 8+ characters passwords as strong as those with 8 characters.

Immediately, I sent a message to customer service:

Dear sir/madam,

[…]If I set a password with more than 8 characters then only the first 8 are validated at SVN login, making possible to access the repository by just using the first 8 characters of my password.

[… the rest of the message with details and repro steps]

They have a good (but useless, as will be seen soon) customer services. I got the response after 3 hours:

Read the rest of this post »

First video of Windows 8

 Jun 2nd, 2011 

 , , ,

Today is a big day. Except the fact that we have a day off in Denmark because of some national holiday, Microsoft revealed the first video of the next generation of Windows.

The video includes (quote from the press release):

  • Fast launching of apps from a tile-based Start screen, which replaces the Windows Start menu with a customizable, scalable full-screen view of apps.
  • Live tiles with notifications, showing always up-to-date information from your apps.
  • Fluid, natural switching between running apps.
  • Convenient ability to snap and resize an app to the side of the screen, so you can really multitask using the capabilities of Windows.
  • Web-connected and Web-powered apps built using HTML5 and JavaScript that have access to the full power of the PC.
  • Fully touch-optimized browsing, with all the power of hardware-accelerated Internet Explorer 10.

I don’t think any more details are necessary. Just enjoy the video:

The read the press release.

Testing against today’s date

 May 21st, 2011 

 , ,

Suppose there is an automated test case for a report:

1. Generate a report for today
2. Check if the date printed on the report is today's date

The question is: how can this test case fail?

Read the rest of this post »