Skip to content

Instantly share code, notes, and snippets.

@dufferzafar
Last active August 29, 2015 14:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dufferzafar/d30d52c9680c625ac5a2 to your computer and use it in GitHub Desktop.
Save dufferzafar/d30d52c9680c625ac5a2 to your computer and use it in GitHub Desktop.
Discussion with Aditya Kumar, explaining the IdeaBin Bot. Request for comments.
(11:59:58 PM) dZ: accha ideabin ke liye ek sharing service bana rha hun
(12:00:17 AM) dZ: ideas ko tweet karega, aur unki summary email karega
(12:09:37 AM) dZ: gists mein alread har feature toh hai hi
(12:09:51 AM) dZ: stars, comments, etc.
(12:10:01 AM) dZ: toh bas ab ek script bana rha hun
(12:10:12 AM) dZ: jo bando ki gists fetch karegi aur
(12:10:18 AM) dZ: unmein se ideas wali nikalegi
(12:10:33 AM) dZ: (the ones which have #ideabin in the description)
(12:10:57 AM) kwikadi: only gists?
(12:11:08 AM) dZ: hm
(12:11:29 AM) kwikadi: since you have a well defined hashtag
(12:11:37 AM) kwikadi: why not twitter and (lul) instagram?
(12:12:27 AM) dZ: twitter pe se ideas uthaun?
(12:12:33 AM) dZ: hum log ulta chal rhe hain
(12:12:40 AM) dZ: gist pe tu apna idea post maar
(12:12:51 AM) dZ: aur hamara bot uska link tweet kar dega
(12:13:11 AM) kwikadi: Oh. I was thinking kahin bhi post karo
(12:13:29 AM) kwikadi: but tweet #ideabin <idea url>
(12:13:45 AM) kwikadi: and the bot saves url (parses it maybe) into a db
(12:13:52 AM) kwikadi: But your idea is neater, I think
(12:14:34 AM) dZ: db = json file
(12:14:39 AM) dZ: easier to handle
(12:14:44 AM) dZ: aur sun ab andhe features
(12:14:53 AM) dZ: ek gist ke do fields hote hain
(12:14:56 AM) dZ: File name
(12:15:00 AM) dZ: aur Description
(12:15:07 AM) kwikadi: ok
(12:15:25 AM) dZ: toh file name banda kuch bhi rakhe
(12:15:29 AM) dZ: humein parwah nai
(12:15:36 AM) dZ: but description mein #ideabin hona chaiye
(12:15:44 AM) dZ: to diff it from other gists
(12:15:52 AM) dZ: but
(12:16:04 AM) dZ: hamara bot description ka baaki content bhi tweet karega
(12:16:07 AM) dZ: matlab
(12:16:11 AM) dZ: agar desc hai
(12:16:36 AM) dZ: "Create a cli to count number of days #cli #go #python #ideabin"
(12:16:39 AM) dZ: toh tweet hoga
(12:17:29 AM) dZ: "@dufferzafar added 'Create a cli to count number of days' #cli #go #python"
(12:17:41 AM) dZ: ismein beauty yeh hai
(12:17:47 AM) dZ: ki jo baaki ke tags hain
(12:17:51 AM) dZ: woh twitter pe jake
(12:17:54 AM) dZ: uske hashtags ban jayenge
(12:18:04 AM) dZ: aur andhe logon ne subscribe maar rkahe hote hain
(12:18:06 AM) dZ: hashtags
(12:18:18 AM) dZ: toh tweet andhe log padhenge
(12:18:29 AM) dZ: (andhe log padhenge? LOL)
(12:18:36 AM) kwikadi: lol
(12:18:37 AM) kwikadi: ab sun
(12:19:00 AM) kwikadi: 1. bit.ly se link shorten karke append gist link at the end.
(12:19:16 AM) dZ: (woh twitter khud karega)
(12:19:19 AM) dZ: (t.co)
(12:19:26 AM) kwikadi: 2. do you need to sign up anywhere, ki all you do is the hashtag?
(12:19:40 AM) dZ: @ideabin banayenge
(12:19:46 AM) dZ: uss account se post honge saare posts
(12:19:53 AM) kwikadi: arre
(12:20:08 AM) kwikadi: MLSK
(12:20:17 AM) kwikadi: ki maine ek public gist daali
(12:20:22 AM) kwikadi: with #ideabin
(12:20:35 AM) kwikadi: without knowing about this project
(12:20:44 AM) kwikadi: to meragist tweet hoga na?
(12:21:10 AM) dZ: yup
(12:21:11 AM) dZ: hoga
(12:21:19 AM) kwikadi: So my question is
(12:21:22 AM) dZ: nahin hoga
(12:21:23 AM) dZ: sorry!
(12:21:25 AM) dZ: NOPE
(12:21:28 AM) dZ: NAHIN HOGA
(12:21:28 AM) kwikadi: okay
(12:21:33 AM) kwikadi: to fir?
(12:21:35 AM) dZ: ek cheez bhul gaya
(12:21:37 AM) dZ: https://github.com/Ideabin/registeration
(12:21:40 AM) dZ: yeh repo
(12:21:41 AM) kwikadi: you ll need to follow @ideabin?
(12:21:55 AM) dZ: iss repo pe ek Users naam ki file hogi
(12:22:12 AM) dZ: http://i.imgur.com/Ex7HCMD.png
(12:26:26 AM) kwikadi: Achcha idea to achcha hai, but iske users bas teen-chaar hi honge at max.
(12:26:33 AM) kwikadi: which sucks balls like no other
(12:27:05 AM) dZ: i hardly care
(12:27:12 AM) dZ: as long as tu post karega
(12:27:27 AM) dZ: accha mujhe toh woh zyada pyara laga
(12:27:29 AM) dZ: jo tune bola
(12:27:37 AM) dZ: ki jo bhi ideabin ko follow kare
(12:27:45 AM) dZ: uske gists fetch karo
(12:28:05 AM) dZ: but the problem is, hum log twitter handles aur github usernames ko cross reference nahin kar sakte
(12:28:31 AM) kwikadi: To vo tere implementation me kaise ho raha hai cross-reference?
(12:28:40 AM) dZ: nahin ho rha hai na
(12:28:46 AM) kwikadi: oh
(12:28:50 AM) dZ: abhi toh
(12:28:57 AM) dZ: repo registration ko fork karo
(12:29:04 AM) dZ: uss ek file mein ek line ka change karo
(12:29:10 AM) dZ: (add your details)
(12:29:23 AM) dZ: aur fir tumhari gists ki monitoring shuru ho jayegi
(12:29:51 AM) dZ: i know this sucks, but...
(12:30:08 AM) kwikadi: following thoda cleaner hai
(12:30:25 AM) dZ: following ka KOI SCENE NAHIN HAI
(12:30:28 AM) kwikadi: But issue main checking ka hai
(12:30:30 AM) dZ: (woh toh ainveyi bola tha)
(12:30:46 AM) dZ: tu repo wale tareeke pe comment maar
(12:30:50 AM) kwikadi: Kyun, its clicking a button as opposed to forking a fucking repo
(12:31:35 AM) dZ: dude woh impossible hai kyunki
(12:31:40 AM) kwikadi: Also, mera tareeka ensures ki people who broadcast ideas also listen to them
(12:31:50 AM) kwikadi: Ooh, this should be good
(12:31:54 AM) kwikadi: impossible kyun
(12:31:56 AM) kwikadi: ?
(12:32:16 AM) dZ: ek bande ne twitter pe follow kiya
(12:32:25 AM) dZ: ab main iska github username kahan se laun?
(12:33:00 AM) kwikadi: SImple hai kaafi. Either you tweet to him
(12:33:13 AM) dZ: kya?
(12:33:36 AM) kwikadi: Ask them to respond with their gh username/link, what else
(12:33:55 AM) kwikadi: Also, you check with their twitter username on gh
(12:34:03 AM) dZ: maan le woh same banda na ho
(12:34:06 AM) kwikadi: which should ideally have a high hit rate
(12:34:13 AM) dZ: aur hum kisi aur ke gists ki monitoring shuru kar dein
(12:34:32 AM) kwikadi: to kya kar sakte hain. Jab mile, to we tweet to them asking them to confirm anyway
(12:34:46 AM) kwikadi: This implementation is tougher for you, but easier for users
(12:35:01 AM) dZ: its not tough
(12:35:03 AM) dZ: it'll be fun
(12:35:07 AM) kwikadi: er
(12:35:34 AM) dZ: theek hai fir
(12:35:43 AM) dZ: bande ne @ideabin ko follow kiya
(12:35:49 AM) dZ: hamara ek bot detect karega
(12:35:57 AM) dZ: aur tweet karega
(12:36:01 AM) dZ: banda reply karega
(12:36:10 AM) dZ: toh laga fucking NLP to extract the username
(12:36:27 AM) dZ: ho sakta hai banda ho hi na twitter pe
(12:36:32 AM) dZ: github pe*
(12:36:39 AM) dZ: aur sirf aise hi follow kiya ho
(12:36:44 AM) kwikadi: Nahin. banda chutiya thodi hai. Ya to username daalega, ya link dega
(12:36:46 AM) dZ: (he might only be interested in ideas)
(12:36:54 AM) dZ: agar usne likh diya
(12:37:05 AM) dZ: My handle is ******
(12:37:13 AM) dZ: my github ****
(12:37:20 AM) dZ: github link: ***
(12:37:51 AM) dZ: tu rok nahin sakta na usse
(12:37:54 AM) kwikadi: agar banda gh use karta hai, to thoda to sensible hi hoga. And we'll ask them to send us thier gh profile link, simple. Links extract karna easier
(12:38:10 AM) dZ: theek hai, better hit rate hai
(12:38:25 AM) dZ: but iske liye andhi monitoring lagani hogi
(12:38:38 AM) dZ: main repo wala idea scrap nahin kar rha hun
(12:38:40 AM) dZ: woh bhi rahega
(12:38:50 AM) kwikadi: darr se matt daro, darr ke aage badho. DARR KE AAGE JEET HAI (Mtn Dew(r))
(12:39:24 AM) dZ: aur hamara bot us bande ki details milte hi registration repo pe ek commit kar dega
(12:39:34 AM) dZ: uss bande ki details add karke
(12:39:50 AM) dZ: wahan se hamari purani script takeover kar legi
(12:40:17 AM) kwikadi: Fair enough.
(12:40:23 AM) kwikadi: A-B testing ho gayi ye to
(12:40:33 AM) dZ: ki log gh se zyada karte hain
(12:40:35 AM) dZ: ya twitter se?
(12:40:57 AM) dZ: aur jin logon ke handles nahin mil paye humein
(12:41:05 AM) dZ: unke liye bot mjhe ek mail bhejega
(12:41:09 AM) dZ: main personally dekh lunga
(12:41:20 AM) dZ: (humein pata hai, yeh sab hona toh kabhi hai nahin)
(12:41:26 AM) kwikadi: LOL
(12:41:37 AM) kwikadi: Dheere dheere aage badhenge
(12:41:41 AM) kwikadi: Think about it
(12:41:46 AM) kwikadi: slave labour is so easier
(12:42:02 AM) kwikadi: ameen ke phone pe sign in kar denge @ideabin. Saari bhasad over
(12:42:14 AM) kwikadi: Agar kisi ne maze liye to ameen to chaar gaali bhi bak dega
(12:42:27 AM) dZ: lul
(12:42:42 AM) dZ: aur kisi ko aise hi idea suggest karna hai toh
(12:42:47 AM) dZ: @ideabin ko tweet kar do
(12:42:53 AM) dZ: accha jab @ideabin hai hi
(12:43:03 AM) dZ: toh TWITTER pe toh #ideabin ki zarurat nahin hai?
(12:43:12 AM) kwikadi: Hai na
(12:43:20 AM) kwikadi: if someone doesnt use gists
(12:43:31 AM) kwikadi: to they tweet #ideabin
(12:43:39 AM) kwikadi: with idea link
(12:43:52 AM) dZ: why cant they tweet to @ideabin?
(12:43:56 AM) kwikadi: But isme exploitation ke andhe changes hain
(12:44:05 AM) kwikadi: Haan, sahi baat hai.
(12:44:11 AM) kwikadi: Isme bhi hain
(12:44:24 AM) kwikadi: but agar kisi ne porn tweet kari ideabin ko, tab?
(12:44:34 AM) dZ: tab kya kuch nahin
(12:44:35 AM) kwikadi: Ya worse, apna ad
(12:44:40 AM) dZ: fuck!
(12:44:46 AM) dZ: aur chutiye log follow kar lenge
(12:44:54 AM) dZ: fucking bots follow kar lenge
(12:52:21 AM) dZ: tu bot ka bol
(12:52:26 AM) dZ: sahi hai na?
(12:52:31 AM) dZ: gist fetch -> tweet
(12:52:48 AM) kwikadi: haan, sounds good
(12:52:51 AM) kwikadi: BUT
(12:52:59 AM) kwikadi: how will you deal with overflow?
(12:53:06 AM) dZ: of?
(12:53:38 AM) kwikadi: arre
(12:53:46 AM) kwikadi: idea wil be longer than 140 chars, Im waging
(12:54:01 AM) dZ: toh hum toh sirf idea ka description post karenge na
(12:54:03 AM) dZ: na ki content
(12:54:15 AM) dZ: https://api.github.com/users/dufferzafar/gists
(12:54:19 AM) dZ: ismein dekh
(12:54:24 AM) dZ: descriptions
(1:11:00 AM) dZ: content toh main fetch bhi nai karne wala
(1:11:07 AM) dZ: warna script chud hi jayegi
(1:11:27 AM) kwikadi: lol
(1:11:43 AM) kwikadi: and agar desc khaali hai?
(1:11:53 AM) kwikadi: apart from the obligatory #ideabin ofc
(1:12:00 AM) dZ: toh tweet hoga
(1:12:12 AM) dZ: @dufferzafar added a new idea <link>
(1:12:27 AM) dZ: all edge cases covered!
(1:12:47 AM) kwikadi: Looks solid (y)
@dufferzafar
Copy link
Author

Comments Appreciated.

@TrigonaMinima
Copy link

Where can an idea be posted?

  • Github gists
    • Done by someone who uses Github.
    • With a hashtag "#ideabin" in description of the gist.
    • Other tags are also included in the description.
    • The description will be tweeted along with the tags as twitter hashtags on behalf of ideabin account.
  • Tweets
    • Done by non Github users.
    • Idea tweeted with a hashtag "#ideabin" so that our bot can retweet it.
    • Everything will be provided by the user in 140 character limit.

Ideas' features on gists

  • Tags (in description)
  • The person who posted the idea
  • Public/Secret ideas
  • Starring
  • Commenting (in markdown) thus, collaboration is possible
  • No limit on the size of characters used to explain the idea
  • Markdown editing of an Idea
  • Revisions (helpful for later, if we go about building some data analysis application to learn how an idea evolved)

Ideas' features on twitter (for the ones who do not have gh account)

  • Tags (as hashtags)
  • The person who posted the idea
  • Only public ideas
  • Starring, favoriting, retweeting
  • Commenting
  • 140 characters ONLY

What happens when an idea is posted on gh gists?

  • An unregistered user's idea won't be tweeted by the bot.
  • Registered user's idea, will be tweeted by our bot.
  • The tags and the description will be tweeted as written in the gist's description with a mention to the user. (eg. "@dufferzafar added 'Create a cli to count number of days' #cli #go #python #ideabin" )
  • If the person who wrote the idea tweeted it himself from his twitter account using #ideabin then our bot will retweet it. (will have to cover the case of multiple retweets)

What happens when an idea is posted on twitter?

  • Any user can post it there (no registration required to post using #ideabin).
  • Our bot will retweet the idea. (will have to cover the case of multiple retweets)

Other Features

  • Personalised daily/weekly mails to everyone who is a registered user.

Things to be maintained by us

  • Registrations (gh-usernames, emails, twitter).
  • DB for all the ideas posted by the user (user, link to the gist or tweet, time, etc).
  • Bot will keep checking the tweets done using #ideabin and retweet them.

Some suggestions

  • Retweeting the tweets with #ideabin (this might make the application a bit more complex)
  • Creating gists for every idea posted on twitter by an unregistered user on ideabin org's gh account. This way we will have the ideas posted by unregistered users.

We can discuss more and edit this description. This way we will have what we want in one place.

@dufferzafar
Copy link
Author

I mentioned this in the chat too. I don't think the hastag support is required. Since we already have a twitter account (our bot's) i.e. @Ideabin. So if a user needs to tweet an idea, they can simply send a tweet to @Ideabin.

Our bot can then retweet them (this feature will require watching all incoming tweets so won't be added in the initial release.)

@dufferzafar
Copy link
Author

The case of multiple retweets can be easily handled as we're using a db and a retweet table can be created which will have a log. We'll also log every other activity our bot does like Tweets, Mails, etc.

@dufferzafar
Copy link
Author

Creating a gist of 140 words doesn't make much sense, IMO. What users could do is share links to their ideas that they could've written about somewhere else.

@dufferzafar
Copy link
Author

Should we use Sqlalchemy for the bot or go naked?

@TrigonaMinima
Copy link

Creating a gist of 140 words doesn't make much sense, IMO. What users could do is share links to their ideas that they could've written about somewhere else.

I forgot to mention it in the description above. But, for that case we will need NLP to process the tweet.

Should we use Sqlalchemy for the bot or go naked?

Lets go naked.

@dufferzafar
Copy link
Author

NLP is something too far fetched. We'll see. Still can't decide over the use of ORM. Will tell you later.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment