Revamping, again

Ha, the blogging. 

WordPress happens much quicker than I can follow it, which is completely wonderful. Quite a few innovations arrived today: a new editing interface, called Gutenberg.

a Malmö.rb logo
for no special reason
other than ease of uploads

The original critical hit table from the ancient roleplaying game Arduin

This is easy. And way more accessible. I might use it, even.

An Amsterdam Sunday

Stendhal syndrome, Stendhal’s syndrome, hyperkulturemia, or Florence syndrome is a psychosomatic disorder that causes rapid heartbeat, dizziness, fainting, confusion and even hallucinations when an individual is exposed to an experience of great personal significance, particularly viewing art.

We did three museums in one day. That’s really pushing it. But we stayed ahead of the above effects. Here’s what we saw:

After this journey into aesthetics, we relocated to a new  had very good pizzas at Mediamatic ETEN. Elderflower lemonade! Someone speaking Danish tended the bar. “Take a look around!” Aquaponics gardening in a greenhouse with colored LEDs. “Oh, all food here’s vegan.”

Next door was the open-to-the-sky bar Hannekes Boom. The sky was golden and the moon was a thin sliver. Patrons were joyous, the barman was cheerful.

Before heading home to the ironing board and the blogging, we couldn’t resist peeping into the KLIMMUUR CENTRAAL-marked warehouse. My friend C had identified the name to be “Climbing Wall Central”. It was a huge building, very, very tall, covered in handholds and climbing lines. In the middle of the room, there was a group of tables where people could enjoy themselves, or eat something. A non-ascetic place! We bought ice-cream and lounged in a huge couch outside in the evening light.

Boats of all types rushed by. Suddenly, it was time to get back. We discovered a shorter path to walk home – a boon.

An Amsterdam Saturday, a sketch

Amsterdam in harsh, punishing sunlight.

A pre-cold is threatening my weekend, reminding me of bodily frailty, as I and my companion trudge through cobbled streets fraught with traffic peril from onrushing bikes, their bike bells a-clanging.

The street scenes in the city center were the ones I’d been told to expect: tourists toting tourist gear, the smell of people smoking not-cigarettes, everywhere, and lots bikes.

We saw: a cat café, which was not a café – more of a feline prison.

At a critical juncture, we taught ourselves to use Amsterdam’s “collective traffic” (public transportation, as a Swedish-speaking person might say it). That was good. Our reach extended, we grasped for better and fancier environs. The plan was to do something more cultural.

Then, a cup of espresso quickly followed by a well-chilled ginger ale, and in we went to the Museum Het Rembrandthuis. We got an etching-and-printing demonstration, as well as a glimpse of an oil-paint-making demonstration.

We then trudged and traveled to get to our hotel. It was good.

Today I also learned about Happy Cow, a search engine for vegetarian eating. Here’s a sample search.

Having used it, we then promptly ditched all those finely annotated search results, threw caution to the wind, and frequented a recommended Indonesian place: Kartika on Overtoom 68. “Sorry, we only have two fixed options: the vegetarian one, and the other one. Serves two, at minimum.” We agreed to the veg option and were inundated with amazing dishes in bowls, on a long metal warmer. Food was enumerated, then enjoyed. Thoroughly.

After this, a stroll in the park, as the last rays painted immaculate contours around everything. A stand-up comedian was entertaining a big audience. People in the park had not yet given up on the park-life and were frolicking on grass, playing instruments and enjoying themselves.

 

 

Ruby feature: Regular Expression replace once

About a year ago, programmer Tony Arcieri posed a question on the Ruby language bug tracker:  Why was Thread.exclusive deprecated?

Among the answers to this question, Shyouhei Urabe’s one of the tersest feature descriptions yet: “we already have such thing, to some extent at least”:

/#{@mutex=Mutex.new}/o
  1. The pair of slashes are Regular Expression delimiters.
  2. A Regular Expression in Ruby allows String interpolation, just like the double-quoted String does. The #{} contains interpolated Ruby code.
  3. The modifier o at the end of the Regular Expression stands for “once”. So, the regex engine would keep track of this replacement, and do it just once.

