October 2007 API contest - Win an iPhone!

onethumbonethumb Administrators Posts: 1,269 Major grins
With the release of the 1.2.1 version of the API (dgrin docs & discussion thread), we have a contest to see who can build the coolest stuff. :)

Details:
  • Your app must use the v1.2.1 API for all of its calls, unless there's a bug in the API that requires you to use 1.2.0 for something. We expect to rapidly flag this version as released, with your help, so we anticipate fixing any bugs well before the contest ends.
  • The one exception is if you use feeds only, that's perfectly acceptable. But should you make any API calls, they must be to the 1.2.1 endpoints.
  • You must post a link and description of your app on this thread no later than 11:59pm Pacific Time on October 31st, 2007. If you don't make it in time (I realize this is short), no worries - I'm sure we'll have another contest soon afterwards that you can submit for. Do let us know, though, that you're close so we know we should do another contest (or extend the deadline, if necessary?).
  • You may submit more than one entry.
  • Yes, frameworks/wrappers/kits/etc count. In fact, since they enable others to more easily build stuff, they count a lot.
  • The app must either be brand-new (we haven't seen it before) or be a major update/revision to an existing app. No point releases.
  • Judging is still up in the air, but I think I'd like to offer at least two prizes for this round: community favorite and SmugMug favorite. If we think of more, or we get too many cool submissions, we'll just have to award more prizes. :D
  • Should you win, you'll receive an iPhone or something of similar value should you live in a non-iPhone territory (or just don't want one).

If you're looking for hints on what might win you judge's points, I'd think about what's hot online right now. iPhone stuff? Facebook stuff? Use your imagination, but something that's useful and cutting-edge is likely to be your best bet. And, of course, this is SmugMug, so we care about design. And by 'design' we mean the master's definition:

Design is not just what it looks like or feels like. Design is how it works. - Steve Jobs

Finally, don't forget that API developers get lifetime free Pro accounts, so there's no cost to play. :)

Best of luck to all the contestants!
«13

