Wednesday, December 19, 2012

Ubuntu drum roll - silence or be damned!

This post relates to Ubuntu 12.04 lts (Precise) and newer only.

There are plenty of forum posts and conflicting advice out there, but here is what works:

Commands to type:

cd /usr/share/sounds/ubuntu/stereo/
sudo mv system-ready.ogg system-ready.ogg.disabled

Shown as a screenshot here:

Now restart your computer, and check the login screen, no longer gives a drum roll.

Before the change - how did everything look (default):

Recap - describing what I did:

The drum roll when the greeter screen (lightdm) is first displayed, is the system file system-ready.ogg

That file system-ready.ogg is a symbolic link to the actual sound file dialog-question.ogg

By moving system-ready.ogg to new name system-ready.ogg.disabled,
the Ubuntu system is unable to find what it has looked for, and you get what you want - silence!

No more drum roll every time the Ubuntu login screen is displayed.

Previous versions of Ubuntu and Gnome:

Ubuntu 11 and earlier did have a more Graphical and user friendly way of disabling the login drum roll.

There are plenty of forum posts about that.

To clarify: Advice that works for 12.04 lts will be different to advice that works for Ubuntu 11 or Ubuntu 10

Tuesday, December 18, 2012

HP 655 Linux - part 1 - Ubuntu

HP 655 is an integrated laptop suitable for power (desktop) users and retro gaming

My 655 will be a triboot including Debian 7 (wheezy) and Ubuntu.

This post is part 1 of a series of posts about Ubuntu on the HP 655

Grainy display - resolution or driver?

One thing that folks jump for right after install, if they are planning on actively gaming, is to think about installing fglrx in place of the open source driver.

But wait!

1366x768 resolution was NOT SELECTED, and the default 1280x720 might go some way to explaining the graininess!

Just making this change (selecting 1366x768) seemed to improve things a whole lot.

( Remember to hit 'Keep this configuration' once you are happy with things )

In a later post I may experiment with enabling ATI own fglrx driver for this E2-1800 APU, but it is not strictly necessary for a laptop I use mainly for business.

Monday, November 12, 2012

Clone at revision - Git and Mercurial

This is possible in both Git and Mercurial, although one seems a bit more involved.

Git - clone THEN reset or checkout:

( full clone then: git reset --hard 754bda21cbc5c9044daf7f968fb9b4ffae39e334 )

Mercurial - just do it:

( hg clone -r 34dea6ddb0b927dc223c8cdbab4314a3aac355a7 )

In the screenshot above, I have cloned as described, and then removed the repo and done a full clone.
By doing this I hoped to illustrate the key difference in changeset counts:
  • 'clone at revision' gave 77 changesets with 99 changes to 83 files
  • full clone gave 79 changesets with 101 changes to 84 files
That should satisfy you that the 'clone at revision' really does what it suggests.

Next I give a signature style explanation of the 'clone at revision' command

hg clone -r <sha1> source_repo

Notes and Further Reading:

But, but, but with Git you can just create an empty git and then

git remote add origin
git fetch origin 754bda21cbc5c9044daf7f968fb9b4ffae39e334

Try it and you might just see the Git complaint...
  'fatal: reference is not a tree: 754bda21cbc5c9044daf7f968fb9b4ffae39e334'

Another nicety of Mercurial is that you can use shortened references (just the first 7 characters) and in most cases that will get you what you want.

Seven character abbreviation example:
  hg clone -r 34dea6d
( rather than the full 40 character reference used in the example above )

Note: Where you have a huge repository like say sagemath which has 100 active committers, then you might want to use the full 40 character reference to be sure of requesting the right revision

There is an excellent Mercurial Hints and Tips page at

See for current Sagemath repository.
Most contributions are currently handled by registered lists I think, but if you have taken the time to really understand the code, then there is place for pull requests also.

Sunday, October 14, 2012

Mercurial - Diff or Log?

You want to see a list of files that were changed in the last changeset?

Some people will say that is a diff, others would argue that purely listing the changed files is not a diff.

hg log -v -r e64f09773235

Grep loving sysadmins might also use:

hg diff -c e64f09773235 | fgrep 2012

But now I want to peek backwards in time to see what the file looked like before and after:

hg parents
hg cat wsgi/ -r 1

hg cat wsgi/ -r 0

hg diff is probably an easier way of seeing differences between files,
but I use hg cat here to illustrate its use.

Notes and repository for the examples:

Note that, at no point, did I alter the files on the local filesystem.
And the state of my local mercurial repository was never altered.

Essentially I am querying the history to get what I want.

Had I issued hg update 0 then I would have reverted my local state back to the first commit. Then I could directly inspect the file wsgi/

However the point of having a log is to support exactly this sort of querying without necessarily changing local state.

Based on what you find, you may then choose to change local state, but in the first instance you have querying tools that are non-disruptive, which is nice :)

Want to follow along and experiment?
Start by cloning the repository, and then follow my commands from the top of the article.

Cloning - use either of the command below:
  • hg clone
  • hg clone ssh://

Friday, June 22, 2012

Trash Emails having winmail.dat - non-standard 'Rich Text Format'

The Problem:

Microsoft only nonsense such as 'Rich Text Format' email container.

Not an Internet standard. Has no place in any modern mail program.

Rationale: For small and medium enterprises around 3/4 of the mail you send will be to external companies over the internet.

Those companies might be reading it on a Samsung Galaxy, Ipad, smartphone, or at their desks.

Internet standards for email exist and should be adhered to in order that your audience reach is maximised.

