Beta launch and a new project

http://ba.rrypark.in/monitoring/index.php

I’ve finally got around to releasing it for public use. There’s still some bits and pieces to do on the front end. I’ve tested the technical stuff behind the scenes as best as I can. I’ve got a list of features still to be worked on for the front end, some of which are fairly key (ho hum). It’s free to sign up; only an email address and a password is needed. I’ll only contact anyone who signs up when a new release is rolled out (by that I mean when major changes are made).

If you want to give it a little test please do. I’ve set a limit of 5 monitors to start with.

If you want to ask questions or get in touch with me, there’s a contact form once you’ve logged in or you can leave a comment here. For email just address emails to anything @rrypark.in (I prefer just a ‘b’ before the @ as it’s my name!)

For anyone interested, I used twitters bootstrap as a jumping of point for the css. It’s still very bootstrap-esque, but I’m not a designer, so forgive me that. I’ll probably take it a bit further on the next update.

So, now for the new project. It’s something I’ve already made a bit of a start on it. In August of this year my fiancée and I took our immediate family with us to Vegas to get married. It was an exceptional trip and one I’d love to repeat next year (although just the two of us!). When we got back I took the time out to gather up everyone’s SD cards and get a copy of all the pictures. I built up a little php script to traverse a series of directories (let’s call them “albums”) and scan for images. Upon finding a suitable image it creates subdirectory to store thumbnails and subsequently creates them. Of course, when you’ve got >2,000 images to process there’s memory issues ahead. The script limits itself to a set number of thumbnails at a time and then reloads itself to process the next set. It took a little while to complete on my little cheap server, but it got the job done. One last php file then acts as the album gallery creating a list of albums and paginates the image list for a gallery effect.

Yeah it’s a little rudimentary and not the most original script in the world, but it’s simple to deploy (2 php files is all that’s needed). Upload however many photos you want into as many directories as you want and it’ll happily give you a little gallery.

I’m intending to spend some time over the next few posts to both give away this little gallery (only took a couple of hours) and use this as a tutorial writing experience for myself.

That’s all for now.

I’m still here…

Honestly. Might not seem it, but I am. I need to get back on with this project and start working on other ideas I’ve had. Current state of affairs is that technically, everything works. From a design point of view, there’s much to be done. It’s a basic problem I face; I’m not a designer, I’m a problem solver.

It’s always been a weakness of mine. I just don’t seem to have the eye for design. Not a problem in my day job as we have designers in house. Is a problem for home stuff. I guess it just doesn’t interest me as much as digging into something technical and making it work. Function over form has always been my mantra. I’ve known plenty of applications that are ugly, but because of what they do and how useful they are, you put up with it. Despite the aesthetic short comings, these applications thrive. I’ve never known an application that looks good, but doesn’t function do that well. Design over function works in cars and clothing, but that’s only when they’re non-essential.

I guess where I’m going with this would be once I’m happy (ish) with the design I’ll release the project for general use. I think after that I should probably work on getting a little more exposure to this blog (and thus the monitoring tool) in order to get “real world” feedback.

For now that’s it. I will be returning to coding the monitoring; part of the delay was getting married (yay), partially because of the increased coding work at my day job (couldn’t bear to look at eclipse once I got home), and partially because it was summer and there were other things to do :)

Soon

I’m officially off work for the next two weeks and with a few chores out of the way I’m ready to put the polish on the monitoring and look at launching a small trial just to put some live testers on it. There’s still work to be done and initially I’m not too worried about the design of the interface; function over form. The advantage of a monitoring system is that, unless something goes wrong, chances are you’d only take a peek at the design when setting up the monitoring. Frankly if something was wrong with your server/s and you were logging in regular, then your priorities are a little messed up :)

Expect a few updates over the next two weeks…

Server rebuilt

A quick update, nothing major. I realised that part of the problems I’d been having with sending emails was due to an error I’d made during the configuration of the server. After a quick backup of the code & database I reset the server back to it’s original state and started again. It took a little while to get everything back to how it should be & fixed the problems I was having with email – about 2 hours all in, including the database restore.

