Hacker Newsnew | comments | show | ask | jobs | submit login
Challenge HN: build pg-bot
148 points by petervandijck 1522 days ago | 39 comments
Build a smart chatbot that simulates pg's office hours, and lets you optionally publish the transcript publicly.



Here's the alpha:

    (defparameter *phrases*
      '("Who needs it?"
        "Who uses it?"
        "Who *really* needs it?"
        "What problem does this solve?"
        "Does that problem *really* need to be solved?"
        "What is the worst problem in your life?"
        "In any given day, how many people use it? Do they return?"
        "What do you do for them once they get to your site?"
        "Why do they need you? What's special about you?"
        "Beat a chicken and egg problem with a tiny subset of the market that's small but *driven*."
        "No, who *needs* it?"))
        
    (defun random-elt (seq)
      (elt seq (random (length seq))))
    
    (defun answer (prompt)
      (declare (ignorable prompt))
      (random-elt *phrases*))

-----


  (cons "Is it an underhanded penny auction rip-off site?" *phrases*)

-----


AWESOME! But I want to see this running somewhere as an actual chatbot.

(and could you add: "I worry... I worry...")

-----


Previous plans for the summer:

1. Work hard at job as Java dev (yes, it's not ideal, no, as a high school senior I'm not complaining).

2. Read PAIP; do all exercises.

Current plans:

1. Drop everything and figure out how the heck non-static webpages work.

2. Create "real" pg chatbot.

3. Resume previous plans.

Edit: Ah, brilliant, I just remembered PAIP actually talks about chatbots pretty extensively.

-----


You could grab Olark, embed it using out setinline option: http://www.olark.com/community/discussion/12

and toss an XMPP chatter bot behind it :-) http://mail.python.org/pipermail/bangpypers/2008-January/000...

Cheers, Ben

-----


This may seem random, but I'm also in highschool - a junior, actually. Where (if you did) did you apply to college? I'm trying to figure out where I should look for / what I should be looking for, and it's confusing. I'm interested in programming/cs/engineering

-----


That's a very valid question, and now that I've made my decision, I keep thinking, "Maybe I should've applied to MIT...maybe I should've applied to Berkeley...my college guidance counselor used to work in CMU admissions, and told me that I would certainly get in--maybe I should've applied there...." But I didn't, here's what happened:

I made the following realizations:

1. People go to college to learn a lot more than Computer Science (my major).

2. As such, I want a college with a great community/environment (and even good gened classes), not just a great CS program.

3. There's something of a rift between academic CS and real-world programming. I'm not saying CS is worthless, but effective programmers need a lot more than an undergrad CS degree.

3.5. Also, if I do want to learn more CS, I can always try to go to MIT/Berkeley/CMU for grad school.

4. With sites like HN, Stack Overflow, and everything that's Googleable--and with decent laptops easily obtainable--it's really easy to teach yourself a lot of programming. I took CS in high school, but know a LOT more than what was taught. Why? Doing stuff on my own time. I see no reason why this can't continue in college.

5. There's many summer opportunities available--internships with Google (or many other places), research with one of my professors (Him, when I was a HS junior: "Additionally, we hope to start summer student research programs in a year or two--the funding...is already there. I in particular would love to have a student enthusiastic about [functional programming] as a researcher."), or even just having 8-16 hours a day to hack on my own projects.

I'm a Christian, so #2 strongly suggested that I should go to a Christian college. I cockily applied to only one school--Wheaton College, IL--and got in EA. It's not a bad school academically (the Princeton Review called it "The Harvard of all Christian schools" (which might be an exaggeration) (PS: Wheaton people jokingly call Harvard "The Wheaton of post-modern secular humanism")), and I really like everything about it besides the academics. Oh, and extra bonuses:

1. I sat in on several CS classes, and a) The classes are small, and the students seem to have excellent relationships with each other and the professor. b) They just got a spanking new science building, which is very very nice.

2. I took a bunch of AP tests, and did very well on them, and as such will almost certainly come in with sophomore standing. If I get a crazy startup going, I can leave college after three years :)

3. My parents told me that I could go wherever I wanted and they'd figure out some way to pay for it (somehow...). Wheaton not only gave me the "Presidential Scholarship" (given to students who make a certain academic cut), but gave me a nice extra scholarship because of my National Merit Finalist standing. This is in addition to need-based aid, I think. Not a full ride, but still "better than a poke in the eye with a sharp stick", as my dad would say.

So YMMV, but this is what I'm up to. Good luck!

