Disruptively sincere

Rants in a box.

Go Modal, Go Simple (& Fast)

From confronting VI to a simplified computer life – or how drastically my usage of computers has changed in little over a year

I’ve never considered myself a tweaker or tinkerer, speaking about computers. Sure, I like to configure things to my liking and go through all the settings but not often for visual enhancements. However, time has proven me wrong. As you we’ll see farther down, I ended up changing and configuring most things configurablein an OS, almost from scratch but not for the reasons I suspected.

How it all started: the Vim love story

A year ago, I found myself looking for a good, a real text editor. I was bored of xcode (hadalready given up visual studio built-in editor) and wanted an opensource alternative, and a multi-purpose one (one to write everything from). And only 2 came to my mind! the BIG ones:

  • Emacs
  • Vim

And thus, I fired up a terminal emulator and gave them a try (both come preinstalled in Mac OS X). 10 min each, the real basics, nothing more: how to write, save and exit a text file.

Emacs looked nice, coming from Richard M. Stallman I wasn’t expecting less (I should say felt, because the looks of a console-based text editor is generally nothing more than the text you are editing), but it was that oldy thing called bI that blew my mind with modes! I got caught by that simplicity which lies beneath the modal design; the fact that you talk to a text editor with verbs and nouns (mandates and objects). Despite “VI VI VI being the editor of the devil” I felt desperately attracted to it.

Since then, Vim has replaced nano as my de facto console editor for small config-files editions and textedit to write simple txt files (’cause yes, I write my to-do lists in txt (their just so easy to share, via sftp, rsync (over ssh for the cypher-enthusiasts), git or so many more) and even some large texts I keep to myself (or not so much as the introduction to an interactive shell I wrote for some friends at university, that i’ll probably publish, though it is more a collection of commands than a real tutorial)) – because I dislike Microsoft word and open office seems over-kill (and it drives resources away from what monopolises my computer: firefox (or should I say “oh how much I hate you” flash)) – when no printing is required (ok, i’ll probably end up writing latex xml from vim and output it to pdf to print docs! but I just haven’t found the right time to start learning it).

I should always remember that before that I had already encountered VI (yes, VI and not vim) while configuring some installs, when it was the only accessible editor (maybe nano too). I was lost back then, I barely knew how to enter interactive mode and always ditched it in favour of nano!

Back to the topic (sorry for that helly amount of digressions, caused by writing directly my thoughts instead of planning the post – which I always intend to do except when I feel I need to get something out (to you and out of my mind) as quick as possible). Vim now drives my computing! I fell in love with its simple design (vi’s but today vim is just the editor hat follows it). I don’t only mean going modal as much as I can (I should need to try vim zsh/bash modes and vimperator-like plug-ins for everything – firefox, but I also want one for RSSOwl, and Thunderbird if it was my mail client) but the fact that a good use of Vim forces you to stop from time to time to look back at what actions you are doing inefficiently (the ones I get bored, repeating over and over) and write (or catch) plug-ins to replace them.

The time where I see repetitions in every task I do

Get rid of GUI annoyances

All of this is why I moved from using the gui to open an app (menus and icons), to using spotlight,dash,or any text driven launcher, to key combinations! I don’t mean launchers aren’t needed, just that for the 10-15 most used apps I’d rather have key-combinations than: 1.”launching the launcher” 2.typing the app first letters and 3.pressing enter. For more rarely used apps the launcher is great.

Using a gui to look up apps I use even less, that I shouldn’t do; if I open the app that rarely it probably means I don’t need that app and thus shouldn’t even be installed!

The same goes for window management! a full fledged gui is great (i’m a huge KDE fan!) but resizing windows is a very tiring task. I first looked for key-combos to switch between commonly used sizes (full screen, halves, quarters) and ended up shift-it and then spectacles on mac os x (spectacles is just the way to go for that, easier to install and configure, with just the desired options).

That was great… until I wanted to resize the windows to different proportions. It still required to use the mouse and waste and awful lot of time. And now you already know (for those who use them) where I was headed! directly into the awesomeness (don’t get me wrong, awesome wm is not the one I chose – haven’t tried that one) of tiling wms! (Xmonad and dwm are the ones that cought my eye, for their simplicity – in their design)).

