I've just come off the phone with Adobe support after trying in vain to activate a trial version of Flash Builder 4.7 Premium with a serial number.
No matter what, I was always presented with a prompt that asked me to 'renew my subscription', referring to a Creative Cloud subscription which I do not have nor need.
What I do have is a valid serial number. I tried quitting the Creative Cloud app and relaunched FB 4.7: no joy. I chatted and phone Adobe Support: no joy. They told me to email them, and finally someone called me and fixed the issue. Here's how.

Open your Creative Cloud desktop app. On a Mac it has a little cog symbol in the top right corner. Click it.
If there's a sign out option then use that, but in my case there wasn't so I selected Preferences, then on the popup that opened selected 'Account' and then the 'Sign out of Creative Cloud' option.
After signing out I quit the Creative Cloud desktop app.

After that I launched FB 4.7 which now started properly. I wasn't prompted for a serial number at that point so I waited a minute, quit FB 4.7 and relaunched it. Now I saw the serial number prompt, entered my serial number and was all set.

One of my remaining dedicated servers which hasn't yet been migrated to Amazon EC2 is hosted in a UK datacenter without a dedicated firewall to protect it.

Whilst I knew that the server was effectively exposed to the Internet on various ports I did not realise that despite me setting up the Windows firewall to only allow logon attempts on the RDP port (Remote Desktop) from a fixed set of IP addresses, many if not all logon attempts were still getting through. I'm not sure why, but I seem to recall that the block only kicks in after a successful authentication, meaning bots were still probing my server 24/7. Not good.

What I needed was an easy way (by this is not what exactly easy, neither is that) to block hacking attempts with configurable bans based on IPs.

The best and simplest tool I found for this job was RDPGuard. It runs as a Windows Service and can easily be configured to block brute force logon attempts.

I can really recommend it if you run a public facing Windows box without a dedicated firewall. They offer a free, fully functional trial on their website.

I've recently started implementing Paymill's online payment processing service for scribblar with the help of Richard Herbert's excellent cfPaymill wrapper for Paymill's API. The main reason for this is the fact that I am totally and utterly fed up with PayPal and their 'customer service'.

To be honest I do not know how much I've paid PayPal for their services over the years (I suspect it amounts to several thousand dollars) and I would have happily carried on if I felt like a valued customer there and the company would take my customers' user experience seriously. It would also help if they were a generally pleasant company, but after more and morehorrorstories I am packing my bags.

There's no hard or fast rules to making this decision, but I'd like to share a little episode I recently had and where I did question myself - and where I was glad in the end to have seen things through.

Summary:This will be a co-presentation between Kevin Johns from Level 3 and David
Hassoun from RealEyes. Join us for this online session hosted by the Adobe Media Server User Group to learn how Level 3 is utilizing Adobe Media Server for 24-7 live linear broadcasting from VOD assets.
Level 3 has been working to create cost-effective, file to Live playout solutions for adaptive bit rate HTTP delivery. Level 3 will share their experiences in building an end to end IP playout solution based on the Adobe Media Server platform.
Then, meeting attendees will get a look under the hood with the basics for Server Side ActionScript (SSAS) and Adobe Media Server 5.0 as we walkthrough the key concepts from a server side application development perspective. You will have the opportunity to ask questions and learn from the best in the business, this meeting is not to be missed!

If you are serious about gathering data about your website then it's likely that you will be using Google Analytics to do so. And if you are selling products or services from your site then tracking Goals and Goal conversions will be nothing new to you.
I've recently set up a new goal that I then forgot to activate, and it took me the best part of 10 minutes to figure out how to edit an existing goal in Google Analytics and to switch it from inactive to active.

Since I know that I will be Googling for this exact same issue again in about 2 years time once I forgotten all about it I am now documenting it here (note to future self: see, I knew you'd be coming along again).

On April 2, 2013, the Streaming Learning Center and my friend Jan Ozer released Producing Streaming Video for Multiple Screen Delivery. This book is a professional reference for producers seeking to distribute streaming video to the widest possible audience, including computers, smartphones and tablets, and Over the Top (OTT) devices. Written by Jan Ozer, this book delivers the lessons learned from years of producing and consulting on streaming, and serving as a contributing editor to the industry bible, Streaming Media Magazine.

This book is the successor to Jan's highly regarded Video Compression for Flash, Apple Devices and HTML5, which has earned a five-star rating on Amazon and is used as a textbook by many colleges and universities. Published over two years after Video Compression, however, Producing Streaming Video for Multiple Screen Delivery is almost a complete rewrite, and contains links to the dozens of product reviews and video tutorials published and produced by Jan over the last 24 months. At 432 pages, the new book contains more than 65% more content than the original book.

First of all I should point out that I'm quite new to Rails (and jQuery) and the interactions between it and JQuery, which may be the reason that some of you may consider this a rather basic hint.
However whilst working on membermeister.com I've recently had some trouble loading JSON data from our Rails backend. It seemed like a very trivial task at first, all we needed was a GET request that was answered by a format.json response from the Rails controller.

Apologies for the recent lack of posts, but I have a great excuse which is also the topic of this latest update: I've been very busy trying to get my latest product membermeister (my latest project) up to MVP stage. Membermeister is an online membership management service targeted at small business owners that have to deal with a large numbers of members - for example sports coaches, childcare providers, dance teachers, personal trainers and so on. It allows them to keep all their member information in one place, create groups, schedule sessions and classes and most importantly produce invoice and track payments amongst other things.

Together with my friend Paul Bou-Samra we have been busy building this Rails based application for the last few months and we're now at a stage where we have something at hand that resembles a usable product.
We've learned a lot along the way, but the journey has only just begun and my intention is to write more about our experiences and ongoing learning in future blog posts.

Paul has taught himself Ruby on Rails in record time whilst I have tried to get to grips with the front-end development (not sure what I would have done without twitter's bootstrap) and heroku/ deployment. I've also got a good handle on the Rails asset pipeline now... don't ask. Heck, I've even dabbled in Photoshop and Fireworks to create graphics and designs - in a nutshell we are bootstrapping this baby 100%.

I'm currently working on a Ruby on Rails (RoR) app together with a friend of mine - I'm mainly handling the front end and hosting/config side of things whilst he is writing tons of Ruby code. I should add that we're using Twitter's bootstrap as a basis to style the application.

I would like to draw your attention to an issue that had me stumped for half a day today (and a few hours yesterday) and it manifested itself in the following error upon clicking a sign out link (we're using Devise for user auth):

The obvious place to check was the routes, and indeed there was no GET route that matched. What should happen is that a DELETE request is fired once the user clicks the sign out link, which in turn is achieved by Rails' JavaScript code modifying the request behind the scenes to make it RESTful (DELETE instead of GET).
This topic of GET versus DELETE requests related to Devise sign outs is widely covered in posts such as this one or this one.

However this was not the issue we were seeing - it just looked very similar. It turned out that our version of Bootstrap which was a couple of months hold has a bug that stopped links inside nav dropdowns (if you use Bootstrap you know what I mean) with data-method attributes from working properly.

Once I realised that Rails' JS code inside jquery_ujs was no longer running when I clicked the link *inside* a nav dropdown but worked outside it I immediately googled for bootstrap related issues and found this bug report which is also related to this issue.

In short, upgrading bootstrap to version 2.2.1 fixed the issue for us and links would now be processed properly, sending a DELETE request when needed.

Hopefully this helps someone and saves them a few hours of grief - it was not the easiest bug to track down and fix.