Visual Studio .NET 2003 and Windows 7 can get along – Seriously…

I know, I know – VS.NET 2003 is not supported on Windows Vista and above.  In fact Microsoft in their all-knowing wisdom went ahead and supported Visual Studio 6.0 on Vista, but not VS.NET 2003 !!

I don’t know if this speaks to the crappy nature of the VS.NET 2003 product or to weird resource constraints or some other theory (insert favorite MS conspiracy theory here) . The list of supported versions of the Visual Studio product line are AFAIK as follows-

  • Visual Studio 6.0 – Supported on Windows 7
  • Visual Studio 2002 – Not supported on Windows 7
  • Visual Studio 2003 – Not supported on Windows 7
  • Visual Studio 2005 SP 1- Supported on Windows 7
  • Visual Studio 2008 – Supported on Windows 7

So VS.NET 2003 and Window 7 are officially not on speaking terms – but the fact remains I need VS.NET 2003 for my job. Just because MS does not support it – I can’t NOT use it so despite all the warnings we went ahead and installed the darn thing and you know what – it installs – and runs (after a fashion)!  The annoying dialog declaring that the program is not supported is easily dismissed – there is a check box allowing you to block it from appearing again.  Debugging needs you to run in administrator mode – you can set this by right-clicking the shortcut choosing properties and then the compatibility sub-tab – there is a check-box to always run the program as administrator.

The next challenge was VS.NET 2003 refused to load my web projects so I went about looking for a way to set this up…  I opened up the IIS manager and boy let me tell you the IIS manager for IIS 7 is totally different from the IIS 5.0 and IIS 6.0 managers. You can configure everything down to the individual web.config files with this thing. Luckily running ASP.NET 1.1 on IIS7 is supported even though VS.NET 2003 is not so MS provided some helpful articles on IIS.NET – I found this article whose instructions I followed. There were some further gotchas that I encountered that you might be interested in knowing about –

  • I installed VS.NET 2003 SP1 to overcome a compilation problem. Apparently SP1 addresses these issues that occur when you have solutions with a large number of projects.
  • A weird thing is that sometimes the client scripts that are installed with ASP.NET 1.1 do not get properly installed – you need to run “aspnet_regiis” utility with the “-c” option from the command line to ensure it is properly installed.
  • I needed to install “Directory Browsing” from “Control Panel -> Programs -> Turn Windows Features On and Off ” and then switch on directory browsing for the main web-root (theoretically you can over-ride the web-root setting in the individual web project using the web.config files but ASP.NET 1.1 project web.config files are not supported apparently). You need directory browsing to be available in order to add the web-project to your solution from VS.NET 2003
  • You need to be part of the debugger users group on your computer in order to be able to do F5 debugging of your web project.
  • If you want to search across a project or a solution  to work then you need to tweak the compatibility settings . You can do this by right clicking the shortcut to launch VS.NET 2003 and selecting properties, choosing the “Compatibility” sub-tab and then checking “Disable Desktop Compositing” as well as “Disable Visual Themes” .(I got this tip from an answer to a question I posted on Stack Overflow).
  • If you partition your hard drive, make sure you allocate at least double what you used to allocate for the system (C:) drive when you were running on windows – not only is Windows 7 bigger, it needs more RAM and consequently your pagefile is bigger as well. Not to mention you will inevitably install VS.NET 2008 as well as VS.NET 2003 (after all that is the future right) and all the other goodies you had ;-)

Once you have done all this, things are more or less OK – performance is not much better or worse than XP but that’s probably more VS.NET 2003 than Windows 7.  So despite all the warnings and recommendations to use XP in a virtual machine (with 2 GB of RAM at my disposal – yeah right!!) here I am running VS.NET 2003 on Windows 7.  Overall, I think Windows 7 is a cool OS but the experience for me is marred due to reality of having to coax it to work with VS.NET 2003. In my firm – moving everything (and there is a LOT)  to a newer version of .NET is quite understandably a low priority given the economic climate – besides by the time we discuss and negotiate and decide to move MS has already come out with a newer version of everything ;-).

Well HTH  :-)

Take care y’all and be good ;-)

Update: Another blog entry you might be interested in is here.

,

Google – The OS re-defined…

