News for hackers. Stuff that matters.

Show HN: Goatee – Redis, WebSocket notifications in Go

https://github.com/johnernaut/goatee

Hey guys and gals! I'm learning Go at the moment and LOVING it. I was hoping to get constructive feedback on a project I'm working on - goatee - which is a notification server that utilizes Redis pub/sub and WebSockets. It's fairly bare-bones at the moment but I'm hoping to add in a lot more features as time goes on such as queueing and WebSocket channel subscriptions (via Go Socketio possibly).
( 29 comments | 40 points | on HN )
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by johnernaut on Saturday February 08, 2014 @12:30PM (#7201801)
Hey guys and gals! This is a project I'm undertaking to help myself learn Go - which I think is AWESOME so far. Any suggestions or criticisms would be appreciated. I hope to add more features as time goes on (and possibly swap out the generic WebSocket implementation with go-socketio).
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by zimbatm on Saturday February 08, 2014 @02:23PM (#7202201)
I while ago I wrote something similar with a friend for fun. Redis, ServerSentEvents and Go: https://github.com/vivienschilis/eddy/

It's not so well documented but it's practically the same except that it uses ServerSentEvents on the client and has buffers so no message is ever dropped. Each messages contains the payload, a TTL and a channel size. The TTL is used to expire a channel automatically and the channel size can be used for example to create 1-deep channels for updating values like progress.

Re:Show HN: Goatee – Redis, WebSocket notifications in Go by johnernaut on Saturday February 08, 2014 @03:03PM (#7202410)
This is really great - thanks for sharing! I'll definitely check it out more when I have some time.
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by zimbatm on Saturday February 08, 2014 @04:06PM (#7202719)
Feel free to PM me if you want to discuss the architecture/code/... @zimbatm on twitter
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by calgaryeng on Saturday February 08, 2014 @04:40PM (#7202881)
404.
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by zimbatm on Saturday February 08, 2014 @06:14PM (#7203296)
EDIT: sorry I didn't notice that the project is set to private and I don't have the perms to change it. It's not secret, contacting vivien to fix this.
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by saiko-chriskun on Saturday February 08, 2014 @06:17PM (#7203308)
404 for me as well. and don't see it on https://github.com/vivienschilis?tab=repositories
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by j_s on Saturday February 08, 2014 @07:25PM (#7203579)
may be a private repo
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by zimbatm on Saturday February 08, 2014 @08:37PM (#7203799)
fixed
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by jonpaul on Saturday February 08, 2014 @03:48PM (#7202641)
Shameless plug, but I also have a Go module named Goatee. However, it's a testing package: https://github.com/jprichardson/goatee-go It's too bad that discoverability of modules in Go sucks.
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by malandrew on Saturday February 08, 2014 @10:39PM (#7204239)
I'm not a Go developer (...yet), so I was wondering what about the discoverability of it sucks. I ask because I'm working on package management tooling for JavaScript and it's always interesting to see what is done well and poorly in other ecosystems.
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by pornel on Saturday February 08, 2014 @06:46PM (#7203441)
If you're only pushing data realtime to down the client and don't need realtime upload, then consider Server-Sent Events (http://www.w3.org/TR/eventsource/) as an option.

SSE is HTTP-compatible, so for example works on mobile networks that force port 80 to go through "transparent" WebSocket-disconnecting HTTP proxy.

Additionally you get Flash-free polyfills for IE7+ and automatic reconnection on error built into browsers.

Re:Show HN: Goatee – Redis, WebSocket notifications in Go by sauerbraten on Saturday February 08, 2014 @01:44PM (#7202074)
What a coincidence, I see you use JSON config files: I wrote a tiny package to parse commented JSON files not long ago, maybe it would be a good fit for Goatee?

https://github.com/sauerbraten/jsonconf

Re:Show HN: Goatee – Redis, WebSocket notifications in Go by johnernaut on Saturday February 08, 2014 @03:05PM (#7202424)
Awesome! I'll check it out.
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by rch on Saturday February 08, 2014 @02:02PM (#7202139)
Where's the license?
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by johnernaut on Saturday February 08, 2014 @03:04PM (#7202414)
Updated with MIT.
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by rch on Sunday February 09, 2014 @12:12AM (#7204463)
Well done. Thanks!
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by ukd1 on Saturday February 08, 2014 @02:20PM (#7202194)
Why does this have zero tests?
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by gyepi on Saturday February 08, 2014 @02:28PM (#7202217)
I have noticed that there are generally three kinds of software releases.

1. No code, just vaporware.

2. Some code, no to few tests, very little documentation.

3. Well written code, lots of tests, lots of documentation.

The first is annoying. The second sometimes contains interesting snippets if you're willing to dig. I read the code but am unlikely to use it. The last kind, when I find it, is gold. I use it, read the code, and refer back to it.

I have a theory that these kinds of code correspond to intent. Some people want to get something out (sometimes just words) and others want to provide something useful.

My zen koan is: if it were not for the chaff, you might not have wheat.

Re:Show HN: Goatee – Redis, WebSocket notifications in Go by johnernaut on Saturday February 08, 2014 @03:05PM (#7202419)
Thanks for checking out the repo! I'm hoping to have tests up in the next couple of days. This started out as a fool-around project and I wasn't actually anticipating it getting any attention. Tests are the top priority at the moment.
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by AYBABTME on Saturday February 08, 2014 @05:22PM (#7203057)
I don't understand, you've submitted the project here yourself?
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by almosnow on Saturday February 08, 2014 @01:29PM (#7202007)
That name almost made me not click on the link...
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by gyepi on Saturday February 08, 2014 @02:22PM (#7202198)
It's hard to come up with good names for software projects. I agree, some are silly, but goatee seems pretty OK.

I have an unreleased template system, also written in Go, named goatee.

I choose it because I thought it was a nice riff on moustache.

Re:Show HN: Goatee – Redis, WebSocket notifications in Go by TeMPOraL on Saturday February 08, 2014 @04:37PM (#7202866)
English is not my first language, so it might be because of that, but... I can't see any connection between "goatee" and "moustache", neither in spelling nor pronunciation. With "goatse", on the other hand...
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by sprobertson on Saturday February 08, 2014 @06:20PM (#7203320)
(The connection there is that mustache is an existing templating system, and goatee is another kind of facial hair)
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by dec0dedab0de on Saturday February 08, 2014 @06:22PM (#7203324)
I can't see any connection between "goatee" and "moustache"

A goatee is a style of facial hair.

Re:Show HN: Goatee – Redis, WebSocket notifications in Go by TeMPOraL on Saturday February 08, 2014 @06:24PM (#7203335)
Ah, ok, now I got it, thanks :).
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by almosnow on Saturday February 08, 2014 @02:44PM (#7202309)
Yeah it's cool, just reminded me of goatse
Re:Show HN: Goatee – Redis, WebSocket notifications in Go by TeMPOraL on Saturday February 08, 2014 @04:39PM (#7202876)
For me, it made this link stand out. I was thinking "am I so tired, or did Goatse-inspired something just got to the frontpage of HN?".

With dogecoins being all the craze this days, I wouldn't even be much surprised...