Visiting the Kodama office

Let’s start with some context: I’m a Kickstarter backer for the Kodama Obsidian 3D printer. The thing is long overdue, as so often happens for hardware crowdfunding campaigns. The backer communication was spotty at best, but two weeks ago, CEO Michael Husmann started posting video updates where he gave an apology for all the delays and promised more regular updates for the future. So far, that promise holds, and I also had an opportunity to do a quick visit of the Kodama office in Berlin. 

The office is as tiny as the Kickstarter Update video shows: One room in a coworking space, crammed full with four desks and a shelf holding 3D-printers and parts. There are printers on the desks too!

me (on the right) and the Kodama Berlin team

So, right from the outset: Kodama is definitely an existing company, and I do believe they are working hard on finishing and delivering a 3D printer. 

The Furling situation clearly doesn’t sit easy with the Kodama team, and I can’t say how things exactly broke down, and right now, I also don’t care.

In the end, the situation is as it is: Kodama had to transition from „marketing, product management & fulfilment company with a trusted partner to develop and oversee production“ to „do everything on your own and from scratch“. That is a major pivot with a very steep learning curve.

So yes, they did burn more money than planned when calculating the Kickstarter, but Chris and Michael reassured me that they do have the funds to finish production and ship everything. There’s still revenue from the Trinus coming in for example, and they are also releasing a new Trinus version soonish.

Having to switch their sourcing agent in China didn’t help the schedule either, but the new agent seems a lot more helpful and active.

The Obsidian without housing, but with the penultimate version of the PCB. The build bed is a BuildTak metal sheet (covered in blue tape here) that is magnetically attached to the platform. 

Nonetheless: I saw a working printer prototype, and the team obviously understands the machine down to every detail. They know exactly which parts will end up in the production model, and are in the process of reviewing all the sourcing offers for them. 

A thing that I didn’t exactly realize until today was that they won’t use the standard nozzle/heatbreak system that you for example find at Ender type of printers. Instead the nozzle will be in a proprietary form-factor and being held by a quick-release system, so you can exchange it quite easily. Might be old information to some, but I didn’t know :)

I also quite like the quick-clamp mechanism on the bowden feeder. My current printer is a CR-10S, and the one on the Obsidian looks&feels a lot more finger-friendly!

Aktivieren Sie JavaScript um das Video zu sehen.
https://youtu.be/yaGdlTqfjWM
The printer in action

The PCB has iterated a few times and as of Tuesday, they were eagerly waiting for the courier service to deliver the latest version. The one before had minor electrical noise, easily fixed. If that one tests out fine, they’ll have the golden sample and the PCB can go into production.

But other things are in a bit of flux: The LCD UI isn’t done yet, the app is still being worked on, and most of the parts that comprise the Plus and Deluxe versions are not final yet either.

When I asked for status on the sourcing, I got an exhaustive run-on-sentence answer on how they do it, what kind of things are on the desk right now, and that things are progressing, and so on. What I wanted to see though was a simple burndown chart: We need X parts, have sourced Y, which leaves us with Z. Once we have everything, we need to do steps A. B, and C.

They obviously do know what they need to do and what the status of all these things is. But they don’t have them in a simple list where they can cross them off. Because no one has the time to make that list. 

It’s something I recognize as similar to what I’ve seen as an consultant when I was visiting overworked IT departments: They know they have a ton of work ahead of it, and so many people feeling let down and being impatient, they just hunker down and get crunching, pulling ever-longer hours and digging down ever-deeper, never actually getting the breathing room to implement the things that make work easier or faster.

So, when I mentioned that burndown chart, I think I accidentally broke through the fog: Michael immediately understood what I meant, and why it is obviously something they need, so we should hopefully see that in the next Kickstarter update.

To summarize: Those are passionate folks who really want to deliver what was promised. They are fighting an uphill battle. This is partly due to things that happened outside their control, and partly because there were probably some overly optimistic assumptions when starting the Kickstarter campaign. 

But they seem to have all the things they need to finish this. As to the when — I am no hardware production person, so I can’t comment on that. But I also understand Michaels reluctance to give any sort of specific timeline after having overpromised one time too many.

Still, I’m pretty positive that I will have my own Obsidian Deluxe eventually. To say it with 3D Realms iconic words: „When it’s done!“

Disclosure: This post would have included ramifications on an idea that a few backers voiced on the Obsidian Creatives Facebook group. Everyone at Kodama seemed pretty excited about it, as it would help avoid delivery delays for a portion of backers. Alas, that idea might very well not work due to technical restrictions, and Chris and Michael asked me to not get anyone’s hopes up, until at least they’ve cleared the unknowns on this. I think that is fair enough, so I leave that part out.

