

GitHub is a fish bowl - jamesmoss
http://wynnnetherland.com/journal/github-is-a-fish-bowl

======
3pt14159
Are there any really good Python or Ruby projects on github that have
consistently atomic commits and a TDD style of coding? I would be cool to
narrate a project like it was a sports event.

~~~
astrodust
Most could be narrated with "Oh, now he's gone and done it, he's committed a
patch that totally breaks the regression tests and introduces a major
incompatibility bug. Yeah, this is going to be trouble down the road if he
bundles up this and releases it as a...oh no. Are you seeing that? It's up,
it's being downloaded already, and it's only a matter of time until the issues
start coming in. Ted? What's your take?"

~~~
3pt14159
"It looks like he's heady towards the deadly Factory Factory Factory if he
isn't careful, Ted."

"Oh yeah, it's either that or proxy objects all the way down"

"Oh whats this?! He's pulling out an FSM, what a good move"

"I like the way this is headed, let's see if the tests pass"

"Ohhhhhhh, noooo, the parallel processing tests all broke; that's why they
call it a Finite State Machine, not a Whole Bunch of States Machine, Frank."

"How is he going to fix this one up?"

"Queues?"

"Yeah, probably Queues."

"Oh no rookie mistake, he's using the built in Queues, not the multiprocessing
Queues, this is going to cause some nasty bugs"

~~~
astrodust
"Looks like the referee has to jump in here. We've got a memory allocation
error. That reference was freed twice and now, yeah, that's his third yellow
card so he's going to have to hit the bench and sit this one out."

"Ouch! That's got to sting. At least it's not like last game when number 49
got into a heated argument after he got a red card for forgetting to escape
SQL."

~~~
mapleoin
So, seriously now. Can we do this? It seems like a lot of fun!

------
oflannabhra
I would really like to see case studies be a result of GitHub. There is so
much data available to us thanks to Git, that it wouldn't take that much
besides some commentary here or there to have a GitHub repository be a very
powerful teaching tool.

A good programmer's "DVD Commentary" would teach me a lot, I think.

------
BCM43
_After all, if we were only interested in deconstructing finished products,
there would be no Food Network._

Not quite. The food network is mostly about recipes that have already been
created and tested. The equivalent would be putting up the git commits after
the project is ready.

------
lukev
Am I the only one who almost always starts projects as private repos and only
puts them public once they're at a reasonable alpha or beta stage?

When I'm still regularly trashing all my code and starting over, it doesn't do
anyone any good to follow the repo.

------
tomjen3
That's a nice thing about bitbucket: private repos. Release when you want to.

------
pnathan
I have been very happy with github. I've been using it for the last few months
and it's worked pretty well. Specially for hg-heads like me. :-)

------
billpatrianakos
It's really intimidating for new coders to have their work publicly available.
The programmer community are very harsh critics and I know I don't want
someone to come looking through my code and call it shit. I know it's not very
likely but it's still a fear however irrational.

There are times when you hope someone will find your project useful but know
(or probably feel) that everyone else is better than you so you end up
qualifying your work with some "it's not finished" or "I know this is crap
but.." statement.

It's weird because we have this fear (I keep saying we and I'm not sure if
this is a universal sentiment but it definitely applies to me) of harsh
criticism but we're also proud of our work and hope its good enough for people
to find useful. I guess the solution is to keep your public repos but be
careful how you promote them outside of GitHub and "good" programmers also
need to be just a bit nicer with the tone of their criticism. It takes guts to
show off your work I think.

~~~
FuzzyDunlop
The ideal solution is to be less talk, more action. You can fork a repo in
Github and submit a pull request when you're ready. Instead of typing out a
long complaint, clone the repo and try and fix it if you can. Then push it
back, and you've solved the problem for everyone once it's done.

Realistically, though, I think you should avoid putting your code in the
public domain until you're ready for the criticism or the feedback. Working in
the open right from the start and expecting people to stay hush until you
personally announce it is a stupid idea if you're concerned about people
spreading the word too soon. You're not going to be able to issue an embargo
on your work until a set time.

In this respect, why would you even push your code to a public Github repo in
the first place if you objectively knew it wasn't ready for public
consumption?

~~~
leoedin
Github offers some pretty good version control stuff that git alone doesn't.
There are alternatives (bitbucket offers private repos with similar
functionality), but if you like the functionality of github and don't want to
pay to keep your project private, then it's really your only option.
Fortunately there's so much on github it's probably quite unlikely that
anyone's even going to look at your code unless you're already known for doing
another project.

------
jQueryIsAwesome
There should be like a "close" option in github once you create a repository,
a project that anyone can fork but can't follow and it means that the project
is not ready for prime time.

~~~
rue
A technical solution to a social problem.

(The problem isn't that people follow or fork WIP repos; it's that you care
whether they do or not.)