Edit: I say this not to show off or anything, but to give let you know where I stand academically: 35 ACT, SAT 800 Math, 740 Reading, 630 Writing (oops...), 220 PSAT (I took all those tests only once), 4 on AP Euro sophomore year, 5 on all five APs last year, almost certainly a 5 on three this year, and a 4 or 5 on the two AP Physics C tests. And ~3.54 unweighted GPA at a prep school.

-----


I just graduated, and am also going into Computer Science. I just pulled up a list of top CS schools and started researching from there. I ended up applying to MIT, Stanford, Berkeley, Caltech, U of Illinois UC, U of Michigan, and a few others. I only got into U of Illinois UC, but I'm happy with that and am excited for next year.

My advice: Apply to where you really want to go. The money is something that you can work out if you try hard enough. don't be afraid to reach for the top tier of schools, but don't leave yourself with no fallbacks.

-----


I know you're not looking for advice here, but just so it's out there: consider a degree that's not C.S. You'll always be a hacker and you'll enjoy it a lot more (and be better at it, in some ways) if you craft a formal education around whatever classes seem most interesting. My favorite coders all have music or linguistics backgrounds.

Just my $0.02. Congrats on graduating and good luck!

-----


I really suck at music, languages I am okay at, but programming is my passion, it is what I went to school for, and honestly I would suggest it to anyone that is interested in it. Sure I didn't get much out of school because I was so far ahead of everyone else, but I had teachers that challenged me and helped me figure out what I wanted to do and that is what I am doing.

Don't blindly follow this guys advice, definitely mull it over, but for me personally it would not have been a good decision.

-----


I know it isn't exactly what you are suggesting, but I intend to double major in Math and CS and possibly get a minor in Italian.

-----


Consider picking something where they don't teach Java.

-----


Which state do you live in, how rich are you, and what are your SAT scores/grades?

-----


PA, lower middle class, 2250 and no subject tests yet (taking physics/math II in June)

-----


The questions were easy (randomly pick 1 maybe, weighted). But what's the heuristics for "I worry... I worry..."?

-----


Yea that's a tough one.

-----


It's not finished, but here's a (very) rough first cut:

http://pandorabots.com/pandora/talk?botid=d7e93f386e34109d

EDIT: And here's the AIML file on Github if anybody wants to play. Pandorabots.com is a nice place to host these things for playing around...

https://github.com/mindcrime/pgbot

-- And since we're talking chat-bots anyway, here's some stuff for people who might find this sort of thing interesting:

http://pandorabots.com/botmaster/en/home

http://www.alicebot.org/documentation/

http://www.pandorabots.com/pandora/pics/wallaceaimltutorial....

http://en.wikipedia.org/wiki/AIML

http://alicebot.blogspot.com/

-----


A sample interaction:

  Human: hi 
  pgbot: What are you building?

  Human: an online graph database 
  pgbot: Who needs that? 

  Human: Startups 
  pgbot: I worry, I worry...

-----


Incidentally, this gives one a good idea of how to prepare for a YC interview.

-----


What problem does this solve?

-----


It allows you to hold 'office hours' with PG without actually having to get ahold of PG?

-----


Who needs that?

-----


Someone who can't get ahold of PG? Come on, use your imagination.

-----


Does that problem really need to be solved?

-----


I believe he was saying that in lieu of the bot.

-----


Haha I guess someone has already implemented it.

-----


I worry, I worry...

-----


hahah

-----


Am I the only one that finds this request a little creepy?

-----


Well, other than pg himself, probably, yeah...

-----


Actually, this is a great opportunity for YC alums to deliver some of PG's knowledge to non-alums.

I look forward to discussing my ideas with PG-bot.

-----


Phew. http://blago.dachev.com/pgbot

Not very intelligent but pretty relevant.

-----


  paul: What's your idea. Hit me.
  me: its like facebook but for dogs
  paul: And the big hits often look risky at first.Like   Facebook
  me: ya...i know
  paul: Adults know this
  me: but i need dogs to know about this
  paul: On the Internet, nobody knows you're a dog
Touche, pgbot

-----


Just keep it simple and go with: "No, just build the damn product."

His own idea; http://vimeo.com/1425935 around 4:10

-----


"Who will be your first customer?" "Why do they need it?"

-----


It seems we're at an impass.

-----


Uh, I'm confused. Wasn't there one here a few hours ago? Submitted by you?

-----


Yeah, the URL was http://gush.wufoo.com/forms/automated-office-hours-with-pg/ It probably went over the limit for free forms.

Though building a chatbot is slightly different than building a form.

-----


Yes, I made the form but I really wanted the chatbot :)

-----




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: