Archive for the ‘Uncategorized’ Category

What’s with the Abridged Audiobooks

December 9, 2010

Audiobooks were an awesome discovery for me. I find it to be a much richer experience than reading a book. Especially if the book is read by the author. I think that in the same way that text files are smaller than audio files and audiobook carries that much more information. The subtleties of the readers intonation, their emphasis, where and how long they stop all of these carry important meaning.

Anyway, what is with the abridged audiobooks ? Who buys these ? I think abridged audiobooks come from a fundamental misunderstanding of what audiobooks are. I dont listen to an audiobook to save time. I listen to it because that is a better method of learning for me.

Publishers, please, no more abridged versions.

GDB Tricks: stack trace on a SIGSEGV

April 22, 2010

One thing I commonly use GDB for is getting a stack trace after a program I am working on sigfaults

I added this to my .bashrc

gcatch(){
  gdb -ex 'r' -ex 'back' -ex 'q' --args $*
}

So if my program segfaults I can press up and prepend gcatch to the command and voila! Stack trace.

The name gcatch comes from the frysk command line utility fcatch which performs the same job.

saydone

March 30, 2008

saydone-happy.png

saydone-sad.png

Hello Planet Fedora.
Thanks Seth for adding my blog.

A while back I blogged about how I use notify-send from libnotify to tell me when my builds are done.

I recieved a patch in a comment from uzytkownik to display the name of the command which just finished. So I incorporated the patch and created a project on google code called saydone.

I also filed the first bug:

Issue 1: “saydone is a silly name”

Semantics

November 30, 2007

When I first learned about pointers back in second year, there were a bit of confusion among my class mates. I wasn’t confused but I wrote but i wrote pointers like this:

char* a = “bla”

The above made a lot of sense. I read it as “a character pointer named a”. I never understood why people insist on writing

char *a= “bla”

How does one read the above, and why doest make sense to so many programmers out there ? the * is part of the type description not the name of the variable it is not a char named *a so why is it written like that.

Maybe someone will tell me some day, but until then I will continue to correct pointer declarations quietly. One pointer at a time.

Pwdhash

November 17, 2007

A friend of mine had told me about this a while back but I never used it until today.

Pwdhash basically generates a password for you using a key that you provide and a web address. In combination with their firefox plug in this means that you can use the same password for any online service and the plug in will replace it with a generated password. This way you don’t have to worry about how secure the particular service is all you have to lose is that generated password. And you also don’t have to remember tens of complicated passwords or be tempted by the devil into using dictionary words.

If you are somewhere where you cannot install the firefox plug in. you can always go to pwdhash.com enter the address and you key and get the password.

So all you have to do is install the plug-in. Then start choosing passwords that begin @@.

Welcome…

November 7, 2007

… to wagiaalla.com

Getting Productive with Git: for CVS users

November 5, 2007

Back Story

Earlier this month Frysk switched to using git from cvs.

As developers we used this tutorial to get started:

http://www.kernel.org/pub/software/scm/git/docs/cvs-migration.html

Which was a great starting point, but with all the merging the remote repository had a lot of noise, of people resolving conflicts recommitting and re-pushing.

Tim Moore suggested we use git fetch then git rebase instead of git pull. Thats when things went a little weird for me I messed up my repo a couple of times but seem to have gotten the hang of it. The trick is to always type git fetch origin and git rebase origin and not just ‘git rebase’

Getting Productive

I started getting git when I unlearned CVS knowledge, and ignored the existence of the remote repository. By doing that I got rid of all the confusion resulting from trying to depend on the remote repo, and trying to figure out which commands contacted witch repo.

At first I didnt really understand the distributed work flow. I was making my changes, and pushing all day long. This in combination with my attempt to commit often and commit early resulted in a lot of overhead.

Here is what I did:

  • Make changes
  • Run test suit
  • Updated my tree (git fetch+rebase, cvs update)
  • Rebuild (this usually means rebuilding the entirety of frysk since other developers my have made changes to underlying code)
  • If build is broken fix it or ask someone else for a fix and wait…
  • Run test suit if a test is broken fix or ask for a fix and wait…
  • Publish my changes (git push, cvs commit)
  • Test the build/test suit from an independent virgin checkout. (again build the entire Frysk tree)

On a good day I end up with two commits.

With a distributed version control system, namely git, I run the test suit and commit. As often as I want. Most of the patches are small and contain one fictional change. I accumulated all these commits in my local repo. At the end of the day (or when I have something worth sharing) I do a rebase and a push, and test the build/test suit from a virgin checkout.

I can do diffs, roll backs, all the power of a VCS without going over the network… or talking to sourceware.org :) .

Given this kind of work flow the noise merging might now be so loud and using rebase might now be necessary. Personally I will continue to use rebase.

Tips:

  • Use git rebase to bring in relevant changes upstream without having to commit.
  • Use git reset –soft HEAD^ to undo the last commit and bring it back from the index to you tree
  • Use git clean to git rid of unwanted artifacts.
  • Use git diff to see what/where conflect are.

Youtube: Linus talks about git

November 5, 2007

Pretty cool video check it out:
http://www.youtube.com/watch?v=4XpnKHJAok8

Question for ya’all

November 1, 2007

Concider senario A:

A test is broken in upstream frysk.

I check out that verstion make some changes, then run the test suit.

The same test is still broken with the same error message and no other tests are broken.

Can I assume that my changes are clean and commit them ?

Senario B:

A test is broken in upstream frysk

I check out an older all passing version of frysk make some changes, then run the test suit.

All tests are still passing.

I rebase my patches upon the- broken -head of up stream.

Can I commit ?

Interesting Links: Open Invention Network

November 1, 2007

I have Recently heard of the Open Invention Network.

They are basically a collaboration of patent holding companies that develop open source software intended to protect open source developers from patent trolls.

So:

PatentTroll: Hey Open Source Developer you are infringing on my patent.
OpenSourceDeveloper: oh! Open Invention Network!
OpenInventionNetwork: Well PT, you are infringing on our patents.
PT: Oh sorry…umm lets cross licence.
OIN: Okay.
OSD: hehe :)

Check it out:

http://www.openinventionnetwork.com/about_members.php


Follow

Get every new post delivered to your Inbox.