When I was ten years old, I broke a small hand mirror. For some years after, my moderately superstitious grandmother would remind me of it any time I suffered a bit of misfortune, providing me with periodic updates on how many of my seven years of bad luck I had yet to face. Two days before DConf 2018, I couldn’t help but think of her when my wife and I, having encountered a black cat the evening before, found ourselves in the wrong train car at Frankfurt station.

The train

It was an easy mistake to make. We were supposed to be in car 28, so we boarded at a door that was branded “38/28”. Inside, 2nd class was to the right and 1st class to the left. Our reservation was for the latter. We found our seats, stowed our luggage, and settled in for our trip to Munich and DConf. It was a few minutes before I noticed the big “38” on the screen of the monitor hanging from the ceiling.

I asked the first uniformed person I could find, “Are we in the right place?”. Of course, we weren’t. He informed me we couldn’t just cut through the cars to get to the correct place — we had to disembark and get back on at the other end of the train. Only, there was no time to do so, as the train was leaving in a few seconds.

“Don’t worry,” he said. “It happens.”

When the conductor came around, he assured us that all was well. The seats weren’t reserved and the whole train was going to Munich anyway. I laughed, thinking the last bit was a joke. I later learned that two trains are sometimes linked to share part of a journey and will split somewhere along the way to head to different final destinations. He was being serious!

The pre-conf jitters

A Toastmasters class I won in an essay contest after high school cured me of my fear of public speaking (prior to that, I couldn’t say two words in front of five people without going into convulsions), and after 24 years of teaching in Korea I’m perfectly comfortable speaking to groups of a few people in a small class or a few hundred at an assembly. I always know what I want to say and I’m confident in my ability to read the crowd. So when I accepted the offer to be the DConf emcee this year, I wasn’t concerned at all. Short bursts of speaking in front of 80 people? I could do that in my sleep.

But the train incident was the first in a series of unfortunate events that continued right up until a few minutes before the conference, including two embarrassing instances of my mishearing introductions and thinking a person I’d just met was someone else. By the time I had the mic in my hand, I could hear my grandmother’s voice in my head, reiterating every bit of “bad luck” I’d had since that cat had crossed my path in Frankfurt (it was actually a kitten, not entirely black, and my wife had found it adorable enough that she briefly entertained ideas on how to take it with us to Korea).

Of course, I’m not superstitious. At all. But apparently my lizard brain felt these were extraordinary circumstances. As Walter and I were chatting while we waited for the clock to countdown, I was attacked by the worst case of jitters I’ve had since high school.

It was going to be the worst DConf ever.

The conference

After the first few words were out of my mouth, the jitters evaporated. My grandmother left me alone for the rest of the conference. Barring a few minor glitches and one rather severe one, it all went rather well, though I couldn’t really tell from my perspective.

This was my first time being on the other side. Everything went by in a blur. During the talks, there were emails and Facebook messages to respond to, IRC & the livestream feed to check in on (though Sebastian Wilzbach kept a fulltime eye on them), tweets to write, and the constant concern about how to politely keep speakers in their time budget. Without the Foundation’s intern, Maria Marginean, running the mic to audience members with questions, I would have been frazzled.

Between talks, there were problems getting speakers’ laptops to display properly, questions about things I didn’t immediately have an answer for, and people to track down to resolve one issue or another. Then there were the numerous things I had planned to say each time I got up in front of everyone, only to realize after I sat back down that I had completely forgotten.

In all, I had a great time. I had less time to mingle this year, but I still caught up with some familiar folks and met several new ones. That’s always the best part of DConf for me, and that held true this year, even though many of the conversations I had were brief.

The display issues turned out not to be as troublesome as they threatened to be on the first day. The A/V team was using a bluetooth device. Plug it in to a USB port, install a driver, press the big button on the device, and you’re projecting. But a few speakers had no USB ports, some were using Linux (for which there was no driver), and some struggled to get the proper desktop to display. On the second day, the A/V guys were prepared with every adapter imaginable and, where those failed, they simply unplugged the HDMI cable from the bluetooth receiver and plugged it directly into the laptops. We still had problems sometimes with the wrong desktop showing, but in the end it all worked out.

The biggest glitch, the one we regret most of all, was the loss of the video of the first three talks. It’s something that could have been prevented with a bit of forethought. The best thing I can say about it is that it taught a valuable lesson that will be applied at future DConfs. No matter who is organizing or who is managing the A/V, the Foundation will ensure steps are taken to minimize the chance of this happening again.

In the periods that I was able to pay attention to the talks, there was a lot to enjoy.

We’ve heard in the forums about D being used in bioinformatics, but this year was the first time we’ve witnessed a DConf talk about it. The talk sparked enough interest in the subject that Vang Le was able to get some collaboration at the Hackathon that will hopefully continue beyond as he works to expand D in the field. I look forward to seeing more talks related to this industry at future conferences.

In contrast, the topic of game development is a DConf staple (DConf 2015 was the only edition without a gamedev talk). But this year was the first time someone from Ubisoft presented (Igor Česi), and the first we’ve learned about a project some folks from the company took on as a proof-of-concept, porting D to a platform Igor wasn’t allowed to name just yet. I’ve been interested in game development as a hobby for over a couple of decades now and I don’t get to meet too many game developers in my normal line of work (the first time I met Ethan Watson in Berlin I grilled him mercilessly about his job throughout dinner), so the conversation the trio from Ubisoft had with Andrei and me (mostly Andrei) about the company and their interest in D was one of the highlights of the conference for me.

