I'm building a face-book style activity stream/wall. Using python/app engine. I have build the activity classes based on the current activity standard being used by face-book, yahoo and the likes. i have a Chanel/api system built that will create the various object messages that live on the wall/activity stream.
Where i can use some help is with some design ideas on how the wall should work. as follows:
I am using a fan out system. When something happens i send a message - making one copy but relating it to all that have subscribed to the channel it is written on. This is all working fine.
My original idea was to then simple use a query to show a wall - a simple get all the messages for a given channel or user. Which is fine.
But now I'm wondering if that is the best way to do it. I'm wondering if as the wall is a historical log that really should show "what has happened recently say last 90 days at the most. And that i will use Ajax to fetch the new messages. Is it better to use the message api i have built to send messages and then use a simple model/class/ to store the messages that form the wall for each user. Almost storing the raw HTML for each post. If each post was stored with its post date, object ref (comment,photo,event) it would be very easy to update/insert new entries in the right places and remove older ones. It would also be easy ajax side to simply listen for a new message. Insert it and continue.
I know their have been a lot of posts re "the wall" & "activity" stream does anyone have any thoughts i if my ideas are correct or off track?
Thanks
This is pretty much exactly what Brett Slatkin was talking about in his 2009 I/O talk. I'd highly recommend watching it for inspiration, and to see how a member of the App Engine team solves this problem.
Also you can check Opensocial API for design and maybe http://github.com/sahid/gosnippets.
Related
I have recently started developing an application to analyse my all-time exercises in the Polar platform.
I'm using their Accesslink API to get new sessions and I have exported my old sessions through another service they offer.
The exported sessions come with fully detailed information (instant GPS location, speed, heart rate), but the JSON data provided by the API is just a summary. I am looking for a way to get the initial position (GPS location) of my session to, later, find the city's name from another source. I think that the only way to do this is by getting the GPS info of my sessions.
Although the sessions have a has-route field, I cannot find in their documentation a way to request this route. They have provided a working example, but it does not provide a way to get these data.
Does anyway know if this is possible and, if so, could you please give me some directions?
Thanks in advance.
Turns out that the GPS information is provided through GPX files, which are provided by the API mentioned on the question. There is a method implemented to do this on their github (link also on the question) which already performs this task. I have added the call to this method and saved its output in this project.
I was wondering if it was possible to use Pybossa as a micro tasking / contest platform?
I am looking for something where I can register users, and get them to complete micro tasks such as twitter upvotes, retweeting, commenting, as well as reddit, youtube and things like that?
One platform currently is vyper.io which does a similar thing.
I was looking for an open source alternative that I can customise myself.
Can Pybossa do this? or if not, do you know if something else similar can?
Thank you
You can do that with PYBOSSA. Basically, PYBOSSA allows you to design any type of data, due to its JSON data storage facilities. In there you can put images, audios, webmaps, anything that can be rendered on the web and then ask users to complete those micro-tasks.
PYBOSSA has webooks APIs, allowing you to react in real-time to the feedback the users are sending to you. Thus, imagine that you are asking to upvote a given image. Say you want at least 10 people to participate in it. When the tenth person sends his/her feedback, PYBOSSA will notify you via the webhooks solution that this task has been completed. Then, another micro-service could get it, do some statistics analysis and say, hey 8 out 10 agree this is the best image. Then, you can push that info to any other service like Twitter, Facebook, etc.
I hope it helps you.
NOTE: I'm the creator of PYBOSSA.
I was hoping to create my own in-house analytics so I tell my customers how many visits their company page got on my site and which URL they came from. I am coding this in Python (Flask) and I wondered if anyone could tell me what is the standard, or sensible approach to this problem.
I think it might be to have some sort of Redis queue which is triggered when a visitor comes and then this information is added to the database later so the site doesn't seem slow.
The standard, and sensible approach is to use Google Analytics. If you must roll your own, you have one of two approaches. JavaScript that is executed on every page (like GA) and pulls this kind of info into a DB. The second approach is parsing log files on the server. Awstats is a good bet for that.
Does anyone know of simple and well documented API's with plenty of hand holding examples that assumes very little or no prior knowledge of web development?
I've been messing around with Pyfacebook and Facebook-Python-SDK in trying to create a simple photo display app but I haven't been able to make much headway after spending the last few days on it. The main reason for this is simply because I just wasn't able to find a good tutorial that walks me through all the steps. So, I'm putting this mini project on pause and looking for lower hanging fruit.
In terms of skill level, I'm pretty ok on the basics of Python and Django.
Update
I've done the tutorials at http://www.djangoproject.com/ already. Really looking for ideas and suggestions on webapp projects that utilises an API. E.g, a twitter app that displays a user's most frequently used keywords in a tagcloud.
Update2
Side note: Having mess around with Twitter's API for a little bit, I would definitely recommend to start with Twitter first as opposed to Facebook. It's easier and better documented.
Best place to start is with tutorials on djangoproject.com.
Have you tried the Django tutorial? It is pretty basic, but touches on all important points required to develop your own basic app.
django-basic-apps contains a collection of apps you might enjoy reading.
Edit: Check out this good list of web services I found. :)
As far as I know you can't write facebook apps with Django. Facebook uses their own API and stuff. They are completely different.
And for the twitter API thingy I have an idea.
Develop a django app which can used to
scrap and backup tweets.
The scenario is during any FOSS
conference, they are using a #hastag
to identify tweets related to that
conf. But after sometime these tweets
don't show up even on search. For
example we used #inpycon2010 tag for
Pycon conf in India. But now when I
search for this tag, nothing shows up.
So what you can do allow users to
register a hastag and set a time
interval. Within that time interval
your app should scrap all the tweets
and backup them. The user should be
able to retreive from that later.
If you start this a foss project, I'm ready to jump in :)
I want to add feeds such as ajaxian, smashingmagazine and store feeds starting today on my server, in order so that I can push the new items to my irc bot so it can echo them in my channel.
I will get ATOM data from this service: http://superfeedr.com/subscriber .. so I'm wondering which of the NoSQL storage mechanisms is ideal for storing ATOM data?
The atom data is xml, so they are documents, so perhaps something like CouchDB is suitable? Or MongoDb/Cassandra/Redis?
I'm aware that there are different kinds of no sql databases such as document oriented vs key/store, but as I don't have much experience I'd appreciate some insight from someone way more experienced. Thanks.
Additional things to consider
These won't be displayed on a website, or any publically viewable URL.
The only way to view them is to either a) wait for the bot to post new ones every hour or b) manually query the bot and give a time range or something like 0,20 and 20,40 through PM on IRC.
I won't really need to scale, I just have 15-20 people in the IRC chat room and only 1-3 people on average would probably query the bot at a given hour.
The bot will spit out new links every hour. The bot will never spit out old links.
I would say that you will have to use the database you are most comfortable with.
Also look at the CAP Theorem to clarify better what exactly you need.
Couple of minutes ago I replied to a similar question. So you can have a look.
I want to store external rss feed data - is this a good reason to use NoSQL?
No
If the content you're storing is natively XML, and you have need to be able to run queries against it (say, using XPath), you might consider a native XML database such as eXist.
That said, it sounds like your needs are basic enough that any halfway-reasonable datastore will do.