[drifting-bottle] Private submodules

3 views
Skip to first unread message

Matthew Fernandez

unread,
Jul 27, 2011, 4:51:37 AM7/27/11
to code-p...@googlegroups.com
Julian, did you ever figure out the permissions for storing the secret
bits in your private repo?

I think perhaps the only way to give people restricted access to the
repo is chroot their ssh access or to clone via a git daemon rather
than ssh. Does anyone know the answer to this? [Background: giving
someone access to clone/push a repo, but not giving them full ssh
access to your server]

Billy Huang

unread,
Jul 27, 2011, 12:08:46 PM7/27/11
to code-p...@googlegroups.com
OOOOOOOWWWWWW

my idea !!!! some people in china!!!! got almost i mean 95% of the same idea!!!! in beta release for iPhone!!!!!

http://immomo.com/

i know its in chinese…. from what i read, 95% of what i mentioned are pretty much included in the function!!

damn!

from now, should we have a task schedule to anyone that is interested on doing this project, i know we have said that this is just for relax learning group, but by setting micro tasks to accomplish in certain time frame would certainty benefits more than the non-organised way. and also that way we can do things faster!!

anyone agrees?
currently working on drifting
- Billy
- Julian
- Matt
- Patrick

Julian G

unread,
Jul 27, 2011, 12:25:52 PM7/27/11
to code-p...@googlegroups.com
I've been away the last few days, but I have an idea around this problem. I'll take a crack at it tonight and report back.

Julian G

unread,
Jul 27, 2011, 12:27:02 PM7/27/11
to code-p...@googlegroups.com
I wouldn't stress about it Billy. I'm keen to keep plodding along on the project, but I'm (as always) time restricted, so it's unlikely I'll be able to schedule and blitz code.

Billy Huang

unread,
Jul 27, 2011, 1:00:47 PM7/27/11
to code-p...@googlegroups.com
Ain't stress about it, just that my idea are no longer original. Its like the 4th time it happen to me. Guess that if you have an idea you must act quick or its gone!!

Sent from my Windows Phone

From: Julian G
Sent: Thursday, 28 July 2011 2:27
To: code-p...@googlegroups.com
Subject: Re: [drifting-bottle]

Julian G

unread,
Jul 27, 2011, 1:14:31 PM7/27/11
to code-p...@googlegroups.com
Well, there's a lot more to an idea than being original..... execution goes a long way, as well as timing and luck. Just because someone else has a similar product doesn't mean the boat has sailed.

Very superficially, there are three principals to executing an idea:
1) First. Yahoo! Be the first one out there, get some traction, build up a user base.
2) Best. Apple is a great example here - the iPod wasn't revolutionary, they just did it better than everyone else. Dropbox is also a good example.
3) Cheapest. GIMP, Ubuntu, OpenOffice, iTunes, Amazon. Undercutting the competition goes a long way.

Also, just because they have a splash screen doesn't mean:
1) It's a good product
2) There's a market for it
3) They are ever going to deliver

Maybe skipping the western market is going to miss the niche for this product? Maybe it's a really shitty program? Maybe the market isn't right? In any case, even if all the stars align and everything is perfect, there's a huge likelihood that the product will still not get any traction in the market. And even if it were popular, you can leverage the good parts of their product and put them into your own product. Put a clock on that VCR, baby!

Matthew Fernandez

unread,
Jul 27, 2011, 6:44:22 PM7/27/11
to code-p...@googlegroups.com, Julian G

I don't have a lot to say about what makes a good idea, but I'm against deadlines for these projects. I don't mind assigning tasks, but since (a) we put in an unpredictable number of hours each week and (b) we're generally working outside our comfort zone in languages/technologies we don't fully understand, I don't see how we can set realistic deadlines.

In a race-to-market a startup is always going to beat us because of the time and skills advantage. I would echo Tom's comments from a while back that, if you have a great idea that you want to make money off, you're better off forming a startup and working on it full time.

> > ------------------------------

Billy Huang

unread,
Jul 27, 2011, 6:48:21 PM7/27/11
to code-p...@googlegroups.com
Yah I understand this, the thing is I haven't mad a webapp from scratch yet!! I Better busy lean ruby!!


Sent from my Windows Phone

