The Stochastic Game

Ramblings of General Geekery

Announcing Jouvence

Over the holidays I started 2 hacking projects. This is the first one.

Fontaine de Jouvence

Jouvence is a Python library for parsing and rendering Fountain documents. If you don’t know Fountain, it’s basically Markdown but for writing screenplays. It was created by John August, Nima Yousefi, Stu Maschwitz, and a few other contributors – check out the official website for more information.

The code is, as usual, on both BitBucket and GitHub. The package is on PyPi. The API documentation is hosted on ReadTheDocs.

Here’s how the “Big Fish” screenplay renders with the default HTML renderer:

Big Fish

Of course the whole point of Jouvence is that you write tools and renderers of your own. The Jouvence parser returns a structured document object model that makes it easy to analyze, manipulate, or render screenplays any way you want.

For me, this let me add Fountain support to Wikked, my flat-file wiki engine.


Happy New Year!

Happy new year and other such holiday things to the 3 people who read my blog!

I was in San-Francisco for new year’s eve and it was quite lovely.

Golden Gate

Apart from the sake of posting something new, this post is also to show off how PieCrust’s admin panel can now upload page assets (in this case, that would be the picture above… check the URL, it’s hosted right here). This feature will be part of the impending 2.0 release, but you can get it by pulling the latest from BitBucket or GitHub as usual.


Is Bluetooth Even Working Correctly?

I’ve been critical of Bluetooth before. In my mind it’s nowhere near ready to be the default way we listen to music… but when my dear Bowers & Wilkins P5 headphones1 started exhibiting balance problems, the nice people from the support department offered, among different options, to replace them with a discounted Wireless P5 model.

I figured what the hell, let’s try this brave new world where everything has to run on batteries and on different versions of different protocols.

New headphones

Now you must realize that those are pretty much premium Bluetooth headphones. I got them at a 50% discount, but they otherwise sell for around $400. Even then, they’re much better that I expected. Barely heavier than the wired model, and with excellent battery life. I noted a few glitches in audio playback but I haven’t checked whether wireless was to blame, or whether it was the streaming or player app being at fault.

The thing that I was mostly wondering about was how it handles multiple devices. Our wireless speakers at home2 have a lot of trouble figuring out what phone (between mine and my wife’s) to play from. My headphones would typically – on a daily basis – switch between my phone (for music and podcasts) and my trusty, original Nexus 7 tablet (which I use to run Plex and watch TV shows on the go). I sure didn’t want to go through all the trouble we typically have to go through with the speakers.

Well I can report that it works fine, but not in the way you would expect.

I have no idea how or why, but my headphones just won’t connect automatically to any of those devices. I have to connect to them manually3, which is frankly fine by me since it takes slightly less time than untangling a cable4 and plugging it, especially on Android where you can do a lot more system automation than on iOS (on my Nexus 7 it basically takes me a swipe and a tap, whereas on iOS I don’t think there’s a way around going in the Settings apps manually).

However, the simple fact that I have no idea if this is a feature or a bug should tell you all you need to know about the state of Bluetooth.

  1. The first generation, not the new Series 2. I’ve had them for a few years. 

  2. A couple of JAMBOX’es, which seem to have been discontinued, since there’s not much on the Jawbone website

  3. “connect”, not “pair”. They stay paired with both devices. 

  4. I developped a slightly quicker/dirtier version of this technique over the years and my headphone cables pretty much never get tangled. 

Missing The Point Again

I’ve seen quite a few Apple bloggers link to this piece from Adam Geitgey about the new MacBook Pro, and how it’s supposedly “kind of great for hackers”. All because you can plug a lot of different things thanks to USB-C ports1.

Huh… OK?

Well first, it’s great to see Apple users realize the benefits of standard ports – and based on how Adam seems to easily use lots of peripherals without any apparent problem, it’s good to know that some concerns about the compatibility landmine of USB-C may be overblown. I thought it was a given, that standard ports are better, and that yes, Apple ditching proprietary ports is an excellent (although baffling in some ways) development. But MacBook Pros having USB ports of any version is not a new thing. The only new thing is that they upgraded to the latest version of the standard… should we celebrate them for that? Isn’t that like saying “thank you” to cars stopping at red lights?

I feel like people are missing the point. Again.

The problem isn’t whether the new MacBook Pro is a good machine or not. It is a good machine. It’s the best MacBook Air that Apple ever released. It’s arguably an excellent MacBook, too. It’s just a shitty MacBook Pro because, in many ways, it’s a downgrade from the previous iterations – something thatApple does quite often.

But of course, it seems to pay off. Like I said before, Apple is now focused on mass consumer markets.

Someone (I don’t remember who) said that “Pro” now meant “Premium” in Apple’s line-ups. You don’t necessarily get a more complicated machine anymore. Instead, you get a fancier and pricier one. That’s arguably why they called the big iPad an “iPad Pro”. Not “iPad XL”, or “12” iPad”, or “the new new bigger iPad” or something.

Pro” is now the opposite of “Mini” and “Air2 – not the opposite of “consumer” or “simple”.

  1. You know what would be great for hackers? For Apple to stop changing, obfuscating, and removing the Unix-y parts of macOS. So we can keep hacking things. Plugging a peripheral into an USB port is not what I would call “hack-y”, unless I’m some character in a Hollywood blockuster thriller about being chased on the Internet or something. 

  2. Air” actually doesn’t mean much anymore either. It’s the middle point in the iPad line, but the lower point in the MacBook line. 

From New York To Stockholm

I’m back from some travels – plural, which is extremely rare for me.

There she is

New York City (first time visit) followed by the usual annual trip to Stockholm for EA’s Frostbite DevDays conference, where various game devs from the company converge from all around the world to chat and drink.

View from the conference hotel

EA is a weird company in the sense that, for a video game company, people tend to stay there for very long stretches of time. It’s very common to talk to people who have been at EA for more than 10 years – at EA Vancouver, DICE, Bioware, whatever. This makes it difficult to find new points of views on technical problems… although, well, maybe it’s the same in many other big companies like Activision or UbiSoft, I don’t know.

Either way, I was happy to meet several people who not only have shipped AAA games at other companies, but also worked on those games’ cameras – which is my current area of interest, being in charge of the Frostbite Camera System. Finding people who work on (and care about!) cameras is a challenge to begin with, seeing how little infrastructure and long term investments are generally done on that crucial aspect of any game (more on that in a future post), so I’m pretty happy with this year’s conference for that, at least.