Sunday, December 1, 2013

Circe 1.3 released

Circe Offering the Cup to Odysseus, by John William Waterhouse (1849–1917); currently in the Oldham Art Gallery, Oldham, U.K.

Version 1.3 of Circe, the Client for IRC in Emacs, has been released.

Read more about Circe on its homepage: https://github.com/jorgenschaefer/circe/wiki

Circe is available from Marmalade.

Changes

  • This is primarily a bugfix release
  • Tracking should now update the mode line slightly more reliably
  • Server notices are now handled more sanely
  • Added a help command (thanks to Alex Chamberlain)
  • Fixed completion code for Emacs trunk
  • Fixed the reconnect process to avoid some problems with SSL
  • The server option :pass can now be a function to look up passwords dynamically (thanks to Alex Bennée)
  • Don't try and send commands in a deleted buffer
  • Don't use add-to-list on local variables, that's not supported in lexical scope
  • Shorten now has a new utility function for different buffer shortening, shorten-join-sans-tail
  • Various docstring clarifications were added
  • Thanks to John Foerch for all the work he's done for this release

Saturday, November 9, 2013

Elpy 1.2.1 Released

I just released version 1.2.1 of Elpy, the Emacs Python Development Environment. This is a bugfix release addressing a few issues found in the 1.2 release.

Elpy is an Emacs package to bring powerful Python editing to Emacs. It combines a number of other packages, both written in Emacs Lisp as well as Python.

Quick Installation

Evaluate this:

(require 'package)
(add-to-list 'package-archives
             '("marmalade" .
               "http://marmalade-repo.org/packages/"))

Then run M-x package-install RET elpy RET.

Finally, run the following (and add them to your .emacs):

(package-initialize)
(elpy-enable)

Changes in 1.2.1

Friday, November 1, 2013

Elpy 1.2 Released

I’m happy to announce that I just released version 1.2 of Elpy, the Emacs Python Development Environment. You can find a list of news since the last release below.

Elpy is an Emacs package to bring powerful Python editing to Emacs. It combines a number of other packages, both written in Emacs Lisp as well as Python.

Quick Installation

Evaluate this:

(require 'package)
(add-to-list 'package-archives
             '("marmalade" .
               "http://marmalade-repo.org/packages/"))

Then run M-x package-install RET elpy RET.

Finally, run the following (and add them to your .emacs):

(package-initialize)
(elpy-enable)

Changes in 1.2

Sunday, September 29, 2013

Modern Databases

I finally understood the point of the so-called NoSQL databases. I have for a long time put them down as a buzzword hype thing, but it turns out there are good technical reasons for them. The hype part is that they’re supposed to replace relational databases. That’s wrong. But they have a purpose.

Let me explain.

Saturday, September 14, 2013

Waiting for multiple queues in Python

It is impossible to correctly wait for multiple queues in Python and only consume the first element of any of them.

This came as a big surprise to me. Both because it seems like an operation that should be supported, but also because this never had been a problem in practice.

Friday, August 9, 2013

Elpy 1.1 Released

I’m happy to announce that I just released version 1.1 of Elpy, the Emacs Python Development Environment. You can find a list of news since the last release below.

Saturday, August 3, 2013

Climate and Weather

This year’s weather has been completely crazy in Germany. March was the fourth coldest in recorded history, suddenly bringing large amounts of snow after a rather mild winter, a cold that stayed with us longer than usual. Spring then saw enormous flooding of the south and east, larger than the already huge century flood of 2002. And now we barely managed to not set a record high temperature in recorded history last weekend, but July will be one of the top ten hottest in recorded history.

A recurring question I hear in media is, well, is this because of climate change?

Sunday, June 23, 2013

Gendergerechte Sprache in Blogs

Martin Grünstäudl hat in seinem Blog die folgende Frage gestellt:

“Sollten Blogger und Autoren auf gendergerechte Sprache achten?”

Das ist eine spannende Frage zu einem sehr kontrovers diskutierten Thema, welches ich sehr interessant finde, und so möchte ich mich mal an einer Antwort versuchen.

Sunday, June 16, 2013

Don’t Be Clever (When Programming)

Programming is an art. And as with any art, the artist feels compelled to show off how intelligently they can handle their tools, how well they understand their field, and how skillful they can express their ideas. At the same time, programming is engineering. Programs are written for a purpose, need to run, need to be maintained, and need to be extended. Those two faces can, and do, conflict regularly.

Sunday, June 2, 2013

Circe 1.2 released

Version 1.2 of Circe, the Client for IRC in Emacs, has been released.

Read more about Circe on its homepage: https://github.com/jorgenschaefer/circe/wiki

Circe is available from Marmalade.

Sunday, May 19, 2013

Words Matter

The internet is full of questionable jokes. Gay is a generic negative adjective, in gaming circles rape is used as a term for defeating your opponent, and many people enjoy some sexist and otherwise disparaging humor.

When people, especially moderators, step up and try to ask to skip these phrases, they are generally met with dismissive reactions. Can’t they take a joke? No one’s being hurt, it’s their fault if someone is offended – after all, it’s just words, right?