Hey I could fire up a ZX spectrum tomorrow and attempt to have it serve 1980s html to all website visitors. But I would be using a technology that did not maximize my audience reach.

Gmail filter - part 1:

Gmail filter - part 2:

This is all a bit radical - shouldn't we educate users?

Here are some links to help you do just that:
Note: 'Convert to HTML format' is what you might set.

Personally I prefer plain text for emails, but in the spirit of interoperability, and preserving features...

'Convert to HTML format' is the least departure from what the Sender originally intended.

If the sender originally intended plain text, then the whole winmail.dat thing would probably not happen anyway, provided the user is sufficiently competent with their email program.

Surely Microsoft themselves are aware of & are educating their own users?

Sorry for helpless.

If there was sufficient education from the vendor, then people like this would not have to seek help via web forums:

I use Aol 9.6 and Outlook 2010 on my compaq computer. Recently I cannot send email attachments from my Aol or Outlook 2010 to certain recipients...

Internet email standards - where can I look them up?

RFC 5322 specifies the standard for Internet email.
( RFC 5321 is worth a read also. )

There have been more recent standards efforts and here is Wikipedia for further reading:

Saturday, April 21, 2012

android - be discerning at the lower end (part 3)

For the past 2 years, I have been following the specification / price combination of android tablets.

In particular the £150 -> £200 price range, which will compete with netbooks in your purchasing choice.

In part 1 of this series I defined a set of specs to reach for:
  • 3D Graphics support (OpenGL ES)
  • 512MB ram
  • SD card slot (or microSD at a push)
  • Android 2.3 or later (includes WebM support)
( For the observant who followed closely part1, part2, and now part3, you will notice that I have increased the ram requirement to 512MB from 256MB, and Android 2.3 rather than 2.1 - reason is progress, specs that low are really being phased out now )

Sub £200 dual core ....

This tablet in fact exceeds what I was expecting when I started this series back in February 2011. The Dual Core Omap 4 processor is leagues ahead of what tablets included 14 months ago.

Not only that, but the progress in user features from Android 2 to Android 3.2 is significant.

Specification in full:

Revisiting the specs - a new set going forward:

  • 3D Graphics support (OpenGL ES)
  • Dual Core processor
  • 768MB ram
  • SD card slot (or microSD at a push)
  • USB slot (or standard micro/mini okay)
  • Android 4.0 or later
  • Support for Google Play / Official Android Market
  • Resolution 1024x768 for 8" or 9" tablet, 1280x800* for 10" screen
*Sub £200 tablets are not (by design) aimed at replacing your school projector, If you really feel you need to use the playback from a tablet to drive an external screen, then this series of reviews if probably not written with your needs in mind.

Anyone who suggests that a tablet (where no external screen is connected) would require resolutions higher than I have stated, is probably being driven by tick lists from hardware companies.

My 15" laptop runs 1440x900 resolution, and I have never yet been dissatisfied with the resolution level / clearness of it's rendering.

In summary, a year and a half is a massive period in terms of tablet specification, so much so that I have expanded my original list (to weed out more tablets), and upped key metrics.

I expect it will be February 2013 or later before £200 will buy you a tablet that meets my new criteria above, but the IT industry is full of surprises ;)

Friday, April 6, 2012

My hobbyist game made me no money on app store

Every few months, there is a post along these lines.
I made a game and nobody bought it
I made a great app and nobody paid my £5 asking price.
Sometimes these "made no money" posts are used in a warfare sense to attack a rival app store. There are at least three app stores, and they have their followers.

Pricing is everything - this is a business after all:

Pricing is everything. If it is a buyers market (Android and Iphone are now certainly stacked that way) then price low, ADVERTISE*, and aim for bulk.

Advertise and Engage:

First timers forget this is a business$, and that means spending time thinking about price sensitivity AND using Marketing strategies.

A simple listing in an app store is not going to get you to the customer on it's own.

*by Advertise I do not mean spam the crap out of everyone, I mean spend some money and do it properly, you know like the folks you expect to spend on your product are expected to do.

All app creators are not necessarily good in business:

Build Game + No advertising / sales strategy is fine if you intend the thing as a hobby, rather than a business venture.

"I listed it on the app store" is not a sales strategy.

That was probably okay for the first 10,000 app creators but it just will not work today.

The 70p test: 

I'm sticking my neck out here a bit, but here goes. Is your game / app priced at more than 70p?

Well it better be some or all of the following:
  • Extremely original and difficult for a competitor to clone/copy quickly
  • delivered by time machine into the year 2010
  • Part of a suite which makes it more valuable / benefits from cross selling
  • Reliable, with great reviews, written by a known developer group/company that has great reputation.  
But at 70p a pop I make no money? Well at that price, you shift 10,000 units and receive £4,900 after the 30% app store tithe is taken off.

If you need more than £5,000 return, then you need to shift more units - say 15,000 or 20,000 by using better advertising / reach.

Market Research:

$You didn't do any? Well it probably is not a business, but a hobby instead.

Be honest, did you are a colleague at least count the entries on an app store that might be doing something similar already?

In the case of Games, there are hundreds of competitors already.

Made a great shoot em up? Treat it as a hobby and give it away as free and open source, taking some pride in the great software you created.


Go see the bank, borrow what you need for a solid advertising and social media strategy (£700?) and set that aside so it is not used for buying coffee and pizza.

Distribution and Independent Game Developers:

There is a project called Humble Bundle.

Rather than go explain the difficulties Independent game developers face in finding their market, I should just ask the question...

Why does Humble Bundle exist and what does it do?