Regardless, with this out of the way I can move on with the server monitoring :¬)

Releasing soon (ish)…

I’m at a stage now where I’m happy with the technical aspects of the server monitoring project. Currently, every 15 minutes a list of sites & content are being checked. cURL has been abandoned and sockets are in use. By posting http headers through the connection this server is able to receive, test & store results.

With this section out of the way, I now need to finish off the sign up process (specifically the design of the form), work on the account management & build some kind of suggestion / comment system so I can work on feature requests of any users.

Based on my current hour or two of work on a Sunday night & the busy period at work shortly I doubt I’ll get it done this week. However, with 2 weeks off from work coming up I’ll certainly have an initial release ready by then.

The big task then will be attracting users…

cURL fail

Sadly I’ve not updated this for a little while. I hit a stumbling block and that put me off a little bit.

The long and short of it is that once every day or two, cURL would fail. I had set a 10 second time out, which was being hit. Once I upped that, and eventually removed it, I realised that the problem wasn’t with the target server not responding, it was simply some kind of cURL issue. I verified this by implementing using fsockopen to open a socket to this server, post a little data & get a proper response.

So, I’m looking to rebuild the method of testing, but not the testing itself. I’ve been reading up on sockets and HTTP protocols in order to test websites in this way. In the mean time I’ve done a little work on the sign up form so that I can get a few people to sign up and take a look – you can’t beat feedback from real users.

That’s the state of play as is. I’ll probably not update much more for the next 2 weeks as it’s a busy period for work, and this is just a side project for me :¬)

Lastly, I noticed that in my efforts to strip down the wp installation I’m using, that I removed the link to the xml feed. Just in case anyone wants to check up on me with a feed reader ;¬)

PHPUK 2011

I had planned on writing this post earlier, but I’ve felt rotten all weekend. Wasn’t great Friday which left a few people at the conference looking at me funny blowing my nose every ten minutes (damn flu).

The conference itself was my first, and all in all, very good. Marco Tabini opened the day with a great little talk about users. Interesting topic and quite a good one. We developers often like to play with the latest toys and tools and it’s not always the best thing to do. Drives me nuts, but the place I work has a customer base that contains of over 10% IE6 users – so relying on bleeding edge techniques isn’t an option.

Ivo Jansch had a great talk on the apps vs mobile site debate. Sebastian Bergmann & Thorsten Rinne both had talks on what turned into fairly similar topics. Both have given me ideas on improvements I can make to how I, and the team I work with, can improve our day to day coding. Not sure everything is entirely appropriate for small teams like ours, but still.

Lorenzo Alberton’s afternoon talk on NOSQL was an oddity. I found the whole thing a bit much. It’s not something I’ve looked into in too much detail so I was quite interested going in. The talk was very quick, very technical, and I was lost after the first half an hour. Checking twitter after the event it seems to have been a very hit and miss talk. I think he just tried to cram too much into too small a space of time. I’d have loved to see him do the talk again, but over 2 hours, rather than just the one.

The final talk of the day I attended was Tobias Schliit’s on advanced oo patterns. A decent talk, but having spent a fair bit of time looking at patterns recently for the zend certification exam, it wasn’t anything revolutionary for me.

All in all, a good day. Considering attending the next conference in October in Manchester. For now though it’s back to work, back to the projects, and hopefully soon getting more involved with the community online.

Confusion & why it’s evil

It’s almost 8am as I write this. I’ve been up since 5am. I’m currently enjoying the wifi available on the train in first class. Before you start, first class was cheaper than standard by almost £20. As an additional bonus, buying two singles for the journey was cheaper than a return ticket. I don’t know why this is the case, but it suggests to me that there’s something wrong with the train services in the UK.

I figured this would make for an interesting blog post. In my day job I work for an ecommerce company. I’m no designer by nature, but due to the small size of the company when I first started 9 years ago I had to take on some design tasks I normally wouldn’t – namely interface design.

