Pulling personal data out of OpenSocial containers and into a standalone website
[info]audreyroy
I've been struggling with the OpenSocial docs and various samples,
trying to find a way to pull my personal data out of my Orkut profile.

First I tried out the OpenSocial Python Client library samples and the
Google Friend Connect Chow Down sample. I didn't fully understand
what was going on, but I saw that I'd need a consumer key & secret.
(I just learned about GFC yesterday and am still trying to figure out
what it can and can't do.)

I created my own gadget.xml, uploaded it to a server, and added it to
my Orkut sandbox profile page. I verified my ownership of gadget.xml
with Google's "Gadget Ownership Verification" tool, at
https://www.google.com/gadgets/directory/verify. That gave me my
Orkut gadget consumer key and secret.

Then, I discovered some interesting info here:
http://sites.google.com/site/oauthgoog/2leggedoauth/2opensocialrestapi
1. Orkut only supports 2-legged OAuth.
2. A 3rd party site containing no gadget needs to use 3-legged OAuth
to retrieve a user's Orkut profile data.

What is 3-legged OAuth? For example: your website has a "Login with
Twitter" link that sends you to Twitter for approval, upon which
Twitter sends you back to your website with an access token.

In contrast, a 2-legged OAuth example: your Orkut (or Hi5, Ning,
MySpace, whatever) gadget requests data from your own personal API
server, for use in the gadget itself. In this case, your gadget uses
a shared secret from the OpenSocial container to sign its requests.

I guess I have 3 options now:
1. Give in and have everything live inside of an Orkut gadget
2. Create an Orkut gadget that pushes my profile data to my server and
then sends me to my website
3. Switch to another OpenSocial container that supports 3-legged OAuth
(if any exist) or to another social media site that has it (Twitter?
maybe Facebook Connect?)

To be continued...

Posted via email from Audrey M. Roy


{Filename?} Price It By Phone, and the Twilio API
[info]audreyroy

I won the Twilio+AppEngine contest with Price It By Phone, an app that lets you look up Amazon.com book prices by touch-tone phone.  Right now it's up and running at http://price-it.appspot.com.

If you try it and run into problems, please let me know!

My interview with Twilio is here

I like the Twilio API a lot.  It's the easiest-to-use API imaginable.  You set up your Twilio phone number with a URL to post to.  Then, when you call the phone number, Twilio sends a POST request to that URL with the caller phone # and the digits entered as parameters. 

They have a Twilio-AppEngine sample among their demo apps.  This is awesome.  As you can see, I'm back to really liking GAE again, a lot.

I'm putting a bit more time into Price-It and hoping to launch v2 soon.  Features that I want to put into it for sure:  support for ISBNs with Xs and any other chars that appear in them, user accounts, verifying your phone # before you're allowed to see your book lookup history, being able to delete your history.  Possible features to be added: integration with Amazon wish list, FB connect. 

Also, I want to make it look web2.0 shiny, with cute illustrations and bright, designed gradients.  Yes, I know that the dark, trippy background doesn't have mass appeal.  Sometimes I make art for the sake of making myself happy :)  View the page's source code to see how it's done.

If you have other feature ideas, I'd be interested in hearing them. 

Posted via email from Audrey M. Roy


Jeremiah Teipen & Benjamin S. Jones at Satori Gallery, New York
[info]audreyroy

Earlier this week I had the chance to visit some of the galleries in Manhattan's East Village/Lower East Side.  

My favorite by far was Gallery Satori.  They have a main space and a project space (i.e. a side mini-gallery).  The main space is currently filled with large mixed-media sculptures by Benjamin S. Jones.  I was instantly drawn to these pieces, which look like exploding, radiating architectural models.  One piece has graphic foam arrows flying out of it, and another is like a sea urchin of high-rise and smaller buildings.

(1800 KB)
Watch on posterous

In their project space is a series of "found-media" videos by Jeremiah Teipen.  The videos are extravagant collages of bits and pieces of video and animation from the web.  Teppen's biography refers to his pieces of "pure visual gluttony," a description that I thought was vividly perfect.  He takes the most gluttonous parts of the web (e.g. MySpace comment "bling" graphics) and scrolls them across his video pieces.  It is a bit hard to describe.  The videos remind me of Jeff Koons' work.  You really should see them while they're up at Satori if you can.

(19221 KB)
Watch on posterous

I like how Gallery Satori shows artwork that teeters on the edge of being too uncomfortably experimental.  In contrast, for the most part the other Lower East Side galleries were either too conservative or over the deep end of experimental.  I was also very impressed with the artwork's presentation, in a way that I don't know how to explain.  It just felt right.

 

 

Posted via email from Audrey M. Roy


My 1st or 2nd grade pastel self-portrait
[info]audreyroy

Kind of scary how accurate it turned out to be.

Posted via web from Audrey's notes


PhoneGap - AudioFlinger error while receiving a Gmail email
[info]audreyroy
In my (XUI) on click handler, I have this:
navigator.notification.beep(2);

The problem is that beeping stops working after awhile.  I think it stops working whenever my phone receives a network tickle from Gmail.

If I keep playing the game after the sound stops, the app crashes entirely after a little longer.  That's really bad.

The log.txt showing the AudioFlinger error & Gmail notification:  

I'm stuck.  I guess these are my options:

  • Play a non-beep sound on click and see if it still happens.  Find a free wav to use.
  • If that doesn't help, look at PhoneGap.java to better understand how audio works in PhoneGap.  And learn how audio generally works when using the Android SDK.
  • Give up and remove audio from the game. 

Posted via email from Audrey's notes


My notes on installing Pinax 0.7rc1 and integrating my Django art catalog app into it
[info]audreyroy
This post is mainly for my own personal records.  I've been up all night installing Pinax v0.7rc1, integrating my Django art cataloguing app with one of the Pinax sample projects, and trying to deploy it on Webfaction. 

I installed Pinax 0.7rc1 locally as per the "development version" instructions on their documentation site.  Installation notes:
- Install virtualenv and virtualenvwrapper before pinax, if you haven't already
- When you create the pinax-env directory, do it inside of ~/.virtualenvs/
- I ran into a dependency conflict - I had simplejson 1.9.2 installed, and it wanted 2.0.9.  I removed the old one via synaptic and then deleted the old egg.  When I tried rerunning the Pinax script that installs all the external dependencies, it completed successfully.

Then, I cloned their sample social networking website social_project and played with the site (at localhost:8000).  Its admin site at localhost:8000/admin also worked as expected.  This is great, I thought.  I was kind of surprised that I got it working so fast.  The trick is to read every word of the installation docs carefully - I was running into problems until I forced myself to stop skimming the instructions over.

I decided to try integrating my Django art cataloguing app.  Did the following.  This is mainly for my own personal notes, but maybe it'll help someone who's having trouble:
- added this to socialsite/urls.py: "    (r'^artpieces/', include('artapp.urls')),"
- dropped my artapp's urls.py into socialsite/apps/artapp/ and removed the 'artpieces/' start of each url since it's already relative now
- put artapp/ into socialsite/apps/
- put my artpieces/ (the artapp template folder) into socialsite/templates/.  I just put all the artpiece display code inside {% block body %}.  At the top I added {% extends "site_base.html" %} and {% load artapp_extras %}, where the latter loads my custom filters.  I believe I looked at social_project's tag_app and modeled these after its templates, but I don't remember and don't feel like looking it up.
- dropped media/ into site_media/ for local testing purposes.  media/ contains my css files.
- added 'artapp' to INSTALLED_APPS in socialsite/settings.py  (as well as a bunch of Amazon S3 stuff)
- dropped templatetags/ into socialsite/apps/artapp/.  this contains my Django custom filters.
- (I may have forgotten a couple other things)

This worked for the most part.  My art cataloguing app & its admin interface are now fully functional inside of the Pinax social_project app, except for the fact that thumbnails don't get uploaded to S3.  This is probably because of MEDIA_URL and MEDIA_ROOT in settings.py - they point to the just-for-testing site_media/ right now, I could imagine.  I didn't bother to look because I figured I had gotten far enough to try deploying my app on webfaction.

So, after getting it mostly working locally, I tried to get it working on Webfaction.  I really, really hope Webfaction starts supporting Pinax out-of-box because this is where I got stuck. 
1. I easy_installed virtualenv & virtualenvwrapper in my webfaction acct
2. $ wget http://kernel.org/pub/software/scm/git/git-1.6.4.1.tar.bz2
$ tar -xvjf git-1.6.4.1.tar.bz2
$ cd git-1.6.4.1
$ ./configure --prefix=$HOME
$ make && make install

and then kaboom...this is where I got stuck:
    LINK git-upload-pack
    CC var.o
    LINK git-var
    CC http-push.o
http-push.c:14:19: error: expat.h: No such file or directory
http-push.c:852: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
http-push.c: In function ‘lock_remote’:
http-push.c:936: error: ‘XML_Parser’ undeclared (first use in this function)
http-push.c:936: error: (Each undeclared identifier is reported only once
http-push.c:936: error: for each function it appears in.)
http-push.c:936: error: expected ‘;’ before ‘parser’
http-push.c:943: error: ‘parser’ undeclared (first use in this function)
http-push.c:946: error: ‘xml_cdata’ undeclared (first use in this function)
http-push.c: In function ‘remote_ls’:
http-push.c:1179: error: ‘XML_Parser’ undeclared (first use in this function)
http-push.c:1179: error: expected ‘;’ before ‘parser’
http-push.c:1186: error: ‘parser’ undeclared (first use in this function)
http-push.c:1189: error: ‘xml_cdata’ undeclared (first use in this function)
http-push.c: In function ‘locking_available’:
http-push.c:1262: error: ‘XML_Parser’ undeclared (first use in this function)
http-push.c:1262: error: expected ‘;’ before ‘parser’
http-push.c:1269: error: ‘parser’ undeclared (first use in this function)
make: *** [http-push.o] Error 1

This is where I've left off for now.  I guess I have to install some XML library on webfaction in order to install git, and then I can get back to installing git on webfaction and continue through the rest of the instructions.

Posted via email from Audrey's posterous blog


Interview with Jeff Koons in Financial Times
[info]audreyroy
I loved the full-page interview that Peter Aspden did with Jeff Koons in the Financial Times this weekend. 

A quote from Koons about why Louis XIV might have wanted a giant puppy made of flowers:  “Because the most profound question in art is, do you want to be the server or do you want to be served? When you come home to a puppy at night, do you look at it and say, ‘Go and get my paper’, or do you roll it over and say, ‘How are you doing, boy?’ ” 

That's pretty confusing, but take a minute to untwist it in your head.

The full interview is up online too, but it's the kind that you'll want to print out and read while eating your pancakes this morning. 

Posted via email from Audrey's posterous


I'm trying to blog
[info]audreyroy
I'm attempting to get back into the habit of blogging yet again, although I will likely forget again sooner or later. 

I wonder if there is a tool out there to nag you when you don't blog.  It could flood you with Twitter DMs, emails, and genuine advertising spam until you give in.  I would look for such a tool right now, if it weren't for the fact that I don't really want it.  I'd probably ignore it anyway.

Posted via email from Audrey's posterous


Home