Comments

  • onethumbonethumb Administrators Posts: 1,269 Major grins
    edited October 4, 2007
    On a personal note (and I'm obviously one of the judges), I've always wanted to see a great two-way sync application. Lots of people have threatened to make one, but I haven't seen one yet for either the Mac or Windows.

    We provide the filename, filesize, updated time, date taken time, and MD5 of each photo at SmugMug via the API, so this shouldn't really be that difficult. Seems pretty useful, too.

    Upload to a SmugMug gallery while you're on the road travelling, and it automatically syncs it back down to your PC at home. Copy something to your PC's photos directory and it automatically copies it up to SmugMug. Sounds pretty great.

    Anyone wanna take a stab? :)
  • GarethLewinGarethLewin Registered Users Posts: 95 Big grins
    edited October 4, 2007
    Do apps have to use 1.2.1 new features?

    I have two apps I'm working on, but neither use 1.2.1 features (but I will port them over to 1.2.1 tonight)

    Also, I could be convinced to write that syncing app.

    I was thinking of writing one of those for Lightroom, but Adobe seem to be pretty bad at releasing an API
  • onethumbonethumb Administrators Posts: 1,269 Major grins
    edited October 4, 2007
    Do apps have to use 1.2.1 new features?

    I have two apps I'm working on, but neither use 1.2.1 features (but I will port them over to 1.2.1 tonight)

    Also, I could be convinced to write that syncing app.

    I was thinking of writing one of those for Lightroom, but Adobe seem to be pretty bad at releasing an API

    No, your app does not have to use any of the new methods for 1.2.1, just the 1.2.1 endpoints. Good question. :)
  • cabbeycabbey Registered Users Posts: 1,053 Major grins
    edited October 4, 2007
    onethumb wrote:
    No, your app does not have to use any of the new methods for 1.2.1, just the 1.2.1 endpoints. Good question. :)

    I was about to ask if we could request a new API entry to enable an app we've wanted to build for a while. But then I looked at what was in 1.2.1 and saw you had just added *exactly* what I was going to ask for!!! rolleyes1.gif:Dclap.gifiloveyou.gif

    Now if only I had the time to WRITE the app I want to do. :cry
    SmugMug Sorcerer - Engineering Team Champion for Commerce, Finance, Security, and Data Support
    http://wall-art.smugmug.com/
  • GarethLewinGarethLewin Registered Users Posts: 95 Big grins
    edited October 4, 2007
    onethumb wrote:
    On a personal note (and I'm obviously one of the judges), I've always wanted to see a great two-way sync application. Lots of people have threatened to make one, but I haven't seen one yet for either the Mac or Windows.

    We provide the filename, filesize, updated time, date taken time, and MD5 of each photo at SmugMug via the API, so this shouldn't really be that difficult. Seems pretty useful, too.

    Upload to a SmugMug gallery while you're on the road travelling, and it automatically syncs it back down to your PC at home. Copy something to your PC's photos directory and it automatically copies it up to SmugMug. Sounds pretty great.

    Anyone wanna take a stab? :)

    What is Modified time as far as you guys are concerned?
  • kylemulkakylemulka Registered Users Posts: 2 Beginner grinner
    edited October 5, 2007
    Use of Feeds
    onethumb wrote:
    No, your app does not have to use any of the new methods for 1.2.1, just the 1.2.1 endpoints. Good question. :)

    On a similar note, so that means that none of our app can use the feeds? It looks to be easier for my app to just use the feeds.
  • -Alex--Alex- Registered Users Posts: 1 Beginner grinner
    edited October 6, 2007
    Are there any other ideas lingering around for new apps to go with SmugMug?

    I'd love to get involved in some way, but looking at the list of apps it seems that anything interesting has already been done.
  • onethumbonethumb Administrators Posts: 1,269 Major grins
    edited October 7, 2007
    kylemulka wrote:
    On a similar note, so that means that none of our app can use the feeds? It looks to be easier for my app to just use the feeds.

    Sorry, I'll amend the rules. Feed-only use is certainly allowed, and actually for read-only apps, is probably easier and thus preferred.

    Thanks!
  • onethumbonethumb Administrators Posts: 1,269 Major grins
    edited October 7, 2007
    -Alex- wrote:
    Are there any other ideas lingering around for new apps to go with SmugMug?

    I'd love to get involved in some way, but looking at the list of apps it seems that anything interesting has already been done.

    I think the best ideas probably include linking two or more services or pieces of software. If you have a favorite online service (MySpace, Facebook, Wordpress, LiveJournal, etc) that doesn't yet interface with SmugMug, that'd be a good place to start. Likewise, if there's some desktop app you love that doesn't interact with us, that'd be a great place to start, too.

    I know there are lots of people who keep a Flickr account and a SmugMug account. I've long thought it be cool to have a unified uploader that can upload to either or both simultaneously, so that's a possible idea.

    "Mashups" where you take two (or more) great products and fuse them tend to be real winners. :)
  • mjohnsonperlmjohnsonperl Registered Users Posts: 41 Big grins
    edited October 7, 2007
    I'm going to see what I can come up with for this contest.

    I know ActiveState now has ActivePerl distributable for the Max OS X, but I've never tried to use it on a Mac yet. I'm hoping to build a cross platform compatible program in Perl, but I'm probably going to have to start it out on Windows first as I don't have a Mac (yet) to develop with.
  • onethumbonethumb Administrators Posts: 1,269 Major grins
    edited October 8, 2007
    -Alex- wrote:
    Are there any other ideas lingering around for new apps to go with SmugMug?

    I'd love to get involved in some way, but looking at the list of apps it seems that anything interesting has already been done.

    Building something like a framework that lots of other projects can use may get you big points, too. :)

    Both a Java and PHP implementation have been announced in the last few days, but that leaves lots of other languages: Perl, Ruby, Python, .NET... The list goes on.

    I've seen plenty of requests for screensavers before, and Mac OS X Dashboard widgets....

    I'll keep posting as I think of other ideas. :)
  • devbobodevbobo Registered Users, Retired Mod Posts: 4,339 SmugMug Employee
    edited October 8, 2007
    onethumb wrote:
    Building something like a framework that lots of other projects can use may get you big points, too. :)

    Both a Java and PHP implementation have been announced in the last few days, but that leaves lots of other languages: Perl, Ruby, Python, .NET... The list goes on.

    I've seen plenty of requests for screensavers before, and Mac OS X Dashboard widgets....

    I'll keep posting as I think of other ideas. :)

    Don,

    There is already a ruby framework :D

    dev
    David Parry
    SmugMug API Developer
    My Photos
  • cabbeycabbey Registered Users Posts: 1,053 Major grins
    edited October 9, 2007
    And a mac framework in objective c has also been started... though I can't claim it's gotten very far. :(
    SmugMug Sorcerer - Engineering Team Champion for Commerce, Finance, Security, and Data Support
    http://wall-art.smugmug.com/
  • onethumbonethumb Administrators Posts: 1,269 Major grins
    edited October 9, 2007
    onethumb wrote:
    Building something like a framework that lots of other projects can use may get you big points, too. :)

    Both a Java and PHP implementation have been announced in the last few days, but that leaves lots of other languages: Perl, Ruby, Python, .NET... The list goes on.

    I've seen plenty of requests for screensavers before, and Mac OS X Dashboard widgets....

    I'll keep posting as I think of other ideas. :)

    Oooh, I bet a Flex framework would be well loved...
  • jmrodrijmrodri Registered Users Posts: 19 Big grins
    edited October 10, 2007
    python json api
    onethumb wrote:
    Building something like a framework that lots of other projects can use may get you big points, too. :)

    Both a Java and PHP implementation have been announced in the last few days, but that leaves lots of other languages: Perl, Ruby, Python, .NET... The list goes on.

    I've seen plenty of requests for screensavers before, and Mac OS X Dashboard widgets....

    I'll keep posting as I think of other ideas. :)
    The work I'm doing on zmugfs uses a python API implementation in python. It uses the JSON version of the API and while I've kept it simple and only implemented what I needed for zmugfs, it wouldn't be too hard to make it a standalone API framework.

    You can see zmugjson.py here:
    http://sm-photo-tool.svn.sourceforge.net/viewvc/sm-photo-tool/trunk/sm-photo-tool/playpen/zmugjson.py?view=markup

    I modeled the interaction similar to the xmlrpclib module in python. There's a Smugmug class that is a wrapper for convenience, but if you us e the ZmugJSON class directly you can call ANY smugmug api very easily. For instance, if the api is smugmug.login.withPassword you simple do this:
    sm = ZmugJSON()
    rsp = sm.smugmug.login.withPassword(EmailAddress=username, Password=password, APIKey=self.key)
    returnvalue = simplejson.loads(rsp)
    
    Unfortunately, I'm not sure I can get it in a ready enough state for the contest (unless that's not a requirement) :D

    /jesus rodriguez
  • lildudelildude Registered Users Posts: 70 Big grins
    edited October 13, 2007
    phpSmug PHP Wrapper Now Supports rev 1.2.1 of API
    phpSmug 1.1.1, which now supports rev 1.2.1 of the API, is now available.

    At the moment, it only officially implements those methods detailed at http://dgrin.com/showthread.php?t=71887.

    The code is in place for ALL of the functions listed on the wiki, however some of the methods haven't been implemented in the API itself, so I've not tested these, so can't be sure they'll return the correct data. At the moment, these methods are commented out and will return "Not implemented in API yet".

    I'll update phpSmug 1.1.x as these methods become available.
  • darryldarryl Registered Users Posts: 997 Major grins
    edited October 17, 2007
    Hey guys, wouldn't it be awesome if this awesome Desktop Switcher could hook into SmugMug?

    http://www.johnsadventures.com/software/backgroundswitcher

    Well, I've asked the author, and he thinks he can get it into the next rev, although I'm not sure if it'll be in time for the contest. But if it is, I think it should definitely be a contender for the winner.

    Right now I have it rotating through my images on Phanfare, and it is *soooo* great. However I just tried the thumbnail mosaic view, and while very cool, it may be a little too busy. Still, an amazingly cool app, and I can't wait to hook it into my SmugMug galleries as well.

    Next rev after that, he's going to support random images from multiple sources (Phanfare, Flickr, SmugMug, local folders, etc.) Sweet!
  • flyingdutchieflyingdutchie Registered Users Posts: 1,286 Major grins
    edited October 18, 2007
    onethumb wrote:
    Building something like a framework that lots of other projects can use may get you big points, too. :)

    Both a Java and PHP implementation have been announced in the last few days, but that leaves lots of other languages: Perl, Ruby, Python, .NET... The list goes on.

    I've seen plenty of requests for screensavers before, and Mac OS X Dashboard widgets....

    I'll keep posting as I think of other ideas. :)

    Currently, i'm keeping my self busy with developing an extra layer on top of Kallasoft's Smugmug Java API.

    Kallasoft's Java API is very function oriented. Each class represents a Smugmug API method/function.

    The layer i'm building on top of his API is more object oriented. E.g. Albums, Sessions, Images. Code example:
    Session session = Session.loginWithPassword("email@bla.com", "sdk49za");
    // Creating a new Category:
    Category newCat = new Category(sess, "Title");
    newCat.create();
     
    // Creating new sub-category in existing category:
    SubCategory subCat = new SubCategory(newCat, "Title");
    subCat.create();
     
    // Renaming an existing subcategory's title.
    subCat.setTitle("New Title");
    subCat.update();
     
    // Deleting an album
    Album album; 
    ...
    album.delete();
    
    I'm planning to add some 'intelligent' caching and change-management to minimize network-traffic.

    I hope to be able to integrate it with Kalla's work :D.
    I can't grasp the notion of time.

    When I hear the earth will melt into the sun,
    in two billion years,
    all I can think is:
        "Will that be on a Monday?"
    ==========================
    http://www.streetsofboston.com
    http://blog.antonspaans.com
  • rkallarkalla Registered Users Posts: 108 Major grins
    edited October 18, 2007
    Currently, i'm keeping my self busy with developing an extra layer on top of Kallasoft's Smugmug Java API.

    Kallasoft's Java API is very function oriented. Each class represents a Smugmug API method/function.

    The layer i'm building on top of his API is more object oriented. E.g. Albums, Sessions, Images. Code example:
    Session session = Session.loginWithPassword("email@bla.com", "sdk49za");
    // Creating a new Category:
    Category newCat = new Category(sess, "Title");
    newCat.create();
     
    // Creating new sub-category in existing category:
    SubCategory subCat = new SubCategory(newCat, "Title");
    subCat.create();
     
    // Renaming an existing subcategory's title.
    subCat.setTitle("New Title");
    subCat.update();
     
    // Deleting an album
    Album album; 
    ...
    album.delete();
    
    I'm planning to add some 'intelligent' caching and change-management to minimize network-traffic.

    I hope to be able to integrate it with Kalla's work :D.

    This is awesome, I'm really looking forward to seeing your API Anton. I have a feeling any apps I plan on writing I'll likely use *your* API to do so.

    Just a heads up on the Changelog for Beta 2:
    http://kallasoft.com/smugmug-java-api/changelog/

    A lot of optimization and full documentation in addition to the beginning of 1.2.1 support.

    The API should be the same though, I doubt you'll have any compilation errors from it, but if you do they should be really easy to fix, and if not, I'd be happy to look into it.
  • jf26028jf26028 Registered Users Posts: 9 Beginner grinner
    edited October 23, 2007
    SmugLuv: Panning for SmugMug galleries.
    I have finally found the time to release the initial version of SmugLuv. In summary, it is a javascript REST/JSON api client that is used to create a pannable view of your smugmug galleries. You copy/paste some javascript includes, a little javascript method, and a html div, and you have a pannable gallery for your site. And, because it is all client side, there are no server dependencies, so it should be easy to include in existing sites.

    There is more information here: http://www.gravitycube.net/SmugLuv/

    And, this is the first release of the code and documentation page, so please feel free to let me know what needs improvement.

    Jesse Foster | jf26028
  • rkallarkalla Registered Users Posts: 108 Major grins
    edited October 23, 2007
    jf26028 wrote:
    I have finally found the time to release the initial version of SmugLuv. In summary, it is a javascript REST/JSON api client that is used to create a pannable view of your smugmug galleries. You copy/paste some javascript includes, a little javascript method, and a html div, and you have a pannable gallery for your site. And, because it is all client side, there are no server dependencies, so it should be easy to include in existing sites.

    There is more information here: http://www.gravitycube.net/SmugLuv/

    And, this is the first release of the code and documentation page, so please feel free to let me know what needs improvement.

    Jesse Foster | jf26028

    Jesse, that is crazy-cool!

    I love the little status bar and everything. Nice work man.
  • darryldarryl Registered Users Posts: 997 Major grins
    edited October 24, 2007
    jf26028 wrote:
    I have finally found the time to release the initial version of SmugLuv.

    Neat. What happens if you have vertical photos in your gallery? I guess I could install it and see, but I'm lazy. :-}
  • jf26028jf26028 Registered Users Posts: 9 Beginner grinner
    edited October 24, 2007
    vertical images
    darryl wrote:
    Neat. What happens if you have vertical photos in your gallery? I guess I could install it and see, but I'm lazy. :-}

    Vertical images can get a bit ugly. When you specify the thumb height and width, it then forces all the thumbs in the gallery to that size, so it distorts the vertical images. If you look close enough, you can see a few vertical images in some of my galleries.

    Jesse Foster | jf26028
  • GarethLewinGarethLewin Registered Users Posts: 95 Big grins
    edited October 24, 2007
    jf26028 wrote:
    I have finally found the time to release the initial version of SmugLuv. In summary, it is a javascript REST/JSON api client that is used to create a pannable view of your smugmug galleries. You copy/paste some javascript includes, a little javascript method, and a html div, and you have a pannable gallery for your site. And, because it is all client side, there are no server dependencies, so it should be easy to include in existing sites.

    There is more information here: http://www.gravitycube.net/SmugLuv/

    And, this is the first release of the code and documentation page, so please feel free to let me know what needs improvement.

    Jesse Foster | jf26028

    Pretty sweet, but a pitty the loads only happen when I realese the mouse button. I kind of expected it to act like google maps in that regard.

    Very nice!
  • jf26028jf26028 Registered Users Posts: 9 Beginner grinner
    edited October 24, 2007
    Pretty sweet, but a pitty the loads only happen when I realese the mouse button. I kind of expected it to act like google maps in that regard.

    Very nice!

    Ah, great suggestion. I guess I am too close because I never considered that. I will take a look and see what it would take to make that happen. Thanks for the feedback.

    Jesse Foster | jf26028
  • GarethLewinGarethLewin Registered Users Posts: 95 Big grins
    edited October 28, 2007
    I made a thread, but to follow contest rules I'm posting here too.

    SmugSaver, a screensaver that uses SmugMug as a source for it's images. More info at http://www.garethlewin.com/smugsaver or the thread in this forum
  • cabbeycabbey Registered Users Posts: 1,053 Major grins
    edited October 30, 2007
    my entry
    Well, I'll toss my hat into the ring.

    Aside from being such a simple minded application, it's intended as a proof of concept for my still in development Objective C Object Oriented Framework for accessing SmugMug. Currently called "cabSMAO" for "cabbey's SmugMug Access Objects" it's a work in progress that is currently complete enough to allow a few simple applications such as this one to be fairly trivially generated. To demonstrate the simplicity it achieves, here's a snapshot of what a previous generation of this tool looked like in it's main implementation.
    //  bulkRegen.m
    //
    //  Created by Chris Abbey on 10/21/07.
    //  Copyright 2007 Chris Abbey. All rights reserved.
    
    #include <cabSMAO/SMAccount.h>
    
    int main(int argc, char** argv) {
        NSAutoreleasePool * arpool = [NSAutoreleasePool new];
        SMAccount * acct = [[SMAccount alloc] init];
        [acct loginWithAccount:[NSString stringWithCString:argv[1] encoding:NSUTF8StringEncoding]
                      Password:[NSString stringWithCString:argv[2] encoding:NSUTF8StringEncoding]
                        APIkey:@"__API_KEY__"];
    
        NSEnumerator * walker = [[acct albums] objectEnumerator];
        id alb; //SMAlbum
        while (alb = [walker nextObject]) {
            NSEnumerator * iwalker = [[alb images] objectEnumerator];
            while ([[iwalker nextObject] rotateDegrees:0 andFlip:FALSE]);
            [iwalker release]; iwalker=nil;
        }
        [walker release]; walker=nil;
        [acct logout];
        return 0;
    }
    

    As I said, cabSMAO isn't finished, quite far from it actually. :D If it was farther along I'd have made it my submission. Maybe next time... for now It's just behind the scenes infrastructure. mwink.gif

    The intention with cabSMAO is that a lot of simple utilities like this can be whipped together in very little time with a fully functional framework. I've seen a number of requests over time from various pros or other users with large volumes of images for a way to go off and do various things to all their images, or a smart subset of them. Some examples of the things I've seen requested that I think this framework could make simple:
    1. update all my images to a new watermark
    2. find all my images that don't have a copyright declaration in the exif and fix them
    3. some combination of the above, apply a different watermark (with a different copyright year) to each image in my collection

    I recently made the move from xmlrpc to json at the suggestion of devbobo... quite possibly the best change I've made to cabSMAO, it took out a lot of the grunt work of processing and forming the requests and dealing with the responses. I threw out over 60% of the code I had written, and replaced it with a very small amount of code that's nice and neat and centralized. The change in mindset to how I was talking to the API server also facilitated a shift for the better in how my code was structured. All in all, it's one of the better forms of crack I've had pushed my way. thumb.gif big bowdown.gif to devbobo!
    SmugMug Sorcerer - Engineering Team Champion for Commerce, Finance, Security, and Data Support
    http://wall-art.smugmug.com/
  • flyingdutchieflyingdutchie Registered Users Posts: 1,286 Major grins
    edited October 30, 2007
    Currently, i'm keeping my self busy with developing an extra layer on top of Kallasoft's Smugmug Java API.

    Kallasoft's Java API is very function oriented. Each class represents a Smugmug API method/function.

    The layer i'm building on top of his API is more object oriented. E.g. Albums, Sessions, Images. Code example:
    Session session = Session.loginWithPassword("email@bla.com", "sdk49za");
    // Creating a new Category:
    Category newCat = new Category(sess, "Title");
    newCat.create();
     
    // Creating new sub-category in existing category:
    SubCategory subCat = new SubCategory(newCat, "Title");
    subCat.create();
     
    // Renaming an existing subcategory's title.
    subCat.setTitle("New Title");
    subCat.update();
     
    // Deleting an album
    Album album; 
    ...
    album.delete();
    
    I'm planning to add some 'intelligent' caching and change-management to minimize network-traffic.

    I hope to be able to integrate it with Kalla's work :D.

    I called this API the SmugFig API. You can find the link about it here:
    http://blog.antonspaans.com/smugfig-api/

    The API is not yet ready to be released... and won't be before the end of this month. I'm in the middle of a move, my free time is limited :D

    But I'll post updates about it as soon as they become available.

    -- Anton Spaans
    I can't grasp the notion of time.

    When I hear the earth will melt into the sun,
    in two billion years,
    all I can think is:
        "Will that be on a Monday?"
    ==========================
    http://www.streetsofboston.com
    http://blog.antonspaans.com
  • rkallarkalla Registered Users Posts: 108 Major grins
    edited October 30, 2007
    I called this API the SmugFig API. You can find the link about it here:
    http://blog.antonspaans.com/smugfig-api/

    The API is not yet ready to be released... and won't be before the end of this month. I'm in the middle of a move, my free time is limited :D

    But I'll post updates about it as soon as they become available.

    -- Anton Spaans

    Anton, look hot. I'm exicted to see what you did, but from the few examples you posted I think it's going to give a much smoother development experience.

    Do you have any Javadoc you could throw up so we could click through and see what's going on in there?
  • flyingdutchieflyingdutchie Registered Users Posts: 1,286 Major grins
    edited October 30, 2007
    rkalla wrote:
    Anton, look hot. I'm exicted to see what you did, but from the few examples you posted I think it's going to give a much smoother development experience.

    Do you have any Javadoc you could throw up so we could click through and see what's going on in there?

    I can send you the sources that i have so far, so that you can take a quick look at it. :D

    I have to do that tonight... i don't have my sources available here at work.

    Send me a private msg with your e-mail address. I'll zip up the sources and send it to you.
    I can't grasp the notion of time.

    When I hear the earth will melt into the sun,
    in two billion years,
    all I can think is:
        "Will that be on a Monday?"
    ==========================
    http://www.streetsofboston.com
    http://blog.antonspaans.com
Sign In or Register to comment.