From: Julian G
Sent: Thursday, 28 July 2011 3:14

To: code-p...@googlegroups.com
Subject: Re: [drifting-bottle]

Well, there's a lot more to an idea than being original..... execution goes a long way, as well as timing and luck. Just because someone else has a similar product doesn't mean the boat has sailed.

Very superficially, there are three principals to executing an idea:
1) First. Yahoo! Be the first one out there, get some traction, build up a user base.
2) Best. Apple is a great example here - the iPod wasn't revolutionary, they just did it better than everyone else. Dropbox is also a good example.
3) Cheapest. GIMP, Ubuntu, OpenOffice, iTunes, Amazon. Undercutting the competition goes a long way.

Also, just because they have a splash screen doesn't mean:
1) It's a good product
2) There's a market for it
3) They are ever going to deliver

Maybe skipping the western market is going to miss the niche for this product? Maybe it's a really shitty program? Maybe the market isn't right? In any case, even if all the stars align and everything is perfect, there's a huge likelihood that the product will still not get any traction in the market. And even if it were popular, you can leverage the good parts of their product and put them into your own product. Put a clock on that VCR, baby!
On Wed, Jul 27, 2011 at 10:00 AM, Billy Huang <bill...@gmail.com> wrote:
Ain't stress about it, just that my idea are no longer original. Its like the 4th time it happen to me. Guess that if you have an idea you must act quick or its gone!!

Sent from my Windows Phone

Tom Allen

unread,
Jul 27, 2011, 9:19:15 PM7/27/11
to code-p...@googlegroups.com
Remember also that Code Pro Bono projects are intended to be completely non-commercial. (Everyone agreed to this a few weeks back - or at the very least, nobody spoke up and disagreed, so Matt wrote it into our guidelines.) Since that's the case, you're not going to sell drifting bottle, so even if you had exactly the same product as some other company, you'd still have the more compelling use case just because it's free.

Don't worry about your competitors. I'll personally guarantee that if this Chinese company heard about a bunch of young upstarts doing the same thing, for free, in their spare time, using a wacky hipster language like Ruby, they'd be far more worried about us than we are about them...

Tom

Billy Huang

unread,
Jul 27, 2011, 9:30:22 PM7/27/11
to Tom Allen, code-p...@googlegroups.com
True true, but still hate to see that someone beat me to it for a couple of time already


Sent from my Windows Phone

From: Tom Allen
Sent: Thursday, 28 July 2011 11:19

Patrick Coleman

unread,
Jul 31, 2011, 8:34:14 AM7/31/11
to code-p...@googlegroups.com
+1 for not worrying too much about people doing a similar thing - it's not like Facebook was the first social network site, Google the first search site or Tumblr the first one for blogging :)

Also, as you can possibly guess from this email, I'm back now in Aus so can hopefully start looking at it again soon :)
that said - I successfully git pull'd but run into errors with 'linecache-0.43' when doing a bundle install (I think due to using cygwin and not having sudo, shall check that out) and also rails server is complaining about missing 'daemons-1.1.4' but my guess is it's related.

Assuming that I can get it working, is there anything folks would recommend looking at? 
If not i'll probably just look at getting more really simple server DAO / client renderings up. 
-Pat

Billy Huang

unread,
Jul 31, 2011, 9:15:39 AM7/31/11
to Patrick Coleman, code-p...@googlegroups.com
Hey guys just came back from startup weekend which was fun, just me and another php guy got a basic but well designed demo site(lollipic) setup in just a day, but will be scrapped off and rebuild from scratch. Both webapp and mobile,

Second thing there is some similar ideas to drifting bottle was build in the last three days, one is called share a cab, and dine social, but both of them didt not have the idea of geo notification, and also no common interest filter.

I have noticed that drifting bottle is too vague compare to those ideas, since it is a geo automate notification system. So i wrote a few more things to clarify the system. Will clean it up and push it to git later this week

Pat run a Ubuntu rails turnkey is easier and less time consuming to setup cywin under windows or even Mac. I use that just for learning rails now!! And rails zombie is really good place to learn, but make sure you document everything you learn, cos the first time I did it, I couldn't remember a thing at the end chapter test



Sent from my Windows Phone

From: Patrick Coleman
Sent: Sunday, 31 July 2011 22:34

