Monday, December 9, 2013

Speed up a slow Android phone


Your Android smartphone/device is a computer. Like most computers, it can get slow after a while and benefit from a periodic cleanup. Here are some things you can do to speed up your Android phone if it's acting slow:

  1. Reboot
    Maybe this is obvious, but if you haven't powered off your phone in a while, go ahead and reboot it (or power it off and back on again).

  2. (Nexus and HTC One phones only) Try LagFix
    This only applies if you have a Nexus or HTC One phone and running Android less than 4.3. These devices have a very specific bug that causes lag and can be fixed by this app: LagFix (fstrim) Free (requires root). I wouldn't recommend running this for other phones; at best it will do nothing and at worst it could damage your phone.

  3. Undo any recent changes
    If your phone has only recently been acting slow, think about any recent changes you've made. Have you recently installed or updated certain apps? Have you recently received a software update? Any of these changes can slow your phone down. If it's an updated app, you can sometimes find old versions of apps online. If it's a software update, undoing it will be much trickier, but it is possible. If it is indeed the culprit, somebody's probably written up instructions on how to go back to the previous software version.

  4. Uninstall/disable unused apps
    Some apps actually run in the background whether or not you've opened them. Too many of these kinds of apps will definitely slow down your phone. Examples of apps that run in the background are apps that display notifications, whether notifications that are always present or notifications that show up from time to time. Aside from these, we could certainly all benefit from going through our apps from time to time and removing any we don't use any more.

    Some phones come with a lot of preinstalled apps that you don't use or want (called bloatware). These often can't be uninstalled, but they can be disabled starting in Android 4, which should at least keep them from slowing down your phone. To disable them go to Home  Menu System settings Application manager  All, select the app to disable, and click Disable.

  5. Greenify!
    I intentionally put this step after the previous step, because the first step really is to get rid of apps you're not using. But of course there are certainly some apps that you'll want to keep, and what if one of those is the culprit, running in the background and slowing your phone down? Thankfully there's a great solution: Greenify. It's an app that lets you control which apps run in the background. It doesn't kill them, but it hibernates them instead. Because of this, it does need root access.

    Side note: I mentioned that Greenify doesn't kill apps running in the background. This is because 
    killing apps can actually slow your phone down and use up your battery faster because then the apps will just start themselves back up. If you're using a task killer app thinking you're speeding your phone up or saving battery life, you're probably doing just the opposite. You should uninstall it right away, and instead follow the steps in this post if you're having issues.

  6. Remove some widgets
    Building on the previous point, there's a whole category of software that runs in the background: widgets. Any widget you have on your home screen is going to run in the background on your phone all the time. The more you have, the slower your phone can get. Remove a few and you may notice your phone runs faster.

  7. Don't use live wallpaper
    Live wallpaper is fun, but it's just creating extra work for your phone and using up your battery faster. Use regular wallpaper instead.

  8. Look at your SD card
    If your phone has a removable SD card, turn it off and remove it. See if that fixes the problem. If so, see what the speed class of the card is. If it's less than class 6, I'd recommend buying at least a class 6 card, especially if you've moved any of your apps to the SD card. If your phone has internal storage, which most recent phones do, you could even try running without the SD card. At the very least go through your SD card and clean up some of the unused files and folders. Apps have an annoying habit of putting things on there and not cleaning them up.

  9. Clear app cache
    Clearing the caches for your apps may help speed things up. If your phone is rooted and Titanium Backup is installed:
    1. Open Titanium Backup
    2. Go to MenuBatch actions
    3. Scroll down to Manipulate data → Clear cache for user & system apps and click RUN
    4. Click Select all and then click the green check mark in the upper right to begin the task

    If your phone isn't rooted and/or you don't have Titanium Backup installed, the process is a lot more tedious:
    1. On your phone, go to Home  Menu System settings Application manager  All
    2. For each application in the list, select it and click Clear cache. Yes, I told you it would be tedious. This should be good incentive to follow my previous suggestion at getting rid of unused apps :)

  10. Wipe cache partition
    This will probably only be available to you if you've rooted your phone. If you have, power it off, boot into recovery mode (varies by phone), and select the option to wipe the cache partition.

  11. Disable/uninstall apps one by one
    I've saved this one towards the end because it's going to be pretty tedious. If you've made it this far and your phone is still inexplicably slow, you can try disabling or uninstalling apps one by one and seeing if that changes anything.

  12. Factory restore
    I wouldn't recommend doing this more than once a year, because you're going to have to set your phone up from scratch after doing it, but just like formatting your computer and reinstalling everything, a factory restore can help speed up your phone. First, back everything up (I recommend rooting it and using Titanium Backup). Once you've backed everything up, you can do the factory restore by going to Home  Menu System settings  Backup and reset  Factory data reset (specific location varies by device). Again, in case you weren't paying attention, this will erase everything on your phone, so make sure you've backed up everything that's important first.

  13. Downgrade Android
    Sometimes the device manufacturers release software updates that end up making the phone slower. The solution in this case is to downgrade Android. This is not a trivial task, and will vary by device, so you'll have to Google this one. Honestly if you get to this point, you may just be better off buying a Moto G.



