This is a blog post for personal interest and probably not of much amusement to others.

My work machine has a fresh install of the (soon-to-be released) Debian version 7 (codename “Wheezy”). There are a couple of modifications I’ve had to make to the installed software to get things working as desired.

Firstly, I’ve read really good things about mu4e – the “maildir-utils for emacs” email client.  (Just for clarity, the author of maildir-utils has abbreviated its name to mu.)  mu4e provides an interface to your email in emacs which is fast and efficient.  I like things that are fast and efficient.

I installed debian’s standard mu and mu4e packages, but found that mu (the wheezy-based package) was not indexing all of my email. Firing up mu4e within emacs then trying to browse the ~/Maildir/INBOX – and being told there were no messages – raised some suspicions!  So I removed that package and installed from source instead and, now, indexing works much better.

how to do this

Basically, it’s pretty simple.  Just:

# apt-get remove mu4e

This will replace maildir-utils (0.9.8) and mu4e.  Then download the mu-0.9.9.5 source (list of mu releases) and follow compilation and installation instructions from its install page.

On Debian, this will result in you installing mu and mu4e to /usr/local/share instead of the default installation point, /usr/share.  To enable the use of /usr/local/share/emacs/site-packages/mu4e/ from within your standard emacs23 install, just create a symlink pointing to it from /usr/share/emacs/site-packages/ :

# ln -s /usr/local/share/emacs/site-packages/mu4e/ .

The software replacements are:

  •  with mu (0.9.9.5) from the  package

other modifications

(Edit) I also installed gnu tramp for Emacs from source, but the reasons why I originally did this now escape me, as tramp has been part of Emacs for a while.

unrelated issues

I have found a worrisome issue in wheezy.  When I attach an eSATA drive to my ThinkPad (T420) and copy lots of data – e.g. GBs of photos – to my ~/Pictures, I get some kind of kernel panic/X error.  I’m still investigating this at present.

I will attempt to keep this list updated as I continue getting this set-up just as I want it 🙂

[ EDIT 10 April 2012 10:00 ]

Grabbing the currently stable, newest kernel source (ver 3.8.6) and compiling it in the debian way has seemingly fixed this crashing/locking issue.

Let’s be clear:  I am a stubborn git.  I’m the first to admit it.  To the dismay or, perhaps, bemusement of my friends, I struggle with product concepts such as the iPhone, iTunes, Amazon Kindle, eBooks in general, Facebook and Skype.

My friends tell me it’s because I don’t like to conform with the “normal” things that everyone else does.  Things like broadcasting my whereabouts and the company I keep at all times in my life, wherever I am.  Apparently, disagreeing with the background, terms of service, patenting practices and Digital Restrictions Management (DRM) of various “social media” service providers is anti-social and rebellious. 

It’s a curious thing to be a digital pariah.

What my friends don’t understand is that I don’t restrict my opinions to Apple, Facebook Inc., Microsoft and Amazon.  It’s just that they’re the companies my friends use, so to relate to them I cite them as examples.  I feel exactly the same way towards some of Google’s services and products, although I do have slightly more faith in Google than any of the above named alternatives.  They do more good, in my opinion.  And, with Google, at least you have confidence in being able to delete anything you create.

My main objections to these services & products, then, are:

  • privacy: I do not wish to be “guilty by association” on any social network.  Being tagged without my permission, and/or the attempt of tagging me (whether I disallow or permit the tag – or ignore the attempt to tag) is not acceptable.  It is especially unacceptable when I have no faith that the service provider will protect my interests as a private individual and law-abiding citizen.  
  • security: anyone remember when the iPhone took pictures of its users without their knowledge?
  • product quality: I am not interested in any iDevice because of the standard of software engineering and product management.  I am also not interested due to the restrictive rules of the app store.
  • freedom and flexibility: smartphones are good if they are flexible.  If I buy any device with gigabytes of storage, I want to be able to use it for whatever purpose I choose.  And, I don’t want to use any device:
  • with a proprietary connector which requires an expensive proprietary cable to connect it to a computer;
  • which uses a proprietary, “secret” protocol that my chosen computer can’t connect to; 
  • that virtually prohibits me from putting my own digital content on the device, rather than that obtained through the device vendor’s sales channel;
  • that supports in any way the obscuring of content I have a right to, or in some way supports an ecosystem where the alteration, deletion or other control of content is deemed “acceptable” through the EULA;
  • that limits me!
  • On this last point, it worries me that Google Inc are appearing to adopt the Apple way of doing things on their Nexus devices – and in their cloud software.  Not being able to use additional data storage (no SD card in a phone, in this instance) means a greater reliance on the Google way of doing things.  Android software is becoming less flexible with regard to media storage (the camera app no longer lets you select the photo storage location, for example, although Android still supports external SD cards and will utilise media stored on it).
