Busy busy

So anyone reading this regularly or just coming here to find out some update may be wondering why I’ve not posted for a while – work has been increasingly busy over the last year, so much so that my team has tripled since around May 2011. It’s very difficult to focus on your other interests when you have so much going on at work, especially when that interest is developing a piece of code, it all just seems like work and keeping it going is very tough.

That’s not to say I won’t be providing future updates to ThinkTwit, however, the next release will include a lot of important updates for ensuring future upgrades are much more smooth and I’ll also write an article to aid other developers in achieving this. I’m hoping I’ll be able to start continuing work on this in the coming months by reducing my workloads with the three new staff
I have just received.

In related news I’ve also just completed PRINCE2 training alongside my Project Manager – we both passed the Foundation exam and are just awaiting our Practitioner results. I’m hoping the skills we have learnt here will aid us on handling workloads better and will also include learning’s here if possible. If anyone is thinking about taking this course I highly recommend it, it has some great ideas and has the potential to transform your projects if you are able to properly implement it!

ThinkTwit Update 1.3.1

I’ve released a very minor update yesterday that should get rid of the “file_get_contents” warning that appears for some users within the admin dashboard – when moving some of the methods in to the ThinkTwit class I forgot to make them static which obviously caused some confusion. Thanks to Sunny Chan and Amir Habibi for pointing out the issue and assisting by testing the fix!

Additionally I’ve added Steven Mcphillips as an additional contributor whom I hope can assist with make some minor additions initially and maybe some on-going efforts on the roadmap.

Thoughts on ThinkTwit improvements

For some time I’ve not been entirely happy with ThinkTwit upgrades – development on ThinkTwit started initially as an internal project for a past employer (Think Consulting Solutions). We had been wanting to contribute to Open Source for some time and this seemed like the perfect solution to both problems: Open Source the code I have written.

When I then left my employer, knowing that there was no development capacity left within the business, I decided to continue maintaining ThinkTwit. From then on I have just been adding new features as I thought of them or as they were requested, as and when I had time. As this was just an aside hobby and I didn’t have much time to contribute a lot of the development was rushed (though as professional as possible in the time constraints) and so upgrades have not been as smooth as I had wished. This has been highlighted by two recent bug reports that I have had (which, though I appreciated the feedback, did not impress me – I felt I had let people down).

After a little bit of searching last night I found an article on the “Top 10 Characteristics of a WordPress Plugin” and it got me thinking a bit about how I can improve ThinkTwit, especially around upgrades. So what I’ll be shortly adding:

  • A method of keeping track of all database options to allow for safe removal and updating of all database options
  • A method of backing up old options (to allow rollback), adding new options when necessary and transforming options where they are changed during upgrades
  • Deprecation of old methods for one version, including keeping the original as a deprecated method when a method is renamed or has additions to it (if not possible to alter the method without causing impact)
  • Automated uninstall on request (rather than manual uninstall as is currently offered)
  • Better error handling – currently there is an unsightly error thrown when Twitter is blocking excessive requests (this will be fixed separately) – such errors need to be handled better
  • Reset options function
I will make these additions the priority to ensure that all future upgrades are more seamless to our users. This will mean a further delay if you are awaiting features already in the roadmap but it will be well worth the wait. Additionally, I’m in discussion with a ThinkTwit user about him becoming a contributor to the project so hopefully we’ll be able to work through the roadmap at a quicker pace.
Finally, one thing I’ve noticed is that there is little documentation on how to design and develop good seamlessly upgraded plugins so once I’ve complete these updates I will try to write an article on here describing on how to achieve this.
As always, if you have any feedback or requests for ThinkTwit please let me know.

ThinkTwit Update 1.2.2