Tuesday, November 26, 2013

Moto G: A phone worth buying

A plethora of phones have come out over the years, but none have really been worth recommending. Until now. Motorola has just announced the Moto G. It's a mid-range phone that's going to cost less than $200 brand new and unlocked.

Can you buy a cheaper Android phone? Sure, but not with these specs, and not with such a recent version of Android. Can you buy a nicer Android phone? Sure, but you're going to pay at least twice as much, and most brand new unlocked phones cost over $500.

The great thing about this phone is it's everything you need, nothing more, at an incredible price. Features like:
  • Near-stock Android 4.3 with a guaranteed update to 4.4
  • Great battery life
  • A quad-core processor
  • Front and rear-facing cameras
  • FM radio
  • Multi-colored changeable backplates
Speaking of the backplates, here's an idea of the color selection:

The Moto G is available for order now, and starts shipping in a week or so. You can read more about it here: moto-g.com

Monday, November 25, 2013

com.google.process.gapps has stopped

If you are getting the above error on your Android device, try the following to fix it:
  1. Go Home  Menu System settings Application manager  All
  2. Scroll down to Download Manager and click on it
  3. If it's disabled, click Enable to enable it
  4. If it's not disabled:
    1. Scroll down to Internet
    2. Click Clear cache
    3. Click Clear data
That should do the trick. If it doesn't, try narrowing down the problem:
  1. Go Home  Menu System settings Accounts  Google
  2. Under Accounts click on the account
  3. Check and uncheck each item in the list. One of them should trigger the error. Once you find that item, use the above instructions to clear the cache and data for that item, and that should fix the problem.

Sunday, November 24, 2013

Why I'll never buy a Kindle, or an eBook from Amazon or Apple