So finally after all the rumors, speculation and denials – it’s out there in black and white – Google has announced the Google Chrome OS .
This has led to a flurry of speculation of course the biggest being the impact on Microsoft (check out this cartoon by Federico Feini – :-) )
google_vs_microsoft
The details are :-

  1. It would be a custom version of the GNU/Linux kernel.
  2. The software architecture is simple — Google Chrome running within a new windowing system on top of a Linux kernel.
  3. It would initially be targeted for use in netbooks.
  4. It is different from the Android Mobile OS which was designed to target various devices (and form-factors) from phones and set-top boxes to netbooks. The Google Chrome OS would be for people that spend a lot of their time on the internet and will target power computers.
  5. Plan to release in the middle of 2010.
  6. It would be open-source so expect code for developers to play sometime soon.

I am for one am going to follow this with much interest and keep my fingers crossed that it works out. If this is anything like Google Chrome – I would be willing to install it and give it a fair shot at becoming my default OS. that being said there is still a long way to go and quite a bit of competition too – especially given that it’s going to be a flavor of Linux, which we know does not suffer from a lack of flavors :-)

I noted in a post at the beginning of the year that Google had pulled the plug on several projects. It was named Google hunkers down.

Well it looks like that was just a breather – a clearing of the slate for the big guns – Google is back !!

Oh and by the way – Google Apps (GMail, Google Docs, Google Calendar and GTalk) is out of beta :-) This seems more to satisfy the paying customers than any new release of functionality :-)

PPS :

Google Wave looks awesome

Check out the Google Wave – this is AWESOME stuff and when it comes out could transform your social media universe completely. You simply have to see the video (it’s a little long) to believe it – instant messaging that’s truly instant, collaboration in real-time…. here is an abridged version of the unveiling –

The application UI is written using HTML 5 (canvas element, video element, geolocation, App Cache, etc) and will render in the mordern browsers. This of course implies Firefox 3.5, Google Chrome etc

The other reason why I think it’s so cool is that Google is borrowing a page from Microsoft and involving developers. The Google Waves are extensible and the communication protocol used is open source , there are APIs available for developers as well as a sandbox environment where developers can try out their code. You can even set-up your own Google Wave server – which is really cool when you start thinking of enterprises and the possibilities of collaboration there…  It’s insane I tell you –  the only catch is – it’s not available yet.  It’s in private beta – you can sign up to be informed when it goes public – wonder when mere mortals like me can play with it.

Books Ahoy !

I am a bookworm – this is not a particular new or startling revelation to anyone who knows me. This particular love affair was fanned by my father who has a fetish for collecting things – books are one of these things :-) Over the years I have read a lot of books… I read comics and novels and magazines and newspapers. I read encyclopedias and almanacs and a whole lot of Readers Digest – I love their condensed books. I am the type of guy who will read the backs of cans or the small print in advertisements while waiting in lines :-)

Once I left college and entered the software industry – I became fascinated by the internet and awed  by the amount of information that was available. As my life became more and more nomadic (I was a software consultant) I found it difficult to carry around books (stupid international travel regulations restricting baggage to 30Kgs !) and buying books everywhere I went, while tempting, was way too expensive. Instead the addictive power of Google and broadband connections drew me to the flickering glow of the computer/laptop monitor.

Then suddenly blogging and RSS became mainstream and all of a sudden I was facing information overload. Bombarded by news items, article, opinions, rants, podcasts (I think podcasts a brilliant for certain situations – more here) and video blogging – there weren’t simply weren’t enough hours in the day to keep up!  I started feeling the computer and the broadband connection becoming a leash tethering me the glowing screen. I missed being able to lie on my back and or curling up on a couch with a book.  I bought a laptop and then a PDA (this was back before the iPod and way before smart-phones). Neither were satisfactory solutions – the laptop was too cumbersome, I was scared of dropping it and the battery life sucked. The PDA had more potential but had neither a big enough screen nor satisfactory software.

Last year I moved back home to Trivandrum (Kerala, India) – I looked at all the shelves lined with familiar classics from my childhood and promptly started reading them again (the lack of a reliable broadband internet connection played a part as well I admit). I found some of my colleagues at work shared my love for books and got recommendations, which I blended with my own list of books I wanted to read.   Then I went to the local bookstore and bought some books (actually I bought a whole lot of books) :-)

It feels good to be back reading books – I have broadband but it is not un-limited so I am more picky in what I use it for (software and media downloads mostly). I think I manage to grasp and read more using a book – I think the fact that unlike the computer there are no distractions or options helps one focus more and get deeper into the experience.

