Tuesday, January 7, 2014

Avant Window Navigator Does Not Work on Fedora 20: why I'll look like I'm ignoring you on IRC.

Ever since Fedora 15, I've been using Avant Window Navigator (AWN) as a dock, to work-around GNOME's insistence that this functionality isn't required on a modern desktop environment.

This dock had the unique feature that if you receive an IRC Direct Message (DM) or name mention, it will make the dock icon for your IRC client (in my case, Pidgin) bounce and catch you attention. Considering how primitive the GNOME 3 notifications system is, this was the only truly reliable (an unobtrusive) way of working out whether someone was trying to talk to you. For me, the GNOME native notifications are intrusive and generally not that helpful. It is either "notifiy for all the things" or "nothing". Perhaps if you are using Empathy (the GNOME IRC client), things would be different.

I've been deliberately upgrading my fedora instance since Fedora 17, because I knew that AWN was no longer being developed. But sadly, a botched Fedora 20 "fedup" installation required me to start from scratch. :(

I knew there was a way to get AWN and its dependencies added back onto my system, because +Lucas Costi managed to get AWN onto his system when he joined Red Hat. So, off to the internet I went. I found a tutorial on YouTube that clearly explains what packages (last build of which was for Fedora 17) are required to make AWN function.

But, alas, changes in GNOME 3.10 renders the packages, and ultimately the solution described in the video redundant. The libdesktop-agnostic packages required here have a bug that renders them useless. Someone on Arch managed to patch it, but I'm not sure if it ever made it back upstream.

After following the process in the video, if you run avant-window-navigator from the command line, you'll see the following errors:

** (avant-window-navigator:2646): CRITICAL **: desktop_agnostic_config_schema_get_metadata_option: assertion 'self != NULL' failed
** (avant-window-navigator:2646): CRITICAL **: desktop_agnostic_config_schema_get_metadata_option: assertion 'self != NULL' failedSegmentation fault (core dumped)

Some searching on ArchLinux forums suggests there is something wrong with the *-agnostic packages. Someone on Arch managed to patch it, but I'm not sure if it ever made it back upstream.

I've come to the conclusion that the world is trying to ween me off AWN, so I'm "seeing other people".

I've been trying Docky and Cairo Dock but these two just don't have the level of notification prowess that AWN had. If I had to choose between the two, I would say Cairo Dock is the better of the two. 

What I'm missing the most is Cairo Dock bouncing the Pidgin icon for IRC mentions and DMs (both Cairo and Docky have poor functionality for DMs and I'm constantly missing them). It currently spins the icon as a cube, and I can't find a way to change the behavior of the icon. And it will only spin when I get a DM, not a mention.  There is a Pidgin extension for Cairo Dock, but from my experience it does nothing. There is no way in the preferences interface to control what happens when there is activity inside an app. This is what AWN did so well, because when the app triggered an internal notification call, AWN would interpret this as an activity and make the icon bounce. 

As a workaround, I've enabled guifications in Pidgin to display a message in the top right of the screen. It isn't a perfect solution as the message doesn't stay there until you open the IRC client. This is the best solution I've been able to come up with, in the 1.5 days I've invested trying to work out how to fix this problem.

So if you work with me, and are reading this, you now know why I'm not responding to your IRC messages. Seriously, if you need to get my attention about something, you will be better off pinging me on Hangouts. At least I'll get those notifications.  I'd even consider using my Nexus 7 2013 as my IRC client: the notifications are that bad on GNOME 3.10. But that would require me to connect the tablet to VPN so I can be on the work private network.

If you're reading this, and you have found a solution to getting AWN working in Fedora 20, I'd love to hear it.

Friday, October 11, 2013

RecordMyDesktop on Fedora: Configure Your Hardware and Session for Success!

I have started to do some recording of quick screencasts for a system I use at work, and I'm documenting my findings here so I can refer back to them when I need to do this work again.

I did create a screencast about a year ago about configuring Handbrake and RCD for Vimeo, but it is slightly out of date and I was not using a USB headset when describing processes in that video.

