To work anywhere, be everywhere.
Posted on January 4th, 2009
It’s a cool title right? :) Here is the problem. As a busy developer I find I have more machines and more virtual machines than I can count, trying to keep everything in sync is damn near impossible. Even with the best sync software and online sync services I find that it is still too difficult to keep everything in perfect sync.
One of the core reasons is bandwidth, if you have a lot to sync and especially if you’re doing development you probably have thousands of files to always sync. This eats bandwidth and until Internet2 really gets going I guess it is still a pipe dream. If you didn’t know internet2 starts off at speeds above 100Mbits.
So the solution at the moment I think is too have as much work online as possible, i.e. browser based. So for this I keep email on gmail and docs with google docs, so google docs isn’t that great and local docs sync using mobileme across my macs. I sync what I can over local machines using mobileme and my 20gigs of space with Apple but if a service works well via the browser, that is definately easier.
Coding is always the tricky one – an online SVN repository is a good place to start. Tools however generally need to be running locally … or do they? Coming from the .NET world then yes but now that I’m getting into Rails and other such technologies using a nice editor like TextMate is easy and also shows how development could be in the browser.
Anyway .. that is how I’m rolling at the moment. Lots in the browser and a fair bit a syncing seems to work.
Filed under General | No Comments »
Get an Apple Mac
Posted on December 10th, 2008
That is what you want to hear right? Why else would you be reading a blog posting about switching to Macs. Like me you’re probably a hardcore, long time windows user and developer and you’re sick to death of the crap that comes out of Microsoft these days.
So again, let me keep it simple. Go get a Macbook Pro and see what that world is like. No point playing with one in a store, to really get into it you need to commit so you need to buy one. I really didn’t think I’d like OS X and would just end up installing Vista on their nice hardware but it turns out that OS X is really great – not just super stable but feature rich and far more intuitive than any Windows OS you’ve ever used.
After a day or so I maxing out my new baby I wasn’t just happy but pissed at how crappy all my machines up to this point had been. How crappy Microsoft products really are. Why can’t Microsoft make some of these really simple things work? I mean, Apple have really nailed the “it just works”.
I’m not sure what has gone wrong at Microsoft. Everything coming out of Redmond is just crap – and Vista … let’s not put lipstick on that pig. It is crap, it is built on crap and mark my words – it will probably go down in history as their biggest failure. Sure it has a couple things better than XP … wow, that really isn’t very hard. Want a concrete example of something that should just work properly? How about file copy – identical hardware – 30-45 minutes to copy 20 Gigs yet on my Mac, just 9 minutes. Basically 3x-5x faster. Everything on this machine is just better. I think Microsoft has become too big, trying to do everything and nothing well. They need to go back to basics, a few core – good products.
So you’re probably asking … but I have all these programs that run on Windows … quit ya crying, there is a program either identical and just compiled for the Mac or something, usually better that what you’ve used before. Get this, even MSN Messenger is better, from Microsoft … on a Mac. Go Figure. Everything I do development wise for .NET I use under VMWare Fusion which is fantastic, it actually integrates the guest XP into OS X and with Unity you can’t go wrong.
My next purchase is going to be a 8 Core G5 with 24″ Cinema display … I’m comitted to Apple hardware and software now for at least 5 years. We’ll see how the playing field looks after that. I do know this much. Every student I know or talk to or see or hear from these days has a Mac, more and more home users have Macs and when people like me start switching, you’ve got a land slide coming. I’ll convince a ton of people to switch :) Including you …
Tags: Apple
Filed under Electronics, General, Software | No Comments »
How wingstreet got rid of walls
Posted on November 25th, 2008
I think this is one of those great little achievements that goes un-noticed and that far more companies should be adopting. Like most computer savvy people I enjoy ordering online, most times it beats dealing with people :) or people having to deal with me! When I first saw you could buy “super tasty” wings online I thought – this is going to be great …
Boy was I wrong. I went onto their website, which is part of Pizzahut. I clicked the sign-up button entered a bunch of information and then tried to create my login … and tried … and tried. The password requirements are more ridiculous than my banks. Not only that but they wanted a bunch of those secret question/answer items completed. For wings …. right. No thanks. It is bad enough they didn’t just adopt an open id system but now I’m supposed to jump through hoops.
I didn’t go back to the site for probably close to 6 months, that amounts to a lot of lost business just from one person. Just because they had thrown up walls I wasn’t prepared to take down. So, what did I find upon my return – well the crazy password requirements are still there except that now, you can order as a guest without ever creating an account.
Finally! They do have good wings :) – I don’t order as often as I would if I was able to create an account and simply click to order, see: Papa Johns … anyway – it is a big step forward for these guys. The lesson is simple, if you make it hard or even moderately hard to use your website, a lot of people will just go away.
I really like the idea of open id – use it. thanks :)
Tags: walls
Filed under General | No Comments »
Setting up a Windows image in Amazon’s EC2
Posted on October 24th, 2008
Signing up is a real no brainer, if you can’t get past that – time for a new day job :)
The first problem was – what next? There really isn’t a clear next steps but after a little digging this is the path that I took.
You will first need to get your X502 certificate, it is all done via their website so that was pretty easy. I stored it in a folder called EC2\Keys – both public and private. Remember to backup those keys!!
Next you need to download the tools. These are a set of command files and java libraries so yes, you need to have a Java runtime installed.
http://docs.amazonwebservices.com/AWSEC2/latest/GettingStartedGuide/setting-up-your-tools.html
Set your JAVA_HOME to the Java installed folder and not the /Bin folder. Make sure to setup the rest of those variables. If you already had a java runtime installed, don’t assume the java home path is set.
Next I followed the instructions on this page to setup a keypair and run a default image.
http://docs.amazonwebservices.com/AWSEC2/latest/GettingStartedGuide/
http://docs.amazonwebservices.com/AWSEC2/latest/GettingStartedGuide/running-an-instance-windows.html
Once you have this all done and a image running you’re done – this is a server just for you. Install whatever software you want and get hosting! Overall not too bad :) You will need to bundle the instance before ever shutting it down otherwise you will loose OS changes. Once bundled you get your own AMI to relaunch clone instances.
Don’t forget if you TURN OFF, SHUTDOWN, TERMINATE any running images they are gone forever! only attached storage volumes persist.
Tags: ec2 amazon
Filed under General | No Comments »
Amazon goes live with Windows in the Cloud
Posted on October 24th, 2008
Yes finally!! :) If you aren’t a fun of cloud completing you should be. It is extremely cost effective, reliable and easy to use. I’ve been dying to get really hands on with Amazon’s EC2 but since launch it has only supported Linux images.
Today they have turned on support for Windows! including SQL Server and the licenses are bundled in the image. You can also store information directly in their S3 service.
I’ll be posting results here from testing and pricing as I spend the next month getting some applications deployed in their cloud.
It was interesting to see that Rackspace is going to try compete – albeit too late to the party but we’ll see what they come up with. I can’t blame them – cloud competing is a huge threat to traditional hosting companies however it took Amazon a long time to get EC2 ready so it isn’t something you just dive into.
Tags: ec2 hosting
Filed under General | No Comments »
Silverlight Tip – Initialize!
Posted on October 20th, 2008
Wow, who said learning new stuff wasn’t fun! :) Here is another little gem I found which will change your understanding of how Silverlight applications work.
I had a little application that was working great, it even had a bunch of nifty video things taking place in the code behind. I wanted to redo my layout and so cleaned out the old code, built my new layout and then something went wrong.
I just got a blank web page with no errors, compiler error or warnings – just no Silverlight control. I checked and checked and recompiled and cleaned cache and had a beer – still nothing.
So I created a new project and test xaml page and that worked fine – then I looked at the code behind and spotted the issue. The code below is added by default and IS required – I had accidentally removed it when cleaning up, must be getting old ;-)
You must have the following in your code behind page (user control class)
public Page()
{
InitializeComponent();
}
Pretty simple but something you can delete and not notice until nothing works :) Silly me.
Tags: silverlight tips
Filed under Software | 1 Comment »
Silverlight Tip – Grid layouts
Posted on October 20th, 2008
Just a simple tip if you haven’t already tried to use these layout controls.
When you are creating content (controls) to add to the grid via a Row and Column number it would help if you knew the index is 0 (Zero) based …. that would be Column 0, Row 0 for the top left corner and not 1,1 as it should be :)
Enjoy!
Tags: silverlight tips
Filed under Software | No Comments »
Selecting a single LINQ2SQL Entity
Posted on October 19th, 2008
Linq2SQL is fast becoming one of my favorite frameworks for throwing quick sites together. I used to use a lot of object relational mappers but this is free and built in so .. yay :)
I’ve noticed recently a lack of understanding in trying to return a single entity from a collection. Many times when you fetch data you know there will only be 1 row but you get a collection or have to request First from an IQueryable type.
Lets say you have a Customers table. You want to fetch 1 row of type Customer.
Customer myCustomer = (from c in dataContext.Customers where c.CustomerId = 1 select c).Single<Customer> ();
myCustomer will now be of type Customer – nice and clean :)
A good all around LINQ book, not just L2SQL but Link to everything.![]()
Tags: linq2sql examples
Filed under Software | No Comments »
What kind of error handling is this?
Posted on October 17th, 2008
You’d be surprised the things that can be found during basic code reviews :) Once I found a pen I thought I’d lost … :) in all seriousness though, nothing drives me more crazy than seeing the following.
try { // some code } catch (Exception e) { throw e; }
I could scream! and actually it wouldn’t be the first time either. I don’t have a lot of patience for things like this.
If you aren’t sure what is wrong, let us take a closer look. For one, I came across this while actually hunting for a memory leak but I could never see an exception on any line except “throw e;” – because no matter what went wrong, the exception was caught and just thrown again and since the last line responsible is always the throw, I had to attach a debugger to find the real error.
The second problem is you haven’t actually accomplished anything, nada, zip, less than $2c of quality code here people – it doesn’t do anything. If you’re going to catch an error then DEAL with it.
I have seen some developers catch an error, log various details and then throw some kind of error again. Maybe there is a need for that but I doubt it can be justified very often. If something goes wrong you need to try fix the problem and continue normal operations so you users are unaware and if you can’t then fail gracefully.
Make sure too that you LOG errors – use any means necessary but just make sure the stack trace and some information about system state is recorded so you can fix fix fix :) – since its probably your fault it broke to start with.
And if you don’t have any error handling, get too it! Nothing could be worse than your users getting the yellow? screen of death :)
Here is something if you’re just beginning – I’ve always found these books pretty good for getting started, including some basics like the above.
![]()
Beginning Microsoft Visual C# 2008 (Wrox Beginning Guides)
Tags: .NET, Bad Code
Filed under .NET | No Comments »
Silverlight and Google searches
Posted on October 15th, 2008
Well unless you’ve been living under a rock you’d know that Silverlight 2.0 has now been released. Why do you care? … Assuming the rock you were under wasn’t too big :) you’d know that the first release of Silverlight was really intended for designers and not developers although, there was technically nothing stopping you from creating anything you wanted. It was just extremely painful. Think pencil in ear.
Silverlight 2.0 brings all the goodies that we’ve come to expect as good little Microsoft developers. We have better looking user controls, layout controls and a host of 3rd party controls from companies like Telerik and ComponentArt.
And so the great move to Silverlight begins, anyone that has any half decent web application is going to want it redone in Silverlight and most new projects will want to take advantage of the hype around this technology. Please note (pretty please?) I don’t really like the word “hype” since the technology truly is amazing .. anyway with the CYA out the way I too started on a new design for some of my own products.
One of these is my Mafooku shared store system. This site, like many, requires that Google can do a good job searching for content since there are thousands of products for sale. Then it hit me. How is Google going to search my content when it’s embedded in a control … I’m sure many of you are already shouting – but just emit the same content and hide it … nah, not really practical on many sites and a waste of bandwidth.
You probably hoping there is some great solution – nah … nothing yet. I’m thinking there needs to be some interface added for search engines to find the exact content you’re displaying but I am unaware of anything as yet. I’m not saying there isn’t :) I just haven’t found it yet.
I did want to share a link to a short blog post about a transform you can add, that a search engine can use to get a form of rendered and readable content which can be searched.
It did also just occur to me that creating external links like
http://somelink/?id=x
need a way to be interpreted by the Silverlight application so that the correct content can be displayed … fun :) I’m sure it will be easy but definitely a new way of doing things.
It is the best of Flash, Smart clients and the web all in one. I hope you’re going to get learning too! Nobody needs another html web site :)
ps: Dear Google, please make me a Silverlight Adsense control :)
Tags: google, siliverlight
Filed under General, Software | No Comments »
