

First Go challenge – binary decoding - mattetti
http://golang-challenge.com/go-challenge1/

======
tomjakubowski
The story in this challenge reminds me of one I heard from Peter Samson, one
of the original MIT hackers who worked on their PDP-1, at the Computer History
Museum. Back in the early 1960s Peter, a classical music buff and musician in
his own right, wrote a four voice music synthesizer program [1] - one of the
first ever written, I have to think - for the PDP-1 and arranged several
classical and baroque pieces for it.

Sometime in the 2000s, I think, when the Computer History Museum was restoring
its PDP-1, they stumbled on some tapes or something that held inputs - entire
classical works like Mozart's _Eine Kleine Nachtmusik_ \- for Peter's
synthesizer. Unfortunately they couldn't locate a copy of the synthesizer
program itself but, being one of the OG hackers, Peter was able to examine the
data on the tapes, reverse-engineer the data format he'd invented decades
prior, and write a brand new synthesizer for the PDP-1 that was compatible
with the original tapes. All of those adages about data structures being more
important than code suddenly rang true in a very real way :-)

He told the story over a live demonstration of the PDP-1 playing music with
his program - it's a wonderful experience and if you have the chance to see
it, you shouldn't pass it up [2]. If you have a chance to see him at the
Computer History Museum, don't pass it up! Steve Russell joins him with a
_Spacewar!_ demonstration (you get to play it!) and they're happy to answer
questions and recount stories about their old days in the MIT Tech Model
Railroad Club :-)

[1]:
[http://en.wikipedia.org/wiki/Harmony_Compiler](http://en.wikipedia.org/wiki/Harmony_Compiler)

[2]: They have the PDP-1 demo on two days of every month, twice a day.
[http://www.computerhistory.org/hours/](http://www.computerhistory.org/hours/)

~~~
nih
Demo @
[https://www.youtube.com/watch?v=d6iXI9X62g8](https://www.youtube.com/watch?v=d6iXI9X62g8)

------
mattetti
Challenge author here. There is nothing Go specific to the challenge itself. I
really want to encourage everyone to try solving the problem. If you don't
like, know or care to learn Go, try solving the challenge using Rust, Ruby,
Scala, Elixir, JS, Pascal, asm or whatever language you want to play with.

While only Go submissions will be evaluated and rewarded, I would personally
be glad to look at solutions written in other languages.

~~~
mvanotti
Thank you for this challenge :)

It was easy to solve, but I'm struggling trying to get the design right, also
trying to be more robust with the parsing (there are fields that can be
interpreted as uint64, int64, int32, uint32, etc).

Most of the hex editors available for linux are broken, ghex for example, the
"grab these 4 bytes and interpret them as float32" functionallity doesn't work
at all. I don't know what people who work doing this kind of things use.

~~~
IndianGuru
You can join the golang-challenge channel on slack which is a room for people
who are going to participate in the Go Challenge -
[http://t.co/n6EesY9Mmv](http://t.co/n6EesY9Mmv)

------
shurcooL
I quickly looked over the challenge, and it looks neat.

I really like there's a test suite included, so you can very easily/quickly
verify your solution solves the problem (and feel rewarded).

------
IndianGuru
Organizer here. We definitely do require community help to build a submission
mechanism. Anyone?

~~~
Artemis2
Make it the second challenge!

~~~
infogulch
How do you submit your project for the second challenge though?

------
kid0m4n
Would love to see some creative solutions to this problem :)

------
SebastianM
Never worked with binary files before...can anyone give me more hints to work
with binary files in general?

------
bobisme
_Might_ want to change that one discount code not to be "byfag25."

~~~
IndianGuru
Have mentioned this to the sponsor Packt Publishing.

------
tumbudu
better way to conduct challenge/competition
[http://www.codingame.com/home](http://www.codingame.com/home) golang is
officially available language..

------
hurin
And the prize for the best go code is... A bunch of books about learning go!

~~~
IndianGuru
My personal opinion is the fun I would get in solving a challenge rathen than
winning a prize. However, you have a point there. At the same time, the
sponsors are providing other prizes too. There are some participants who are
still learning Go and attempting the challenge.

------
politician
> Create a zip of your Go source code and send the zip file to gochallenge
> [at] joshsoftware.com by the 15th of the month (midnight IST, 11:30 AM PDT).
> No new solutions will be accepted after that.

Presumably, March 15?

~~~
IndianGuru
Yes. It's 15th of March. Shall update the same. Thanks.

~~~
politician
I know it's a silly question, but pages like that one will live on the
Internet for longer than the contest.

------
pravj
Are there any bonus points for early submissions?

~~~
IndianGuru
No.