The price of books in India is a pleasant surprise compared to international book prices :-) There are few hard-covers and the books aren’t published using high quality paper but I can live with that. The only thing I miss is access to some of the comics/graphic novels I had when I was in America :-( I have heard of  the Kindle from Amazon and I think it’s brilliant – it is however – still a long way away from replacing a books.

PS: I have signed up for an online bookshelf called Readernaut check it out – you can signup if your are interested :-)

PPS: I am on Shelfari as well

Darwin gets a thumbs up from the catholic church

Here is the link – Vatican buries the hatchet with Charles Darwin

It’s over a hundred years too late but then this is the Vatican – it takes them awhile to get around to things :-)  I wonder what parents and school teachers will be telling their kids ;-) I can imagine the conversation –

Adult:  Remember that intelligent design stuff we were spouting about – turns out we were wrong after all.  My bad !
Kid: OK… Whatever you say…  Can I go and play now ?

Man, wonder what the die hard intelligent design folks will do – convert or accept the Vatican?
I’m going to grab some popcorn and watch the fireworks :-)

A Linux for every trade…

While puttering around the internet the other day I came upon this software AptonCD and while going through it – a set of light bulbs went off in my head and I actually had an idea ! I was so excited by this that I thought I’d blog about it :-)

I participate in the Free Software Users Group, Thiruvananthapuram (Trivandrum) and one if it’s main activities is making Linux available to the general populace. As part of this activity a local company Zyxware Technologies (these really cool guys BTW) put together vending machine (Freedom Toaster) which burns various Linux distributions on CD/DVD media. This proved to be a very successful project (broadband is still limited and expensive in India so downloading distributions is quite difficult).

One of my challenges as a developer has been around setting up the development environment. All developers have a certain toolkit that they are comfortable with. Depending on their level of  sophistication this can be as simple as a text editor to a full blown IDE…  The challenge for me was finding and setting up equivalent tools in the Linux platform to the ones I used in Windows.

It occurred to me  that the challenge I detailed above would be a common one for anyone that is using a set of software tools for their trade.  It would also be useful to people in other professions (other than programming software) that are switching to Linux from another OS platform like Windows to get a set of equivalent tools in Linux for the ones they use in Windows. In fact there are lists out there that detail Linux equivalents to Windows tools.

So here is my idea – We could leverage AptonCD to create meta-packages that people could simply install over the base Linux distribution. These packages would be prepared separately from the base Debian install (Apt is the Debian package manager) and applied after the distribution is installed.

This is not a new idea – in fact here in Kerala we already have a custom Debian distribution that is targeted for schools – IT@School .  The twist here is that while the IT@School is a custom Debian distribution what I have in mind is more in terms of meta-packages that can be installed over a base Debian distribution like Ubuntu. We can leverage the Freedom Toaster to distribute these packages for people. The packages would be created by professionals in a trade  for other professionals who want to use Linux but are not sure how to get all the tools of their trade on it. These people can simply install the OS distribution and install the meta-package for their trade and voila – they can get to work :-)

Of course there are still challenges – Linux often has several tools for a particular task and there may be version conflicts as well. I have also not accounted for the learning curve in getting used to these tools. Nonetheless, I think this would at least give a head-start to professionals wanting to use Linux as a platform for their trade and drive adoption of Linux.

The ultimate aim IMHO is not to make everyone in the world a super-duper Linux hacker but to make people productive in Linux :-)

Prototype It!

So I saw this post today – it’s by Paul Buchheit a former Googler (he is one of the founders of FriendFeed) and the lead developer of one of my all time favorite software applications – GMail (it was his 20% project at Google) and it’s about the concept of Communicating with code.

Paul writes (in his post) on the concept of  using prototypes  to communicate ideas and concepts. He talks about his work with GMail and how he threw together a prototype in order to show the idea of targeted ads in GMail – targeted ads was not a priority until the prototype showed how useful and interesting it could be. The post ends with a similar exercise that he has done using the Friendfeed API (it’s pretty cool – check it out :-)) The reason I read this post and decided to blog about it is that it talks about developer communication – a topic that I wrote about in another post .

