Software Releases

In the past couple of months I have released new versions of NeuroLab and IronMeta.

NeuroLab version 1.2.3 is a maintenance release containing numerous fixes:

  • Fixed grid generation after resize.
  • Fixed grid viewer not always reflecting latest grid status.
  • Fixed grid saving and loading losing grid network.
  • Fixed activation gradient rendering for links of length greater than 1.
  • Fixed inhibition for links of length greater than 1.
  • Source code fixes and refactoring.

IronMeta version 2.3 contains the following:

  • Made generated code more general so it is now possible to combine parsers by inheritance or encapsulation.
  • Added the ability to use anonymous object literals in rules. They match by comparing their public properties with the input object’s properties.
  • Fixed a bug where string and char literals were not correctly handled in parsers whose input was not of type char.
  • Fixed an off-by-one error in input enumerables.
  • Generated code now compiles with Mono.

Choral Singing Technique, Or, You Aren’t Leaving the House Wearing That, Young Lady

I sing in a small choir; we sang two Advent concerts last weekend.

When I sing in a choir, I hold my music folder almost horizontal just about at neck level, much like a waiter holding a tray. This has several advantages over holding it lower or at a greater angle. First, the sound of my voice can move freely past my folder and out into the hall, as opposed to bouncing off my folder back to my body. The audience can see my face better and if I am trying to emote in some way they’ll catch it better than if I’m looking down. But most important, I can focus on the notes in my music while at the same time keeping the conductor in the upper part of my peripheral vision. I can also glance very quickly between the conductor and my music. This lets me follow the conductor’s beat and direction while still reading my music.

Something strange happened at our first concert last weekend. As I was singing, a twinkling light began to appear and disappear in the blur of my peripheral vision just over the conductor’s left shoulder. I managed to keep singing and during some long held notes tried to figure out what was going on.

There was a gentleman in the audience who happened to appear just to the left of the conductor from where I was standing who was dressed for the season. He was wearing a bright red beret, an impressive set of sideburns and mustachios, and a red-and-black shirt with a bright red tie. He was evidently a nervous sort, because he kept picking up his program, reading it, and putting it down. Whenever he put it down, he revealed the flashing red and blue LED lights on his tie pin.

Just a tiny bit distracting when you’re trying to focus on an inherently multitasking effort — reading your music, watching the conductor, listening to your section, listening to the other sections. Oh, and singing too.

Mr. LED caused a triggered a lot of hilarity in the choir room afterwards, but as I was thinking about what would possess someone to wear such an ornament at all, let alone at a choir concert, it ocurred to me that this situation has some bearing on my future — a future that’s a decade or so away, but something I’ve thought about a bit.

You see, I have a two-year-old daughter.

Let’s set up the beginning of an analogy here. It is certainly within Mr. LED’s rights to wear all the (literally) flashy bling he wants, and no one would dispute it. It would have been impolite and uncharitable to ask him to leave, and obviously immoral and illegal to do violence to his person in response to his insensitivity to the distraction he was causing. But he was still causing a distraction, significantly degrading my and the other choir members’ powers of concentration, and causing not a little annoyance and frustration.

You see where I’m going here. Before my daughter is a teenager, I’m going to have to talk to her about the fact that although she has (or will have, once she’s no longer a minor) the right to wear anything she wants, it might actually be insensitive of her to do so.

It is obviously impolite to stare at or comment about a scantily-dressed female, and the pathetic loser who would make wardrobe an excuse for assault should feel the full force of the law.

However, she will need to be aware that her style of dress will have an immediate effect on any present male’s powers of concentration, and, for the well-socialized at least, cause not a little annoyance and frustration.

I read a fascinating article just this morning that talks about a recent study that found that when people (of either sex) see a scantily-dressed person, there is a reduction of activity in the region of the brain that is dedicated to modeling other peoples’ agency as independent thinking beings.

So it’s not a bad upbringing or choices that cause men to objectify women who show skin (and vice versa!). It’s a basic biological fact.

That is not to say that this fact is desirable! My poor eyesight is a basic biological fact too, but that didn’t stop me from wearing clumsy technological prostheses to compensate for it, and finally getting a doctor to cut the front part of each eyeball off and used a high-powered laser to burn layers of corneal tissue away.

This basic biological fact is actually detrimental, because it causes us to undervalue others’ abilities. If you are interviewing a prospective employee, for example, you need to evaluate them in a realistic fashion, not with half your brain shut down!

IronMeta 2.1 Released

IronMeta version 2.1 has been released.

Version 2.1 contains some refactoring, miscellaneous bug fixes, as well as:

  • Better error handling and reporting.
  • Added IronMeta.Matcher.CharMatcher.Input() and IronMeta.Matcher.CharMatcher.Trimmed() for more convenient string handling.
  • Added min/max repeats syntax (e.g. 'a' {1, 3}).

IronMeta is an implementation of Alessandro Warth’s OMeta metaprogramming system in C#. It provides a packrat parser generator that generates parsers for Parsing Expression Grammars that operate on arbitrary streams of objects.

NeuroLab 1.2.0 Released

Version 1.2.0 of the Neurocognitive Linguistics Laboratory is now
available at http://neurolab.bitbucket.org

Highlights of this release include:

  • The primary new feature in this release is the “Grid Item”. This
    type of network item allows you to create a small “template” network,
    along with symmetrical connections to its top, bottom, and sides.
    Then the program generates a huge grid consisting of repeated
    instances of your template, with each instance connected to its
    neighbors via the edge connections. The overall topology of the grid
    is cylindrical; the sides wrap around, but the very top and bottom
    rows can connect to other network items.
  • A simple way to input and output text to a grid is provided via the
    “Text IO Item”. This is a network item that has 256 connections in
    and out; if you connect it to a grid item that has 256 horizontal
    repeats it will feed your text (in UTF-8 format) byte by byte as
    activation to the different grid repeats, and output results from the
    grid if one of its outputs is activated.
  • There are several UI improvements in version 1.2.0, including a
    palette of network items from which you can drag items into the
    network editing area.
  • The underlying network automaton is vastly sped up in version 1.2.0
    by using seqlocks instead of mutexes to manage memory consistency.

You can reply with questions or discussion about NeuroLab on this
mailing list. Please report bugs via the issue tracker:
https://bitbucket.org/kulibali/neurocogling/issues/new

Neurocognitive Linguistics is an approach to linguistics developed by
Sydney Lamb which uses relational
networks to model what the brain actually does when it handles
language. You can read more about it at the LangBrain site and Glottopedia.

Neurocognitive Linguistics Lab (“NeuroLab” for short) is a program for
Windows, Mac OS X and Linux that allows you to experiment with
relational networks using a convenient GUI, and record the results of
your experiments in tabular form.

Neurocognitive Linguistics Lab is Copyright (C) 2010,2011 Gordon
Tisher, and available under the terms of the BSD License.