Vacationals

2016-08-30

For about ten years now I've been taking my summer vacation completely offline. Actually, I try to stay as analogue as possible. My phone becomes a regular phone though I'll still use it for mapping and checking the weather. No playing games, no browsing the web, no reading the news, no keeping up with social. Not even private messages.

On that note, screw you whatsapp and twitter for ignoring the android sync settings. I had to explicitly turn them off through settings before they wouldn't sync whenever I did turn on internet access (for mapping/weather). That's quite annoying.

If you've never tried this I would encourage you to try it. Or don't. It's not a principle or way or living, not something I actively want to prophetize. It's just something I like to do. An interesting change of events. And while I have no problem doing it during the vacation I'll be very happy to get home and back online ;)

One thing that it leads to for me is inspiration. I'll come up with new ideas, projects, or whatever. And I'll be anxious to start or continue them.

This year I've finished the book was I was reading; "Hacker's Delight". The book started really good for me with the bit twiddling hacks. But then it went on with too many pages on doing various types of multiplication, even more on division. And in the end it just went a bit too far with arbitrarily random obscure algorithms. I guess I was just hoping more of the bit hacks and less of the generic hacks. And maybe more of a compiler thing, where it would actually show the cpu instructions for certain atomic operations (rather than state "this thing can be done in 7 instructions, or 6 if you can do it that way"). I am going to search for a book that's more like that because if nothing else it drew me closer to wanting to know more about low level compiler stuff. And the bit twiddling hacks were also super interesting to me so reading the book certainly wasn't a waste of time for me.

Besides reading a lot, I tend to do a lot of brain puzzles (there's one Dutch brand, "Denksport", which literally translates into "Think sport") that has a series of brain puzzles that have been watered down the past fifteen years (super unfortunate) but is still the best one out there. And since like forever I've been doing them. Their only brain puzzle release, "Logisch Vakantieboek", that's still fun is too easy for me though. That kind of sucks. And I don't expect them to change back to the old ways any time soon :( I'm not sure where the whole brand is going to or how well it does but they clearly don't think brain puzzles are an interesting market, apart from stupid sudokus. Blergh. Denksport actually put some examples of the kind of brain puzzles online for free which is nice. This series doesn't have my favorite puzzles but at least it's less boring than the sudokus or "binary puzzle".

The other thing we tend to do during vacations is playing games. And buying some new ones. This year we bought Doomtown, OMG (oh my goods), Skye, and both the expansions for Revolver. I also got a free promotional starters deck for Magic the Gathering. That was perfect because I was actually asking for a starters deck like they did a long time ago. Didn't even expect to get this small starting deck for free. I've played magic a long time ago and wanted to introduce it to my wife but I wasn't certain whether she'd really be into it. So I didn't want to splurge on some decks because there isn't really anyone around me to play magic with other than my wife (well, or my 9 month old ;).

The "Magic The Gathering" trial fizzled, kind of as expected. But the promotional deck is great, other than that they could have done a little better job at keeping it simple(r). She didn't like it so I'm not going to be playing more MtG any time soon.

"Doomtown" is a nice game (think a simpler MtG meets poker) and we both liked it. Apparently it used to be a collectible card series but I hadn't heard of it before. There are some catches to the game, though, mostly related to how texts are weird or should use icons and how certain terms are used. For example, they use the term "boot" as MtG uses "tap" (put card sideways, disabling certain actions). But that makes for confusing texts when you have cards like "boot this dude at this location". It doens't say "remove this dude" because it means "tap this dude". Oh yeah and the came explicitly calls all character cards as "dudes", even for female characters. I think that's a mistake. Anyways...

"Isle of Skye" was a nice game, a mix between "Carcassonne" and "You're Bluffing!". It has a pretty good limit on time (it only uses 6 rounds rather than "use all the tiles" in Carcassonne), good replayability because you don't use all content every game, and works well with two players.

"Oh My Goods!" is a simple game that's similar to "San Juan (the card version of "Puerto Rico"). My main beef is the lack of player interaction. You're pretty much playing for yourself and the only time you can thwart your opponent is by buying one of four cards before the other player does. Which is already pretty end-game and not super duper important. So that was a little disappointing. At least the art is good.

Of course that's not all we do on our holidays, this is more the downtime idletime stuff. Although admittedly it turns out that the amount of this type of time goes up once you have a kid. You're tied to its sleeping schedule which means you either have to disturb that schedule (which, as a parent, you'll know is only going to backfire on you later that day) or you've got to wait for that two hour window and hope the kid catches some sleeps in the car/stroller/whatever. It worked out fine it's just a little adjusting from how we used to do vacations :)

So what did I get inspired to do? Three things, and one of them has a dependency on an other.

The puzzles and my recent work on a finitedomain solver made me realize that most of the puzzles I've done can fairly easily be solved by the solver. So I want to code some poc's of puzzles with a simple ui where the solver solves them, well or tells you that's impossible.

The book inspired me to dive deeper into compilers. I want to take a stab at a compiler for JS. This should be different from what, for example, the Closure Compiler does. That's mostly minifying (iirc). I want to build a tool that could ultimately compile JS to WASM, or something like that. But initially it should try to optimize certain things. This will require some static analysis but for example rewrite array loops (for (var i=0; i<arr.length; ++i) ...) to cache the arr.length. Or cache repeated property access in a local variable. I'm not really sure how many gains you could get this way but it'll be fun.

An ES6 compiler will require an ES6 parser and ZeParser2 only does ES5 so that's something I'll finally have to do first. I'll have to do this regardless as the parser is the base for many of my tools. It's just gonna be a lot of work to get it right and perfect and fast. Looking forward to it ;)

One other experiment I'd like to do is a packer that strips imports and exports from ES6 code and puts everything together, if it detects this is possible. This should lead to highly minifyable code and much smaller builds. The idea isn't new though I'm not aware of an es6 version for this. Implementing this idea (safely) will also require an es6 parser so that's certainly a priority.

It's interesting that when you get back to vacations it seems like an eternity has passed. It's only been a week!