Have finally found to add another update to ThinkTwit – it’s been just over a month since the last release as I’ve had a lot on in work. I set down today to make 3 minor changes, one of which was in the FAQ, and ended up making 7 changes in total:

  • Fixed incorrect PHP function call example in FAQ
  • Fixed incorrect “Show Username” type in FAQ
  • Fixed incorrect boolean values in FAQ
  • Removed silly copyright statement in comments
  • Added link to FAQ within Plugins description to aid use of shortcode
  • Fixed (intermittent) bad check of boolean for displaying avatars
  • Function call and added limit to the maximum days of tweets to be output (at the request of Keith this week)

NOTE: if upgrading and already using PHP function call please add the max_days parameter after limit - parameter 5.

In addition to these changes I found two further bugs which I’ve added to the roadmap, one of which I realised I’d made a hideous oversight (passing each individual argument to the PHP function call rather than simply passing args). I’ll try to get on these a little sooner this time.

ThinkTwit Update 1.2.1

Just released a minor ThinkTwit update (1.2.1). It basically includes some pieces I wanted to include in 1.2.0 but didn’t have time, as I like to update in discrete units and to finish them before taking a break – although this break was smaller than I intended, I got a bit bored :/

It just includes some donation code, should you wish to donate to ThinkTwit’s development, and a quite useful ability to expand and contract sections of the ThinkTwit widget settings.

ThinkTwit Update 1.2.0

I’ve just released a new minor release of ThinkTwit – version 1.2.0. This release demanded a minor release (e.g. 1.x.0, rather than maintenance, e.g. 1.1.x) due to a significant re-write of the code – specifically around the visibility of functions.

The ThinkTwit class now contains all of the core functionality that operates on processing data within ThinkTwit (the tweets), especially caching and output. The only code outside of this is the Tweet class, code to register the widget, and handling of shortcodes and public function calls.

Many new features have also been introduced and there has been a major update of the readme and screenshots to reflect the changes made:

  • Massive update to the readme, including updated screenshots
  • Re-write of code to make better use of object orientation and private/public functions
  • More flexibility in shortcodes and output anywhere function (thinktwit_output) – including ability to use caching
  • Introduced ability to alter time output text e.g. “This happened 16 minutes ago”
  • Added class to style error message when using AJAX
  • General readability improvements to code

Hope everyone finds this useful – if you have any comments please make them below, including any requests for new features (feature list available on the ThinkTwit page).

NOTE: After updating you may need to go in to your widget settings and press Save if you find that your times (e.g. “This happened…”) do not show.

Graphics card issues

So two weeks ago I was playing Duke Nukem Forever when my PC crashed – ever since I’ve been unable to boot past the Windows loading screen.

After various testing, and eventually getting fed up and passing it over to my mate, I’ve found that the graphics card seems to have fried itself. Although it can load in safe mode it seems that running on “all cylinders” just isn’t possible.

Looking around on the net there seems to be a pattern of some nVidia graphics cards burning out when running the 275.33 build (the latest) drivers. The next step is to RMA it to get a replacement.

Unfortunately this is holding up the next release of ThinkTwit which is nearly done. It’s quite a big code change and so warrants a new minor release. Hopefully in by the end of August it will be complete, just before I head off to Tunisia for a holiday with my girlfriend :)

ThinkTwit Update 1.1.6

So I recently noticed that although my last update included caching, there were some times in which the cache would not be accessed correctly – specifically, when updating from Twitter it was overwriting the cache rather than updating it and then displaying the cache. This wouldn’t be a problem if the live update was full of tweets, but if it had only one it would overwrite the cache with only 1 tweet.

Additionally, have split the Live option in to “Live (uncached)” and “Live (cached)”. The former will not use the cache at all and will always go straight to Twitter (meaning if Twitter is down it will not display anything) and the latter will always check for updates from Twitter (rather than waiting x since last update to check it) and then store the updates in the cache before displaying cached tweets.

I’ve updated the ThinkTwit page on my blog with the roadmap as during this update I’ve realised a few other minor bugs. I’ll get on to these in the coming weeks.