Main menu

Pragmatism in code

Michael Percy AKA DeeEmm - Waxing lyrical about life the universe and everything software related since lunchtime 2006.

1867

I recently had a bit of a schoolboy moment and accidentally deleted a database table whilst making some changes to the site. No problem I thought. The site is automatically backed up every day, all I need to do is restore from a backup.

So off I went to my VPS control panel and duly went about restoring the previous backup. Wow that was easy and would have made a pretty boring blog post had that been the end of it. Whilst is WAS easy it was unfortunately not good. Several of the tables were corrupt and needed to be fixed.

Repairing tables is usually pretty easy - just go to phpMyAdmin and use the built in tools. Unfortunately this is not possible when you have corrupt tables as MySQL may not start, which means no phpMyAdmin. So what to do?

You can try logging into MySQL via the command prompt and issuing a

...
Continue reading
616

Apologies to those of you who have trie to access the ticket system and were unable to lodge new support tickets. Unfortunately there was a bug in the latest version of the Ticket System software that powers the support section of the site which caused an issue on the 'New Ticket' page. This issue has now been remedied. 

1614

I've been busy tidying up and publishing some of the plugins and extensions that I use across my sites. Most of the plugins are simple extensions for JomSocial that add a bit of extra functionality that is not included within the core but there are also a few for Hikashop and Virtuemart as well.

I still have some other extensions and components planned for release over the coming weeks / months and will release these as they are finalised and tested. Most are simple but there are also one or two fairly complex components that I may also decide to publish.

So far the following plugins are available for purchase within the webstore:

 

...
Continue reading
2911

I've been a proponent of Mac and OSX for some time now having been attracted to its simplicity and the 'it just works' way that it operates but since the Mavericks update some things simply don't work. The biggest issue that I have found is that apples newly written USB drivers will not connect to my Arduino, a major PITA when it comes to uploading a new program. The solution is to disable the OSX drivers and install the OEM version which worked for me and seems to work in 95% of cases. Why Apple have decided to move away from the chipsets manufacturers drivers I will never know although I suspect that it may be due to an incompatibility that causes Kernel Panics as I have personally experienced these since moving to the OEM drivers. This is fairly repeatable - hold down the Arduino reset button whilst uploading the program and your machine will likely go into an involuntary and instant reboot. The solution is of course simply not to hold down the reset button but as this is a common hack to get the program to upload you may have to suffer a few missed uploads instead. Not a massive issue, at least I can now communicate with the arduino again.

The most recent issue to hit me as a potential result of Mavericks is that sent email messages seem to disappear into the ether instead of appearing in the sent box as they should. This issue only recently came to light when I needed to find some previous correspondence. For reliability and ease of management I use a hosted exchange server to handle my work emails and OSX Mail as my mail client. What I found was that the last sent message in my sent folder was dated December 2013, the previous correspondence I was looking for was nowhere to be seen. I also checked the exchange OWA browser client but after looking there I also found that there were no recent sent mail messages stored.

After a short call with the exchange tech who advised me to use a client that they supported - namely outlook 2010 - he advised that the issue appeared to be related to the Mavericks update. For some reason the outgoing server had been changed - there were now two exchange outgoing servers in the server list. I changed the outgoing server to the other exchange server listed and sent a test message. Viola! the message was saved in the sent messages folder.

I'm not sure why or how the second outgoing server was added, It's definitely nothing that I have consciously done as the exchange account has not been altered since it was setup in 2010, additionally no one else uses this machine. I can only assume that as the tech  suggested it is related to the mavericks update as the last email date roughly coincides with the date that I updated. Of course I am happy to concede that it could be due to some other unrelated reason but knowing that I did not create the second outgoing server makes me wonder how it got there.

...
Continue reading
1213

Ive used Paul Irish's excellent infinte scroll on a number of projects before but recently found that I was having issues with ending the scrolling after the last items was retrieved on Hikashop. The issue is due to Joomla's error handling - instead of  returning a 404 'page not found' error response it returns a normal page ok response (200) - it can do this intentionally when it provides a useful user defined 404 error page but can also do this unintentionally as in this case. This behavior is commonly known as a soft 404.

As infinite scroll relies on a 404 error being returned when there are no more pages to stop further processing, the net result is that the scrolling keeps on going. Not a massive issue but one that results in an annoying animated icon appearing when you scroll past the end of the page.

In my opinion this is not necessarily the best way of detecting the 'end of the internets' as it assumes that the 404 error means there are no more pages. I'm sure we all know what assumptions usually lead to. By far the best way to determine if there is no more data is to check the actual data itself.

I initially tried looking at the length of the data returned but found that this was not really suitable as it contained the entire page and was really hard to separate the parts that I required although this is possibly due to my lack of javascript skills more than anything else. After some testing I found that instead of looking at the data length looking at the length of the child elements returned was the way to go. I this way I could detect when no more data was present.