The Malmo.rb named this expression (//o) the face-palm operator.

Automate finding misspellings in source code

Typos and misspellings in code can be difficult.

Finding them and keeping them out takes vigilance. Lots of mental energy wasted.

The misspellings tool written in Python can be installed using pip install misspellings.

This tool looks for commonly misspelled words in source code. It has a built-in list of common spelling mistakes.

Example: List all Ruby files and pass each of them to the misspellings tool, with the -f option (file list) set to - for standard input.

$ find . -name '*.rb' | misspellings -f -
./lib/celluloid/exceptions.rb:12: occured -> "occurred"
./spec/celluloid/calls_spec.rb:12: wasnt -> "wasn't"
./spec/shared/actor_examples.rb:950: slighly -> "slightly"
./spec/support/configure_rspec.rb:44: occured -> "occurred"

(As a courtesy, I edited those misspellings in the Celluloid project. It wouldn’t do to let it be made an example of and then not fixing it.)

How to use very latest Bundler in Travis

TL;DR: When Bundler has fixes in master that you need, use the specific_install Rubygems plugin to install and use Bundler directly from a git branch. Example Travis YAML configuration excerpt:

before_install:
  - gem update --system
  - gem install specific_install
  - gem specific_install https://github.com/bundler/bundler.git
Picture: taken at Cambridge U Library. This is a CC0 free stock photo. But those are nice columns surrounding and wrapping the body of the page. Also: note the shadows of the supporting lines still visible in the finished book.

I will spend the rest of this post unpacking what the above means.

In Ruby, there is a package manager called Bundler. It’s continuously developed, and like all software, can have bugs.

When a Bundler bug gets fixed, the code changes are “merged to master branch”. Then we all wait for the next release. The workarounds are about sticking to an older, non-broken version: use the -v option to choose an exact release. Example: gem install bundler -v'1.13.7'

The Rubygems system does not have a way to install gems “from a Git source URI”, but it does have a plugin system. And luckily, one of the plugins available (but not on that page) is specific_install.

allows you to install an “edge” gem straight from its github repository, or install one from an arbitrary url

In order to work around the “we all wait for the next release” step, we can install the latest and greatest using this plugin.

The plugin’s has also aliased its specific_install action to git_install. The manual claims:

This alias is shorter and is more intention-revealing
of the gem's behavior.

Source: The above Travis configuration snippet comes from a PR to the releaf project.

TODO: Buy a Cinemateket Malmö card today!

Analog film is dying. Digital film is slow in creation. A percent perhaps, of all film, is digitally available. It’s becoming harder to borrow film from archives.
So, not even the places showing old films know how it’s going to be.
Therefore, Malmö’s wonderful film club Cinemateket will sell half-year memberships now. 200 SEK to see all films – in a perfect program – until the end of 2016.
“Stora Cinemateketkortet är ett förmånskort för dig som besöker oss riktigt ofta. Med det går du gratis på våra ordinarie filmvisningar. Stora Cinemateketkortet gäller i ett år och kostar 400 kr. Eftersom vi inte vet hur Cinematekets verksamhet i Malmö kommer att se ut 2017 säljer vi denna höst förmånskort som endast räcker året ut (oavsett när du köper dem). I gengäld säljs de till halva priset.”
Do it!

Pep before PolyConf 2016

I sat down to prepare to get to this year’s PolyConf. I trawled last year’s photos, and found these shots.

(All these photos were taken by polyconf. They’re also All Rights Reserved. So, just links instead of using the awesome paste-a-link-with-oEmbed-support.)

Me having coffee – hair-styling is remarkably difficult in high summer heat.

Will, author of Reasoned Schemer, having coffee sadly, this is the most flattering shot of hime in the collection. The spirited Salt Lake City hacker, whose infectious enthusiasm warmed many conversations was a kind soul and a C64 alumnus. Since then, I’ve bought his book, read half of it, perhaps. It’s mind-bending and kind at the same time. Progress must be slow, as I’m doing this on my own.

Portrait of Robert Virding, author of LFE is tending his language and its community at lfe.io, a decidedly sub-cultural website. For instance, by translating other people’s blog posts on Erlang to be about LFE. My computer still has an LFE install.

Robert Virding directing Joe Nash (Joe, who presented many a hackathon the world over)

Alban, conf org is a French cinéaste as well as a person who computers a lot

The Bodil birtday cake happened during the closing party

Portrait of Stefan Karpinski, Julia author who’s so genuinely nice that I believe he can run a programming language community. I also believe that community can open “fast execution” to many more people.

Portrait of Leah Hanson, Julia hacker who is working on Learning Julia for O’Reilly (to be published in 2016).

Portrait of Amir, MirageOS hacker who was also kind and nice. This community of communities is incredible like that. See Amir’s homepage and the MirageOS Marrakech Spring 2016 hackathon reports. for more notes and inspirational links.

Portrait of José Valim, Elixir author is someone I never spoke to, but his output is consistent and excellent.

Portrait of Jessica Kerr, functional programming hacker made (and makes) great talks. See her talks page.

 

 

KTHXBYE!

Looking forward to PolyConf 2015

On Wednesday, I once again journey south, to Poznan in Central Europe, to participate in the PolyConf programming conference.

Poznan Glowny

As every year, it is about getting new perspective on things, from happy and grumpy people in the field. The field of computering.

I’m lucky to see some familiar faces in the list of people going there, and I’m travelling with qerub, a good friend. (Now, by visiting his website, I saw this wonderfully Acme-hacking project: an S-expression interface to his iTunes library. It’s a year old. I feel like a bad friend for not having seen it before. And, his casing utility camel-snake-kebab has a nicely communicative README.)

Last year, some major themes that stayed with me were property-based testing, functional everything and formal verification (software proofs).

People I met were curious about things, curious about history, curious about sub-fields near their own special field of interest.

To be able to catch the ideas and whims of this three-day madness festival, I will bring a Leuchtturm note-taking book. I’m pretty excited about using it. You may see photos of it on here. Update: inspiration from Bocoups blog, which is covering CSSConf using art.

You’ll hear more from me.

Child themes and repairing them

Meta-blogging, again. It took quite a long time, and had some fits and starts, but now this blog runs on a so-called Child Theme of a freely available WordPress theme.

The trick is that I get to fiddle with small necessary things (like repairing the missing link to jQuery and some Twitter-needed meta tag) in files that are not updated and outdated when the theme gets an update.


.
|-- functions.php
|-- screenshot.png
`-- style.css

Something like that is enough. The automatically-included functions.php file makes it easy to do things the WordPress way, using their hooks-and-actions concept.

All this, and I really only wanted to install Known, the Indieweb blogging engine that supports webmentions.