Sadly, that’s grossly underestimating the power of language and interaction.

Friday, May 10, 2013

Effects of Top Income Tax Rate Increases in Germany

In the recent debate on tax changes in Germany following the proposal of the Green Party to increase tax rates to 49% from currently 42% for incomes of 80,000 EUR and above, the German Industry and Trade Chamber (DIHK) submitted an opinion piece which claims that increases in top tax rates correlates with an increase in jobless numbers. This opinion piece is an excellent example of two major abuses of statistics: Cherrypicking and confusing correlation with causation.

Saturday, April 27, 2013

Elpy 1.0 Released

I’m happy to announce that I just released version 1.0 of Elpy, the Emacs Python Development Environment. You can find a list of news since the last release below.

Requiring Calorie Labels in Restaurants

A positive caloric energy balance is the main driving factor of obesity, and therefore a direct cause of one of the leading preventable causes of death (Barness et.al. 2007). A recurring question for policy makers then is, how can we help people make better decisions as to their own diets. Calorie labels are widely available on food items in grocery stores, but most restaurants do not provide calorie information for their foods. The question now is, would implementing a law to require such calorie labels in restaurants improve the situation, and if so, in what way?

Sunday, April 21, 2013

Quality and Quantity in Exclusionary Language

Recently, I had yet another discussion following the exactly same lines. Someone points out a childish, sex-related joke. Someone calls it sexist. Half a dozen people get mightily upset because that’s just a joke, and not sexist.

Now it would be easy to dismiss this as the usual privileged male talk that it partly indeed is. But that’s not going to change anything, and more importantly, it misses something crucial. Namely, that those people do have a point.

Wednesday, April 3, 2013

Gendered Language in German

Germany recently revised the road traffic regulations, mostly to improve the situation for bicyclists. One of the unrelated features of this revision was the attempt to “de-genderize” the language used in the law. That’s a novel thing and has been received with very mixed reactions.

German as a language is highly gendered, much more so than English. Every noun has a gender of either male, female, or neutral, with the neutral forms implying a lack of gender, not unknown gender. Almost all prepositions, pronouns, etc. are inflected in a gender-specific way according to the subject they refer to. As an example, a friend once remarked that the phrase “the wizard” in English leaves it open if the wizard is male or female. This is nearly impossible in German, as you can not talk about anything without giving it a gender.

Saturday, March 30, 2013

Einführung in die Einkommensteuererklärung

Das deutsche Einkommensteuergesetz ist mit Sicherheit eines der kompliziertesten der Welt. Diese Komplexität und die unübersichtlichen und schwer verständlichen Formulare zur Einkommensteuererklärung geben schnell den Eindruck, dass normale Menschen gar keine Chance haben, ihre Steuererklärung richtig auszufüllen. Dies wiederum sorgt für Ausgaben an Steuerberater oder Steuersoftware.

Dabei sind die Grundlagen der Einkommensteuererklärung relativ einfach. Die Komplexität entsteht hauptsächlich durch viele Ausnahmen und Sonderregeln, die für die meisten Steuerzahler überhaupt nicht relevant sind. Selbst wenn man eine Steuersoftware verwendet, hilft ein Verständnis des Einkommensteuerrechts dabei, einen Überblick zu bewahren.

Dieser Artikel sollte auch einem Laien ermöglichen, die Einkommensteuererklärung zu verstehen. Dabei ist zu beachten, dass ich nicht gesetzlich zur Steuerberatung befähigt bin, und in sofern auch keine rechtlich sichere Beratung geben kann.

Saturday, March 23, 2013

Dealing With Inappropriate Behavior

I just saw someone in a community I moderate say “Adria Richards should go back in the kitchen.” I asked them to give me a reason why I should not remove them from the community for that, and they explained they were pardoying the harassment. Looking through the log again I found that that was a plausible explanation based on the context, so I said “thank you,” they smiled, and all was well.

Except, then someone completely unrelated jumped at me with “freedom of speech,” how “oppressing people” like that is “retarded” etc.

Typo.el 1.1 Released

I just released version 1.1 of typo.el, an Emacs extension for typographic editing. This version marks the typo-language variable as safe local variable, meaning the language can be set on a file-specific basis using file-local variables. It also adds support for Russian quotation marks and

typo.el is available from github or via package-install from Marmalade.

Saturday, March 16, 2013

Income Tax law (There, I Fixed It)

With recent discussions on changes to the German income tax law, especially regarding the splitting regulation for couples and families, I grow continuously frustrated at politicians’ inability to simplify the tax code. And it could be so easy.

Sunday, March 10, 2013

Elpy 0.9 Released

I’m happy to announce that I just released a new version of Elpy, the Emacs Python Development Environment. You can find a list of news since the last release below.

Saturday, March 9, 2013

Health Care Law (There, I Fixed It)

A while back I described the reasons on why universal health care is inevitable in a modern society. The main point therein is that we can not in a modern society let people die due to sickness simply because they are not rich enough to afford the appropriate health care. The question then becomes not whether society should pay in these cases, but how society can set up these payments to be as efficient as possible while not burdening any single member of the society overly much.

