Just yesterday I was discussing with colleagues about what might happen to Sun’s VirtualBox virtualization software. I use it a lot, and have become somewhat worried about its future now that Sun has been acquired by Oracle.
If this email announcement is anything to go by, then the future looks pretty good:
This blog runs on WordPress, and makes use of several plugins from the WordPress plugin repository. However, the time has come for me to look at writing my own WordPress plugin. Here’s some links I have found
The web is full of location-based startups at the moment, struggling to stand out in an increasingly crowded marketplace. WorkSnug seems to be one of them, pitching itself as a way for the modern “urban nomad” to find places to work. I have been in this situation myself a few times – time to kill in an unfamiliar location and looking for somewhere to plop down with a laptop and a decent coffee (and ideally a network connection) so I guess the basic idea has value.
However, the approach taken by WorkSnug seems odd, and somewhat flawed. They make a big deal of the Augmented Reality nature of their service – the ability to “look through” an iPhone screen and see labels on nearby buildings indicating the location of likely workplaces. This is just a crazy way to approach the problem. Think about it. To successfully find this sort of location using this sort of interface will only work when all of the following things are true:
the mobile device knows the current location
the mobile device knows the current direction (in 3D space, it seems!) of view
workplaces in the local area are registered with the system
the user is looking in a direction where there are registered workplaces
the user is near enough to registered workplaces that they can be projected on nearby architecture
Arguably the hardware and infrastructure may be able to provide the first two of those conditions, and in the (unlikely?) case that the service takes off then we might achieve the third point. But the last two are the killers. Are the WorkSnug folks really imagining streets filled with laptop-carrying execs twirling like dancers while holding their iPhones aloft just on the off-chance that they might catch a glimpse of an office with a spare desk?
Fundamentally it’s a problem with data density. In areas so densely packed with eligible workspaces that they might be visible using such an AR approach, finding one is not really a problem and the solution is not very valuable. It’s in the areas where working space is harder to find (suburbs, small towns, rural areas, industral areas, …) that this kind of service has value, but these situations are exactly the ones where Augmented Reality makes no sense.
By all means run a registry of workplaces, and show them on a map with details of how to get there, but give up on the AR, please.
Oh, and also give up on the pretending that the service is busy by scrolling a bunch of pregenerated activity messages on the home page. It’s been many times before and just makes the creators of the service look like liars and charlatans.
In addition to the points raised in the article, I always get cross at sites which offer a set of “security” questions all of which are either (a) obvious from a bit of searching such as place of birth or first school, or (b) very likely to change such as favourite pet or sports team.
Kent Beck, rightly well-known for Extreme programming, Test-Driven Development and jUnit gave a really thought-provoking talk at the Startup Lessons Learned Conference in San Francisco on April 23, 2010.
Eventually, we find a place that everyone agrees looks nice and we pull the boat up on shore. Our project is complete in a way that we couldn’t have predicted exactly because we’ve never been on this particular pond before. We’re ready to set out again just as soon as we’re done with the picnic. In Pond, you always have a picnic at the end of the project.
All of which makes me smile. Back when I was working on an agile project where releases were named after ducks and other wildfowl, I proposed at one point a component named “pond” (standing for “provider of necessary data”) shared by all the deployed ducks.
Dynamically-generated JSON is bread-and-butter to modern AJAX development, but it can be irritating and slow to pick through a compressed lump to try and work out what’s really going on. Finally, I got annoyed enough to install a Firefox plugin to “pretty print” JSON (with expand-contract handles) in a browser window.
This is a neat idea, and certainly more friendly than “keyhole surgery” with ssh and vi if you need to edit files on a remote server over the web. Does not seem to have had a lot of development recently, but seems pretty usable as it is.
I have been exploring the use of virtual machine images for web applications recently, and found a tension between easy development (which realistically requires a GUI these days) and small, efficient deployment.
So, after years of separation, I find myself back at the point of using X Windows to run “remote” applications using the display, keyboard and mouse on my workstation. After a look around I have found and installed XMing on my Windows boxes and am having great fun with much lighter machine images.
Configuration was a bit tricky to start with. For several hours I was unable to get evan a simple X application such as xterm or xeyes working. Error messages included “No protocol specified” and “Can’t open display”.
Some things I needed to do included:
Choose the right VM network option. For VirtualBox this meant using “bridged” rather than “NAT” mode.
Add the name or ip address of the server as a new line in X0.hosts (by default, this file is located in C:\Program Files\Xming)
Open port 6000 in Windows Firewall, if you use it
add export DISPLAY=workstation_ip_address:0 to your .bashrc on the server
When you get it working this allows such fun tricks as:
nautilus --no-desktop dir1dir2...
to allow moving files on the virtiual system by simply dragging and dropping icons between separate workstation directory windows, or:
sudo apt-get install aisleriot
to hugely increase the range of time-wasting solitaire games available on your Windows PC
Just when I thought private project hosting choices had settled down in favour of Unfuddle, along comes a potentially game-changing announcement from Assembla.
My big problem with Assembla has been that they equated one project (“space”) with one source repository, and charged extra for extra spaces. Each extra space gives extra issue tracking, documentation storage and so on. This might make sense in a traditional centralised subversion model, but it’s completely alien to git, where a project is commonly represented by a network of repositories.
As of 14 April, Assembla now offers unlimited repositories with each space, allowing a single project to share issue tracking, documentation, activity notifications etc. across multiple repositories. If you don’t need the rest of the features, they also now offer basic private source repositories for free, presumably with the idea of up-selling the other services.
Assembla seem to have slightly better tools than Unfuddle, but its hard to tell as they still don’t offer a real, private, non-expiring, “try before you buy” like Unfuddle does. With Assembla you get a month’s usage before you have to start paying, and their cheapest plan is $24 per month, considerably more than Unfuddle’s “micro” plan of $9 per month.
Both services are free for open-source projects, but then so are plenty of others (sourceforge, github, and so on.)
For the moment, I am still happy with Unfuddle, but I’m keeping an eye on Assembla.
I have been doing a lot of work with virtual machines recently. It’s a great way to sidestep machine-specific issues (Windows, I’m looking at you) and set up a consistent development/deployment environment.
However, downloading, installing, updating and setting up each new image has been increasingly tedious. Vagrant looks like a brilliant idea to enable automation of the whole process. I would try this out immediately, except that most of my Ruby development environments are already running inside a Virtualbox VM, and it’s not very likely that one will fit inside another
I face this every time I step away from single-client work to develop other business projects. The business side of my responsibilities wants a day split into little chunks in order to make progress on a wide range of tasks, most of which involve meeting or co-ordinating with other people. The software development side of my responsibilities wants a working period with the longest contiguous periods I can manage. Concentrating on either way of working always seems to be at the expense of the other.
I originally chose to work in Ruby for its ease of deployment to low-cost shared hosting services, but as time has progressed I have become more comfortable with the language and a selection of tools and libraries. One that I like a lot is the Sinatra web framework. Interestingly it now appears that if I wanted, I could run Sinatra applications in a Java web container such as Tomcat, Resin, or Jetty using Warbler, which bundles JRuby and an application into a standard war file for drop-in deployment.
This is an interesting challenge to my own pure-Java Mojasef framework, which offers several similarities with the approach taken by Sinatra. Sinatra wins on documentation, though
I’m currently on my fourth or fifth project using the Sinatra web framework. Each project has taught me more about Sinatra, and Ruby, and all the other little things that go into making a web application using these tools. One thing which has been puzzling me, though, is how best to structure the directories and files which comprise each project.
I have been developing Java web applications for so long that I have a familiar and generally useful project structure which I can quickly build from memory. With these new tools I’m not so confident that I would not be storing up problems if I attempt to create my own structure.
So I was intrigued to encounter Monk recently. A system for generating project starting points for projects using a lot of the tools I have come to enjoy. It’s presumably aimed at the simplicity of starting a Rails project, but for a different set of tools.
On my Ubuntu system it was a bit tricky to get going. The documentation just recommends “sudo gem install monk” but this required some extra installations and some general fiddling around. Once installed it happily generated a project structure, which (after a few more installs) would run its tests using rake and start up a server serving “Hello, World” if asked.
I’ll give it a try on my next project, and see if it helps. I might even use the recommended No-SQL storage engine Redis instead of Sqlite or PStore which I have used in the past.