english

How Neurons do Differentiation

Nature is simply amazing.

Today I learnt…

…how neural networks (think brains) can do differentiation by using temporal inhibition – i.e. by using a delayed signal. In the figure below, the node α will send a signal to two nodes. One of them – β – will pass on an inhibitory signal of the same strength as its input signal, but with a delay. Thus, when β‘s signal gets sent to the final node, α will at the same time be sending its “next” output signal to the final node.

“Differentiation” by using delayed inhibition. Solid lines indicate excitatory signals and the dotted line an inhibitory signal.

Therefore, the final node will receive two signals: the current output of α and the inverted previous output of α. If the final node sums these together its output will therefore be α‘s current value minus its old value – i.e. positive if α‘s output signal is increasing and negative if it is decreasing. Simple and beautiful!

Game of Life

While reading about cellular automata in preparation for an essay it struck me that I have never actually written Conway’s Game of Life. No, really!

To correct this embarrassing fact I quickly wrote a version in Haskell using the GLUT bindings.

Conway's Game of Life

More >

Code Reading as a Team Activity

I am currently reading “Coders at Work” by Peter Seibel, a really interesting read for a code monkey like me. The book is full of good tips and experiences from actual coders who learnt by doing. Peter Seibel’s questions are really good – no doubt because he himself is a programmer – and all his interview subject have different and interesting stories to tell.

monkey_tutor

More >

Wish: Options for Kate’s Indenting Scripts

At the start of Kate’s indenting script for C/C++, the following options are available:

// BEGIN USER CONFIGURATION
var cfgIndentCase = true; // indent ‘case’ and ‘default’ in a switch?
var cfgIndentNamespace = true; // indent after ‘namespace’?
var cfgAutoInsertStar = false; // auto insert ‘*’ in C-comments
var cfgSnapSlash = false; // snap ‘/’ to ‘*/’ in C-comments
var cfgAutoInsertSlashes = false; // auto insert ‘//’ after C++-comments
// END USER CONFIGURATION

To set these options one would first have to actually find the indenting scripts under /usr/share, then copy it to one’s home directory to be able to modify it, and then modify the javascript source. This could – of course – be done in a much better way. In an ideal world options like these should be available in Kate’s settings as check boxes. It should also be possible to have non-boolean options, like choosing a value from a list of possible values for a setting.

I would love to see something like the following:

registerSetting(“Indent ‘case’ and ‘default’ in switch statements”, “cfgIndentCase”,  “boolean”);

produce

☑ Indent ‘case’ and ‘default’ in switch statements

in Kate’s settings.

I don’t have the time myself, but I don’t think it would be very hard, and I’m sure that many people would be a bit happier. Me and the other Kate developers would glady be of assistance. ☺

Kate’s Vi Input Mode — What will KDE 4.4 bring?

Please see http://kate-editor.org/kate-vi-mode/ for an updated overview of the Kate VI mode project.

Dear “Katevim” users.  Kate’s Vi Mode is steadily improving and I want to take a moment to tell what’s on the horizon for KDE 4.4. There has been quite a few bugs fixed since 4.3, but some major new features have also been introduced:

More >

How Kate got X-rated

(Ok, not really.)

Kate’s maintainer, Christoph Cullmann, shared a funny story over a beer one of the first days here at GCDS.

In ye olden days, what is now Kate and Kwrite was one application called “KWrite – KDE’s Advanced Text Editor”. However, the author of Kwrite mysteriously disappeared. Christoph forked Kwrite and continued working on it and after some time it greatly surpassed Kwrite’s capabilities and was becoming more of a power tool. A name change was long overdue.
Being a good German, Christoph decided to name it after the philosopher Immanuel Kant, so in KDE 2.1 the editor “Kant” was born.
For some strange reason, probably easier to understand for native English speakers, it was renamed to “Kate” in KDE 2.2. And thus what still is KDE’s Advanced Text Editor was born.

Google Calendar Plasmoid, Take Two

After the positive feedback on my quick 27 line python hack, I decided to make a slightly improved version. This fixes the two major problems with the old one: you can now use your Google Apps for your Domain email and you can use kwallet to remember your login.

gcal2

gcal_settings

It’s not a simple, 27 line python script any more, but now it’s much more usable. (unless there are some stupid bugs I have overlooked. :) )

As suggested I uploaded it to KDE Look: http://www.kde-look.org/content/show.php?content=104182, so you can install it from the “Add widgets…” dialogue or download it and install it with plasmapkg -i gcal-1.1.plasmoid.

More >

Google Calendar Plasmoid

Update: A new, better version can be found here:

http://hamberg.no/erlend/2009/05/07/google-calendar-plasmoid-take-two/

In case anyone is interested:

I made a simple Plasmoid for viewing coming events from Google Calendar. It’s simply a webview showing the iPhone version of Google Calendar. It’s written in Python and took 10 minutes to write (27 lines of code) by following the excellent tutorial on techbase.

gcal

You can download it here: http://hamberg.no/erlend/files/gcal.zip. If you improve it or make another Google Calendar plasmoid: let me know! :)

Oh, btw. To install it run plasmapkg -i gcal.zip.

P.S: openSuse users: I had to install python-dev to actually run a python plasmoid. Don’t know why.

Lost and found

Found in Cambodia in 2007, rediscovered today :-)

Tourists in front of Angkor Wat.

film

Wikibooks, now also for us who like physical books

In “just” 19 days I’ll have completed my last exam for this semester and I can travel home for a nice, quiet Christmas with my family. As usual, I’ll travel by train, which takes 16-17 hours each way. Partly because it’s cheap (25 EUR), but most of all because it’s very comfortable and is a nice way to “stress down” after an intense exam period. As usual I’ll pack plenty of books and an iPhone with all the podcast episodes I have postponed listening to.

Among the new books I’ll bring there will also be at least one wikibook. Yes, a real, physical wikibook. :)
You see, I have been using the x86 disassembly wikibook quite often, and recently I read that there were a “a collection for print-on-demand publishing from PediaPress” available for the book. Being curious, I had to click the link to see what that actually meant…

It turns out that PediaPress will print a copy of a wikibook for a very fair price. It can even be your own compilation of parts of books (and Wikipedia support is coming, according to their webpage). Printing and shipping of the book (200 pages) to Norway was a little over 10 EUR.

I’m now sitting with three printed wikibooks in front of me, and the quality of the printed book are very good. Needless to say, I’m very happy. They even donate a portion of the proceeds to the Wikimedia Foundation (though, they don’t say how much).

Shiny new books

Shiny new books

Okteta

Okteta is of course mentioned :)