37 comments

[ 3.1 ms ] story [ 88.2 ms ] thread
Would love to see some creative solutions to this problem :)
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.

does splice use go?
Yes Splice uses Go for everything backend related (web APIs, file parsers/decoders, audio processing) AngularJS for the frontend, ObjC & C#, C & C++ for native desktop/mobile apps.

We are always looking for talented backend engineers to join our exceptional team.

http://jobs.splice.com/ has nothing listed for backend

where should i reach out?

We don't actively advertise this position, maybe we should. You or other candidates should feel free to contact me at matt/at/splice.com and dont forget to attach your challenge solution.
The submission instructions mention including your full name, country of residence, and twitter handle. I don't have a twitter handle, will my submission still count? Do you accept anonymous submissions?
No issue. You can include your full name and country of residence. We are accepting anonymous submissions but then these participants are not eligible for the prizes.
> try solving the challenge using Rust, Ruby, Scala, Elixir, JS, Pascal, asm

Java is strangely absent from that list :)

Java is totally fine, just not a language I expect the fancy HN crowd to pick for a programming challenge (Note that I also didn't mention Python, C# and plenty other good languages).
Glad to read you think I'm a plain Python programmer. Fancy code is hard to read and maintain. ;)
Have a couple of clarifications about the problem. Who should I contact about that?
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
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.

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
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).

> 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?

Yes. It's 15th of March. Shall update the same. Thanks.
I know it's a silly question, but pages like that one will live on the Internet for longer than the contest.
Organizer here. We definitely do require community help to build a submission mechanism. Anyone?
Make it the second challenge!
How do you submit your project for the second challenge though?
Could you clarify a couple of things about the problem for me?
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

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

Awesome story thank you so much for sharing!
Really interesting. Thanks for sharing.
Are there any bonus points for early submissions?
And the prize for the best go code is... A bunch of books about learning go!
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.
Never worked with binary files before...can anyone give me more hints to work with binary files in general?
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
Might want to change that one discount code not to be "byfag25."
Have mentioned this to the sponsor Packt Publishing.