The majority of websites that are not based on information digestion (like news or wiki sites) are going to need forms at some point. If you’ve got forms on your site, then you probably want users to fill them in. If you want them filling in then you’re almost certainly going to want to keep it simple. This is where I loop back to where I started this quick post. It’d be very easy for me to have looked for the simple option when booking tickets for this train journey. The easy option would have been to just buy a return, but by digging around I’ve saved over £100 and get to travel first class on my way into London.

I’d have thought that a large rail company would have people in place to test these things, or maybe they’ve made the process complex & confusing on purpose. I can’t help but think that Amazon didn’t get where they are today by making things harder for their customers.

I could write something detailed about good design, but there’s better people for that kind of thing. I will however post this link to the Oatmeal: How to make your shopping cart suck less. It’s a great little balance of humour & good advice.

In around an hours time I’ll be at the php uk conference, I’ll no doubt have something to add about that later.

Quick update on server monitoring

Busy week at work, so not a great deal done at home. I have been working on the project at least a little though.

Current state of play is thus;

  1. Monitoring software is reaching out to targeted websites.
  2. Testing is performed, results are processed & stored in a database.
  3. If certain conditions are met, monitoring reports problems via email to the account responsible for tested server.
  4. This process is repeated every 15 minutes.

That’s a basic outline. I’ve touched on a few different aspects of php & a little cron magic on the linux box running this process. By checking headers of sites using curl I’m able to keep overheads down. Cron ensures the process is repeated without manual intervention. I’m using mysqli for database interactions at the minute, but I’m thinking about rewriting this to use PDO. I’ve not used PDO as much as I’d like to, so this should be a good bit experience for me.

My lack of PDO experience mostly comes from having worked the same job at the same company as long as I have. It’s often a case of being able to turn around a project quickly often revolves around reusing proven, but old, code. I don’t recommend this approach to coding if it can be avoided as it introduces copy/paste faults and bad practices. I once read that “if you look at code you wrote 6 months ago and don’t see anything wrong with it, you’ve not learned enough in 6 months”. Can’t remember where though; I should look that up.

Obviously, if I’m interested in getting anyone to ever use this project I should probably build an interface for it. Well that just so happens to be what I’ve been taking a look at. I’ve got a basic sign up form that creates an inactive account. Since I’m running this off a little VPS I’m yet to test how much of a strain I can put on it. Since performance of my own server is important in testing other sites, my intention is to limit accounts. I’m considering two approaches for now; an approved account process & a registration key method. Both methods require a manual process (pre or post registration depending) so are not ideal. I’m a strong believer in CAPTCHA being the bane of internet usage though. I’ve got another project lined up for that, but one step at a time for now :¬)

As with most back end programmers, I’m not interested in what’s going on behind the HTML than all the pretty things up front. At this stage the interfaces are pure function and thus pretty boring. Given a little more time I’ll have something a little more user friendly to work with.

That’s all for now.

The reason this is all here

So, it’s gone 1am on a Saturday night (technically Sunday) and I’m finally launching a blog. Probably not the most normal thing to be doing at this time. This has basically all come about because of my fiancée getting tired of me talking about ideas without ever doing anything about them. To keep her happy and to hopefully make me a happy bunny I’m doing this.

My intentions here are to write about development, open myself up to new ideas and get more involved with the wider IT community. I’ve got some thoughts and concepts for future projects, but I’m looking to start out one step at a time. I picked up this domain over a year ago so I can have the very nerdy email address I do (my name). I grabbed some hosting and set up a few basics. This is my first use of WordPress, so at least I’ve got an excuse for why not everything is as it should be here. I’d have loved to build my own blog for this, but while there’s easy tools available there’s no point working developing a blog into this whole experience – that’s for something further down the line.

The first project I’m looking at is server monitoring. Not the most glamorous of applications, but hey it’s a start. It’s also fairly useful, which frankly should be the first check point in any project (except possibly art). I’ve got the basics worked out, something for another blog post, and a decent outline of where I want to go. I’ll also be looking for some test subjects when I’m ready to launch a little trial.

Anyway, that’s it for blog post number 1.