Journal Entries By Tag: #code

(Page 1 of 2)

Assorted journal entries with the tag #code.

The Mythic Wars Have Begun!

TL;DR — My new card game has been published, so I wrote a card database for it.

👓 2 minutes

TL;DR - I made a game and got it published, so I made an app to help people play the game, and published that, too.

ICYMI, the card game I designed and ran a Kickstarter for was finally published a few months ago.

<gratuitous-plug> It’s called Mythic Wars: Clash of the Gods, and it’s available now at many fine gaming stores, or directly from either the Excalibre Games website or Amazon! </gratuitous-plug>

I had alot of fun designing and playtesting the game, and I’m quite pleased with the finished product. While I admit that I found the entire Kickstarting and publishing process to be somewhat less fun (and quite eye-opening), overall, the fact that I can now hold my game in my hands (and see it for sale at my friendly local game store) makes me enormously happy.

My game, on a shelf, AT A STORE!

Since I am a code monkey by trade (and a web developer by choice), I wanted to complement the game’s publication with the release of a simple, searchable database of all of the cards available for it. Taking inspiration from the Gatherer, the official database for Magic: the Gathering cards (the best example of such an application that I’m aware of), I mocked up something over the course of weekend, tweaked it over the course of a couple more weekends, and soon, The Codex Mythica was born.

It’s my first publicly-available Node / Express application, so the code’s kinda ugly, but I think it has some neat features, like a responsive layout designed to work well on different screens and devices, and a category-based searching / filtering system for sorting and selecting cards (along with the obligatory word search functionality). Plus, each card has links to both its art and to the Wikipedia entry for the its subject (or the Lovecraft wiki entry, in the case of some of the Outer Gods and their minions).

It also (finally) gave me an excuse to share something on GitHub! You can find it at

<gratuitous-plug> So, if you like games about gatherings of mages, ascended beings, or worlds where war is crafted, check out Mythic Wars: Clash of the Gods, available now at many fine gaming stores, or directly from either the Excalibre Games website or Amazon! </gratuitous-plug>

(Sorry, I’m contractually obligated to get in one more of those.)

Anyways, if you have any suggestions for The Codex Mythica, feel free to open an issue on GitHub or drop me a line (I can’t guarantee I’ll implement it, but I always appreciate the suggestions).

Fatigue and Mastery

👓 less than 1 minute

Tero Parviainen has a nice piece about Overcoming Javascript Framework Fatigue, but don’t let the title fool you - much of the advice can be applied those who work (and live) in most any rapidly-evolving field. Plus, it contains one of the best quotes from Rich Hickey (the creator of Clojure) about what skills a developer really needs to have (and those skills have nothing to do with preferred language or framework):

Programming mastery has little to do with languages, paradigms, platforms, building blocks, open source, conferences etc. These things change all the time and are not fundamental. Knowledge acquisition skills allow you to grok them as needed. I’d take a developer (or even non-developer!) with deep knowledge acquisition and problem solving skills over a programmer with a smorgasbord of shallow experiences any day.

Via JavaScript Weekly

Smartphone Cryptogeddon

👓 2 minutes

After yesterday’s Senate committee hearing on encryption, wherein both FBI Director James Comey and New York County District Attorney Cyrus Vance Jr. made some pretty nasty comments about strong encryption on smartphones and the apocolyptic-problems it could bring, I thought it might be a good idea to remind everyone of what Representative Ted Lieu of California said back in April about why some users wanted smartphone encryption in the first place:

Why do you think Apple and Google are doing this? It’s because the public is demanding it. People like me: privacy advocates. A public does not want an out-of-control surveillance state. It is the public that is asking for this. Apple and Google didn’t do this because they thought they would make less money. This is a private sector response to government overreach.

[T]o me it’s very simple to draw a privacy balance when it comes to law enforcement and privacy: just follow the damn Constitution.

And because the NSA didn’t do that and other law enforcement agencies didn’t do that, you’re seeing a vast public reaction to this. Because the NSA, your colleagues, have essentially violated the Fourth Amendment rights of every American citizen for years by seizing all of our phone records, by collecting our Internet traffic, that is now spilling over to other aspects of law enforcement. And if you want to get this fixed, I suggest you write to NSA: the FBI should tell the NSA, stop violating our rights. And then maybe you might have much more of the public on the side of supporting what law enforcement is asking for.