...
Continue reading
1615

It's been a while now since I last posted about my experience with VirtueMart, but a recent update caused me to have several issues with the PayPal payment gateway.

The recent official 2.0.26x releases included an 'improvement' to the PayPal payment gateway, an update that unfortunately was not sufficiently tested and resulted in normally successful PayPal transactions not being completed but being marked as pending instead. The issue relates to a check that was introduced for the merchant email address.

My investigations unearthed the root cause of the problem - a check that compares the merchant email against the paypal receiver email.

$paypal_data['receiver_email']!=$this->merchant_email

The problem arises when your PayPal account has several registered email addresses, the business email response returns the primary email that is registered with PayPal, if like me, you use several email addresses for several sites on the same PayPal account you will find that invariably the business address will differ from the email address stored as the merchant email address in the VirtueMart payment plugin and the transaction will appear to fail.

...
Continue reading
3506

A while ago I switched to using zohomail for the email handling on a number of sites that I run. Zohomail is a nice alternative to hotmail or gmail and is also free for a limited number of users which makes it perfect when you just need to add a contact method to a website or just need something to process user messages.

I had previously been running zohomail under the SMTP service on my Joomla installs as I do not have sendmail installed. I find that it's simply too much to maintain and that SMTP is much simpler. Unfortunately for some reason whilst updating one of my sites the SMTP function simply stopped working and no amount of googling could give me an answer. So unperturbed I decided to engineer an alternative to the native Joomla SMTP functionality. After a bit of research and stumbling across Emanuel Tessores excellent article I decided to give MSMTP a shot

MSMTP is a very simple and easy to use smtp client with excellent sendmail compatibility. It can be used to in place of sendmail to allow you to send emails via a third party SMTP server such as zoho, gmail or hotmail. Installation and setup is relatively straightforward being installable via apt-get via the following command

sudo apt-get install msmtp

Once installed you need to create two files; a configuration file for the email server details that you wish to connect to and a log file to record each mail transaction. You can do this by using the commands below

...
Continue reading
24970

If you are familiar with Stack Ideas products, such as the blogging component that you are reading from right now EasyBlog, you might have noticed that on their site they have been promoting a soon to be released social networking component called EasySocial. I first noticed this a few weeks back and I must admit I got a bit excited. Not one to usually get emotional over such things, the idea of a social networking component written by the excellent Stack Ideas team definitely has appeal.

I have a love / hate relationship with most extension vendors and products but my experience with Stack Ideas has been great, the support is excellent, the products are intuitive and of the best quality, and what's more they just work. No fuss, no hacking, no convoluted setup, they work with the minimum of fuss and continue to do so. So when I received an email that there would be a webcast on the upcoming EasySocial, I signed up right away. 

Watching the webcast last night I was blown away by the quality of component. There has been a years worth of development so far and there are still features that are being held back for the next release (Boonex please take note). The component includes many ideas and suggestions from the Stack Ideas user base and whilst it was said that the component was not designed to specifically compete against JomSocial, it certainly raises the bar. 

In many respects it is similar in functionality to JomSocial, it follows the standard format for social networking components - that of a facebookesque type of site with an activity wall, profile pages, messaging capabilities, etc. Where it differs is how these components have been executed, it's the fine details that really set it apart. There is a liberal use of AJAX for all functions resulting in what appears to be a very nice user experience, the interface also appears to be very intuitive, although this is obviously hard to really get a feel for from just watching on a webcast.

...
Continue reading
11240

Just been putting a site together on the new JomSocial version 3. One of the first things I always do (as you should) is create a new template - a clone of the original one. This way I can hack away at creating the site and develop the template as I go along without changing the default.

Changing the style of elements by CSS is a pretty normal act and one that I prefer to do with the original CSS and not by overrides as is always suggested by vendors. Normally I use Coda to de-minify any minified CSS and then re-minify it once I have finished. For some reason I was hitting a few issues when de-minifying the standard templates style.css file, it seemed to be replacing any reference to images with an ASCII reference instead of the path and filename data. Guessing that this must be due to the method used to compress the file (something other than the normal whitespace stripper) I went on a hunt to find out what was up with the new CSS file format.

Not finding too much I stumbled across This Post which simply suggests that the CSS files should not be modified but does not say how they were compressed and how to de-minify them. It does however give a clue - 'use less compiler'.

So I goggled 'useless compiler' and came across the http://lesscss.org/ website. I say 'useless' with my tongue in my cheek, for on the first page there is a bit of a breakdown showing some examples, one is the use of variables.

...
Continue reading
4169

This was the error I was recently faced with when I re-enabled user registrations here on the DeeEmm site.

You may recall from my last blog post Virtuemart Revisited that I have recently re-installed Virtuemart so that I can sell some extensions via a store front right here on the site. As part of my testing I run through the usual user experience to check that things work as they should and found that after registering a user, confirming the account and then being enabled by an administrator the 'You cannot access the private section of this site.' message was displayed and the new user could not log in.

Hmmnnn, not good. 

So I check the ACL to ensure that the 'registered' user level has login access to the site. All good there so that isn't the issue. I then turn to Google to see what that turns up and find that most of the solutions given relate to the ACL permissions.

...
Continue reading
3184

Over time I have gone through various stages of selling mods and extensions and somehow every time have ended up vowing never to do it again. I think in retrospect this has mostly this has been due to the piracy that seems to go hand in hand with the web extension community and the frustration that you get when you get your hard work ripped off by some snotty little script kiddy. In every case, the mods and extensions that I have written have ended up being released open source and for free. In fact these same mods and extensions are still available on the downloads page. 

As you can see by the date on most of those items, it has been a few years since I have actively developed stuff for a wider audience. Most of the stuff I wrote was for the Boonex Dolphin platform, and whilst I ended up moving away from Dolphin to Joomla and JomSocial I never bothered to release any of the modifications, plugins and extensions that I had written for my sites on the Joomla / JomSocial platform.

Recently I have been developing some interesting things and have been toying with the idea of releasing them for sale, I also have the Dolphin to JomSocial migrator that I have up until now not made available to the public. So with a renewed interest in once again selling mods and extensions but this time for the Joomla / JomSocial platform I decided to put a recent plugin that I wrote up for sale.

The plugin is a simple extension for JomSocial that automatically adds new members to a JomSocial group. I wrote this simply because the only available version that I could find to purchase required an expensive 3 month subscription purchase to download. Something as simple as this is not worth the $30  subscription price that was being asked so I decided it would be better/cheaper/easier write my own. Having written it I could also see an opportunity to sell it to others who wanted the plugin but did not want to cough up the subscription for just one extension.

...
Continue reading
3483

Having moved all of my sites to the Excellent Digital Ocean hosting I noticed that on some sites the php mail function seemed to be painfully slow and in some cases threw up some error messages telling me that it had failed. Googling didn't turn up too much in the way of solutions, most information seemed to suggest that the sendmail or postfix packages be installed instead.

Whilst sendmail and postfix are both great solutions, I did not really want to install a fully fledged mail server on my box as all email handling for my domains is handled on a separate server. It seemed like too much of a waste of resources so I decided to simply fix the issue with the php mail() function. 

After doing a bit of digging I discovered that the issue lay with the hosts file. The host info was incorrect.

Editing the hosts file is pretty easy to do, but first you will need to know what the current hostname is set to. To do this simply type in the following command at the command prompt

...
Continue reading
Tagged in: apache hosts mail() Ubuntu
3888

A while back I was working on a project that allowed replication of an instance of Joomla. The reason for this was that I have a couple of sites that are set up as SaaS applications. Rather than use the traditional method of selling access to multiple user accounts on a single site I needed to provide complete anonymity between users. The nature of these apps were that all data is private and for me the best way to manage both the segregation and anonymity was to provide completely separate sites for each user. 

I wanted to use a basic site as a template and then replicate it for each user. This meant replicating both the physical files and the database information for each subsequent user.

I had previously used JMS multisites but had found the component to be a bit overly complicated and limiting when used in a commercial capacity as licenses were required for each replication. It also did not do exactly what I required. I did have a look at modifying the code to do what I wanted but in the end my solution was to simply write my own component.

For my setup I required that each instance had it's own subdomain, but that users could log in from the main domain. Each instance was also created from creating a subscription on the main domain.

...
Continue reading
972

I've deleted a bunch of old user accounts that were either never enabled or never revisited the site after being enabled. In the very highly unlikely possibility that you had an account and find that it has been deleted you will need to rejoin.

Tagged in: deleted
1058

The downloads section is now back up and running. 

All available downloads can now be downloaded without having to log in or become a member.

If there are any missing downloads or broken links please let me know

/DM

Tagged in: downloads Mods
1574

Been busy today tidying up the site. I've been meaning to get around to finishing off a few things, namely the poor cataloguing of the tutorials section and reinstatement of the downloads section which unfortunately broke during the last site update.

I've changed the tutorials section so that it runs off of the excellent SectionX from StackIdeas. I had perviously used SectionX on a few 1.5 sites and was very disappointed that it was never updated it for later Joomla versions. In the end I migrated the tutorials across to EasyBlog, but it was never quite the same.

Whilst recently updating a clients site I was pretty stoked to find that SectionX had been updated to work with the current Joomla versions. Great news! So I have installed it and re-enabled the old tutorials. All I need to do now is to go through the blogs and migrate any new posts back across to being a Joomla article. Stack Ideas offer a free plugin that claims to do this so I will give it a go and see what happens.