Mord nach Rezept

Vor einiger Zeit hat sich mein jahrzehntelanges hartes Bloggen ausgezahlt: Ich bekam ein kostenloses Produkt zugeschickt, mit der Bitte um Rezension.

Was gab es? Die Mord nach Rezept Krimidinner Box. Was so ein Krimidinner ist, muss ich glaube ich nicht mehr im Detail erklären, das ist ja schließlich schon seit Jahren ein Standard. Vor einiger Zeit verbloggte ich schon einmal so ein Erlebnis. Die Box von Culinario Mortale ist ähnlich hübsch gestaltet, und hat auf den ersten Blick, alles was man so braucht:

Anleitung, kombinierte Rollen- und Einladungsheftchen, Platzkarten und ein Ereignisheftchen. Die Heftchen haben einige Abschnitte, die mittels Perforation gegen unabsichtliches aufblättern geschützt sind. Hier soll man nur zu bestimmten Zeitpunkten weiterblättern. Die Platzkarten sind unbeschriftet, und in anderen Boxen fand ich auch noch Umschläge für den Postversand. Das braucht man alles nicht, und bei einem Preis von 23 Euro auch zu verzeihen, aber dennoch, irgendwie schade.

Schön fand ich die Idee, dass es je nach Spieleranzahl anscheinend andere Gruppenzusammenstellungen gibt. Damit wird sichergestellt, dass alle Mitspieler ausreichend Verbindungen haben. Warum auch diese Information per Perforation geheimgehalten werden muss, erschloss sich mir erst später: Der Mörder (oder die Mörderin) muss ja zwingend in allen drei Varianten enthalten sein, während die anderen Figuren ja ausgetauscht werden können. Weiß man das, engt es den Tatverdächtigenkreis schon stark ein.

Ein Kritikpunkt bei dem letzten Krimidinner war ja, dass die  Zeitlinie zu unübersichtlich war. Culinario Mortale splittet den Abend dafür in zwei Hälften, so dass man sich erst über die ersten paar Stunden und später über die letzten paar Stunden bis zum Mord streiten wird. Inwieweit das für mehr Übersicht sorgt, wird sich im Spiel zeigen müssen.

Die angebotenen Rollen entsprechen den gängigen Klischees des Genres, was ich persönlich ja immer gerne habe. So haben Einsteiger sofort feste Bilder im Kopf und haben etwas zum „entlanghangeln“. Wie üblich gibt es zwei Ereignisse, die weitere Hinweise geben und den Spielheften konnte ich entnehmen, dass jede Figur auch eigene Ziele verfolgt. Sowas kann sehr viel zusätzliche Spannung, allerdings auch unnötige Ablenkung bringen.

Der Box liegt übrigens auch ein Support Code bei, mit dem man bis zu drei Spielerheftchen herunterladen kann, für den Fall dass jemand das eigene verloren oder vergessen hat. Die Limitierung auf drei finde ich persönlich etwas albern. Was spricht dagegen, einfach alle herunterladbar zu machen?

Ich freu mich auf jeden Fall schon darauf, das Dinner in hoffentlich nicht zu ferner Zukunft mit Freunden zu spielen. Danach kann ich dann auch sagen, inwieweit der Fall auch wirklich unterhaltend und spannend war.

I am on Mastodon now

Those who know me, are aware that I am some sort of Hipster. As such, I of course have to be ahead of all the latest trends and topics de jour. In social media, that means that I of course need to have a Mastodon handle. In case you haven’t heard of Mastodon, here’s a short summary:

  • Mastodon is a microblogging service based on GNU-Social
  • Everyone can set up their own instance and then federate with other instances to create a global network
  • Identities are only unique within their instance. Same as email really, where you can have the same name on several domains.

So, what makes this different than, say Identi​.ca, Diaspora and similar things? For once, it already looks much more polished than Diaspora. And then it also manages to overcome quite a lot of the shortcomings that are inherent to the Twitter-clones:

  • There is an expanded limit of 500 characters for each „toot“. That is wordy enough for me.
  • There are two extra timelines that you can see — everyone on the same Instance and everyone else who is somehow connected to the people in your instance. That ensures that you see things happening and get connected to folks right from the start.
  • The federation system gets rid of the pesky free-speech vs moderation clash. More on that later.