Then let me just conclude by saying I do agree with law enforcement that we live in a dangerous world. And that’s why our founders put in the Constitution of the United States—that’s why they put in the Fourth Amendment. Because they understand that an Orwellian overreaching federal government is one of the most dangerous things that this world can have.

It might be worth point out that Rep. Lieu is one of four House members with computer science degrees, is a Lieutenant Colonel in the United States Air Force Reserves, and served for four years as a member of the Judge Advocate General’s Corps, making him (IMHO) someone knowledgeable in this area.

And it just so happens that fourteen of the world’s top computer security experts agree with him, but who’s counting.

Two Hard Things

👓 less than 1 minute

Came across this little ditty today, via Martin Fowler:

There are only two hard things in Computer Science: cache invalidation and naming things.

– Phil Karlton

Personally, though, I prefer the corollary:

There are only two hard things in Computer Science: cache invalidation, naming things, and off-by-one errors.

Too true.

The Web is Dead! Long Live the Web!

👓 3 minutes

In browsing through some of the fallout from the arrival of Facebook’s Instant Articles, I stumbled across a couple of great pieces by Baldur Bjarnason (@fakebaldur) that go a long way to explain how we got into the situation we’re in, and why it’s us web developers who are responsible.

In the first, he takes on the ongoing debate about apps vs. the web, and makes the assertion that it isn’t “the web” that’s broken, it’s how (we) web developers are using it that’s broken (emphasis his):

Here’s an absolute fact that all of these reporters, columnists, and media pundits need to get into their heads:

The web doesn’t suck. Your websites suck.

All of your websites suck.

You destroy basic usability by hijacking the scrollbar. You take native functionality (scrolling, selection, links, loading) that is fast and efficient and you rewrite it with ‘cutting edge’ javascript toolkits and frameworks so that it is slow and buggy and broken. You balloon your websites with megabytes of cruft. You ignore best practices. You take something that works and is complementary to your business and turn it into a liability.

The lousy performance of your websites becomes a defensive moat around Facebook.

In other words, if the mobile web is dead, it’s because we developers killed it.

On a side note, I wonder if this isn’t alot of the reason that millennials have increasingly preferred using apps to browsers - because mobile browsing is, for many, a needlessly painful experience.

In the second piece, he even goes so far as to explain why people can’t seem to get on the same page about how “the web” should be: Because they’re all talking about different versions of it:

Instead of viewing the web as a single platform, it’s more productive to consider it to be a group of competing platforms with competing needs. The mix is becoming messy.

  1. Services (e.g. forms and ecommerce, requires accessibility, reach, and security)
  2. Web Publishing (requires typography, responsive design, and reach)
  3. Media (requires rich design, involved interactivity, and DRM)
  4. Apps (requires modularity in design, code, and data as well as heavy OS integration)

Just to drive this point home, he makes reference to the Apple Pointer issue from earlier this year:

This is just one facet of the core problem with the web as an application platform: we will never have a unified web app platform.

What Apple, Google, Microsoft, and Mozilla want from web applications is simply too divergent for them to settle on one unified platform. That’s the reason why we’re always going to get Google apps that only work in Chrome, Apple Touch APIs that are modelled on iOS’s native touch model, and Microsoft Pointer APIs that reflect their need to support both touch and mouse events on a single device at the same time. There really isn’t an easy way to solve this because standardisation hinges on a common set of needs and use cases which these organisations just don’t share.

A more conspiracy-minded individual might even believe most of the major vendors would be better off if the standards never really do work out, since it would prevent “native-esque” web apps from cutting into their bottom-lines in their respective app stores. But I digress.

Speaking for myself, I know that I had never really considered this point when talking / ranting about “the web”. What’s more, I wonder if half of our inability to come to agreement on some of these issues is simply a matter of terminology getting in the way of having meaningful conversations. I mean, apps aren’t “better” than “the web”, because they are essentially part of (one form of) it: they use the same web protocols (HTTP / HTML) as the rest of the “browsable” web, they just use them on the back-end before glossing it over with a pretty “native” front end.

In fact, one might argue that this is the reason that the one area of web standards that has actually seen some progress in the past few months is the HTTP2 spec - an update to how data is transmitted on-the-wire, which should bring notable speed and security improvements to anyone that uses HTTP (including all of those native apps I mentioned earlier). After all, improving this part of “the web” is the one thing that all of the players involved can agree on.