There is a greater trend also: that of the death of physical media and moving everything “into the cloud”.  There are a few fundamental problems with this:
  • Physical media can be shared and enjoyed by more than one person.  Sharing is not copying nor is it stealing.  If I am attending a family gathering – a party, say, then I am free to bring along a couple of CDs to play.  How can this simple act be replicated by cloud-only storage?  If we all use cloud-storage network devices at home, sharing a CD will become impossibly.  
  • One solution to this, touted by a friend, was to “bring along your iPod“.  Disregarding that I wouldn’t have an iPod, introducing this as a solution means I would have to ensure that my portable music player is up to date with all my music.  A solution to that is, of course, a cloud-based music service – iTunes and Google Play Music are two obvious contenders.  But there’s a further problem: connectivity.  Is a 3.5mm headphone plug to amp/speakers standard equipment in most households?  Unlikely.  So there my music stays, locked inside my device unable to be shared.
  • Books.  I can pick up a physical book, read it, share it.  I will probably get my book back if the borrower is respectful, thus I haven’t been denied it in the process of lending.  Can the same be said of eBooks?  Can one “lend” an eBook to a friend?  Perhaps.  More worryingly, though,, can it even be guaranteed that any digital eBook provider will not alter original material or remove any purchased books from my library?  Again, unlikely.
  • We begin to see, further and further, that DRM is abused by on-line content providers.  We are restricted in new ways that the old ways couldn’t (and shouldn’t) prevent.  It is troubling that access to information is price-controlled in this way; entire cultural values can and will be influenced by the (lack of) availability and slowly, surely, belief systems and perceptions of free thinking and free will may be curtailed, even ceasing to (legally) exist.   Hello, 2084. 
    This is why I will not lock my photo, book or audio content in any on-line silo.  I will always have off-line access to my copies of digital media and I encourage others to do this also.
    Does this make me a stubborn git? Or does this make me someone who is not prepared to endure extortionate business practices with items as important as art, literature and music…?

    Enhanced by Zemanta

    facebook engancha
    facebook engancha (Photo credit: Wikipedia)

    Oh dear.

    Many bloggers and commentors have read Mark Cuban‘s recent blog about Facebook‘s edgerank story sorting algorithm.  One could argue that at the level of Cuban’s business, small problems become big problems quickly.  But, on Facebook as in most walks of life, being “large” does have some advantages.

    One advantage is Facebook’s Page Insights.  Let’s take the smallest business.  In Facebook terms, it’s this:

    • a one person profile with no friends
    • one page owned/managed by that person with several likes
    If you want to build up a following quickly, you need to build up some Likes.  Be Liked.  Or, at least, look like you’re liked.  You probably get the idea.  This is marketing, after all.
    So, how about running a competition?  Provide an incentive for someone to come and “Like” you.  How about asking current customers (those who, presumably, like you anyway) to submit a review and hit “Like”.  Great.  
    Except it’s not great, really.  To use Facebook’s Page Insights, you need 30 Likes.  Yes, it’s not a tall ask, but why?  The problems with Facebook for small business start with this innocent enough little idiom.  No, there should not be a 30-Like threshold to see who Like’d you.  There should be 1.
    Facebook’s habit of making it hard to access and understand your own data, or data relating to you, stems from the misguided notion that building up more visible momentum in your brand’s page means you’re more like to find Facebook “sticky”, and consequently more important (vital, even) for the success of your on-line marketing.
    Does Google Analytics insist that you have over 30 visitors per month to your site before it can be bothered to report this back?  
    Enhanced by Zemanta

    I was recently asked to explain the difference between setting permissions on a directory to either 755 or 751.
    In 751 mode, a user who isn’t the owner and isn’t in the group assigned to that directory can still execute anything within that directory, provided they know the name of the executable file.  They are unable to browse the contents of that directory to find the name.  Therefore, 751 is inherently more secure than 755.

    The funky, geeky bit

    For reference, each number of 7 5 1 is an octal representation of the number of permission bits set on the file/folder.  There are 3 bits per field.  
    Taking the 7, from 751, this means all bits are set to 1.  This is how it works (think of it like a lookup table):
    meaning:     r   w   x    (read, write, execute)
    bit value:   4   2   1    (< - this is  the octal lookup bit)
    bit set to:  1   1   1    == 4 + 2 + 1 == 7.
    If you take the value 5, then this is how that’s set in the bit fields:
    bit set to:  1   0   1      == 4 + 0 + 1 == 5.
    Remember, there are three fields!  So each field – the “owner”, “group” and “others” fields – contains the sum of permission bits set for that field.  The “751” is actually a nice, easy way to see permissions.  The actual permissions set in a 751 situation are, in binary “nibbles”, 0111, 0101 and 0001. 

    Demo – try it yourself!

    As root, set up a test dir in /tmp/ called test, with 751 perms.  Then create a file within that called hello.sh which simply outputs “hello” on the command line when executed.  To achieve that, simply do this (as root, remember):

    # mkdir /tmp/test

    # touch /tmp/test/hello.sh

    # chmod +x /tmp/test/hello.sh

    Then edit /tmp/test/hello.sh and put these two lines in:
    #!/bin/sh

    echo Hello
    /tmp/test is owned by root (rwx / 7) , has the root group (r-x / 5) and the "world" just has execute (--x / 1).  When using your own user account, trying to do a ls /tmp/test - should tell you that permission was denied.  

    However, you should be able to do /tmp/test/hello.sh which outputs "Hello" as expected.  

    If you bump that world permission to r-x / 5, you would be able to see that file because ls has the necessary permission to read the directory contents.

    As a Debian user, you may choose to adopt the distro-managed rebuild of the world’s greatest web browser.  But, by doing so, you may not be able to use G+.  Don’t worry, the answer is at hand.

    Visit the Firefox add-on page for User Agent Switcher:

    https://addons.mozilla.org/en-US/firefox/addon/useragentswitcher/

    Install the add-on and restart your browser.

    Now, go to Tools > User Agent Switcher > User Agent Switcher > Options…

    Add a new User Agent, call it Firefox 11.

    Add the following text in the fields:

    • Description: Firefox 11
    • User Agent: Mozilla/5.0 (X11; Linux i686; rv:11.0) Gecko/20100101 Firefox/11.0
    • App Code Name: Mozilla
    • App Name: Netscape
    • App Version: 5.0 (X11
    • Platform: Linux i686

    If you’re running an amd64 build, plonk that in the Platform field instead (it’ll probably already be populated).

    Make sure there is no reference to Iceweasel in the User Agent field.

    Make sure this user agent is active, and then browse to Google+.

    Have fun! 🙂

    Minimalism & Debian

    Less is more, as the saying goes.

    While I love using Fedora in my daily work, sometimes when I want to relax I find using an alternative distribution is good therapy.  Fedora is fabulous with its GNOME Shell finery, but occasionally I hanker for something simpler and more lightweight.  It’s also good to see how the other half lives 🙂

    So, I decided to put Debian on my netbook.  With no GUI.  Everything I do on it must be by the command line, including web research.  Compared to Fedora, Debian‘s system requirements are practically non-existent, which is especially good if you want your system to still run nice and quick.

    First steps…

    1. Firstly, I had of course to grab the distribution.  I’m not over-fussed about running cutting edge stuff on this machine.  For me, the most important thing is a low-maintenance base where I don’ t need to think much about the distribution changing every 6 months.

      I visited the Debian Mirror List and grabbed a NetInst CD image.

    2. Next off, I plugged in the USB CD/DVD drive and installed the software, making sure I didn’t overwrite my XP partition.  Well, you need a reminder every so often how awful life used to be.. 😉
    3. I won’t go into the installation process here – there’s plenty of documentation elsewhere which covers that.  So, once installed, I really wanted to keep the installed software as trim as possible.  That is, with one or two exceptions…
       
    1. Firstly, I have tried and tried it again but I just can’t/don’t/won’t do vi, vim or anything similar.  It’s just not my bag.  It’s emacs for me.  I also want to keep my mail inside emacs, so it’s goodbye to mutt – even if it does suck less, apparently 😉
    2. Also, Exim4.  The servers I manage don’t use it (generally it’s Postfix or QMail) and I already have a tiny smattering of Sendmail knowledge – so I have no desire to pick up on this.  I’m sure it’s a fine MTA and undoubtedly there are many technical reasons why I should keep it on my netbook… but even so, no thanks.

      Therefore, my software changes are:

      $ sudo aptitude remove exim4 exim4-base exim4-config exim4-daemon-light vi mutt

      $ sudo aptitude install emacs w3m-el sendmail

  • So far so good.  However, I was still stuck with a chunky 80×25 character screen when booting up, which is real ugly.  Through much searching and grub configuration editing, I found that my answer was actually to install the intel video package.

    $ sudo aptitude install xserver-xorg-video-intel

    You’re on to a winner here, because Debian Squeeze is already set up for Kernel Mode Setting.  In other words, as soon as your system starts booting up, the video drivers get loaded and the optimal video mode is enabled (or, at least, that’s the intention).

    Whether or not it’s worth specifying screenmode in grub is open for debate.  FWIW, I put this in /etc/default/grub:

    GRUB_GFXMODE=1024x600
    GRUB_GFXPAYLOAD=1024x600x16

    … And in /etc/grub.d/40_custom:

    set gfxpayload=1024x600x16

    Then, I simply updated grub with the new config:

    $ sudo update-grub

    Please note that this step relates to my Intel-based netbook.  Yours may vary.

  • The only significant piece of the puzzle remaining was to get wireless sorted out and connect to my server:

    $ sudo aptitude install wireless-tools iw wpasupplicant autofs nfs-common

    ** PLEASE NOTE: this step assumes your wireless network device doesn’t require firmware or that you already have the firmware installed in /lib/firmware. **

    Once done, you need to uncomment the /net line in /etc/auto.master and restart autofs:

    $ service restart autofs

    If you want to refer to server by hostname and are not running a DNS server, add the hostname to /etc/hosts (somewhere below the localhost lines):

    111.222.333.444      myserver.mydomain.com  myserver

    At this point, assuming all went well, you can cd to /net/ in either the shell or a file manager such as nautilus (if running a GUI).

    So, this takes care of a basic local network configuration, but we still need to actually get connected to it on wifi.  So, there is, in my /etc/network/interfaces:

    # The loopback network interface
    auto lo
    iface lo inet loopback

    # The primary network interface
    allow-hotplug eth0
    iface eth0 inet dhcp

    # Wireless
    auto wlan0
    iface wlan_mynet inet dhcp
    wpa_ssid my-network-ssid
    wpa-psk  my-network-key

    Once done, save this file and change the permissions for extra security:

    $ sudo chmod 0600 /etc/network/interfaces

    – and connect up, like this:

    $ sudo ifup wlan0=wlan_mynet

  • Voila!  With luck, maybe a little patience, and possibly an extra step or two (which you can hopefully figure out, if needed) these are the key set up steps which will make your netbook/laptop nice and lean, and perhaps more fun to play with.

    Next time, I’ll go through a few tools I use for ‘net stuff.

    *Getting into Getting Things GNOME!*

    (Edit: this is an old draft, now published for testing purposes)

    This is the beginning of what I hope will become a multi-part journal of my adventure into contributing free software.  I thought I’d share my education, FWIW! 🙂

    Part 1: Read The Flipping Manual(s)!

    As a user of a great amount of free software, I often wondered what was involved in producing it.  I was aware of the basic process – or at least I thought, but not really much of the details.

    Here’s how I kinda reckoned the basic process works:

    My take on the basic process of Free/Open Source software projects

    1. Some people (usually one person) would start a project off, following their interest in some way.
    2. He/She would set up somewhere for software code to live (a repository) which would be available to anyone to download.  This, the source of the project’s code, would be what’s often referred to as “upstream”.  It’s where the goodness flows from.
    3. Other people interested in this software could also join up and contribute changes to the code.
    4. At some point, someone involved with a distributor/vendor like Red Hat or Debian would “notice” the project and be interested in packaging up the software.
    5. The upstream software would get duly packaged up and released into the distributor’s/vendor’s “downstream” repository.  Users could then install and use it at-will.

    This only really covers the basic of software creation though.  What about bugs?  Even the best software has the odd bug or two.  What happens then?

    There are two main places for bugs to be recorded:

    1. On a downstream bug reporting/management system.
    2. On an upstream bug reporting/management system.

    Typically, users of the distributor’s packaged version of the software will report bugs with it on the distributor’s (downstream) system.  Why not on the upstream one?  Mainly because a distro (distribution) will contain an older version of the software that may, upstream, now be fixed of that bug.

    When a distro user reports a bug, he/she is reporting against the distribution’s version of that software, not against that software in general.

    Doesn’t this create a duplication of bug reports?

    In a nutshell, yes.  But it’s better that the same bug is reported twice, than not at all.  Quite often duplicates relating to the same issue are recorded, even on the same system.  They are simply marked as such, with one bug record being the “master”, to which the others are link for reference.

    Getting involved upstream

    The project I chose to get involved with is Getting Things Gnome! – a Getting Things Done-inspired task manager application for the GNOME desktop.

    My motivations to get involved were:

    • I like the GTD methodology – it helps bring focus and organisation to my working day;
    • I want to learn how to program in Python – a well respected and widely utilised programming language;
    • I want to see the gtg tool develop so I can use it more effectively; and
    • I want to contribute something back to the free/open source software community.

     

    Expressing (and progressing) an interest

    The first thing to do was to express my interest with a project leader.  From doing this, I received very supportive and constructive emails relating to ways in which I could contribute which suited both the project and me.  (a hat-tip to Izidor Matušov for enormous support and coaching in the early days).

    Secondly, after receiving such great support, the thing I soon realised is that the responsibility to check things out really rests with me.  I want to be involved, so I should be the person reading the mailing list posts, reading related blog posts, reading the web site, reading the manual for hackers… You get the idea.  If you’re considering joining a software project, you need to read a lot to learn what it’s all about!

    Finally, be prepared.  Prepare your computer to work in the best way possible.  Prepare your mind to be opened up to learning new programming techniques.  And prepare your attitude – you will be rewarded and pleasantly surprised by the capability and maturity of others who are already contributing to the project.

    Getting involved in free/open source software is educating, inspiring, liberating and, most importantly … (I hope he doesn’t mind me stealing this line from his first email), “Don’t forget, hacking opensource should be about having fun!”

    And it is.

    So, from time to time (read: most of the time) when I’m working I listen to music.  More often than not, it’s electronic in one form or another.

    The point of this post is simply to list a few stations I like listening to, to build up my collection.  If it grows over time, I’ll probably divide into genres or something.

    Here’s a few to get started with.

    Radio Schizoid : http://78.46.73.237:8000/schizoid

    PsyRadio.fm : http://streamer.psyradio.org:8010/

    Chromanova : http://85.25.86.69:8000/

    Digitally Imported Goa-Psy Trance :

    After Hours – Trance : http://fr3.ah.fm:9000

    PsyMusic UK : http://www.psymusic.co.uk:8010/

    Bassdrive :

    It takes a long time to ditch those applications with which you’re intimately familiar.

    It starts, quite often, with your Office Suite.  No, I’m not talking about desk and chair, but rather Microsoft Office.  Excel is an excellent spreadsheet tool, there’s no doubt of that.  But quite often, people like to work differently to the prescribed “norm”, and Libre Office allows just that.  It’s not the only open source office suite, of course: there’s also KOffice, the Abiword/Gnumeric combiniation and so on.

    Recently I’ve ditched other proprietary applications which I have worked with for years.  Why?  Well, for one I believe that switching applications is good, because it challenges you to think differently.  You have to learn new ways of doing old things, and this can help you think of new, better things to do.

    Secondly, you get no love with proprietary applications.  Time and again, you pay your money and end up getting no support.  So, really, what is the point?  I’m not just talking about Microsoft, either; many proprietary software vendors are only able to make a profit by re-packaging open source software and selling access to it from within a proprietary system. Parallels, I’m thinking of you here.

    The only way to beat companies is to not buy their products. It’s this simple.  Here are the ways I have ditched proprietary software:

    • Operating System: was Microsoft Windows XP, is now Fedora (16, currently)
    • Email:  was Microsoft Outlook, is now Mozilla Thunderbird
    • Office: was Microsoft Office, is now Libre Office
    • Web Browser: was always Firefox 😉
    • ..the list goes on…