I've been experiencing issues with my development setup, so I thought I'd write a blog entry to wrap up my findings, and try and gauge what the community is running. In this article I will detail what I use in my development environment, and how it is set up.
I've recently had errors occurring in my Eclipse IDE. There have been some very frustrating SVN client version incompatibilities, so I thought I would re install it. It turns out this was a common error (menu options in subclipse were not available) based on an incompatibility between the subclipse plug-in and the Aptana studio.
A detailed fix is in this blog entry: https://radrails.tenderapp.com/discussions/problems/173-synchronize-view-broken-after-upgrading-to-radrails-203
For Flex/AIR I use a standalone FLEX studio installation. This is pretty much a custom workspace in an Eclipse IDE. I only do this as I have had several issues trying to get FLEX installed into the regular Eclipse IDE.
I recently tried to switch to the 64 bit version of Eclipse, but it would not recognise my Java install, and from what I've read online you need to install a 64 bit version of Java. The only version of this I can find is flagged as "experimental" so I think I'll leave it well alone.
I've found it quite good to increase the default 256mb heap space in Eclipse to 512mb, there e is an article detailing how to edit the Eclipse ini file here: http://wiki.eclipse.org/FAQ_How_do_I_increase_the_heap_size_available_to_Eclipse%3F
Download linksEclipse downloads: http://www.eclipse.org/downloads/
CFEclipse downloads: http://trac.cfeclipse.org/wiki/InstallingCfeclipse
Aptana downloads: http://www.aptana.org/studio/plugin
Subclipse downloads: http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA
I often use the desktop Skype client, its not a bad application, it works and it doesn't have too big a memory footprint. I recently expanded into the arena of mobile Skype, and being an Android user I thought I'd try out the Skype applications for it.
The two big applications for the Android platform are Skype beta, and Fring.
Skype (Beta)The name of the application is "Skype Beta". Why is it a Beta? It has been out over a year, have Skype just not finished developing it? Or is that a mild disclaimer in case it doesn't work properly?
My first observation was that there are a lot of negative comments about this application in the Android marketplace, but I'm open minded, so I'm not pre judging.
I initially had problems logging into this application. This was due to the formatting of my telephone number, it is not immediately obvious that you need a country code prefix, and it flags any phone number without one, blocking the login.
The application itself is well thought out. The design is nice, and the interface uncluttered. What that does mean is that all the functionality has been moved to off screen menus, so you have to press another button just to get to the menu with the options. It would have been nice if common options were accessable through the main screen, instead that screen is blank, and pretty much a waste of real estate.
The application only display Skype contacts as well, IE you have to manually add each contact from your phone book by entering their number. There is no interface at all with your existing phone book.
The call quality is of a high enough quality that you couldn't really tell that it was not a regular mobile call, so ticks all round there. Unfortunately the messaging side of the application is a big let down. It was impossible to have a real time conversation. Messages would take a long time to arrive, in one case over three hours later than it was sent. There does not appear to be an notification settings either. I'd quite like the application to play a notification noise when I receive a new message, but this is not an option.
Skype conclusionOverall this application was disappointing. It looks nice, but there is almost no documentation or help, and often I found myself being stopped from doing something merely because I wasn't entering data correctly. The delay in messaging makes this basically unusable for me.
FringFring is a third party application that piggy backs off the back of other service provider networks. When you first fire it up it prompts for any add-ons you want to install. So after installing the Skype add-on we were up and running.
The first and most obvious difference is that this application connects directly to your existing phone book. It lists your current contacts, and within two clicks you can be dialling them, whether they are Skype numbers or not. (SkypeOut or regular line).
The same can be said for pre existing Skype clients. One click will allow you to select either text or chat, and then you are in the session. The call quality is of a slightly lower quality than the Skype (Beta) application but the messaging is instant. It has about the same responsiveness as the desktop Skype client, so it is very easy to have an actual conversation.
Fring will play a notification tune if you are messaged whilst the application is running in the background, so you don't miss anything.
Fring conclusionThe application can be a little process heavy on my HTC magic, but it hasn't crashed, and could act as a decent text replacement. The interface into your contact is invaluable, and it is generally a lot easier to use than the Skype application.
ConclusionFring just bumps the Skype (Beta) application into second place here. Maybe if Skype finished their application it would work slightly better. On the down side it is worth noting that both these application still dip into your contract minutes, even when used over a wireless network. This is quite an issue for a lot of people, and almost voids the point of Skype in the first place. Althought this seems to be an issue on the Android platform, not any other.
That being said I would recommend Fring as a messaging client, especially if you are on an unlimited data plan.
With the UK currently stumbling to a halt due to snow I've been working from home. I like working from home, it has many advantages like the time saved in commuting, and the fact that you usually know your own hardware/software setup better than works.
One thing it has highlighted is that as a software developer your actual location is now totally irrelevant. Even for team based projects you do not all have to be in the same physical location. Our physical and online worlds have become so enmeshed that is it now common place to be able to work productively from anywhere.
So with that in mind I thought I'd do a quick round up of my favourite remote working applications. Some are more "best practices" with recommendations if I've been using a specific product. Warning: all recommendations may contain nuts.
1. Online Code / Asset Source ControlHaving your code in an online repository is an absolute life saver. Not only does this contribute towards a "Business continuity" plan for regular working, but it means you can get to it from anywhere. We should all be using source control anyway, but having it online means that it's much more easily maintained and you are not moving code around on USB keys.
I use an application called Beanstalk. www.beanstalkapp.com. They have worked well for me so far, and the basic account is free.
2. VirtualisationThe Virtual PC software market has moved on considerably in the last few years. To the point now where there are free versions of virtualisation software that allows you to create virtual pc's inside your actual physical pc. I use this at work and at home for a few reasons. Firstly I don't even have a physical development server anymore, it is a virtual windows 2003 server, and secondly this is great for setting up specific testing environments. Need a windows XP running Internet Explorer 6? Create a new virtual image and install XP, it is far more reliable than multiple IE's or other Internet Explorer emulation software.
I use VM ware server 2.0, its totally free (Virtual pc's operating system licences aren't so be careful) you can get it here: http://www.vmware.com/products/server/
3. Instant messaging / SkypeCommunication in any team is important, especially so if you are working remotely. If no-one can contact you then appearances may be that you aren't working at all, which is bad news. I use Skype http://www.skype.com/intl/en-gb/ which can be used for chat and messaging.
The obvious benefits are that it is free, and means you can have team discussions online. More recently I've encountered several companies that actually use Skype as their main communications tool. They don't even have desktop phones anymore.
4. FTP clients / File synchronisation utilitiesIdeally you can still provide any of your in-office functionality at your remote location. So being able to implement change releases is essential. I use a combination of Filezilla http://filezilla-project.org/ which is a free FTP client, and Beyond Compare http://www.scootersoftware.com/ which is a file comparison tool. Ideally I'd like to learn ANT, but just haven't got round to it yet.
5. Online file storageServices like DropBox https://www.dropbox.com/ are invaluable for the online storage of files. We always have online briefs, and Photoshop designs flying around the place, so storing them in one central online location is an ideal way of ensuring that you always have the latest version. It also avoids the problem of not having the project spec, and not being able to work.
I personally use Google Docs for this http://www.google.com/docs I've found it to be a very flexible easily maintained way of storing pretty much any format of document.
So whilst playing with some flash sites I managed to pick up the msa.exe virus, despite having a firewall (hard and soft) antivirus, and anti spyware.
It was the flsh injection virus, and it installed several files into windows 7, and a few sneaky .dll's to try and put it back again. SpyBot search and Destroy will kill it, and so will Microsoft Essentials.
SpyBot search and Destroyhttp://www.safer-networking.org/en/spybotsd/index.html
Alternately follow these instructions, they worked for me.
sshnas.dll is a component of trojan FakeAlert. The trojan come from malicious websites that ask users to download an Adobe Flash Player update or player needed to view a movie online. The filename of the trojan is flash-HQ-plugin. Once started, the trojan will download and install core components: c.exe, msa.exe and sshnas.dll.
When downloaded, it will be configured to start automatically when Windows starts. Trojan FakeAlert may display many popups and fake security alerts, hijack Internet Explorer, disable Windows Task Manager and Registry editor.Also it is usually installed in conjunction with a rogue antispyware programs.
Download OTM by OldTimer from here and save it to desktop. (It looks a bit home made, but it works great.)
Run OTM. Copy, then paste the following text in "Paste Instructions for Items to be Moved" window (under the yellow bar):
Click the red Moveit! button. When the tool is finished, it will produce a report for you. Then it will reboot the machine.