Month: July 2012

CSS3 Linear Gradients on an Input Submit Element

Time to pad out my blog with useless helpful dev shit I encounter during my day job.

First one out of the hat. CSS3 linear gradients on input submits. Doesn’t work. The work around? Convert that input into a button.


Instead of this:

I’ve tested it in IE8+, recent Chrome, Firefox and Safari versions. They all function exactly as they would if they were still input submits.

Problem solved.

Quick Lenovo IdeaPad A1 Review Before The Google Nexus 7 Drops

Since I’ve pre-ordered the Google Nexus 7 tablet, I figured I might as well do a quick review of my existing tablet, the Lenovo IdeaPad A1, before decommissioning it in a couple weeks time.

Important things first, the specs:

  • 7 inch 1024×600 display
  • 16GB storage
  • MicroUSB and microSD card
  • Android 2.3, Gingerbread
  • GPS, Bluetooth

I bought this last christmas while it was on sale for £150 and at the time, it seemed like a good deal. Decent specs at a good price. 7 months later and the Nexus 7 just blows everything out of the water. Obviously technology improves at a rapid rate, but none of the current crop of tablets compares against the Nexus 7 in both price and specs. The only thing the A1 has over the Nexus 7 is the inclusion of the microSD slot.

The A1 is my first ever tablet and only my second ever Android device. The first being the Nexus S, which I still use. And is still an amazing phone. I might even “review” it when I replace it with the next Nexus phone which is scheduled for release later this year.

It (back to the A1) ships with a slightly modified version of Android 2.3 Gingerbread. It has this gigantic widget in the middle (first image above) which cannot be moved. Annoying as hell as it limits how much you can customise the home screen.

Prior to buying this thing I made sure I could root it and promptly rooted this as soon as I received it. This is a must as the screen density set on this thing is utter crap. Imagine the exact same icons and widgets on a 4 inch screen, stretched to fill 7 inches. No tablet optimization was made at all, just making everything bigger and blurrier.

I bumped up the screen density from the default of 240 to 160. Because I hated the huge, non-removable widget, I installed a custom launcher, ADWLauncher EX. Which I bought during Google’s 10 pence sale. This made things slightly better. But it still had the Lenovo bloat running in the background. Stealing valuable system resources.

Eventually I gave up and decided to play around with custom roms. This would be my first time entering the Android world of modding. My Nexus S remains unrooted as I don’t really see the point as it gets it’s updates straight from Google anyway. Android 4.1 Jelly Bean should be beamed straight to it sometime this month!

So, I flashed ClockWorkMod and CyanogenMod 7 (CM7) onto this thing, and fuck me, I should’ve done this sooner. As this made the A1 infinitely better to use.

Even though flashing it with CM7 greatly improved the experience. I desperately wanted Ice Cream Sandwich (ICS). After updating my Nexus S to ICS in December, I couldn’t stand Gingerbread any more. ICS looks so much nicer.

Then last month, what I believe is an official (beta) ICS update direct from Lenovo was leaked. It still has some issues though. Main ones being (infrequent and rare) random restarts, and intermittent issues with the loud speaker. To be fair the random restarts were in the Gingerbread rom that shipped with this device.

Saying that, after experiencing ICS on this thing, even with the above issues, I’ll live with them for just a little while longer. At least until I get my Nexus 7.

If the Nexus 7 never existed I would have recommended this as a cheap tablet to get your teeth into. Not anymore.

How To Install LAMP in Ubuntu

Step-by-step instructions on how to install LAMP (Linux Apache MySQL PHP) in Ubuntu.

Before we start, it’s best to do an update:


Install the webserver.


Install PHP5 along with it’s apache module.


Install MySQL along with it’s php and apache modules.

Then restart the server with:

Alternative, you can ignore everything above and just run the following commands:

Presumably, it just installs the same things, only with less typing copy pasting.