I've long stayed away from buying an Amazon Kindle or buying eBooks on Amazon or Apple. I recently read something that sums up my own reasons for doing so really well. Rather than rewrite it, I'm just going to copy and paste the whole thing:
Here’s a quick and dirty summary of what ADEPT EPUB is and why it’s important (footnotes at the bottom for extra stuff that isn’t required knowledge but is still interesting).
The first thing you have to understand is that the vast majority of ebooks sold in the United States are encumbered with DRM. This is done at the publisher’s or rights holder’s request.(1)
EPUB is a standardized format developed by the IDPF for reflowable electronic documents. The specification is open for anyone and everyone to use, and it has thus been adopted as the standard format for ebooks by everyone except Amazon (more on that later). On top of the standard file format, Adobe developed a roughly standardized DRM schema called ADEPT that allows a consumer to unlock an ADEPT EPUB for use on any device that supports the format, regardless of where the book was purchased.
As of right now, every ebook vendor that sells DRM encumbered ebooks in the United States exceptAmazon and Apple use a form of ADEPT EPUB DRM on their ebooks.(2) This includes Barnes & Noble, Kobo, Google Play, Sony, Smashwords, and dozens of other smaller vendors. Apple uses EPUBformatting for their books, but encumbers them with a proprietary DRM (“Apple Fair Play”). All ADEPTEPUB ebooks can be used on any reading device or app that supports the format.
Amazon is the only major vendor that does not use EPUB format for their ebooks. They instead use an older format, Mobipocket, encumbered with a proprietary DRM to create the .AZW format. The DRMschema for .AZW is a trade secret of Amazon – no other vendor has access to the encryption codes and thus can not legally sell books in .AZW format.
The advantages to ADEPT EPUB over .AZW should be immediately apparent.
1. Nonexclusivity- If I own a NOOK or Kobo ereader I have the ability to shop at any vendor who sells books in ADEPT EPUB format. So if Google Play is having an awesome sale and a book I want is far cheaper than I could get it at BN, I can simply buy the book from Google and load it onto my NOOK.(3) This is not possible with a Kindle device. Since Amazon uses a proprietary DRM that they do not share, it is impossible for another vendor to sell a DRM encumbered ebook for Kindle owners. Buying a Kindle ereader means you have a single choice for who you buy your books from – forever.
2. Portability- Just as with shopping around for books, ADEPT EPUB users can shop around for devices. I personally own one of the old NOOK Simple Touches, and my girlfriend is strongly hinting that I’m going to be getting an upgraded model with a light for Christmas. I have a choice for what device I want to buy – if I’m not enamored with this new NOOK model I can happily go buy a Kobo Aura HD or a Sony PRS and transfer all the books I have previously bought onto the new device. This, again, is not possible with a Kindle. If I was a Kindle owner I could only buy a new Kindle device or have to give up every book I had previously purchased.
3. Futureproofing- One of the main reasons I hear people on the internet don’t want to buy a NOOK device is because they are “not sure if BN will be around in 10 years”. With ADEPT EPUB books this isn’t a problem at all. All the books you’ve purchased can still be easily read on any other compatible device. So even in the unlikely event that BN goes under, I can purchase a nice new Kobo or Sony or whatever else have you and still read my books. Amazon, while dominant now, could eventually face the same pressures that BN is seeing today. If Amazon did fold someday in the future, the proprietary .AZWbooks would be useless on any other device. And that isn’t even dealing with their incredibly draconianDRM schema that prevents the user from legally backing up their own books.(4)
EPUB is a major point in favor of going with vendors other than Amazon (and Apple) when buying ebooks. It is a standardized and open format that lets vendors compete on price, experience, and extras, without hurting the consumer with locked-down systems. It should be the main selling point of devices like a NOOK, and yet it is never once brought up in any of the articles on The Verge (and rarely elsewhere, sadly).
And that is why I’m going to keep bugging them until they acknowledge it.
Footnotes:
(1) As of right now there is only a single imprint of one of the “big five” publishers that doesn’t use DRM on their ebooks – Tor/Forge, an imprint of St. Martin’s Macmillian. The “big five” publishers – Random House Penguin, Harpercollins, Hachette, St. Martin’s Macmillian, and Simon and Schuster – are responsible for roughly 85% of the trade books published in the US. There are smaller publishers that choose not to use DRM, famously Baen and O’Riley, but they are small and cater to niche markets.
(2) BN technically doesn’t use ADEPT DRM, rather opting for the BN Social DRM. However, the only difference is the encryption code – BN Social uses a credit card number, while ADEPT uses an Adobe account ID. The two DRM schemas are completely interoperable and thus can be treated as the same format.
(3) Loading an ADEPT EPUB book onto a different brand ereader requires going through a free computer program called Adobe Digital Editions, which unlocks the DRM on the ebook for a device. It is also the software used for library lending for devices without access to the Overdrive/3M library apps.
  • Amazon’s DRM schema encrypts each file with a different unlock code for each device. So even if I have a Paperwhite, a Nexus 7 with the Kindle app, and a PC with the Kindle app all buying books from the same account, the files will only function on the device they were downloaded on. I can not, for example, download the book onto my PC through the app and then sideload it onto my Nexus – the Kindle app on the Nexus will not unlock the book because the encryption code is different despite both being tied to the same account. It makes it legally impossible for a Kindle owner to back up their files on their own – they have to rely on Amazon’s magnanimity, which has hurt consumers in the past.
