emacs 23.2 released

http://permalink.gmane.org/gmane.emacs.announce/17

hit the link for the official announcement. for what’s new Check. the link below

http://www.gnu.org/software/emacs/NEWS.23.2

history of emacs

If you want to read about the history of Emacs, here is a nice article from the H

Emacs & the birth of the GPL

Emacs somehow made possible the free software idea in stallman, Awesome!

A inkscape tip (about arrow tips)

If you are working with Inkscape, and if you want nice SVG graphics you should be using inkscape, you may have notice that when you add a path/arrow with a tip, and then you want to change the color of the arrow, the head will remain using the old color. Why this works this way is something I don’t understand, but how do you make them match?

Well, you select the arrow(s) you want to modify, and then Effects->Modify Path-> Color Markers to Match Stroke

Nice trick, I found it in Here

Create a tarball from a specific git commit

I have this code I’m working on that is needs to be deployed remotely (Fabric makes this SO easy) and I’m using git as my version control system. Well, I was creating tarballs for this, but I was basically doing them as similar as I could to what git had in the tree (ignoring the same files, etc.), so it was kind of repetitive and, boring. Well, git to the rescue!!!


git archive --format=tar HEAD | gzip > myproject.tar.gz

And you have a nice clean zipped tarball of your code as is on HEAD, without tears :)

Git is awesome!

Chrome type ahead

Don’t you wish you just could type the text of a link and then press enter to follow it on a web page? It would save tons of time! Well, there is a chrome extension that allows you to do that. My favorite extension to date by far.

Chrome type ahead

Enjoy

Performance of in operator using list and set

I had this use case where I have to check which elements of a list of words where available in another list of words. So I decided to use the operator in. Just for further reference a tried the following:

# common code for all test
base_list = [...]
query_list = [...]
  1. Pretty simple method:
    for word in query_list:
      if word in base_list:
        # do something

    For a list of 4284 elements against a list of 107 it took 9 seconds. Using simple lists, this method is the most straight forward of all, and also the slowest one.

  2. Sorting things:
    base_list.sort()
    for word in query_list:
      if word in base_list:
        # do something

    After sorting the list, guess what? Yeap, nothing changed, same 9 seconds

  3. What about sets?
    bs = set(base_list)
    for word in query_list:
      if word in bs:
        # do something

    Using sets this is another history, 0.6 seconds for the same amount of data; but… if this could be achived turning one of lists into a set, what if…

  4. Using more sets
    bs = set(base_list)
    qs = set(query_list)
    solution = bs.intersection(qs)

    0.02 seconds.

Well, as you can see, sets are great.

Changes in the website

I’m sure you have noticed the fact that this website has changed (if not, welcome!). Well, there was some issues with the previous one and after fixing the code I was completely unable to make it work again, there was some problems with python + django + mysql, very very weird (process forking, memory issues and alike), so I sadly ended giving up and installing the only blogging system made in php (or in some other language) that I would change for the one made by myself: wordpress. I have to say that it’s really nice in it’s latest incarnation :)

I’ll try to update my blog a little bit more often, so stay tunned.

Awesome 3.4-rc* and default floating layout

I think awesome wm is, well awesome. I tried the last rc but I found that all the tags were set to the floating layout by default, so digging through the internet I found these bug that is exactly what was happening to me:

For the lazy ones, here is the solution:

Change:
tags[s] = awful.tag({ 1, 2, 3, 4, 5, 6, 7, 8, 9 }, s)

to:
tags[s] = awful.tag({ 1, 2, 3, 4, 5, 6, 7, 8, 9 }, s, layouts[1])

taken shamelessly from the ticket.

Emacs 23 released!

Read the announce and new features here

Problems shuting down Gentoo with kernel 2.6.29

I updated my laptop a few days ago and suddenly it failed to shutdown correctly, it powered down but without finishing the shutdown process. Today, while reading the spanish users mailing list I found the solution.

In /etc/conf.d/alsasound, set:

UNLOAD_ON_STOP=”no”

KILLPROC_ON_STOP=”no”

This fixed the problem. Here is the original thread