I still love KDE, and use it on the desktop (don’t really use it often yet, cause it is slow, slower than my everyday, almost 3 years old laptop – that I will probably rock for way longer if I switch to an SSD and upgrade RAM and OS – i’ll move to an everyday linux install (would go freebsd or even openbsd (which I know almost nothing about it) but wireless drivers forbid me to do so). I would use KDE even more if I could get Xmonad or dwm to run on top of it, like the ‘blu-something’ project that I think got merged back with Xmonad that ran on top of gnome2; right that’s a few years old, cause gnome2… ok, not that crazy old, the latter still is in Debian stable repos!

Automate, automate, and keep automating

Next step in simplifying every day computing scared me at first: scripting to “automate” (not thinking of cron jobs here, just shell scripts, but that is the following step I haven’t reached yet) every-day tasks

The first one that I decided to do is to toggle wifI (and easily as a consequence of it, ethernet) connection.

This is the easiest way I thought to achieve that goal (understand en1 or wlan0 depending on your platform or should I rather say kernel – because kfreebsd Debian or Gentoo have a special place in my heart – though I feel they’ll end up each in a separate jail, ruled by freebsd :P) :

#! bin/sh
if [ -n echo $(ifconfig en1 | grep inactive -o) ]
then
    ifconfig en1 down
else
    ifconfig en1 up
fi

But this has a problem: it requires root privileges and i’m not really into running as root 24/7. So these scripts are left for my Kali linux vm (now than we can tweak my Bactrack without having to care about repeating everything with every R iteration – I hope ‘aptitude dist-upgrade’ will work without breaking anything when times come). I tried to chown the script to root and chmod 711 (the latter for security purposes… I don’t want any one being able to modify a script to be run by root) but as many of you probably already know, this doesn’t work either.

Two workarounds comes to my mind (although I haven’t tried any), toggling kernel modules instead of putting the interface down (would be wl module for me… the Broadcom one that drive nuts and forbids me to jump straight into FreeBSD with Debian and Gentoo jails to play all day long with the software repos). The alternative would be to build a root job that waits for a file to change or any other input allowed to normal users. That root script would then toggle the WifI interface. The kernel module solution has a big advantage, it can be used for so many different things that are not stoppable otherwise: RS323, keyboard backlight? (maybe not that one as it comes with special keys, screen backlight and some more utilities…) cd/dvd player to reduce battery consumption…

Of course, the objective of any of those type of scripts is to be run with a key-combination (maybe Control-Super-W for Wifi), or at least an alias (for the ones not used so often or dangerous ones).

Talking danger now. Some tasks should remain painful to prevent a bigger damage (please don’t get me wrong, i’m talking computers only here). Here’s an example.

I don’t know the way you use to shutdown (gui doesn’t count, we’re in a light window manager set-up now (ideally a tiling one) not a desktop environment), I like: sudo shutdown -h now (I use this command for 2 reasons, I can’t bother remembering halt or poweroff (even if I already know them) because you can do so much more with shutdown! such as adding some delay by changing ‘now’ to ‘+10′ for 10 min, or going to sleep or rebooting instead of halting with -s and -r respectively; and I (you may call be what ever you want for that as long as it is stupid, for that) don’t really know the difference between halting and poweroffing (I imagine shutdown does halting the good way because it is multipurpose, although I could be wrong)). You got my way of thinking, sudo shutdown -h now this is too long to type. But even if I shut down my computer daily (I do it weekly… sometimes) assigning a key combo is too dangerous for me. I don’t want to risk turning off the computer because I mistyped some capital letter.

In this case, I give aliases some love. I could use, ‘bye’, ‘byebye’, ‘goodnight’ or even ‘sleepwell’ (though I think those too feel nicer for -s version).

Some repetitive tasks that play better with aliases than keyboard shortcuts

An obvious one: updating your machine. Running:

# sudo aptitude update
# sudo aptitude safeupgrade

for those running debian or descendants (apt-get is a good way to do this too, just don’t come near me with a yum update – just joking, nothing against you Fedora, Red Hat, Mandrake, Mandriva guys – maybe it’s just envy I feel)

# emerge --sync
# emerge --update --ask world

both ways are too long and soon get boring. A simple alias and all of this is done in a breeze (maybe: rotfl or updateyourselgdumbass (ok, maybe not, that’s again too long, I don’t want to end up aliasing that for something else, though that would be funny especially with friends that tend to shouldersurf too much) or ‘uptodate)

A last one for pleasure

This is the last key-combo (because it deserves one,(and an aliases for some options too)) and I haven’t written it yet (but I know it is easily doable).

To get you in perspective, imagine yourself in a freshly cooked linux box, (still no gui, frame-buffer only or a light window manager). what is the most shocking thing you face when you just landed there from a desktop environment? there is no automated mounting of inserted drives (I don’t discriminate between usb flash-drives, SD or other cards or even hard-drives with usb-enclosures nor between file systems; which one do you like? still old and maybe not that classy fat, NTFS, hfs(+), any ext flavour or some good looking weirdos (at least in this situation – haven’t found a single external drive in any of those file systems) such as ZFS or Btrfs?)

So what should we do ? (I’m going through this right now :–( ). Write a script to auto-mount a fat drive in a given usb port (maybe it will work recursively for all ports, won’t know until I try to write it) and launch it with an alias. Then what if your drive is not fat? add with a few simple arguments to that script! mountme hfs or mountme ntfs. If you, like me and don’t know enough sh scripting to use arguments (or for simplicity), just create separate scripts and substitute the white space with an underscore mountme_zfs or just remove it mountmeext4.

Starting with these seems like good idea, you’ll have time later on to figure which ones you use the most and add shortcuts.

If we end up needing to specify the usb port it won’t be much more difficult: mountme1fat (I would use mountmeX for fat as it is still the most common… :-S or for exfat if you have switched already your flash-drives to that one). the same goes for keyboard shortcuts, adding a 1 or a 2 to a shortcut is a bit painful but I think it is worth not having to type even a short command.

and this was, and still is (will always be, because more things can be simplified), my way to laziness!

It requires a lot a work at first and some commitment but it is very quickly rewarding, so much more when you come back to your computer after a trip to a default gui (such as a university windows box, or a friends’, or a family KDE/gnome/unity box that needed local or remote maintenance (remote is the worse, so painful… especially with a low upload-speed connection)). At least I don’t have go through this again! I just need to keep my dot-files in a safe place forever… (this sentence reads code control ;–) )

PS: as you might have guessed, Debian is my way to go when I feel lazy on linux and need a rock solid packet manager (haven’t lived enough on rpm side of life, except a few weeks to manage my mother’s laptop until I reinstalled an Ubuntu LTS on it because I couldn’t go along with Meego –mainly for the lack of support, ok, maybe I also thought that atom chip could fly a bit higher, even with unity); and I turn to gentoo when I wan’t to all crazy about source (haven’t tried any sorcerer descended distro, (either lunar, which feels a farther descent because it looks more machiny and not so much fairy) with their (I must say it kinda attracts me a little beside sounding a bit foolish) magic casting way to compile. haven’t tried CRUX despite liking the whole idea behind it –remember my affinity to Beasty– though I like so much Gentoo’s USEFLAGS I don’t feel I will ever try to jump to CRUX, not even for a 2 day trial– who knows). Between Gentoo and Funtoo, can’t say. I should try them both for longer but for now I can keep rsync for a while (git is good too, but hey, not yet worth switching).

PS 2: I hope my writing was funny enough (maybe it isn’t at all, and i’m all wrong about my way of blogging) to keep you reading till the end! congratulations if you did! you deserve a price, but I don’t have enough energy reaming to think about one.

PS 3: I just realised I never mentioned how to make key-combos for scripts, but this you will naturally discover while configuring a tiling wm and every one is different. for dwm and Xmonad it comes down to editing the header file and recompiling the binary (sounds awful at first but you can do it with a keyboard shortcut by default in the last releases of Xmonad – or maybe you just don’t need to recompile everything any more, I sincerely don’t remember). In Mac OS X, use Automator services to start shell scripts with a keyboard shortcut that you can assign later from the keyboard configuration panel.

yes, this is slightly meant to be an ever alive-post, making inserts with new tricks and whistles when I come across them.

The 2014 F1

UPDATE 2014: FIA made a different decision, F1 cars now use turbo-charged V6 1.6l engines.

What can f1 turn to be with the smallest engines in decades, a 1.6l, 4 cilinder turbocharged gasoline heart

The FIA is still deciding the F1 rules for next year; so don’t blame me if 2014 rules change from the ones proposed some time ago, they’re just that a proposition to be negociated and confirmed.

The biggest change it would bring to the cars is none other than the engine. Instead of the 2.4l V8 NA engines of today — limited at 18 000 rpm — (or the 3.0l V10 before 2009), we will see inline 4 cylinder 1.6l engines limited at 12 000 rpm (and this part has already been confirmed). The good news to keep up with track times (well, not be horribly slower from one year to another) is turbochargers are legal again!

What does that mean to us? whatching F1 from the outside. Well, a lot more than we might initially think.

First of all it makes it a lot more difficult for drivers to control cars, especially the lower end ones. Turbos mean turbo lag is back! A nightmare for unexperienced drivers. But of today’s pilots how many have driven turbo-charged cars before? not many. Most of them come from karting, gp2 and gp3. Good drivers could reveal themselves and show off their real skills. It also means more pressure inside the engine. And the new 1.6l engines will be lighter and weaker than your average car engine of the same size. Aggresive drivers should take care of not overrevving the new motors because it could turn to be decisive for the championship.

New engines also means new opportunities. What about kers driven electric compressors (such as the one Mazda is likely to incorporate in they’re new car, a new version of their rotary engine powerred sports car (the rx7) that could be designated as rx9)! It could work as an electric antilag system to make the kers button usable under 80km/h or as a presure boost for high revs (this would be very helpful if small turbos are used, which would reduce lag and make cars more predictable and easier to drive).

Those compressors (the electric ones) bring back a problem: a rule forbids engines which do not move directly the wheels, propelling the car (the rule was created to prevent vacuum engines under the cars used to generate high downforce even at low speed tight corners)

I will keep you up to date with this, if I get a chance to read those rules I try to figure out if those electric compressors would be legal; but again, rules might change until 2014.

Image by jiteshjagadish under a CC BY license

Is a Blog Post Journalism?

Objectivity, Subjectivity or Sincerity

As I already told you, I wish to write to you, or even talk to you. Whenever I hear the word journalism I think about newspapers but from today I will also think about this blog.Yes, I believe it is journalism, in the more intimate form it can have.I can’t imagine this as a novel, nor an essay. And this is why I like the possibilities that the web platform offers: you can answer me or ask me different questions through the comments, or even send mail. But what is the goal of written press? I honestly can’t think of anything else other to tell you what is going on around the world.

With information comes another topic: objectivity. Objectivity in press, is a goal I will not achieve, but not only because of this way of publishing. From the moment I choose those single words and no others I feel I’m being subjective and this is why I won’t try not to be. I don’t think I will ever be able to erase myself from my writings.

And for this reason I decided to change it for sincerity! I’ll sincere to you and explain my thoughts without willing to convince you. Only to tell you how I think and see.

I like to see it as the difference between two classic types of advertising (if we can call such a thing “classic”). They we’re traditionally separated into two categories, informative and persuasive (I won’t count subliminal as a type – being rude it would rather fit into a brainwashing technique). Today the frontier between those two is disappearing as most adds are mixing both strategies. However I like to see my blog an informative add shouting: “this is who I am, like it or not, I won’t judge you”

PD: by the way, I am one of those who think blogs will be the main form of journalism in a few years (leaving press sites at the same position as just another form of publishing); this could be the subject of another post…

Image from angelicagaskell under a CC BY license.

What Makes Up Writing

The act of telling to the world by means of written words felt oddly wrong to me until quite recently

I never thought until last week that i could end up building up a blog, and even less that i would be the one to write the posts.

Several friends of mine write regularly on personal blogs, some others even tried to build a professional journalist one. One of them involved a least 3 people and had several additional writers posting from time to time. A real enterprise grew behind it.

Despite all of that, writing never caught me, it didn’t appealed to me.

However, a few days from now, from the moment i write this few lines, i suddenly got the feeling i could speak to you: unknown reader from the other side of the network. It was like i knew expressing those thoughts was somehow useful; though i still don’t know how it will, i trust it is going to happen. And this is why i’ve been thinking about what’s makes a up a blog.

* a web site
* a feed (RSS, Atom…)
* a writer
* some posts

and the most important thing i wasn’t going to forget: YOU

* some readers

That’s one the main points of writing, beeing read! And it is why i can only say one more thing to end up this post: ENJOY YOUR READING

PS: try out a feed reader of any kind, it will make will make easier and more enjoyable!

Image by rakka_pl under CC BY license