Julian G

unread,
Jul 31, 2011, 1:30:21 PM7/31/11
to code-p...@googlegroups.com
Ok, I've added the twitter key to a private external git repo as a submodule. If you are going to want to work on this project, please *privately* email me your id_rsa.pub keys.

Julian G

unread,
Aug 1, 2011, 6:55:27 PM8/1/11
to code-p...@googlegroups.com
Hindsight being what it is, I think it makes more sense for all the devs to create a twitter account for the application. In order to do OAuth you need to set up a callback, which would need to be a different address for every developer.

The secure setup and the current OAuth keys are somewhat overkill and I'll think of a better solution to that. Ideally the keys get changed as part of a deploy script, which is down the line somewhat.

Matthew Fernandez

unread,
Aug 1, 2011, 9:56:16 PM8/1/11
to code-p...@googlegroups.com
On 2 August 2011 08:55, Julian G <julian...@eggandjam.com> wrote:
> Hindsight being what it is, I think it makes more sense for all the devs to
> create a twitter account for the application. In order to do OAuth you need
> to set up a callback, which would need to be a different address for every
> developer.
This is a bit confusing to me. By callback, do you mean you pass OAuth
a URL to use after it's authenticated the user? Would we not do this
by setting up some sort of staging site where the callback page would
be the same for all developers? Or are you talking about testing on
localhost?

Julian G

unread,
Aug 2, 2011, 1:50:34 AM8/2/11
to code-p...@googlegroups.com
At the Twitter side you specify a URL which twitter contacts once the authentication is complete (success or failure).

You're right for a staging / production environment, but it won't work for local development since the moment someone else does the authentication, my local OAuth tokens become invalid. 

Matthew Fernandez

unread,
Aug 2, 2011, 2:01:22 AM8/2/11
to code-p...@googlegroups.com
On 2 August 2011 15:50, Julian G <julian...@eggandjam.com> wrote:
> At the Twitter side you specify a URL which twitter contacts once the
> authentication is complete (success or failure).
> You're right for a staging / production environment, but it won't work for
> local development since the moment someone else does the authentication, my
> local OAuth tokens become invalid.
"Someone else" in this context being another developer? Does OAuth
accept localhost addresses for the callback? If not, then presumably
you're doing some kind of fake authentication in testing.

Julian G

unread,
Aug 2, 2011, 2:05:40 AM8/2/11
to code-p...@googlegroups.com
I have a static IP at home, which I have Twitter pointing to. You could just as easily use dyndns or just change the callback address every time you change your IP.

And yes, by "someone else" I mean another developer. Essentially for development everyone is going to need their own callback URL. We will set up a standard account for Production (and another one for staging is we get there). 

Matthew Fernandez

unread,
Aug 2, 2011, 3:26:43 AM8/2/11
to code-p...@googlegroups.com
Ah, I think I'm starting to understand what you mean. So OAuth gets
passed a callback URL, does some magic and then redirects your browser
to that URL? There may been some extra mysteriousness in here, but if
not surely we can just pass a localhost URL as I suggested.

Julian G

unread,
Aug 2, 2011, 12:37:39 PM8/2/11
to code-p...@googlegroups.com
It doesn't get passed a callback URL, it's actually set on Twitter as part of the account creation and configuration.

The flow is something like this:
1) You create an account, set the callback URL and are given a key and a secret
2) Customer wants to log into your site via twitter
3) You redirect the customer to the twitter page with the site OAuth key passed. 
4) Twitter asks if the customer want to authorise the Drifting Bottle app.
5) Twitter redirects the customer to the callback URL with the customer token and secret (or a failure message).

Once we have a customer token / secret, we can access their twitter account.

In the case of Drifting Bottle, the "customer" is ourselves. We want to be able to scrape the DriftingBottle twitter feed and collect any messages sent to us, as well as reply from that account.

