South Kingstown School Committee

I ran for South Kingstown School Committee this past November and so this blog has been quiet as I worked on my campaign. My online campaigning was on Facebook as it gave me the broadest reach into the community and the community an easy way to find me and to keep current. Here is a complete capture, I think/hope, of my postings and comments.

Update: I pulled the better postings into A chronological selection of Andrew Gilmartin’s posting made during his 2016 run for School Committee.

Paint Shaker

To have the itch to paint miniatures again. My paints have been sitting unused for much of a year and many have the pigment separated from the medium. It would take me only a few minutes to shake them all, but this needs a tool! So I built this paint shaker from parts I had on-hand.

It really does not work as well as I had hoped, but it does help. A ball-bearing in the paint container would, I suspect, greatly help stir up the pigment. The kids absconded with all that I had and so I will need to get more.

Bash is useful up to a point

As far as I can tell is there no way in Bash to pass a concatenated array to an internal function and not have the resulting string split apart. Eg
function f() {
    for e in "$@"
        echo $e

A=( x y z )

f a b "${A[@]}" 'c d' "e f"
will output
c d
e f
when I expected it to output
x y z
c d
e f
Google and both failed me, as did trying lots of variations.

Observations on the School Committee's retreat

If you are not following my South Kingstown School Committee candidate Facebook page, but are interested in South Kingstown School Committee's happenings then you might be interested in my observations on the School Committee's retreat this past Friday, July 15: the good, the bad, and the ugly.

“What’s in a name? That which we call a rose by any other name would smell as sweet.” Not in software!

Names have great signification in code. A good name can make the object's value comprehensible and usage clear. A variable called milk_jug is likely to have all the aspects of a jug, but specialized to only hold milk. I had a problem with picking a name.

I had a variable that did not itself hold the value, but acted as though it did. Is was not a proxy. Nor was it a reference. The variable held only a portion of the value but could itself get the remaining portion when needed. This kind of delayed acquisition behavior is common in programming. It is commonly used when the remaining portion of the value is costly to acquire, eg takes a long time to compute or retrieve, or holding it puts a burden on the system, eg using a significant amount of memory.

I ended up calling the variable mik_jug_winding. Winding as in "The river winds through the valley." I like it, but given that I felt the need to write a posting about it perhaps it lacks the needed signification. 

“What’s in a name? That which we call a rose by any other name would smell as sweet.” Not in software!

Names have great signification in code. A good name can make the object's value comprehensible and usage clear. A variable called milk_jug is likely to have all the aspects of a jug, but specialized to only hold milk. I had a problem with picking a name.

I had a variable that did not itself hold the value, but acted as though it did. Is was not a proxy. Nor was it a reference. The variable held only a portion of the value but could itself get the remaining portion when needed. This kind of delayed acquisition behavior is common in programming. It is used when the remaining portion of the value is costly to acquire, eg takes a long time to compute or retrieve, or holding it puts a burden on the system, eg using a significant amount of memory.

I ended up calling the variable mik_jug_winding. Winding as in "The river winds through the valley." I like it, but given that I felt the need to write a posting about it perhaps it lacks the needed signification. 

Which Cement Mixer Are You Based On Your Zodiac Sign?

This kind of astrology is important to me. I'm a

Bartell Gas Powered Concrete Mixer
You are a dependable individual, willing to help whether your friend needs a shoulder to cry on, a secret to keep, or cement to be mixed.

Primary and Secondary Tools

Earlier today I was in a UX design meeting and I used the terms "Secondary Tool" and "Primary Tool." (Application and tool are interchangeable terms.) Understanding the difference between these two is very important as their UX needs to be very different. Most application teams think that they are building a primary tool when, I am sorry to inform them, they are not. Very few teams work on primary tools. So what is the difference? I hope the following helps explain this.

Primary Application/Tool

A primary tool is one that the user uses daily. It is one where the user will have many sessions within a short period of time -- a few weeks. This rapid experience of having successes and recovering from failures builds the user's confidence in the his or her ability to use the tool. Moreover, this confidence encourages the user to explore the tool for better means to perform tasks and opportunities to use the tool for unforeseen outcomes. This confidence brings with it the need for far less feedback that an operation has been completed successfully and instead feedback can be limited to erroneous results.

Secondary Application/Tool

A secondary tool is one that is not a primary tool. It is used infrequently -- less than once per week. This infrequency disposes the user to having to relearn the tool's operation at the start of a session. Only the most rudimentary operational knowledge is retained between sessions. The user is most successful when he or she is guided in performing a task from its beginning to its ending. Redundant orientation information such as task milestone displays, activity histories, and possible future work, etc are displayed beside the specific task step at hand. Feedback for success and for failure is always provided.

I am running for School Committee in South Kingstown

I am running for School Committee in South Kingstown, RI.
Let the grumbling begin.

BoardDocs and removing forced page breaks

This posting is mostly to remind myself how to eliminate page breaks from Emerald Data Solutions's BoardDocs. BoardDocs is used by lots of organizations that want control over their governance documents. The South Kingstown School Committee just started using it. Its configuration is such that when the detailed agenda is printed there will be a page break after each agenda item. I don't want this -- either on paper or PDF. To fix this I installed Stylebot and added the following style for BoardDoc URLs to turn off forced page breaks

* {
    break-after: auto;

This seems to work. My preference would be for a less heavy handed solution, however.

SQL and the (newly discovered) OVER operator

I have a tool that takes a range of ids and processes each document with an id within that range. I wanted to run this tool in parallel with each instance processing 100,000 documents. The problem is that document ids are not contiguous. There are gaps. So a simple criteria of document id + offset is not sufficient. I needed an SQL statement that detailed contiguous range of 100,000 document ids.

As with most ostensibly complicated SQL the solution is in creating a virtual table (ie inner select) from an existing table. My virtual table needed to be sorted on document id and a sequence number given for each row. To do that I needed to use this in the column selection of the virtual table.

ROW_NUMBER() OVER( ORDER BY document_id ) - 1 row_number

I had never heard of the OVER operator. It applies a function to a row of an ordered relation. So the ROW_NUMBER() function gives the first row a value 1, the second 2, etc. Since I would be grouping using division I need the row numbers to start from 0 and so the subtraction of 1.

Now that I have row numbers and rows ordered by document id I needed to find within groups of 100,000 rows the minimum and maximum document ids. I used a simple group by row_number / 100,000 to get the row groupings. Then used MIN(document_id) to get the group's minimum document id. Same for maximum document id. The final SQL is as follows and it runs fast enough for the 50M records I needed to use it with

  FLOOR( y.row_number / 100000 ),
  MIN( y.document_id ),
  MAX( y.document_id ),
  COUNT( * )
      ROW_NUMBER() OVER( ORDER BY document_id ) - 1 row_number
      documents x
  ) y
  FLOOR( y.row_number / 100000 )
  MIN( y.document_id )

With the data I can use a bash script to read it and produce a series of commands that are feed to xargs for parallel execution.

superglue + baby powder = gap filling putty

I bought some of Games Workshop's liquid green stuff and have been waiting to use it to clean up some plastic kits I am currently working on (well, next in line). Today, however, I found out about the superglue + baby powder putty. Dries rock hard and can be filed to shape.

Viking and Anglo-Saxon army painting saga concludes

If you had any interest in my 6mm Viking and Anglo-Saxon army painting saga then, well, first, you need to get out more and meet people, but, second, I sold them to a nice chap in Australia. Who then sent them to a nice chap in Scotland to paint them! Perhaps I should have done that.

What scale are scale buildings?

In response to the question "When gaming a city fight, do you all try to match the scale/size of the scenery to your miniature troops:"

A true scale creates overpowering buildings and the combatants are very greatly diminished. So a smaller scale for buildings with regard to their volume, but not their floor plan, removes this diminishment. I have not tried this, but you could use the Disney World trick of reducing the height of each floor above the ground floor. See Forced Perspective.

No one man or woman can fix this broken country

I plan to read none of your postings about 2016 Presidential candidates. Let's be rational, no one man or woman can fix this broken country. The US has run its course. Only a revolution to replace it will work. A revolution by those with the wisdom, knowledge, principles, and diplomacy of the Founding Fathers. Not the loudest. Not the richest.

Why are tires so expensive?

Where can you buy 15mm and 28mm wheels for military vehicles? I looked around today and found several suppliers, but with outrageous prices at ~$2/tire. Langley Models have better prices, but still high. For some reason I had expected to be able to buy a 100 for $10.

Keiichi Matsuda's Hyper-Realty

Keiichi Matsuda has updated his 2010 haunting vision of an augmented reality with his new Hyper-Realty. Worth watching and, be advised, it is a horrible place.

Sobriety is an unwelcome form of adulthood

'Nuf said.

"Flat" terrain feature example

I like adding features to an otherwise flat terrain board. This includes features like swales, outcroppings, or a bunch of logs. Anything that might get in the way of gameplay's terrain is put at the edges of the game board. Here is constructive set of photographs showing the progression of a flagstone and well terrain feature by Firedragon Games

How to start gaming a scenario?

I am working on a scenario and I am looking for advise. I have imagined a setting in the future where inadequate water supplies has lead to national governments and international corporations buying land in other countries to claim water rights. The water is then transported back home -- as water or as foods, eg wheat, rice, etc -- or sell it to the highest bidder. This lead to armed insurrection by the locals even though the water claims are legal. The insurrections have now devolved into multi-party factional/clan warfare. All factions have advanced military equipment (mechs!), but some factions have better supply lines and maintenance facilities than others.

The environment is harsh. Dust storms of national and global scale have made long distance wireless communications unreliable. So, despite the advanced equipment the factions continue to rely on scouting (human and autonomous drones) and runners to convey situation awareness and instructions between units. Even long range targeting and retargeting takes significant time, but once established is accurate. Some factions rely on well planned actions with strict adherence to the plan by the discrete units. Other factions rely on discrete units making local decisions stemming from the unit's overall purpose.

The scenario I am working on is a tanker truck needs to be driven to the coast (ie, off board) by its corporate owners. A rival faction wants to divert the trunk to its own facilities for local distribution (ie, driven off the other side of the board). It is a stalemate to have the trunk not reach either of these destinations before N rounds of play. It is a defeat for both sides if the tanker trunk is destroyed.

My initial plan was to use the Horizon Wars rules as I played an early edition of them from a few years ago. The rules are basic, but do make for a quick game. However, I am not wedded to them so am open to suggestions for other suitable rules.

My first question is how to start gaming a scenario? Is there an approach to determining the units needed? Or is it ad hoc, ie just play a game with a guess at unit composition and respond to the results? Or something else all together?

Update: The working document for this is at "A setting for near-future wargames."

Weekend workbench 2016-05-14

Finally made the cubby to hold my modeling tools, materials, and stuff. Still need to paint it, but that might happen in another life.

Update: It is beginning to fill up.

Meeting room geek lights

I have been giving more thought to the meeting room occupancy display. Right now I am considering what would be a minimal presentation. There are 2 reasons for this. The first is that the problem is not about showing details of who has reserved the room, but, instead, is the room free for squatting and, if so, for how long? The second problem is a technical one and that is the display device should run for weeks on a single battery charge. (I am assuming no mains electricity.)

So here is the new display.


Each light, red and green, represents 10 minutes of time. The display shows a total of 2 hours of time. The above display indicates that the room is reserved for another 40 minutes, free for the following 60 minutes. and then occupied for at least 20 minutes -- it could be more, but the display can't indicate for how much more.


Here the room is free for another 20 minutes, then reserved for 30 minutes, and the free again for at last 70 minutes.

The more I look at this the more I think that this is the solution.

The spotter stood still ...

The spotter stood still bracing himself against in the swirling sands of the desert winds. It was not sight but sound that caught his attention first. Once again, the people of the Rough needed to defend themselves against the Coppers. The Rough had only a ruined city and salvaged armaments to defend with. The Coppers had everything else ... except the will to never give up.

A setting for an Horizon Wars miniatures wargame.

Meeting room occupancy project

We have an issue with staff not reserving meeting rooms. You know the situation, team High-Strung did reserve the room, but when they arrive they find that team Anarchist has squatted and are well into their arguments discussions. I don't include myself in the "we," by the way. I am happy to meet sitting on the floor with a big pad of paper between the participants. Anyway, it got me thinking about how technology can be used to exasperate this problem. For example, a display at the door to each meeting room that told folks if the room was reserved, for how much longer, who was using the room next, and lastly a list of reservations for today and tomorrow. Or, better yet, some ambient situation awareness device like Illumigami.

Before reinventing the wheel I did look around for a tool like this. What I found was a market of crazy, obese, gold plated implementations that actually cost money and often often lots of it. I don't object to making money from software, but not from something so simple as this, that is something that requires hardly more than a single web page. And so the development began.

The webapp is in its very early stages of development. I have just touched the surface of the Google Calendar API and its use within a HTML/JS page. At this point I am only concerned with the mechanics and so have made little attempt to make the UI useable. My goal with the UI is to have a tablet by each meeting room running a browser in "kiosk" mode and only showing the meeting room page. The page will show the events for a user who has authorized and selected a calendar.

If you want a side project and are interested in working on this with me to complete it the project is at A live version is running at

An unfortunate choice of title

There is a new dark ages set of wargame rules out called Blood Eagle. While I know that I play a game that represents an immoral, cruel, and bloody human activity, but to name a game after one of its more heinous acts were the warrior
would have their spine column exposed and then their ribs severed from the spine and pulled open (to resemble wings). Finally the lungs were exposed (and in some instances covered in salt) to complete the torture and lead to the death of the prisoner. (source)
is too much for me. I won't be playing that game.

DNS records for site split between Blogger and colocation server

This posting is mostly here to remind me how to configure the DNS records for a site where the www subdomain's content is hosted by Blogger and other subdomains are hosted by my colocation server.

DNS A record

Host Points To TTL
@ 111.222.333.444 1 hour

DNS CNAME records

Host Points To TTL
* @ 1 hour
www 1 hour
X 1 hour

Where X and Y are given by Google/Blogger.

When I figure out the MX records I will update this page!


In a previous posting I wrote about using "splinters" to represent the kind of deadfall you find in the woods and bogs. I spent more energy that I care to admit settling on a source for the splinters: block planer shavings, chainsaw chunks, drill bit waste, ... In the end I used the dried up branches one drives over time and again on the driveway. A hand full of this material will spread out to a square foot of forest floor. Just split off a chunk, flatten it a few times with a hammer, and then pull it apart.

Preparing two more tables for May's Great Swamp Wargamers game night

Preparing two more tables tops for May's Great Swamp Wargamers game night. The table tops are 4'×3' hardboard glued and nailed on a framework made from 2"×1" pine boards. The edges are blue-taped to keep them clean until the terraforming is done. The terraforming is a simple process of

  1. Glue down any surface features. In this case, I am using "splinters" to give the appearance of deadfall found in a bog or forest floor.
  2. Paint the whole surface with an earth brown.
  3. Paint the surface features as needed. In this case a "wet" brown.
The remaining surface features are added in reverse order. That is, if you want daisies then put down the yellow flowers first, then add the grass, and finally add the dirt. The goal is that the items added first will absorb most of the glue so that when you get to step 8 what is on top will fall off.
  1. Using a spray bottle coat the entire surface with watered-down white glue -- about 1 part glue to 3 parts water. Use a spray bottle rather than a brush as it will apply a more even coating. A brush tends to leave ridges.
  2. Using a sieve apply a pattern of grass. When using Woodland Scenics's fine turf add some coarse turf to the sieve to slow the casting of the fine turf. If you don't do this then you tend to get mounds of turf rather than an even application. 
  3. Using a sieve apply to the remaining (non-grass) areas dirt. I use dirt from my yard that has been baked for an hour at 400° F to kill off the microbes. 
  4. When dry, turn the tabletop upside down and tap to remove excess grass and dirt.
  5. Finish with several applications of watered-down white glue or spray clear coat to fix the grass and dirt and make it resilient to playing on. I use a pressurized hand sprayer that is normally used for spraying insecticide. It can apply an even coat of the glue. The tabletop is noticeably wet after each spraying, but I do this outside on a warm day so that the glue drys before penetrating the hardboard.

Java 8 is not Java

Java 8 is not Java. Java 8 is a good tool. Java's shift towards being a functional language is unstoppable. Java, however, as a principled, strongly typed, object-oriented, imperative programing language is no more. I have heard the argument that as a developer I can stick with Java 7 syntax using -source 7, but this is not practical. Libraries will evolve to use use functional practices. Old bugs will only be fixed in these evolved libraries. As functional practices becomes ever more rooted in the libraries their use from Java 7's syntax will become ever more cumbersome and perhaps impossible. If you want to continue developing in Java then you and your team will have to evolve with it.

So these days I am thinking ever more about what language to move to. I think the perspective of my employer would be to remain with a language targeting the JVM. I haven't asked, but I know well enough its conservative approach to solutions. The software architect in me would like to pick a language that is more aligned with a fail fast approach to service runtime and its corollary of needing to start fast.

Lots of folks at this week's O'Reilly Software Architecture conference in NYC are favoring Go (commonly called "golang" to make the conversation clearer and searchable). That it compiles to a binary (and even a statically linked binary) for direct execution on the host is a significant boost to start fast. Starting slow would be your architect's fault: Too much in-process preparation and not enough just in time initialization or not enough externalization of functionality into a service. I will look at Go and its libraries. I do worry that is the new black, like Ruby was several years ago.

Its handheld not handsheld, people.

Finally, a sane design for a handheld device! The Kindle Oasis. Hopefully it rotates for lefties and for righties when writing notes on paper.

2D6 percentage dice

Sometime ago I found online a discussion about using D6 dice to simulate percentage dice. Unfortunately, I did not keep a link to the discussion. Anyway, I wanted to add my 2 cents and so here it is. You can use 2 D6 to compute a value over the 1 to 100 percentage range. The two dice, A and B, are treated as base 6 1st and 2nd place values. The range is 0 to 35, ie, ( A - 1 ) * 6 + ( B - 1 ), and so the percentage step is roughly 2.7%. This seems like enough granularity for most games using percentage dice. The lookup table is

Source code.

Fuck you Wizards of the Coast! Let me play Magic!

I want to practice Magic the Gathering and so using one of Wizards of the Coast's applications seems like a good way to proceed. Now remember that Magic is a card game, let me spell that out C A R D G A M E, and so one would presume that the software is not too hard to write and it would have minimal requirements of the host machine. "No fucking way," says Wizards of the Coast (aka Hasbro) 'cause we are all about you buying more stuff. So, to be clear, ...

"No, you can't use that 2012 Windows 7 machine because you don't have enough graphics RAM."

"No, you can't use that 2014 MacBook Pro because we don't support Steam for OS X."

"No, you can't use that same 2014 MacBook Pro with a Windows virtual machine either you looser."

"No, you can't use that iPad Mini 1 because, well, we hate you."

Dear Wizards of the Coast, I want to play your game. I want to buy your cards. I will even buy your card sleeves. And buy them all again every 3 months. But I am not buying another computer to play a fucking card game!

The Internet is composed of unspoken inner thoughts

When will people figure out that the Internet is composed mostly of the unspoken inner thoughts of the ignorant, confused, bigoted, depressed, bored troublemakers? Evidence? See Boaty McBoatface and Tay.

Weekend Workbench 2016-03-19

This weekend's workbench was moving the workbench. Well, what I was using was not a workbench but the end of a large table that is also used for gaming, the kids homework, boardgames, and other activities that need to spread out. I had intended to move to a small table that I bought at Ikea a few months ago, but decided it would require that I add a back and sides and shelves and ... well it was beginning to become a bureau. I not did want to put that much time into that kind of project right now.

Next to my computer desk is a second computer desk. This had an old Mac Mini that the kids used to play on and do some homework with. Since they got Chromebooks, however, they really have not touched it. Its last use was for Minecraft, but even that obsession has past. So, I decided to repurpose the desk for modeling.

I packed up all the computer equipment, including two ancient x86 towers, added overhead lighting, and moved over the modeling stuff. I am glad I made this choice. The table is 6' x 2.5'ish so there is plenty of width and just enough depth. I have a couple of Ikea flat files for holding my unpainted figure, modeling bits, and infrequently used tools so I have a good amount of storage. I will likely build something akin to Linn/Darbin Orvar's small parts organizer caddy in the coming months.

So, back to painting those 6mm Vikings and Anglo-Saxons. Which, I have to admit, I might never finish. They are just not that much fun to paint. At this point I am thinking that for 6mm figures I will send them out to be painted. At 30¢ to 80¢ per figure a few hundred would be $100 to $200. Well worth the cost.

Staples and large format prints

A reminder that Staples prints large format (eg 36"×48"), black and white, engineering drawings at a very reasonable cost. They is currently having a sale on printing 24"×36" engineering drawings for $3.59. So, the next time you want a map of your dungeon crawl, space combat40K coloring poster, or you have the need to Feel the Bern (source) get it printed at Staples Copy & Print.

Confirming my market socialism tendencies

Posted to confirm my market socialism tendencies.

A mostly disorganized and violent tennis match audience

I am going to say it. I hate the giant spaulders, that bulbous shoulder armor, that so many 40K and Warmachine figures & factions have. I like my fantasy armies to have some grounding in practicality. How can the fighter use peripheral vision to see anything to his or her left and right? Will fantasy combat newsreel footage look like a mostly disorganized and violent tennis match audience? Heads wildly swinging from left to right and back again as they attempt to keep aware of the battlefield! Or perhaps spaulders are just the result of retinitis pigmentosa becoming rampant along with other degenerative, inheritable DNA mutations -- like shoulders wide enough to hold up the damned things. I should pity them.

Ok, back to your normal work.

(And yes, I am well aware that the Cryx Bane Thralls I bought have them. And yes, I feel the hypocrisy.)

Slack, "Jump to conversation", and a global shortcut

Slack's "Jump to conversation" Cmd-K shortcut is really useful to quickly contact one of our burgeoning staff or channels. Unfortunately, Cmd-K only works when Slack is the front-most application. Further, since Slack does not provide a "Jump to conversation" menu item you can't use the Keyboard System Preferences to make a global shortcut. So I wrote a small Service, SlackCommandK.workflow [1], that when run sends a Command-K to Slack. I then assigned it the Ctr-Cmd-K global shortcut. (I need to add Ctr as Cmd-K is used in other applications and their use of Cmd-K trumps the global use.)

To use the service download it, unzip it, launch it, give permission [2], install it, and then go to the Keyboard System Preferences to add the Ctr-Cmd-K shortcut.

[1] This is how tiny it is
tell application "Slack" to activate
tell application "System Events"
    keystroke "k" using command down
end tell
[2] Since this Service is not signed you will also need to override the default restriction on unsigned applications using the Security & Privacy System Preference. Go to its General tab and press Open Anyway button next to the text
"SlackCommandK.workflow" was blocked from opening because it is not from an identified developer."

I needed a quick and dirty worker pool within bash. Easy parallelization with Bash in Linux worked well. In short,

create-a-stream-of-bash-commands | xargs --max-procs=3 -I CMD bash -c CMD
A friend observed that dogs don't know disappointment. They always try again with joyful expectation.

Where did that data come from?

I have several reporting scripts that send me email overnight. When receiving such an email it is useful to know its origins. Using something like Rundesk that centralizes a catalog of scripts to be run on machines would be best, but I am not yet prepared to install and support this tool. And so, for now, I am just adding a line at the end of each message with its origin using the command
echo -e "\nSource $USER@$HOSTNAME:$(readlink -f $0)" 
which, for the hypothetical script at $HOME/bin/reports/ on host42, outputs
Source ag@host42:/home/ag/bin/reports/

Weekend workbench 2016-02-27

I finished priming and painting the faces and arms of the 6mm Vikings and Anglo-Saxons. I like priming with black gesso as it is very matte and masks no detail, but I never seem put enough on to account for its extreme shrinkage during drying. So lots of spot touch ups were needed.

I bought a painted band of 12 Warmachine Cryx Bane Thralls at CaptainCon a few weeks back. The band consists of a leader, a banner holder, and 10 soldiers. This was an impulse purchase, something I don't normally do, and while I do intend to sell them I decided to find a use for them until then. So I am making a Saga warband and battleboard. The band was 2 thralls short to make 3 hearthguard units so bought 2 from GAV Games and painted them up this weekend. Now I need to think about the battleboard ... perhaps there is something on the Revenant battleboard that I can use.

Book of sci-fi artist Simon Stålenhag work

Tales from the Loop – An eerie account of a physics research facility gone awry

Tales from the Loop

by Simon Stålenhag

Design Studio Press

2015, 128 pages, 10.1 x 11.2 x 0.7 inches

Buy a copy on Amazon

Unfamiliar with sci-fi artist Simon Stålenhag, I was sucked into his eerie dystopian history the instant I cracked open Tales from the Loop. His hyper-real digital paintings depict beautiful Swedish country towns where snow falls in the winter and children play in nature. But each of these pastoral scenes are jarring, with intrusive machines, robots, discarded equipment, and power lines upstaging the otherwise serene landscape.

The book explains that these paintings were inspired by childhood memories of the author, who grew up in a large area of Sweden that housed an underground experimental physics research facility known as The Loop. Alongside each painting is a short essay from the author’s memory. For instance, the three cooling towers in the photo above were built to release heat from the core of the Loop. The towers, which “started like a deep vibration in the ground that slowly rose to three horn-like blasts,” remind Stålenhag of a miserable day he had with a boy named Ossian, who had lured him to his house to play Crash Test Dummies, but ended up bullying him with the help of his brother until Stålenhag went home in tears.

Each painting is accompanied by one of these short yet captivating stories, and their detailed, relatable quality had me going. As I read about Stålenhag and his best friend Olof sneaking off with a boat on a nice summer day to a disturbing machine-littered swimming pond, I kept thinking, “I must go online and research the Loop! How could I have never heard about this creepy place?” Then I quickly got to the robots. Huge dinosaur and prehistoric animal robots. And towering two and four-legged machine robots, crushing everything in their paths. Suddenly, with a “Wait a minute!” moment, I knew I’d been had. The same way I was duped when I saw The Blair Witch Project and thought, at first, that it was a real documentary. But my gullibility doesn’t bother me – what a fun treat it is to be swept into a horrific alternative reality, only to find out it’s masterful fiction.  

Stalenhag’s Tales from the Loop is striking, creepy, and captivating. It’s both an intriguing coffee table book and an engaging novel of sorts. And for me, it was an exciting ride.

– Carla Sinclair

February 26, 2016I have several of sci-fi artist Simon Stålenhag's prints. I just discovered that he has a new book, Tales from the Loop, of them out now.

A marked resemblance to this author

A marked resemblance to this author.

Weekend workbench 2016-02-20

Weekend workbench saw painting of a dozen 60mm × 20mm blue and red bases for use in learning To the Strongest while I prepare the actual figures and bases. A long time ago I bought some Baccus 6mm Vikings and Anglo-Saxons to play DBA and so am preparing them while I contemplate which 6mm ancients to buy. Which is really a non-decision as by the end of this year I am likely to have Rome and all her enemies.

Side note: While looking for map examples (and finding the kids book!) I also found these 3D models of ancient battles (DecoBoco Map Sengoku).

Unsettled note: Star Wars X-Wing is still in the box. Sigh.

Alcatraz by Jimmy Treehorn

One of the Wednesday Gamers visited Alcatraz recently and saw the giant model of the island and its buildings. The model was built by Jimmy Treehorn. Here is a collection of photographs of its construction. Very informative regards creating a large, strong landmass.

I really enjoy seeing how others build things. In software development, at least the kind I have mostly been a part of, very little of what is designed and implemented ever gets used. So, one has to have a mindset of the journey being the reward. Seeing other people's journeys is rewarding too.

Beautiful opposition & equivalence:

Taylor Mali's "Totally like whatever, you know"

Melissa Lozada-Oliva's "Like Totally Whatever"

Armada surrender

I am having a very hard time settling down and anteing up for a space combat miniatures game. After a great deal of exploration and consideration I had settled on Star Wars: Armada. Its fleet combat action with the concomitant large vessels, lots of fighters, and played on a big table is what I am looking for. And I really like the setting. So a few weeks back I bought the starter kit, but since it arrived the box has been unopened. Why?

Even after buying it I remained a little uneasy about the large number of custom components: the specialized dice, unique movement jigs, uncommon vessel stands, specific crew & vessel cards, the tokens, etc. What happens when Fantasy Flight Games discontinues the game? Can the game stand up without the support of the manufacturer? Should I care as long as I enjoyed the game for a few years (my ROI)? A specific game is not eternal afterall.

On Tuesday I was in northern Massachusetts and so drove over to Hobby Bunker to get a couple of back issues of Wargames Illustrated. The shelves had lots of X-Wing, lots of Star Trek Attack Wing, and almost no Armada. I should have asked the staff about the discrepancy, but my gut told me that Armada just did not have the following of the other games. Having others to play with is also what I want in my space combat miniatures game.

I returned Armada today, and I am back to not knowing what to choose.

ps If you are a D&D Attack Wing player and looking for more components Hobby Bunker has a dozen or more in their remainders sale.

pps Wargames Illustrated US subscription price is far too high at £80.00 / year (currently $114). So I choose to just buy a few issues a year to get my glossy magazine fix.

Update: I have bought Star Wars: The Force Awakens X-Wing Miniatures Game Core Set. Seeing the X-Wing Builder tool and some of its results, for example, herehere, and here (by way of The Woofboot Chronicles), put me over the top. I picked up the newer version of the core set as I have read that the manual is much improved over the original (and there are very few new rules or rules changes between the two).

Listen to Wikipedia

Listen to Wikipedia is wonderful and a good example of an ambient display. Reminds me of listening to the music of the stars in Carl Sagan's Cosmos series.


A year or so ago I bought the d0x3d! board game. The theme is network security and the players are hackers cooperating to retrieve stolen information and escape the network before detection. The mechanics are very similar to Forbidden Island. I finally organized my coworkers and bribed them with a selection of Rhode Island beers and we played it today. It was a lot of fun and I would recommend it to other engineering types that might be adverse to playing a board game. Most telling was Mike's comment that playing the game together was the best team building exercise we had ever done. That was not my intention, but I am glad the game play achieved that also.

Regarding the beers, the two winners were Captain's Daughter and Revival White Electric Coffee Stout.

Looking for laser cutting service

Anyone know of a laser cutting service in South Kingstown or vicinity? AS220 Labs has a low cost service (4 hours / $25), but I normally only need an hour and don't want the cost of driving to and parking in Providence. Does URI have a maker space or have plans to create one?

Playstation 4 Tax

Macintosh users once talked about the "Microsoft Tax." This was the additional hardware you needed to buy in order to effectively use a Microsoft Word upgrade. Today I discovered a "Playstation 4 Tax". This is the additional wireless networking hardware you have the buy in order to play Call of Duty with teammates and not effectively block other family members from using the internet. I am thinking my son will need to pay this tax.

FYI: How bad are things (in schools)?

Tom Hoffman's How bad are things (in schools)? posting (and the one it draws from) is related to the complexity of childhood's problems that often come up when talking about social engineering education reform. The "script" he talks about is a small computer program that when run prints the condition(s) of a random stranger. Well worth reading.

Too much beer and ardent talk

The planning and execution of 9/11 took several years to complete. Oklahoma City took 2 years. These guys' plan seemed to be based on drinking too much beer and speaking too ardently the night before. Blockade the facility and let 'em starve. I give them 5 days before they quite.

Update: Their humiliation will likely to be the spark that sets this fiasco on fire. And that outcome WILL cause serious problems for this country.

Update: Regarding humiliation, "Hungry and cold, Ammon soon found his limbs entwined with Trevor’s. He was unsure where he ended and Trevor began. ‘It’s for warmth,’ he told himself. He pulled out his Magnum and gripped the barrel, locking eyes with Ammon. Ryan held the cold steel to his brother’s naked flank. Ammon gasped with pleasure and desire." Y'all Qaeda erotica fan-fiction.