Communicating ideas through prototypes is a great idea – I have always noticed that people get more excited about something they can play with and try out. In fact this is old news in other industries – the auto industry, for example, spends millions to make concept cars to introduce new ideas to the public and solicit feedback Architects likewise – build scale models of their ideas to present to clients. So why don’t we adopt these ideas ? After all we are always talking about “software architecture” and “software construction” and other civil engineering analogies when we talk of software development ;-)

My experience is that when the term “prototype” comes up in software development projects most people are thinking of mock-ups. This is especially true in the web-development shops where there is a separate team of graphics designers creating HTML and image pictures of the user interface while a separate team of developers get to “build” the application from the pictures :-) I think this is a very limiting thing.Prototypes should not be limited to the user experience or to presenting and communicating new ideas. I like to make prototypes of my technical solutions to software problems. For example, if you are trying out this great new idea you had on caching data – write a prototype application – the absolute simplest application you can use to exercise your idea.  This would provide you with feedback on whether your idea is valid as well as show up gotchas or limitations in your design.  The pragmatic programmers in their seminal book – The Pragmatic Programmer refereed to these applications as “Tracer bullets”.

Sometimes the concepts or ideas themselves are large and need a lot of programming to even build the prototype(tracer bullet). In these cases I still believe one must prototype the concept – so the question remains – how do you do this ?
Well one way would be to take the approach Paul took in building the initial GMail prototype – modify some existing code. I find sitting in front of a blank file makes the task ahead seem even bigger than it is – so I start with a piece of code to modify even if it is something as simple as a “Hello World” application.  Another good place to look is in the open source forums (though this might be a problem if you are working in a  company that does not allow open source software) – usually there is some variation on your concept that you could work with there :-). A third option is to accumulate code, links and other resources over time that you can use to jump start your coding.

So – Happy Prototyping :-)

Google hunkers down

So the Google machine is finally slowing down a bit… With the economic recession and slowing revenue growth – Google is no longer the darling tech stock that it once was. The blitzkrieg approach is showing signs of the strain and Google has been taking a long hard look at it’s core business and has started shedding some of it’s fat.

It started out with cutting the famed perks – the free food and fancy services, then it moved to cutting down the contractors and then they let go about a 100 employees.

In addition to the personnel and perks – Google has also started shutting down some of it’s products – here are some that are reaching or have reached their EOL (End of Life)

  1. Google Notebook – some of my friends really liked this one and it was good with the Firefox extension but after Google Docs and now the To-Do list in GMail it started getting less relevant. The main problem for me was – without the extension – it was just another to-do list web-site I had to remember to go to and often I needed the list when I was not anywhere near a net connection (yes – I admit it I don’t have a cell phone with a data plan).
  2. Google Video –  This one is obvious. When they bought You-Tube the writing was on the wall for Google Video and with the incorporation of video search using the universal search interface it was made even less relevant. Google has disabled the uploading of videos but is still allowing the search and viewing of existing videos. The pity is that Google Video did not have file upload limits the way You-Tube does which allowed for the upload and dissemination of some great presentations and learning videos.
  3. Jaiku – This is not going away completely – as I understand it, Googlers are planning to re-factor the code to use the Google App Engine and then release the source code.
  4. Google Catalog Search – It was started as a showcase of OCR technology. Now with Google Book Search incorporating the technology and the Google Search Wiki it’s not as relevant to Google I guess.
  5. Dodgeball – This is again an obvious one. It was a start-up purporting to provide networking and communication services to people in the same geographical areas. Google bought it but never did anything further with it and the founders of the company finally quit Google in disgust.
  6. GrandCentral – This one is still there but it has been inactive for a long while. I think the problem with GrandCentral is the lack of a clear monetization strategy that fits into Google’s business model advertising.  Besides – GTalk has video chat and voice now which might be the direction Google is taking. Recent indications only serve to reinforce this theory.
  7. Lively – This was Google’s foray into the arena of virtual worlds. I am not really a big fan of the virtual worlds concept (I think it’s way too early and limiting – it needs ubiquitous access to virtual reality hardware for the concept to make sense)  so I largely ignored this one. It seemed so did a large number of people so it’s dead. The announcement came last November itself.

All these are good steps and they portray a company that is mature enough to realize that sometimes tough steps need to be taken and pragmatic enough to take them.

Google has had an image as a naive, starry eyed dreamer – these steps will puncture that image. But, then I would rather have Google surviving the hard times at the expense of it’s naive image than it failing because of it. In the end the company makes great software and there are too many people – myself included who use it’s software every day and would miss it if it were to go away.

