If you work in IT, you have probably by now have seen the famous video on YouTube labelled “What most schools don’t teach” — where Mark Zuckerberg, Bill Gates and a few other prominent figures are talking about how easy it is to program, and how only 10% of the USA schools teach programming. It goes on more to bombard the viewer with some scary figures about how 1,000,000 jobs or more will go unfilled because there are not enough coders — I’m guessing as a motivational message to inspire people (kids?) to start programming.
The thing is, watching the video, I cannot but cringe at the hypocrisy employed in making this video! If the purpose of this message is to increase education efforts (at school level or individually) in the programming sector, then I’d say it probably does it job — in a very lame way, but it sort of does. If however this is intended to be a call to arms for “everyone” to start programming and either change their jobs to a programming job or if they are at the beginning of their career, to set their career path to be in programming, then I’d say the message is a hypocritical one. Even worse, it is setting up the targeted audience for a harsh comedown!
Read the rest of this entry »
Only a day after I’ve published the S3 utility for buckets with versioning enabled, I took the time finally to put this on SourceForge — woohoo! Still early stages, as I still need to figure out really how to properly release versions into their file system, but as it stands right now at least there is a basic project page, a wiki and issue tracker — not to mention a Subversion repository with the source code.
So let’s start with the basics:
First of all, the project main page is here: https://SourceForge.net/projects/awsversionmgmt/ . This includes links to the download area: https://SourceForge.net/projects/awsversionmgmt/files/ as well the standard SourceForge issue tracking system: https://SourceForge.net/projects/awsversionmgmt/tickets/. I am still working on planning the releases for this, but for now I’ve just added a few issues I have found for the first official version of this (which would be 1.0.0 — naturally!) — if you’ve already tried this tool (unlikely, it’s only been one day since I put up the original post ), feel free to suggest some enhancements using the SourceForge tracking tool.
Also I have created a wiki here: https://SourceForge.net/projects/awsversionmgmt/wiki/. The idea behind it is to make this a dev-oriented wiki — i.e. propose upcoming features and architectures etc. And last but not least, I’ve also managed to deploy the maven-generated site on the project website: http://awsversionmgmt.SourceForge.net.
With that in mind, I think I’ve successfully manage to transfer the project to SourceForge so I’ll maintain it there — though quite likely you will see the occasional blog post here when a new milestone is reached. drop me a line if you want to get involved.
OK, Amazon, I have to tell you something: you dropped the ball a bit on this one! I absolutely love AWS and every day I seem to find something new about them (though, granted, not sure if that says something about the innovation in Amazon or it says something about my ignorance!?). However, having used S3 for a while, I have been waiting for a while for an utility like this that in the end I had to write it myself!
The problem that I have is that I use a few buckets where I have enabled Amazon’s versioning feature on the bucket. This means every time I write a file, S3 stores all the versions of a file, which is so cool because I can keep a full trail of each file changes, together with metadata around it. However, the problem arrives when you delete a file: any S3 file browser you get (including Amazon’s own web based one) shows that the file is no longer there, however, if you proceed to delete all the files in the bucket and then try to delete the bucket, you will get an error message which informs that in fact the bucket is not empty (and as such it cannot be deleted)! If you start digging into it, you will find that AWS API offers a specific set of functions for versioning — and once you employ those you start seeing that your bucket is far from empty and has lots of versions in it; unfortunately those versions are not visible because the file has been deleted, however, unless you delete these versions you cannot delete the bucket (not to mention that they are being stored in S3 in stealth “ninja” mode taking space — and costing you money).
That’s when I started looking for an utility who can deal with this, but up to now, I wasn’t that lucky. And the rule of today’s software tools says that if it’s not there it’s time to write one! Hence this utility — and the post here where I’m offering it for download.
Read the rest of this entry »
There’s no point in hiding the fact that quite for a while I’ve been dealing with a few rather messy projects — and in doing so, together with others working on these, I have found come across all sorts of shenanigans and oddities (caused quite often by myself and not just the others) which, with a bit of fore-thought and a bit of “voice of experience”, I feel could have been avoided. As such, what follows is just a random set of thoughts on various coding and IT-related matters from yours truly (the angry mob — as The Kaiser Chiefs have put it )
I suggest you put together a similar one, if you’re a coder yourself, and revisit it often — being reminded occasionally of the simplest things does seem to help! And when you’re buried deep in the guts of a complex project, you quite likely won’t remember all of these — having them “there” in front of you, I found it helps…
Read the rest of this entry »
This is something I wanted to write about a while back – while there are articles on the net about using JMX in a Java application to keep an eye on how it ticks, or manage its running cycle, I think there is still a large number of users out there who are somewhat reluctant to use this part of the JDK to achieve this in their Java applications. Reasons I think are quite varied, and they span from the large availability of enterprise-wide monitoring tools out there (so much easier to outsource this part to another company so you can concentrate on building the application) to the fact that the JMX Console that gets shipped with the JDK is not the most scriptable to use (it’s a Swing app after all!) or the most friendly. (In particular, it uses RMI and trying to configure a firewall to allow access via JMX Console to your infrastructure proves a pain, since it uses dynamic ports.)
Few know though that there is a little package from Sun (ahem, Oracle I mean!) who provides a HTML layer for inspecting your MBean’s and invoking actions on them. While this might not sound like much (in fact, I am pretty sure Oracle’s JDMK is not the only HTML/JMX interface, so it’s not a big deal after all that Oracle provides one), it can have some (sweet) implications in your app management and monitoring infrastructure:
« Previous entries Next Page » Next Page »