In this post, I’ll explain a health care system I would like to see in Germany, and one which I think would work well elsewhere, too.

Friday, March 1, 2013

Circe 1.1 released

Version 1.1 of Circe, the Client for IRC in Emacs, has been released.

Read more about Circe on its homepage: https://github.com/jorgenschaefer/circe/wiki

Circe is available from Marmalade.

Changes

  • If a user leaves the channel and rejoins within a short time under the same nick, Circe will now remember the active/lurker state of that user.
  • Circe now can also set a user as "lurker" again if they haven't been speaking for a while. This is disabled by default. See circe-active-users-timeout for more information.
  • The heuristic to identify whether lisp symbol in the channel buffer is a function or a variable has slightly improved.
  • The variable tracking-ignored-buffers allows functions in addition to regular expressions now.
  • Newer versions of bitlbee are now supported out of the box.
  • Additionally, there were various bugfixes.

Thanks to Taylan Ulrich B and John Foerch for their contributions. Circe wouldn't be where it is without you.

Sunday, February 24, 2013

When Jokes Cross the Line

A while back, I heard someone say that rape jokes are important and we should not oppose them, because jokes are how we deal with traumatic situations. That sounded like an interesting argument, so I figured I’d think a bit more about it.

Saturday, February 23, 2013

Book reviews now on goodreads.com

Just a quick heads-up, I have moved my book reviews over to goodreads.com, as I think they fit better there and have been disrupting the other posts in this blog from time to time anyhow. So if you want to follow my book reviews, check out my page there.

Saturday, February 16, 2013

Monads for Normal Programmers (part 2)

The first part of this series generated a lot of responses, both very positive ones and very negative ones. I’m quite happy to accept that I just don’t understand monads very well, but so far, no one was able to convince me of that. One of the negative responses claimed it was not possible to actually implement monadic structures using my (simple) definition, which I took as meaning that the idea I was trying to convey was not very clear.

This second part of the series will show an application of the explanation I gave in the first part. I’ll start with a concrete problem and implement it in Python, slowly building up to the ideas encapsulated within monads. I assume you to have a good understanding of Python to be able to focus on the new concepts introduced.

Saturday, February 9, 2013

Elpy 0.8 Released

I’m happy to announce that I just released a new version of Elpy, the Emacs Lisp Python Environment. You can find a list of news since the last release below.

Elpy is an Emacs package to bring powerful Python editing to Emacs. It combines a number of other packages, both written in Emacs Lisp as well as Python.

Sunday, January 27, 2013

Monads for Normal Programmers

If you know people interested in programming language theory, you will have heard of the monad. Especially in Haskell, they are used extensively. When trying to find out what they are, exactly, the average programmer will have a distinct Matrix feeling, though: You can not be told what a Monad is! Lots and lots of websites try to explain what a monad is, so many that you must wonder what an exceptionally awesome concept this is that it can not be explained in simple, understandable terms, but is still so important that people will not simply give up on using it.

After watching a Google Tech Talk presentation recently, I was enlightened as to how monads can be explained to normal programmers.

Saturday, January 19, 2013

One-Way Functions for Unique Identifiers

A somewhat common but faulty pattern for programmers who need to hide information is to use unsalted hash functions. This does not work. Let me explain.

Tuesday, January 8, 2013

Book Review: A Latent Dark

A Latent Dark
by
Why no real cover?

In the steampunk novel A Latent Dark by Martin Kee, eleven year old Skyla barely escapes as the house of her mother is burned down. A hunt begins with Reverend Inspector Lyle Summers trying to bring her in to save his church, while Skyla tries to find out what happened to her aunt.

I was positively surprised by this book. It starts out seemingly as a standard witch story, but soon diverges from the normal expectations. In particular, the author manages to created a unique steampunkesque world while telling the story, mostly without delving into infodumps. The world just unfolds while you read the story. This was very well done.

There were a few things that annoyed me, though. A few sections did not advance the plot fast enough, making it laborous to get through them. The author also over-uses deus ex machina resolutions. They do, eventually, have a coherent explanation in the story, but during reading, too many dramatic situations are resolved by unmotivated semi-miracles. And finally, a pet peeve of mine. Stories with a strong fantasy flair should try and avoid modern physics as the main explanatory point. Explaining magic using a modern understanding of subatomic physics just kills immersion for me.

Other than that, a well-written and an enjoyable read. Recommended.

Book Review: Riverwatch

Riverwatch
by
Why no real cover?

In the mystery novel Riverwatch by Joseph Nassise, construction workers find an ancient statue in an abandondened tomb. When they return with the property owner, the statue is gone, and a corpse is in the tomb instead. Soon, others are killed as well.

The narrative starts out well in the style of Lovecraft, but soon switches to describing the evil explicitly, turning the book from a horror novel I might have enjoyed into a mixture of mystery and splatter which is not exactly my kind of genre. And while the text is mostly written fluidly, the story is a bit too cliché and the characters remain flat and uninteresting thorough the book, so I was actually happy it was over when it was.

I suspect I might have enjoyed the book more if it had been my type of genre. So if you enjoy mystery books about ancient evils splattering in the modern world, you might like it.