Another highlight for me was meeting Martin Odersky, our invited keynote speaker this year. I’ve followed Scala from a distance for some time; it was the first place I turned when I needed to correct my lack of experience with functional programming after std.algorithm and friends came along. Our introduction was a bit rushed, though. Five minutes before he was supposed to speak, he wasn’t anywhere in or around the conference room. Walter hadn’t seen him. Andrei hadn’t seen him. Someone reported seeing him in the restaurant. That’s where I found him, banging away at the keys on his laptop. He had realized at breakfast that his talk about abstracting over context needed a bit more context to make it more understandable, given how most of us wouldn’t have the Scala background he referenced. He was just finishing his edits as I arrived, and we got him set up right on time. I ignored my emails and FB messages for most of that talk (and actually understood quite a lot of it).

Some DConf veterans talked about work they’ve been doing, like Jonathan Davis’s dxml library, Ethan Watson’s progress on Binderoo, Dimitry Olshansky’s report on his attempt to create a unified concurrent D runtime, and Steven Schveighoffer’s experience porting a LAMP application to vibe.d. Johan Engelen expanded on a blog post he wrote earlier this year, presenting a talk on some LLVM-backed goodies in LDC that people might not be aware of.

Kai Nacke presented another first for DConf, a talk about D for the blockchain, where he did a great job simplifying a complex topic. Luís Marques’s talk on breaking away from OOP orthodoxy was immediately followed by first-time DConf speaker Jean-Louis Leroy’s related talk on open methods. And live-ask.com, the subject of Stefan Dilly’s presentation on scalable webapp development in D with Angular and vibe.d, was actually put to use during the conference — it became our primary source for taking questions online, particularly during Walter and Andrei’s Ask Us Anything session at the end of Day One.

The D Language Foundation’s scholarship recipients (a.k.a. Andrei’s Students, a.k.a. The Romanian Crew) were back to present updates on their work. We heard from Razvan Nitu on the trials and tribulations of contributing to DMD, Eduard Staniloiu on a new approach to generic collections in D, and Alexandru Jercaianu on Project Blizzard, a means of performing safe memory allocation and deallocation in D. The first two of those talks came on Day Two, which was opened by Andrei’s keynote. He had been scheduled to present on static introspection, but changed his mind and instead did a deep dive on things that are vital to D’s future in a talk titled, “Up and Coming”.

Of the three talks for which we have no video, a version of Walter’s keynote on using D in existing C codebases will be available eventually – he gave the same talk at Code Europe Kraków not long after DConf. The picture is not as rosy for the other two talks. Mario Kröplin and Stefan Rohe presented an entertaining report on their experience using D for 10 years at Funkwerk and Jon Degenhardt used his first DConf talk to update us on the performance of eBay’s TSV utilities, following up on a blog post he wrote for the D Blog on the same topic. Sadly, the videos for those talks are forever lost.

We did another round of lightning talks this year. It was organized as the conference progressed, and given that everyone was using their own laptops, I was sure that trying to get them shifted on and off the lectern and properly configured would be a disaster. In the end, it all came off successfully. A couple of presenters went over their five-minute time budget and two were unable to get their displays configured, but we had just enough time to get everyone in and the display-less folks improvised and presented without their slides anyway.

Liran Zvibel (whose name I can now absolutely properly pronounce) wrapped up the last full day of talks with a closing keynote. He regaled us with a report on Weka.IO’s experience with D in the development of their storage system. It was followed the next day by Shachar Shemesh’s announcement of Mecca, Weka.IO’s container/reactor library, to kick off the Hackathon. Actually, after Shachar saw that a significant number of the audience didn’t raise their hands when I asked how many would be sticking around for the Hackathon, he requested a slot in the lightning talks for an early, abbreviated announcement.

At the Hackathon, we had audio in the room for Shachar’s talk but no video, so I set up a livestream from my MacBook (though it has poor audio quality). Ali Çehreli made sure it kept rolling and he repositioned it as needed. After the talk and the group photo (which Andrei missed!), I saw a lot of folks with their heads together, but I only know of what a couple of them were doing (maybe we’ll hear more about that in future blog posts).

The big announcement at the Hackathon was that the D Language Foundation will now start funding projects via targeted donations. The VS Code plugin code-d (and its companion, serve-d) is the first project selected. Once we achieve $3000 in donations, the project maintainer will be eligible to get that money as he meets specific milestones. Unfortunately, the new goals system at Open Collective isn’t what we expected it to be. We’ll make do with it for now, but we’ll likely be moving to an approach that allows us to set up multiple fundraising targets and count donations through Open Collective, PayPal, and elsewhere. Until then, if you’re a code-d user (or just want to support the project), head to our Open Collective page to show your appreciation and make a financial contribution to its development.

Videos of the talks are starting to appear on HLMC’s YouTube channel. Once they’re all online, we’ll set up a playlist on the D Language Foundation’s channel (you can find playlists of all the previous conferences there now).

Until next year…

Thanks to everyone who attended DConf 2018 in Munich, to everyone who supported it with time or money, and to QA Systems and HLMC Events for putting it all together.

It’s too early to say where DConf 2019 will be hosted, but plans regarding some of the generic organization details are already in the works. I expect some announcements will start coming out a little bit earlier than in the past. Stay tuned!