Shared posts

01 Aug 19:41

The Three Laws of Programming Language Design

Joe Armstrong(of Erlang) while reviewing Elixir(Ruby like language that compiles to Erlang Virtual Machine) states his Three Laws of Programming Language Design.

  • What you get right nobody mentions.
  • What you get wrong, people bitch about.
  • What is difficult to understand you have to explain to people over and over again.

Some language get some things so right that nobody ever bothers to mention them, they are right, they are beautiful, they are easy to understand.

The wrong stuff is a bitch. You boobed, but you are forgiven if the good stuff outweighs the bad. This is the stuff you want to remove later, but you can’t because of backwards compatibility and some nitwit has written a zillion lines of code using the all the bad stuff.

The difficult to understand stuff is a real bummer. You have to explain it over and over again until you’re sick, and some people never get it, you have to write hundred of mails and thousands of words explaining over and over again why this stuff means and why it so. For a language designer, or author, this is a pain in the bottom.

01 Aug 19:40

Photo













31 Jul 17:11

Spike Dislike 2

by Rob Remakes

spoke

There’s this thing that goes around game dev circles about finishing your game. Not in the “getting to the end of it” sense that most of us all know and love, that’d be too simple. It’s sort of a short hand for explore ALL the things and then call it a wrap. So y’know, can you rinse everything valuable out of a mechanic etc…

Well, good news. Spike Dislike 2 explores all the things and calls it a wrap. To be fair, it pretty much did that in Spike Dislike 1 where Jayenkai ably rinsed the jump over/under the spike thing really fast to get a big number going up first time round. Spike Dislike 2 laughs at the idea of merely finishing something in this sort of sense, no, we’re out the other side here and Jay is kicking videogame sand in your face screaming HAVE IT, TAKE IT, HERE IS ALL THE THINGS I THOUGHT UP AND ONE OF THEM CONTAINS A BEE. A BEE DAMMIT. HAVE A BEE.

A bee.

And a boat.

And a basketball.

And hats.

I know, you’re sitting there now reading this looking at me funny but Spike Dislike 2 is a really tremendously marvellous thing. It takes this one simple idea, jump over/under spikes fast for big numbers and stretches it, painlessly, across so many different modes that I can’t even be arsed trying to tally up how many are in there. When you get bored of just jumping over spikes, why not change into a sheep and jump over some fences? Why not get in a boat and avoid some seagulls? Why not try it with 3 lives? Why not try it with just one and you’re out? Why not be a bee because bees are for everyone? And why not make it so utterly playable, so utterly compulsive that you’ll call Jay all the names under the sun for making something that’s twitchy levels of fantastic?

Yes, why not?

And then, fuck it all, let’s have some hats. You can put a hat on your balls in this game. A hat on your balls. I put a beanie hat on mine, it’s very snug and warm.

Spike Dislike 2 is one of my favourite things I’ve played lots of this year. It is, have no doubts, not a good looking game but it is a videogame in the purest of pure senses and it is all the things a videogame doing the thing it does could be and then some more because no-one gives a fuck. No-one can stop Jay from adding a boat and seagull mode short of chopping his hands off and really, who’d want to anyway if this is the end result?

Spike Dislike 2 is fantastic. Get it. It’s 69p on the app store and absurdly entertaining. Other versions are available.

31 Jul 15:15

Teoria: A JavaScript Music Theory Library for Working With Notes, Chords, and More

There have been a lot of music related projects in the JavaScript community lately, some of which I’ve posted about.  Teoria is an interesting library for working with music theory in JavaScript, and would be a good fit for sheet music editors and viewers, and other music composition applications in the browser.

Teoria has several object types: notes, chords, intervals, and scales.  Each one of these objects can be created in various ways through a simple chained interface, and then operated on to get information about them, and transform them in various ways.  For example, you can create a note from a string representing the note name (such as A), or from a frequency, piano key, or MIDI note number and then convert that note to a different one of those representations.  Similar things are possible with scales, chords and intervals.  There is a whole host of methods and operations available, so check out the Github page for a full list.

There is a fun demo of the library as well, which shows an interesting application where the user can enter a chord, and see a visualization of the sound waves it will produce.  You can drag the waveform to move it around and hover over the individual lines to see what the individual notes and frequencies are.  The visualization itself is all SVG based.  It’s an interesting showcase for what information Teoria can extract and produce and it’s pretty fun to play with, so definitely go check it out!

After seeing the MIDI.js sequencer, the VexFlow music notation language, and now the Teoria music theory library, many of the pieces for building a high quality music composition application like Finale or Sibelius in the browser are here, so I wouldn’t be surprised to see one in the coming months.  Other interesting applications that could be built using these tools  and others such as the Web Audio API and the Web MIDI API include smart visualizations that know more about the music being played, music production applications like Logic or Pro Tools, and many more.  We’re only just getting started in the audio space on the web, and it’s great to see more building blocks like Teoria appear on the scene!

You can check out the source code for Teoria on Github and find the demo on their website.