Lastly, I’m well aware of how patently easy it is to strip DRM and convert ebooks using programs like Calibre. However, at the moment this is still illegal in the United States. I in no way endorse the use of DRM (it’s a stupid anti-consumer technology), but I do accept the world as it is right now.
Source: Barnes & Noble's new Nook GlowLight is lighter, faster, and full of ideas

Friday, November 8, 2013

Flashing your BIOS in Linux using a USB flash drive

These instructions are specific to Ubuntu and Ubuntu derivatives (like Xubuntu and Elementary OS), but they should work on just about any version of Linux. Just modify the steps for installing GParted and UNetbootin as necessary:

  1. Get the current version of your BIOS by running this command in a terminal:
    sudo dmidecode -s bios-version

  2. Find the BIOS update file for your computer. These are generic, but should point you in the right direction:
    1. Get the exact make (Lenovo, ASUS, Dell, etc) and model of your computer. The model will be a combination of letters and/or numbers and is either somewhere on the top or bottom of your computer.

    2. Open a browser and go to the website for the manufacturer of your computer.

    3. There should be a support section where you can navigate to the drivers/downloads for your computer. You'll probably have to search for your computer using the model number you looked up.

    4. From there, find the BIOS update file for your computer. If it's the same version as what you already have installed, you're already up-to-date and you can stop. Otherwise download it. If it comes as a .zip file, open it and extract the .exe file from it that's used to do the actual BIOS update.

  3. Get a USB flash drive that you don't mind erasing. If necessary, copy everything off of it first.

  4. Now, we'll use GParted to erase your flash drive to prepare it:
    1. Install GParted
      sudo apt-get install gparted

    2. Open GParted. If nothing happens, try opening it by typing this into the terminal:
      sudo gparted &

    3. On the upper-right side of the screen, select your flash drive. In the Mount Point column, it should have something starting with /media. Be very careful that you choose the correct drive in this step! If you don't, you could wipe your whole hard drive and lose everything. If you're unsure, you should probably ask for help. askubuntu.com is a great place to get help.

    4. Right-click on any partitions, and click Unmount. Then right-click them again and click Delete.

    5. Right click in the large box at the top that says unallocated and click New.

    6. Change File system to fat16 and click Add.

    7. At the top, click the green checkmark to apply all operations, then click Apply. Remember, this will fully wipe your USB drive!

    8. When it's finished, click Close and exit GParted.

  5. Next, we'll use UNetbootin to make the USB drive bootable:
    1. Before you'll be able to use UNetbootin, open the file explorer, right-click on the USB drive, and click Mount.

    2. Install the latest version of UNetbootin
      sudo add-apt-repository ppa:gezakovacs/ppa
      sudo apt-get update
      sudo apt-get install unetbootin

    3. Open UNetbootin

    4. For Distribution, select FreeDOS

    5. At the bottom, make sure Type is USB Drive

    6. Click OK

    7. When it's finished, click Exit

  6. Go to your USB drive in the file manager and copy the BIOS update .exe file that you downloaded earlier.

  7. Now, you'll need to figure out how to boot to the USB drive. Normally this is done by pressing a special key at the boot screen (the first screen that comes up when you turn your computer on) to open a boot menu. Common keys are: Esc, F1, F2, F10, Enter. You may have to press Esc first to then see which key you need to press. If all else fails, Google it :)

  8. Once you've figured out how to boot to the USB drive, with the USB drive still plugged in, reboot your computer, and boot from your USB boot drive.

  9. At the UNetbootin menu, press Enter

  10. At the FreeDOS boot menu, select FreeDOS Safe Mode and press Enter

  11. Now change to the C drive by typing:
    c:

  12. Get the name of the .exe file you copied by typing:
    dir

  13. You should see a list of files, and one should have EXE in the second column. Flash your BIOS by typing the name of that file that's listed in the first column. For example:
    BIOS_V~1

  14. Once it's finished, turn off your computer, remove the USB drive, and turn it back on.

  15. Get the version of your BIOS again, and this time it should show the new BIOS version:
    sudo dmidecode -s bios-version

Tuesday, October 22, 2013

Using WebEx desktop sharing on Ubuntu 64-bit


Edit: for the most up-to-date solution, see my answer here: http://askubuntu.com/a/363400/18665