I can live with a few less Google Products if I can continue to get the ones that I use everyday ;-)

Setting up Ubuntu 8.04 Server on VirtualBox

Yesterday, I was trying to install Ubuntu 8.04 server on my desktop using VirtualBox to set up a virtual LAMP server to play with.

VirtualBox is a virtualizer software like VM-Ware or Virtual PC. It is supported by Sun and is the the only one which is open source. It’s a pretty slick piece of software and  comes with a set of pre built host environments on which you can install various operating systems.  It has a nice intuitive user interface and pretty full featured.

So, I started off on my installation – picked Ubuntu host environment and assigned 512 MB of RAM and 10GB for the hard drive. Then I pointed it to the Ubuntu 8.04 server install ISO and off I went through the install. The install itself went off without any problems – I chose the LAMP server setup and everything went smoothly. The problem was after the install when I tried to boot up the server – I got the following error –

The kernel requires the following features not present on the CPU

0:6

Unable to boot - please use a kernel appropriate for your CPU

So I Googled around for the error and got some blog posts (oh good so I am not crazy :-)) that I went through and I thought I’d summarize it here for reference. So here goes –
The Ubuntu 8.04 Server installation comes with a kernel that assumes that Physical Address Extension (PAE) is enabled in the processor. This is a feature in x86 and x86-64 bit processors that allow them to address more that 4GB of physical address space (which makes sense – this is a server install after all…). This feature is not turned on by default in the VirtualBox software’s virtual processor.  The simple solution is to enable this feature in the VirtualBox software – one does that as follows –

  1. Shutdown the Virtual Machine (VM) instance.
  2. Open the settings on the VM through the VM VirtualBox manager
  3. Go to  -> General -> Advanced -> check Enable PAE/NX
  4. Start your VM
  5. Check to ensure that the Virtual Machine boots properly

That’s it – many thanks to the following bloggers and their blog entries :-)

  1. Hype-Free
  2. Blog Foo

Coding, Puzzles and Mathematics

Coders like to solve problems – the high one gets when one finally ‘cracks’ a problem is one that is as powerful as any drug – they are also alpha males – they don’t like to lose… :-) This powerful combination leads to the traditional image of a pale, pasty, overweight  geek in glasses sitting over a computer screen in the wee hours of the night, mumbling to themselves and ingesting caffeine by the pound.

I’m a bit like that (OK – I am not pale and I like to work in the morning but the rest is similar ;-)) except the problem I might be solving may not even have any real world application. It might simply be a solution to a puzzle !!

This post is about coders and their love of puzzles… Most of us have heard and even experienced the classic puzzle question in interviews for development positions. There are numerous books on this topic (the classic “How Would You Move Mount Fuji? Microsoft’s Cult of Puzzle‘ is a great read) – both about the interviewing techniques as well as methods to solve them. I don’t want to get into a discussion about how good or bad the use of this technique is in interviews (I personally don’t favor them – in the wrong hands they can be horrible – like this one ;-) )

What I like to do is examine the puzzles themselves – puzzles can be of several varieties – one can spend hours and hours over them – indeed some people make it a full-time hobby. There are several puzzle competitions  – one of the most challenging being the MIT Puzzle Hunt (the wikipedia entry is very informative). You also have organization leveraging this interest by posting challenges like the FBI

However, the puzzles that interest me are the ones that have a basis in pure logic. I tend to regard puzzles with an eye to the elegance of the solution. A good logical puzzle with an elegantly simple solution is a thing of beauty – I like to go through the reasoning and try and look for extensions or extrapolations. I look at the assumptions and limitations and try to understand the thought process behind the puzzle.

They are a good way to learn, to get ideas on new approaches.  They expand you mind and  are finally but most importantly – they are FUN. I often use them as a fun way to learn new computer languages – good candidates are mathematical puzzles :-)

Here are some nice links – check them out and happy solving :-)

  1. Maths Challenges – Check out the links section where there are some programming challenges.
  2. Project Euler – Awesome site with some really cool puzzles.
  3. Delphi For Fun – The programs are in Delphi which is aversion of Pascal but it has some nice algorithms.
  4. FBI Ciphers – Ciphers are a fun type of puzzle that kind off go off in to crypt-analysis.
  5. Shine’s Take on IT – My friend Shine is reading “How would you move Mount Fuji?” and is blogging about his read.