One thing that I will need to revisit is commenting for articles in the tutorials section. This was being handled by EasyBlog but will now have to managed by something like Komento. (another StackIdeas product).

...
Continue reading
3282

Looks like the Ubuntu forums have been hacked as they are currently offline.

The forum is currently displaying the maintenance page with the following information:

Ubuntu Forums is down for maintenance

There has been a security breach on the Ubuntu Forums. The Canonical IS team is working hard as we speak to restore normal operations. This page will be updated with progress reports.

What we know

Unfortunately the attackers have gotten every user's local username, password, and email address from the Ubuntu Forums database.
The passwords are not stored in plain text, they are stored as salted hashes. However, if you were using the same password as your Ubuntu Forums one on another service (such as email), you are strongly encouraged to change the password on the other service ASAP.
Ubuntu One, Launchpad and other Ubuntu/Canonical services are NOT affected by the breach.
Progress report

2013-07-20 2011UTC: Reports of defacement
2013-07-20 2015UTC: Site taken down, this splash page put in place while investigation continues.
2013-07-21: we believe the root cause of the breach has been identified. We are currently reinstalling the forums software from scratch. No data (posts, private messages etc.) will be lost as part of this process.
2013-07-22 -> 2013-07-25: work on reinstalling the forums continues.
2013-07-26: the forums are up running again and being tested privately by Forum administrators.

Tagged in: hacked Ubuntu
1301

I have had a few of my larger sites hosted at Green Geeks for a number of years now. At one time I used to use them exclusively for all of my hosting, years ago the prices were good, and the service was great. However, over time the level of service seemed to drop massively and the number of issues that I experienced seemed to grow exponentially. 

One issue that kept rearing it's head was unexpected server updates. The techs had a habit of making server configuration changes without any prior notice meaning that you would come into work and find that 100 out of your 200 sites had features that had stopped working. These changes were usually in response to server security compromises, and amazingly on some of these occasions there was even a root breach. Such changes were an absolute nightmare and sometimes would result in losing two days or more to update code to work with the new convoluted configurations. In the end I simply moved everything to another host.

Whilst this was easy for most sites, I have a couple of larger sites that simply were not an easy task to migrate. The sheer size of the sites meant days of FTP time to transfer the files. I simply kept putting the migration off until the inevitable happened.

Well that inevitable moment happend recently when the billing cycle was unable to renew as my credit card details had expired. Instead of emailing me to let me know so that I could update my details they simply flipped the switch and took the sites offline. The first I knew of it was receiving an email from an irate client saying that their service had been suspended. Great.

...
Continue reading
Tagged in: green Hosting
1886

Along with the recent site update I have also decided to junk the 'web technologies' moniker and revert to just the plain old 'DeeEmm' name. The reason for adopting the name in the first place was to try and leverage the DeeEmm name to generate some business from the hard earned reputation that I had garnered from providing free templates, mods and plugins for various web platforms.

For some reason, perhaps the free lovin hippy side of me, I decided to give away (yes GIVE AWAY!!) modifications and plugins for FREE!! This had a rather good outcome in that I managed to secure me quite a good reputation. Whilst others seemed to milking every and any opportunity I decided to try and undermine their cashing in by providing my mods for free. This ploy worked remarkably well, especially with the Boonex Dolphin platform, in fact so well that I still get enquiries for Dolphin work long after I opted to have nothing to do with it (some 2 or 3 years in fact!). The upshot of my free mods was that I received many many enquiries. But whilst I received many enquiries, the conversion rate was relatively low, in fact for every fifty enquiries only one would end up as a sale and not someone expecting free advice or help, not a very good conversion ratio. 

For some reason most of those enquiries related to the Dolphin platform all ended up being little more than wishful thinking, it appeared that most of the enquiries that I received seemed to want everything that I could offer, but expected to pay more-or-less nothing for it. This is a phenomenon not experienced with other software platforms and I'm not 100% sure why.

I would like to say it is because of of a carefully considered business model where a less than a perfect software core is sold and then Svengali types swan along and sell you solutions to all of the inherent problems in the code. However I think that the reality is much worse than that.

...
Continue reading
1590

Decided to update the site and freshen it up a little.

The template is now based on the popular Twitter boostrap template and some of the superfluous areas of the sites have been removed. The discussions area is now no more. I figure that I'm not developing commercial components any more so there is really no need for it, instead I will simply support each mod / tutorial through it's comment section.

Whilst on the subject of comments handling, I decided to stop using the excellent Komento and instead simply reply on the inbuilt comments system for EasyBlog. This is more than adequate and running a skinnier site is going to be much easier to manage.

There are numerous other changes, most of them minor and none really that noticeable so that's it for another year or so until the next update.

...
Continue reading

Search