RecordMyDesktop (or RCD as it is commonly referred to) is great for capturing your screen and audio voice-over when you do app demos on fedora.

I've found that for reliability, short videos less than five minutes in duration are best. Longer videos can encounter issues with post-processing after your recording is finished. That is, your 30-minute screencast can be lost forever because the encoding fails!

Main Screen

Use Select Window to select the Web Browser window you want to capture (in the case of a Web App).

This automatically selects the full window, without having to mess around with trying to drag-select the window.

Performance Tab

Setting Frames Per Second to 10 is usually fine for most screencasts.

Encode on the Fly can sometimes be unstable.

Zero Compression makes for crisp videos.

Quick Subsampling should be left blank.

Full shots at every frame is a good choice for GNOME or other 3D compositing window managers. It does create a performance impact on slow PCs. Having said that most modern PCs can handle it fine.

Sound Tab

What most users have difficulty with is getting RCD to use USB Microphones (like those on USB Headsets) correctly.

Unless you have some fancy stereo mic setup, leave Channels as 1

Frequency for stereo is 44100khz, so for mono or one channel 22050 is the correct default.

Device should be set according to the HW address of your USB Headset/Mic

On fedora 19, the default sound server is ALSA. Therefore, to get a list of recording inputs, you plug in any USB mic/headsets and run:

arecord -l

which should give you output like this:

**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: CX20590 Analog [CX20590 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: LX3000 [Microsoft LifeChat LX-3000], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

In this case, the card 1 translates into hw:1,0 (that's hw:,).

Setting Up A Session

Open a new browser instance you'll use just for the screencast session. Remember that folks don't want to see your 30 tabbed browser window with all your YouTube and Soc Net accounts open. They are here for a professional demonstration. Therefore

Keep your screencasts to under five minutes. Three to five minutes is a perfect amount of time for someone to spend looking at a new feature. If you need to demo more than you can fit into five minutes, you need to consider chunking your demo into more digestible pieces. Ask yourself "Would I want to commit to watching a 30 minute soup-to-nuts demo on a product instead of a five-minute dessert".

Use a good-quality Mic. You'll eliminate much of the popping and other audio artifacts if you invest in a decent USB Headset or Mic. It is worth the investment if you are doing more than three screencasts.

Think about what you're going to say before you say it. The hallmark of a great screencast is a bit of pre-planning. Remember the PPPPP rule: Proper Planning Prevents Poor Performance.

30 takes is probably a bit excessive. Remember people want to hear the information you have to share, and don't really mind that much if you throw in a few ums and ahhs. Don't strive for perfection, because there will always be something you want to change about the screencast.

Wednesday, August 28, 2013

Upgrading the eMMC in a Transformer TF300T to dramatically improve responsiveness


The TF300T is suffering terribly from poor responsiveness when downloading or updating apps from google play, and loading large web pages. 


The on-board Embedded Multi-media Card (eMMC) on the Transformer range (affects the TF700 as well as the TF300T) is, well, a bit cheap and nasty. +ASUS decided to put an eMMC that suffers from bottlenecking when multiple read-write cycles are underway. This causes sluggishness when doing things such as updating apps and viewing huge web pages.


While you can't physically remove your eMMC from the tablet (it is soldered onto the main board), you can implement a clever modification that uses a fast SDHC card (Class 10 UHS-1) as a replacement to the eMMC. 

That's right. You can now effectively improve the smooth operation of your tablet *and* upgrade the capacity to 64GB. 

Awesome, right?


These instructions will help you get through the overarching steps required. Links to XDA forum posts are provided to assist you. You must read the links, then read them again so you understand what to do.

You will invalidate your factory warranty by following this procedure, but it is worth it IMHO.
  1. Unlock the bootloader, and install Team Win Recovery Project 2.5
  2. Purchase a *very* fast SDHC card (Class 10 UHS-1 is the minimum).
    Important Notes
    • This card will become your HDD inside your tablet. 
    • Everything on your eMMC card will also be on this card. 
    • Be sure you purchase a card suitable for your storage needs. 
    • You can choose to "upgrade" from the standard 32GB internal storage of the eMMC to 64GB internal storage at this point by purchasing a 64GB SDHC card (they are expensive).
  3. Follow the Data2SD configuration instructions to partition the SDHC card using a disk partitioning tool.
    This is easy on Linux with the program gparted, and is recommend in the tutorial.
  4. Download a ROM that offers a Data2SD Kernel, and Cache2SD.
    At the time of writing, I was using the Cromi-X 5.0 RC2 ROM, which  packages the Hunds Kernel with Data2SD support baked in. I can say with conviction that this is an excellent ROM for the TF300T.
    The full version of 5.0 should be out soon, but I can say the RC2 version is very stable.
  5. Install the ROM, and make the following selection from the AROMA installer:
    • Ensure you select the Data2SD Hunds kernel when selecting which kernel you want to install.
    • Enable Cache2SD for added performance when browsing.
  6. Restart the ROM, and check whether the SDHC card mirrors the files in the eMMC. If this is the case, Data2SD is working.

Wednesday, July 24, 2013

PowerA.com Moga Pro Controllers, and International drop-shipping using Virgin Intergalactic

I say Virgin Intergalactic, because PowerA must (MUST) be using distribution by spacecraft to expect customers to pay $64 in shipping for a $49 controller.

What, you say?

Yep, that is the quote for shipping I received today in my inbox. I will be honest and say I nearly spat out my coffee in fits of laughter, until I realised this company actually thinks that it's OK to charge customers that.

Just so you don't think I'm pulling your leg, here is the email (click to enlarge).

Naturally, I took it upon myself to suggest that this charge is a little bit ludicrous (click to enlarge):

As I said in my email, I'll be darkening EB Games' doorstep to place a pre-order for the Moga Pro for A$59. At $5.00 cheaper than the shipping alone from PowerA, you don't have to be a genius to choose local in this instance.

Tuesday, July 23, 2013

com.android.calendar vs com.google.android.calendar, and duplicated calendar notifications.

I have been receiving two identical calendar notifications on my TF300T. One with "quick response" features such as Snooze, and one without.

The duplication is caused by me installing the new Google Calendar app(https://play.google.com/store/apps/details?id=com.google.android.calendar) (blue and white app icon) alongside the Android Calendar app (green and white app icon) shipped with the TF300T firmware. Both have notifications turned on, so both ping me when a meeting is due.

To fix this, disable notifications in the Android Calendar application.

  1. Open Settings on your device.
  2. Tap Apps > Calendar (green and white one).
  3. Uncheck Show notifications.

You can also disable the app if your Android OS has not embedded this app as a key system app. Safer to just prevent notifications from showing in the short term.

Monday, June 3, 2013

Get off the device-centric music storage fence, and into the cloud storage pasture (or why Google Play Music rocks)

I've long been "that guy" that purchased mobile devices with external memory slots and huge internal drives so I could manually transfer as much of my extensive music collection onto my primary listening device. When I first started out in the Android world, that device was a Galaxy S2. I had to be selective about what music I transferred to the device (using +AirDroid for the most part, because the MTP restrictions sucked hard on Android). Then I had to be aware of ID3 tag issues, and album art, and access to the HTPC where all the music was stored. In short, it was a mission to transfer music onto the device, and the music I eventually transferred stayed on there for a long time, while other albums sat dormant in the PC's music drive.

Since purchasing an ASUS TF300T tablet about a year ago, I moved all my music over from the SGS2 to the tablet, and it became my music and entertainment hub. Admittedly, it wasn't that convenient if I wanted to go out for a walk and have some music with me, because who is going to lug a 10.1" tablet around with them (I'd look like Flava Flav, right). The SGS2 has switched from my primary device for everything, to just a phone. It now only has Wi-Fi activated when I want to sync some photos taken on it up to the +Google+ Photo Backup service or update some apps.

When Google Play Music was made available in Australia recently, I thought I should at least give the service a go based on the positive reviews I read about the service. Uploading 20,000 songs to the service seemed like a good start for my collection, but little did I know that my entire music collection was only 7000 songs small. I quickly realised that the offering was not 20,000 Mb, but 20,000 actual songs (regardless of how they were encoded).

After installing the Play Music Service on my Windows and Linux PCs (Apple has support as well) and uploading my music to the Google Servers, I have access to my entire 7000 song music library on my Phone, Tablet, and Computers.

I can purchase albums directly from Google Play and they are synchronized across all devices almost instantaneously.

If I purchase an album outside the Play Store on a service such as BandCamp, I can dump the album into the watched folder on any PC and it is available on all my devices in less than 10 minutes (or less time if my upload speed is fast).

The Play Music client on Android was pretty basic to start with, however with a recent update to the app on Android, the player had all the features implemented I was missing from +Poweramp Dev .

"Great" you say. "Why am I reading this blog post about a service that has been out for ages in the US and has had plenty of coverage in press already".

Well, if you are on the fence about the Google Play Music service, or cloud music services in general, these use-cases may encourage you to jump down from the pickets and into the cloud music pasture. These use-cases are a few I could think of based on problems I've directly experienced, or solutions to problems I've heard about from other people.

Use Case 1 - Use all the devices

Over the weekend, I had to rebuild the Windows PC. I wanted to use my tablet for entertainment while I hand-held the upgrade process, but also wanted to have access to music while doing this boring task. I didn't want to be wired to the speaker system with my tablet, as the headphone jack wasn't long enough to reach the couch.

Solution: Plug my SGS2 mobile phone into the speaker system and launch the Play Music app on that device. Sit back on the couch and enjoy G+, and Pinball Arcade from the comfort of the couch on the tablet.

Use Case 2 - Where there's a computer, there's your music

I'm sitting in a public space that doesn't have a Wi-Fi access point, or good 3G coverage and forgot to pin music (download for off-line play) to my device from Play Music. There's a PC that has internet access and a speaker system attached in the public space.

Solution: Log into the PC using your Google account. Boom! Instant access to your entire music library. Start enjoying music over the PC speakers instantly. 

Use Case 3 - Physical media is so 2005

I want a new CD album, but never get a chance to go to a music store and search through racks of CDs. And then I get the CD home and immediately chuck it in a storage crate after converting it to MP3s. What a waste of space.

Solution: Purchase your music directly from Google Play, and it is available instantly across all your devices. No CD rack required. If you are a little concerned about Google holding your "only copy" of the album, then fear not because you can download an album up to two times from the service (so you can add it to your physical storage at home). 

Use Case 4 - Keeping up with artist releases, and finding similar artists.

I want to keep up-to-date with my favourite artists but don't have the time to rummage through CD bins at my local music store.

Solution: A quick search of your favourite artist reveals all the albums they have for sale on Play Music, including the albums you have purchased or uploaded. You can instantly see gaps in your collection, and fill them instantly with an online album purchase. Legally. And with the preview track feature on the albums, you can always have a listen to the track to see if more recent albums by your favourite artist haven't gone all avant-garde and hipster and no longer interest you.

If you use Google Plus, you can also listen to albums in full when your G+ contacts share an album purchase in their stream. This is an interesting way of exposing yourself to new music.

Wednesday, May 15, 2013

Fedora 17 x86_64 Google Play Music Client Options Menu Not Opening


The Google Play Music client option menu does not open. 


When you click on the Google Play Music Manager icon in the notifications tray of Fedora 17 (GNOME 3), the Options screen does not open.


This issue seems to be caused by issues with the client when you first launched it on your PC. There seems to be some issues with database files stored in ~/.config/google-musicmanager


  1. Delete the ~/.config/google-musicmanager folder
  2. Remove the Google Music Manager program
    sudo yum remove google-musicmanager-beta
  3. Re-install the Google Music Manager program.
    Visit https://play.google.com/music/listen#/manager and download the correct version for your system architecture and operating system.
  4. Once installed, start the service by opening Activities > Google Music Manager
  5. You should be prompted to enter your Google ID. This verifies that the service has been started correctly the first time.
  6. Complete the setup wizard.
  7. Test to ensure music is uploading to the service by single-clicking on the Google Music Manager icon in the notifications tray, and see if there is a x of xx notification at the top of the context menu.

Additional Info

When I first installed this program on Fedora 17, it *did not* prompt me for account details. This is a tell-tale symptom that there are issues with the files in .config.

This solution was provided by the Google Support team, but is not well documented on their support site. I'm hoping this helps you out when/if you encounter the same issue.

Tuesday, April 23, 2013

Making a Standing Desk using a Shelving Rail System


You can make a standing desk out of shelving rails and brackets, and some MDF board. It really doesn't have to be expensive or difficult. I built mine for about $150, but that cost also included paint, and some tools I didn't have. See Basic Costs and Ancilliary Costs for further details.

Standing desk made out of shelving rail system, with a normal desk underneath it for those times you need a break. The 600mm deep shelf is used as the keyboard shelf, and the two 300mm deep shelves are used as the Monitor stands and an extra junk shelf.

Lessons learned

  • Measure twice, corroborate your measurements, drill once.
  • The internet can show you how to correctly mount shelves. 
    • Read procedures, even if you think you know how to erect shelving.
    • Don't be too proud to get all the facts before proceeding.
  • Wall studs are your friend. 
    • Measure these first. Your studs will determine how wide your shelves can be in some scenarios.
    • Don't even think about using heavy-duty plasterboard screws for this task. They really aren't strong enough.
    • This shelving is holding all your precious IT gear, not your collection of Lego models.
    • Studs or nothing.
  • Don't cheap out on tools. 
    • Get what you need and don't compromise
    • Beg, Borrow, (but don't steal - because stealing is bad m'kay).
  • Get your wood cut at your local big hardware shop. They usually do it for free, and unless you have a circular saw and a keen eye, you will get much better results having it done on a cutting station.

Basic Costs

  • Double-slot Upright Shelving Rail White 100cm x 2 = $14.50
  • Double-slot Bracket 320mm White x 6 = $29.40
    • Brackets of this size should have holes in the bottom to screw through. Ensure yours do.
  • MDF Standard 16mm 900 x 600mm Sheet x 2 = $18.00
    • One of these boards gets cut in half, so you get two 300mm shelves.
  • Box of 50 10g 50mm Wood Screws (you only need 8) = $9.90
Basic costs total $79.00 if you have the following Anciliary items: 
  • Stud detector
  • Decent spirit level, at least 60cm long
  • some undercoat and gloss paint
  • sample pot paint roller.
  • Nuts, bolts, and screws that can go through the shelf brackets to anchor the shelves into place.

Ancillary Costs

  • 60cm Aluminium Spirit Level - $15.00
  • 300g Hole Filler (hopefully *you* won't need this) - $4.50
  • Zinsser Bullseye 1-2-3 Primer Sealer Undercoat 1 litre (you only need about 500mls) - $21.90
    • Really, any cheap undercoat will do. This brand was the smallest and cheapest at the time.
  • 1L Pascal Trim W/based Gloss White Enamel (hard-wearing for desks) - $27.95
    • Any Enamel Gloss paint will be great. 
    • Gloss is easy to clean, and won't be susceptible to greasy finger marks.
  • Sample Pot Paint Roller with extra roller - $2.00(seriously worth it).
  • Drill, with a selection of drill bits
    • I had one of these. 
    • Borrow any tools in the ancillary list to save a bucket-load on the raw build cost.
Total for all these ancillaries total about $72.00

Vital Statistics

  • Shelving rails are spaced 450mm apart. 
    • For me, this was the distance between studs (the vertical strips of timber that hold a plasterboard wall in place). 
    • You will need to measure your stud distance before continuing. Don't stuff this up, otherwise that Hole Filler on the Ancillaries list will be in your hardware cart.
  • Shelves are 900mm long. 
    • This was the closest pre-cut MDF sheet I could find at Masters North Lakes.
  • If you want to convert your standing desk back to a seated desk, ensure you put the bottom of the shelving rails at a height that is equal to your current seated desk. You can see that in my picture.
  • I used thin nuts and bolts to secure the shelf bracket to the MDF. 
    • You can use wood screws if you like for the 300mm shelves.
    • I didn't want to risk it for the 600mm shelf, which can be subjected to some load if you lean on the table. There is 300mm of overhang resting on the shelf brackets. Bolts will ensure it doesn't go anywhere.
  • The original desk can be used for any number of things:
    • Put your drinks on there and keep them away from your IT gear.
    • Put admin stuff like filing trays, game figures, your collection of Start Wars Lego.
    • Use the original desk as a break desk when having a phone meeting, or +Google+ Hangouts 

Complimentary Benefits

Because I'm a tight arse, and didn't have enough money to purchase some tools, the cool people where I worked loaned me most tools I needed.

I took this one step further, and made a forum where staff can record what tools they are willing to loan to other staff members. So far, it seems to have had a slow response, but as time goes by I can see it as a great way to have an unofficial tool co-op for everyone to benefit from.

Could your office use a Tool Co-Op?

Thursday, April 4, 2013

[Fixed] Can't turn on Bluetooth after TF300T 4.2.1 OTA Update


After receiving the official ASUS Android 4.2.1 OTA update, it is not possible to turn on Bluetooth. The Bluetooth toggle in settings briefly flicks on and off. 


+ASUS accidentally shipped the update with incorrect file permissions set on /system/vendor/lib/libbt-vendor.so, which is the module that controls the Bluetooth stack. The owner file permissions should be set to read-write (this permission was not set by default), and the Group and Other permissions to read-only. 


You must have superuser installed on the tablet to implement this fix, because the libbtvendor.so file is in a protected part of the Android file system.

You can use a root-aware app such as Root Browser Lite to access the file path, and then apply the correct permissions. Or you can use a terminal emulator to access the protected part of the file system, and modify the settings.

All instructions are contained in this XDA forum post. Read the first two pages of the thread. The answers are contained within the first two pages for both the command line and Root Browser methods.  Implement the fix and you will have an operational Bluetooth stack again in minutes, providing you are already rooted. 

If you are not, I have written another blog post that can help you there.

For some reason, XDA posts are not that well indexed by google, so hopefully this blog post gets you closer to the information you need to make Bluetooth work again. The other option is to wait until ASUS release an OTA update with the permissions fixed.

Thursday, March 28, 2013

Remove Headphone and SD Card Notification from TF300T Notification Tray

The stock ROM from ASUS for the TF300T is generally really great.

But one *really* annoying thing is the fact that every time you insert your headphones, you get this persistent notification that fills up your notification tray.

The same goes for the SD Card.

There is unfortunately no way to remove these notifications for Stock ROM users. I tried flashing both of the update.zip files and cleared the Dalvik/Cache, with no effect. However if you like to run Custom ROMs, you can say goodbye to these annoying tray notifications:

To remove the Headphone Notification read this XDA Forum Post:


To remove the SD Card Notification, read this XDA Forum Post.


I installed the mod using the AROMA installer this user packaged from the original files in the above post.


Like I said, these files had no effect on the stock OTA 4.2.1 ROM shipped by ASUS. I wish they would work, but they don't at this stage.

Note that some custom ROMs have this feature baked-in, so check the changelog to see if the feature exists already.

And if you're reading this +ASUS , please remove these useless notifications from the Notifications tray for Stock ROM users.

Your users are not that stupid that they need to be told whether headphones are inserted. The same goes for the SD card. If they want to browse to it, then will open a file explorer and navigate to it.