Solution:

After much trial and error, I was able to get WebEx desktop sharing working in 64-bit Ubuntu just by installing a few packages (I confirmed this works on Ubuntu 14.04 and 12.04, but I imagine it would work on other versions as well):

  1. Remove unnecessary packages that cause conflicts:
    sudo apt-get -y remove icedtea-7-plugin:i386 icedtea-netx:i386

  2. Install 32-bit Java, a necessary 32-bit library, the Java plugin, and Firefox (WebEx doesn't support Google Chrome on Linux at the moment):
    sudo apt-get install openjdk-7-jre:i386 libxmu6:i386 icedtea-7-plugin firefox

  3. Make sure the correct Java plugin is configured:
    sudo update-alternatives --auto mozilla-javaplugin.so

    If for some reason that doesn't do the trick, you can try this instead:
    sudo update-alternatives --set mozilla-javaplugin.so /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so
Close and re-open Firefox, and WebEx desktop sharing should work.

Details:

Technically WebEx requires 32-bit Java running on 32-bit Firefox for desktop sharing to work on Linux (http://support.webex.com/support/system-requirements.html‎). But for some reason the above method worked, although it does throw errors (if you open Firefox from the command line). If for some reason there are problems with the above method, you can try installing 32-bit versions of Firefox and the Java plugin. Here are a couple of different methods:

If you're like me and primarily use Google Chrome, the easiest thing to do is to just install 32-bit Firefox and the 32-bit Java plugin from the Ubuntu repositories (note that this will remove the 64-bit version of Firefox that comes with Ubuntu 64-bit):

  1. Install the 32-bit versions of Firefox and the Java plugin (and an additional necessary library):
    sudo apt-get install firefox:i386 icedtea-7-plugin:i386 libxmu6:i386

  2. Change the default Firefox plugin to the 32-bit one:
    sudo update-alternatives --set mozilla-javaplugin.so /usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386/IcedTeaPlugin.so
Even if Firefox is your primary browser, you probably won't notice a difference in using the 32-bit version of Firefox. But if you really do care, here's how to install 32-bit Firefox without uninstalling 64-bit Firefox:

  1. Install the 32-bit Java browser plugin and an additional necessary library:
    sudo apt-get install icedtea-7-plugin:i386 libxmu6:i386

  2. Download 32-bit Firefox (the default downloads are currently 32-bit)
    http://www.mozilla.org/firefox/

  3. Extract the download
    tar xvf firefox-X.X.tar.bz2

  4. Make sure the binary is 32-bit
    file firefox/firefox

    It should say something like:
    firefox/firefox: ELF 32-bit LSB executable

  5. Change the default Firefox plugin to the 32-bit one (don't worry, we'll fix this so you can still use the Java plugin in your 64-bit Firefox):
    sudo update-alternatives --set mozilla-javaplugin.so /usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386/IcedTeaPlugin.so

  6. Re-link the 64-bit plugin for 64-bit Firefox (adjust the path to your version of Java as necessary):
    cd /usr/lib/mozilla/plugins
    sudo ln -s /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so libjavaplugin.so.64

  7. Whenever you want to run the 32-bit Firefox for WebEx, cd to the path where you extracted it and run it (or create a link)
    cd /path/to/firefox
    ./firefox &

  8. To make sure it worked, in the address bar go to about:plugins and verify that the Path contains i386 (it should work if it also contains amd64, but only if i386 comes first. If not, double-check you did the above steps correctly).
One additional note: these solutions still seem to fail the Java plugin verification page, but even the 64-bit version seems to fail. I'm guessing it's missing a library, but whatever it is it wasn't necessary for me to get WebEx working.

Friday, September 20, 2013

The best podcast app for Android: AntennaPod


It's about time! I've been looking for a decent Android podcast app for a while. The only ones I've seen up to this point are either:
  • Free but really lousy
  • Decent but cost $7
But my search is finally over.

Say hello to AntennaPod. It has all you'd need and want in a podcast app, plus it has a nice, clean interface, no ads, and it's free. There really isn't much more to say. Check it out, and if you like it, send the developer a buck or two.

Here's what the interface looks like so you can see for yourself:

Enjoy!