Obvious Ideas

From the desk of a Software Developer

Archive for the ‘Microsoft’ tag

iPhone + Android + ? = Windows Phone 7

View Comments

Microsoft really outperformed themselves with Windows Phone 7. They took the best ingredients of both the iPhone and Android, added some of their own and created something that has a lot of potential. I’m saying potential, because until we see the actual device and feel the experience, it’s impossible to know if they succeeded or not.

I really like their attention to details/perfection in the UI for this device and the effort they put in conveying this to the developers. Windows developers are usually less UI-centeric (as opposed to Mac developers), so extra work required here.

I also love the fact that they didn’t just create another take on the iPhone experience, but created something of their own. Because when I say they took elements from the iPhone and Android, I mean just concepts – like the attention to details and one-consistent experience from the iPhone or the back button and multiple integration points from the Android. The overall experience is completely theirs and I like their concept that an application is one wide canvas, that part of it is being revealed at a time.

I’m really curious to see what affect the release of this phone is going to have on the mobile market. This phone isn’t iPhone-killer, but it certainly has the potential to be the Android killer…

What do you think?

Written by Arik

March 24th, 2010 at 8:28 pm

How To Protect Your Program Against Piracy

View Comments

This is another way to protect your software - just ask politely. (Photo by penner42 on Flickr)

This is another way to protect your software - just ask politely. (Photo by penner42 on Flickr)

A friend of mine sent me this question by email today:

I have  a software written in visual C++ which is compiled into an .exe file and I wish to distribute (sell) it in a “secure” (anti pirated) way.  How can I “lock it” so it will be able to run on only one computer (the one of the person who purchased the software)?  Is there a software to turn .exe files into protected ones, or good tutorials on what to do from the coding side?

I thought that for the general good and in order to get more views on the topic, I will post my answer to him here:

I can think of mainly four ways to protect your software -

  1. Some serial number authentication mechanism – this is the most traditional way and it fails big time. All of the documented techniques to protect yourself in such a way are already broken, and if you’re not in the field of software security you probably won’t find anything better. This might be a good way if you know that your target market is non-technical people who probably won’t bother breaking your authentication mechanism themselves and usually don’t know someone who can do it for them.
  2. Serial number authentication and online check – this is what Babylon do. When their application connects to their server it verifies the serial number it has with their database, if they see some misuse they either lock your application or just stop providing you answers. Microsoft use similar technique with XBox Live accounts – whenever you connect to XBox Live they check if the games you run are legal – if not they take actions against you. In recent check they disabled 1 million pirated accounts. But not only they disabled their access to XBox Live, they also disabled the hard drive in their console. This is quite good method as long as your software requires constant communication with your server. If not there are ways to override this protections (like disabling access to the Internet from your application).
  3. Good target market – like in mentioned in (1) a lot depends on your target audience. If you create a truly great product and price it in reasonable and achievable price, most people are likely to pay (unless your target solely to the Israeli market…).
  4. Online service – if you convert your software into an online service (like the 37Signals products, ZoHo, GitHub and many more), you are fully protected up to the extent that people will use stolen credit cards or hack your system in some way. But this actions are considered as “real crimes” by most people and they will less likely use them or spread the knowledge about them.

This are the four ways I can think of. If you ask me what would I do, I would go with option #4 – all other ways (besides #3) require you to invest unreasonable time and money in protecting your software instead of improving it. While it can be a nice mouse&cat game, it highly unproductive.

That’s what I think, I’m not sure if it really helps my friend, but maybe one of the readers will offer some better insights & tips on the topic.

Arik

Written by Arik

November 16th, 2009 at 8:22 pm

The Benefits of Using Amazon EC2

View Comments

Amazon Elastic Compute Cloud, also known as “EC2″, allows scalable deployment of applications.[1] Current users are able to create, launch and terminate server instances on demand, hence the term “elastic”.(Wikipedia)

I believe that the Amazon Web Services (and especially EC2) are one of the most influencing technologies that shape the future of the web. While for me it’s pretty obvious what is the benefits of such a service, it sometimes difficult to explain to others. Yesterday, I stumbled over the most convincing example of them all.

Enter Animoto. Animoto is a cool web application that you feed it with your photos and it creates you a video of it (see example above). The geeks among you readers, know that rendering video can be CPU consuming. So how they do that? Using Amazon EC2, of course.

animoto_ec2_usage

During last week Animoto userbase grew from 25,000 users on Monday to 250,000 users on Thursday (!). But the graph the you see above isn’t the graph of their user count, it’s the graph of the EC2 instances they used to handle that traffic. They started the week with 50 EC2 instances, grew to 100, 900 and eventually 3400 instances of EC2. Later on when the demand lowered, you can see the the count lowered to something like 1200 EC2 instances.

Now imagine if they have been using regular servers. Just thinking of the meaning of managing all this amount of hardware, of storing it, DRP plans, etc.. gives me the creeps!

This example shows perfectly the benefits of EC2 in particular and cloud computing in general:

  • Pay as you go – you need 50 servers today? No problem. You need 3000 tomorrow? That’s no problem either. And the day after tomorrow you want only 1000? Just do what ever you want. No need to plan ahead of how much computing power you will need, just build the infrastructure that can grow.
  • No system management overhead – I guess that most of the EC2 instances used by Animoto are servers that do the video rendering. So when the usage grows that just duplicate the same server image they already have. When one of them stuck or fails, they just shut it down and start a new one. No need to have people maintaining huge server sites, buying hardware and stuff. Simple example for such an architecture using EC2 is explained in this article.
  • Simple! Everything is API based, and you’re not the first one to use it, so there plenty of implementions of scalable architectures over EC2 .
  • DRP? In a few mouse clicks (or automatically using a watchdog script that monitors their health dashboard) you can turn on a new instance at the European data center, and forward all you traffic from the US one there. More DRP than that?

I’m a total believer in cloud computing. I was really happy to see that Google entered the game, and I hope that other major players will join too (Microsoft, what are you waiting for?).

Arik

ASP.NET MVC extension as a sign of change at Microsoft

View Comments

The new ASP.NET MVC extension seems to be a sign of change at Microsoft. This extension is born from the requests of the community, being released with full source-code and integrates with not only Microsoft’s unit testing solution, but also with the alternatives.

And from what it seems, it really brings the fun to developing Web applications with ASP.NET.

Is Microsoft really changing?

Just wanted to share this thought. And if ASP.NET MVC interests you, I recommend following ScottHa’s and ScottGu’s blogs and watching this excellent screencasts by ScottHa.

Arik

Written by Arik

March 26th, 2008 at 12:09 am