So, what is it with the three timelines and the federation system? The basic setup is this: You have a home timeline, which shows everything from those folks you actively follow. You can follow users on your own instance, as well as those who are on any instance that is federated with the one you’re on. That basically means everyone, unless their instance is viewed as so toxic and bad that your admin has decided to get rid of them altogether. In effect, the Home timeline is what you’re used from all the other social networks. 

On top of that, you have a „Local“ timeline. That list shows all the activity from everyone who is a user on the same instance as you. This immediately shows one reason why it is important to choose the correct instance to have your account in: If the instance you join is full of gaming nerds, you will have a very different experience than if it would be full of artists or political activists.

The third timeline is the Federated one. Here you basically see everyone who isn’t local or in your home stream, but somehow connected to one of those people. Friends of a friend so to speak. The exact rules are a bit more complicated, but that is the gist of it.

I really cannot stress how useful I found these extra two timelines. While I have no idea how many people are on the same instance as I am (octodon.local, chosen because the about page is simply spot on to my worldview.),  it apparently is exactly the right size: The local stream is busy, but not too busy. And as a result, people take the time to chime into conversations there and answer open questions. On other social networks, those questions would probably either not be seen, or drowned in the sea of everything else.

Now, with every new tech project, there are of course immediate philosophical differences: One of them is the use of FollowerBots. Those are bits of software that simply follow every person on a different instance that they learn of, making sure that the activity of those people becomes visible in the instance of that bot. As an end result, the bots aim to change the behaviour of that Federated timeline from showing friends-of-friends only to showing everyone. Personally, I am not yet sure if I like this. The upside is that if this bothers you, you can for example join an instance that blocks those bots.

The other issue seems to revolve around censorship and free speech. My own stance is that you can say what you want, but not everyone is required to listen to you. And the federation system of Mastodon allows for exactly this: Everyone can set up their own instance, and everyone can give being heard a good shot. But if you spout stuff that upsets people, they can make sure that you don’t show up in their timeline.

(You should be aware though, that the whole Mastodon concept is not very privacy-oriented. There are lots of loopholes and pitfalls, and server admins can usually read everything on their instance if they absolutely want to.)

Still, the whole Federation system allows for a wide variety of needs on the whole free-speech-vs-censorship spectrum. And that allowance in turn fosters a discussion about these very things, with the results of that discussion ending up in the code and settings of the various instances. (keep in mind that the whole thing is open source after all!)

I think I’ll use Mastodon for most of my daily status update needs for a week or so now, to see where I end up with this. See the results here: https://octodon.social/@JollyOrc

Why I don’t identify as sysadmin anymore

I used to be a sysadmin. And I like to think that I was pretty good at my job. These days, my work is much more managerial with a strong emphasis on communication. The command line and I only meet occasionally, and I have to get help whenever I do something more complicated with regular expressions. Still, I apparently have retained enough skills that the Head of Cloud Operations at my current workplace occasionally says things like „oh, you can do that?“ in a positively surprised tone. But I usually do know my limits and what not to touch.

This is the story of when I failed to recognize my limits.

Knowing that I’m not an admin, this webpage resides on a server that is run by a webhosting company. They worry over security patches, uptime, sensible database configuration and so on, because I know that I’ll probably screw this up. I am allowing myself to change database tables, tinker with some of the htaccess settings and… DNS. That is one of those things that I don’t touch a lot, as there is no need for this on a daily basis.

And thus, I completely forgot about the SPF record when changing the MX entries to support my G Suite setup when I switched hosting last year. As a quick recap, let me quote Google what it’s about:

The purpose of an SPF record is to prevent spammers from sending messages with forged From addresses at your domain. Recipients can refer to the SPF record to determine whether a message purporting to be from your domain comes from an authorized mail server.

Quite the important and nifty functionality. I actually knew of it already, but didn’t realize that the new webhoster had this implemented as a standard. So while I successfully switched all the MX entries, I overlooked the SPF setting.

Alas, there are a lot of email servers that happily ignore a faulty SPF setting, even Google kept receiving emails despite the wrong setting. And you don’t really get an error message on the senders part, because no one talks back to (even only suspected) spammers. So nearly everything seemed fine: I was sending and receiving mails on a daily basis and this configuration error wasn’t discovered for nearly half a year. Only when I started to worry that one email recipient didn’t answer at all and a friend who actually is an admin looked into the matter for me.

So, the lesson here is: The Dunning Kruger effect is sometimes closer to home than you think. Whenever you do something only occasionally, maybe talk to someone who does it regularly, to make sure that technology hasn’t advanced past your own experience in the meantime. And if you use G Suite, here's how to set the SPF correctly.