"Rap Genius for Code" might be an amazing pitch for avid users of Rap Genius. I wouldn't know. I don't know or care exactly what Rap Genius is, even though I remember there was a recent controversy involving Rap Genius. (It's got something to do with rap music and lyrics? Not my interest.)
If you can explain your site in words that don't require very specific domain knowledge, I think that might broaden appeal.
I think this way of pitching is dangerous for two reasons:
1. Many potential users of the product (Kurikku) will not know about the thing it's being defined in relation to (Rap Genius), and will not understand that they should check it out
2. Those that do know might make a different comparison than you. I might say "It's like Github for music!" and you will think "Oh, so you put in scores and people can collaborate -- just like with code on Github!", but I was thinking "You store your personal music library in the cloud and you can clone it to all your machines -- just like with code on Github!" While you intend the comparison to be a way to explain a lot with just a few words, in reality it might be interpreted all wrong, giving users entirely unsuitable expectations when checking it out.
So, please try to communicate clearly about the thing you have made using every day words. Good luck :)
I usually have questions regarding specific lines in songs (I'm not american, so I miss a lot of pop culture/slang references), and Rapgenius provides an easy way for me to understand why something was said.
Here's an example, from Nas' It ain't hard to tell:
"I drink Moet with Medusa, give her shotguns in hell"
I know Moet and Medusa, but I didn't know what "giving shotguns" meant. So I go to Rapgenius, click that line and it says: "To “shotgun” is to inhale from a pipe or other smoking device, followed shortly by an exhalation into someone else’s mouth."
Ah! So he exhaled weed smoke into Medusa's mouth, effectively stoning her. That was smart. Cool.
----
So imagine I'm reading official documentation, say "10 minutes to Pandas"[1]. I come across this line:
df = pd.DataFrame(np.random.randn(10, 4))
And I don't know NumPy. The tutorial doesn't explain what np.random.randn is doing, because it's not a NumPy tutorial. Of course I can search for that online, but in a "RapGenius for Code" all I would have to do is click the line.
Nothing revolutionary, but it is a valuable idea and worth a shot. Of course, RapGenius could just launch CodeGenius and get that market instantly.
Rap Genius = crowd sourcing explanations of rap lyrics (and poetry [1], and other literature). It's brilliantly useful, loved by many, and has great traction.
Kurikku = crowd sourcing explanations of computer code. Also brilliant useful, probably won't have as much traction as Rap Genius just b/c there are many more people in the world interested in lyrics than in computer code, but it will probably find a StackOverflow-level popularity, which would be quite a success.
I still believe that "Rap Genius for Code" is the best pitch for the HN demographic. I instantly knew what it was about and I presume a lot of active users here will. The unawareness rate is probably small compared to something like "Source code with annotations" which doesn't really tell what it's about.
A lot of the commenters on here are looking at this in terms of normal code commenting or something similiar. However, for something more akin to a tutorial, having in depth line by line breakdown in a easy to ingest manner is very nice as a concept.
I love this idea. It's like crowd-sourcing code comments! That has tremendous education potential, especially for people like me who learned by looking at other people's code, copying & pasting it, then tweaking it.
And the beauty here is having people other than the original programmer add comments. There are a lot of open source projects on which I'd love to see this.
There are lots of ways to extend this concept too. I echo what joeconway wrote - having a way to filter and view the comments in a tutorial-like fashion would be great. Having a way to somehow submit patches and fixes back to the original source could be cool too. And offering this as a tool for computer science professors, programming instructors, and other educators (e.g. giving the comments in their example code a nice UI, almost like a documentation generator) could be interesting.
FYI, I just noticed the other tool, Noted Code, in the comments here. I prefer how Noted Code puts the comments and code side-by-side. Perhaps there could be a toggle for both views.
This would be a lot more helpful with some github integration. If you did some kind of proxy like saved.io. You could do kirukku.com/github.com/path/to/repo/file.css and add annotations there instead of keeping a separate environment.
This is a lot more difficult than you might think. I spent a fair amount of time implementing the solution to keeping the annotations in the right place when the code changes.
My first thought was, "it doesn't have github integration?" Great prototype idea, github/gitorious/bitbucket/etc integration would be the killer feature for a killer app.
It would be great if you could integrate with an IDE in some fashion. I'm thinking that this could be a way of formatting comments in code that then becomes beautiful annotation when viewed in your platform.
Lots of blinking and flashing when I mouse over stuff, and it's not clear what includes a comment and what doesn't.
Also I really liked that documentation thing someone showed us a while ago... It put code on one side and annotation paragraphs on the other, and despite being very simple I think it did a very good job of making the code and annotations easy to read.
[edit] Oh nevermind, I understand.. the colors indicate a block of lines that relate to a single comment. I think that would be clearer if the color didn't break between every line. It's still tricky mousing over things though. If you go straight down from one line to the next, the comment doesn't change. You have to mvoe away from the text entirely, then back onto the line you're interested in.
Thanks for the suggestions. Originally the plan was to have comments in the margins. Then I had analysis paralysis so I decided to do what was easiest right now.
Shit, now I really wish I knew the name of the project I was thinking of. I'll come back and let you know if I figure it out. It was on HN a week or two ago... Maybe someone else remembers?
I have actually been telling people as soon a Rap Genius released Code Genius I would stop using Stack Overflow altogether, at first glance this still has a ways to go but I'm down to use it!
I think its an awesome concept and I'm glad someone is spending time building it
I like how you can do nested comments. The problem is it's not easy to see which comment goes where (I think you can just add a color code to the comments to indicate which color the comment is in response to.)
Great work, I think you can turn it into a real product.
One thing really useful would be allow one to embed this on their site. (just the code and annotation, and one can decide no one can comment or something).
So it's like github gist, but with annotations. Sometimes I post codes with annotations on my site.
What does the name mean? Nothing on the site or rudimentary Googling. Seems like it'll be a tough url to share verbally without having to spell it out.
I need to wonder why people insist on using terrible names like these. It takes careful analysis of the word just to be able to read and pronounce it, and I will certainly never remember it. Especially contrast with Rap Genius, a name that's wonderful in its simplicity (if not its creativity.)
Case in point, I first read this on my phone, and wanted to investigate further now that I'm on my laptop. So I go to HN and no longer see it on the front page, and can't conjure up what I want to search for. Uh, something Japanese-sounding that starts with a "k", I think?
Great idea. Does anyone know of a non-social version of this type of annotation, i.e. a static version that you write in the comments yourself? This would be a great improvement to present code on the internet in general.
Cool idea. I think annotation popups can be a good way to explain information-dense content such as code. Suggestion: try to display the best annotated code on the home page of your site.
I like the concept. It's code commenting and analysis that's out of the way. There are many ways to look at and digest a piece of code. This is very helpful for learning.
I think that's the good idea though, we lack a way to aggregate every information we have on a line of particular code. More comments will be valuable.
Yes, but with some minor differences. In Github you have a very narrow window to comment on a line of code, think in a withstanding pull request, before it gets merged, after that the code is kinda all set. This in my opinion has a lot of potential and I would love to help if there is a way.
I would like to see the ability to search by language by clicking on the [language] part of headers though. Also maybe being able to view annotations by user.
I like the idea but having clicked on the top five or ten examples:
I think you need some prominent and excellent "hero" examples of what you'd like to see on the site. Pick something reasonably pithy (e.g. off the top of my head Pike's simplified regex implementation) and annotate it and make that the top link (or one of the top links)
If you can explain your site in words that don't require very specific domain knowledge, I think that might broaden appeal.
I think this way of pitching is dangerous for two reasons:
1. Many potential users of the product (Kurikku) will not know about the thing it's being defined in relation to (Rap Genius), and will not understand that they should check it out
2. Those that do know might make a different comparison than you. I might say "It's like Github for music!" and you will think "Oh, so you put in scores and people can collaborate -- just like with code on Github!", but I was thinking "You store your personal music library in the cloud and you can clone it to all your machines -- just like with code on Github!" While you intend the comparison to be a way to explain a lot with just a few words, in reality it might be interpreted all wrong, giving users entirely unsuitable expectations when checking it out.
So, please try to communicate clearly about the thing you have made using every day words. Good luck :)