If someone else logs in while I'm doing development, a new OAuth customer token and secret will be generated and I'll lose access to the account (even tho the callback URL won't work for anyone else). It's not a show stopped, but I'd need to re-authenticate, and the other developer would lose access. If all the developers have their own Twitter app accounts, then everyone gets (1) a callback URL which works just for them, and (2) the ability to work with a twitter account without risk of losing access and needing to re-authenticate.

I hope that explains things a bit?

J

Matthew Fernandez

unread,
Aug 2, 2011, 8:45:19 PM8/2/11
to code-p...@googlegroups.com
Thanks, I think this makes sense to be now. I'm starting to wonder
about the flow of this whole thing though.

When people want to send something out they tweet with
#drifting-bottle. We have a DB of registered users and send them a
private message (how?) when someone tweets with something relevant to
them. They reply to us privately (how?). Then we connect the two
people through some anonymising gateway at first. I think I may have
muddled all this in my head, because none of this seems to map well
onto twitter anymore.

Julian G

unread,
Aug 2, 2011, 10:37:46 PM8/2/11
to code-p...@googlegroups.com
So the way I see it, the application flow is something like this (for Production):

We have a Twitter account called DriftingBottle which we are constantly polling for messages.
User A (either privately or publicly) messages @DriftingBottle "I'm looking for a coffee buddy".
If that tweet has a geocode attached to it, we stick it into our Database

User B indicates to @DriftingBottle they are looking for an activity. Probably something along the lines of "I'm in need of caffeine".
If that tweet has a geocode attached to it, we stick it into the DB.

Here's the part I'm a little hazy on.

If the users are close to each other, and within a reasonable time window (say 30 min?), we privately message both User A and User B over twitter
"Someone nearby is: "In need of caffeine". Are you interested?"

If they both reply positively, then we message them each others twitter names.

I'm not sure if the reply part will work over twitter - I'm not sure if it holds context like that. In any case, that's the flow in my mind. It means we have a single Twitter account which does 99% of the work, and a DB which has messages, timestamps and geocodes.

Is that about right Billy?

Billy Huang

unread,
Aug 3, 2011, 12:40:35 AM8/3/11
to code-p...@googlegroups.com
Julian pretty much have the whole idea,

i was going to write/draw the flow out, but just had a really bad flu since monday.

here is the flow of how it works on user point of view:

------
user setting long term(user preference/profile):
  • - based on their interest, 
  • - threads they like(imagine it as a Facebook like button for drifting bottle on the events someone crated), 
  • - stuff they post mostly, 
  • - job they do, where they work, 
  • - skills they have etc
------
user short term interest
  • eg: dslr, innovation camp, coffee, rock climbing, some bang concert, lunch, datsum
  • for the next X minute/hour/month
  • these can also be tags written in the message
------
user notification preference:
  • which interest to alarm
  • where/when not to alarm
  • which interest set to silent alarm
------
server
  • if user app is starts listen/speaking(app roaming is on), the server constantly analysis and matching the common preference
  • when list of common interest user is within range, the message will be sent to them in order of most matching to least matching preferences
  • if the receiver did not respond within X minutes(lets say 3), it will resent to the next matching, dies when no more left unless it have expiry date set
  • i think the conversation can be taking under our own server like an instant private chatroom, while notication fetching can be rely on twitter
  • if responded by receiver, the server will sent out the exchanged and updated geo code/or defined location, and map it out on the device.
  • we can also map out other relative information here, but lets talk about this later
------
app functions
------
mobile app
  • send/receive notification
  • auto remove notification when it expired(expiry date might set in the message)
  • display maps

its bit wordy, but that should cover all the basic from an non-technical view

Matthew Fernandez

unread,
Aug 3, 2011, 1:09:22 AM8/3/11
to code-p...@googlegroups.com
OK, I think all of this stuff roughly makes sense. It may be too soon
to see design issues until we start implementing some of this
functionality.

Tom Allen

unread,
Oct 4, 2011, 7:27:46 AM10/4/11
to code-p...@googlegroups.com
Lokenote: http://itunes.apple.com/us/app/lokenote/id468041110

Similar concept of location based notes. Give it a whirl - it's free and by a Melbourne guy I found via the silicon beach mailing list.

Tom

Matthew Fernandez

unread,
Oct 7, 2011, 1:46:39 AM10/7/11
to code-p...@googlegroups.com
This is quite cool. Reminds me of something I saw a while ago (on this
list?). The idea was posting to some service where other users would
get the message when they were at the location you posted at. Like a
drop box (in the original, physical sense; not the online service).
Reply all
Reply to author
Forward
0 new messages