6.0.0-git
2024-04-25

Diff for MichaelRubinsky between 28 and 29

+Michael Rubinsky

http://rubinskyfamily.com/mike
http://theupstairsroom.com

++Ansel 2.0 Stuff

PHP 5-ify ,getters/setters, clean up public,private distinction ++++TODO:

Change Ansel_Storage::listImages()* PHP5 native 
* rewrite tagger to acceptuse content_tagger
* use pretty autocompleter for tags / update the image view and review placement of tag widget.
* Use a decorator pattern for the different gallery display modes (Date/Normal/?)
* Use custom binders/factories for the various global objects such as ansel_storage, cache etc... use a parameter arraynull cache driver instead of checking for the gallery_id and the WHERE parameter. In addition, .needcache existence.
* Rewrite google maps integration to use horde_map javascript
* Add a way to easily perform image actions such as downloading from the gallery view...something along the lines of either a small contextual menu or simply a link on the image tile, also a textual link to refactor usage of this methoddisplay the full image view would be very helpful for galleries using a lightbox - so that client code doesn't have to know anything about the SQL table structure. i.e.  get rid of the WHERE parameter. All non Ansel_Gallery code should be calling Ansel_Gallery::listImages and not Ansel_Stroage list images....which leads to:user could see the exif data/comments/image actions etc...

Make Ansel_Storage purely++++Random notes
Change Ansel_Storage::listImages() to accept a classparameter array instead of the gallery_id and the WHERE parameter. In addition, .need to refactor usage of this method so that Ansel_Image/Ansel_Gallery/Ansel_Tagger etc... use and NEVER client code.code doesn't have to know anything about the SQL table structure. i.e.  get rid of the WHERE parameter. All non Ansel_Gallery code should be calling Ansel_Gallery::listImages and not Ansel_Stroage::listImages:

list* methods should return ids, get* methods should return objects.

Review all ansel js, output all strings in js and consolidate all the gallery_view js into a single *.js file.

Refactor Ansel_Gallery to make--

Make it less dependent on the Share implementation for when/if Shares changes again.

(Maybe use composition insteadeasier to add new !ModeHelper objects.  There should be an init function somewhere that returns the available modes that are installed.  Normal and Date should be 'built in' and always available - maybe parse the contents of a special custom Mode folder? 

Related to above, come up with a detailed idea of inheritancewhat a gallery "style" will be...clarify what a "mode" is vs a "style", how to allow for (and what to call) special modes (such as a possible "remote gallery") that cannot be arbitrarily switched between modes (like the current Normal and Date modes can be). Maybe a gallery "type" that is specified initially that cannot be changed (Local, Remote, etc...)? And, obviously along with all this, finally provide a UI (and backend support) to allow the user to define their own gallery styles. (Layout, color, thumbnail type etc..).

Maybe use "displayMode" for changing the Share object). way images are grouped (Date, Location, Normal) etc...then a GalleryType to specify a "local" gallery for images (maybe video too) vs "remote" gallery for allowing galleries to display remotely hosted images from, say, facebook or flickr.

Make it easier to add new !ModeHelper objects.  There should be an init function somewhere that returns the available modes that are installed.  Normal and Date should be 'built in' and always available - maybe parse the contents of a special custom Mode folder? 

Related to above, come up with a detailed idea of what a gallery "style" will be...clarify what a "mode" is vs a "style", how to allow for (and what to call) special modes (such as a possible "remote gallery") that cannot be arbitrarily switched between modes (like the current Normal and Date modes can be). Maybe a gallery "type" that is specified initially that cannot be changed (Local, Remote, etc...)? And, obviously along with all this, finally provide a UI (and backend support) to allow the user to define their own gallery styles. (Layout, color, thumbnail type etc..).--

Allow user-specific, global, settings for what Ansel_Widgets are visible, allowing them to remove a widget that is defined in the style to un-clutter the view.

Modularize the photo (and maybe gallery) actions so we can easily plug in new actions, such as "Send this photo to Flickr" etc...

Maybe a "import/export" ability - to transfer images to other services like Flickr, Facebook, and import them from services that the user has perms to.

 Layout ideas:
        http://ajaxian.com/archives/cross-browser-inline-block

lazy load image thumbnails for some styles: Needs to be implemented on top of prototype...
http://www.appelsiini.net/2007/9/lazy-load-images-jquery-plugin

Replace current tagging implementation with the !PrettyTagger stuff from Kronolith - still to decide, can we completely replace Ansel's Tagger with the Content tagger?

Ansel_Gallery::addImage() should take an Ansel_Image object, not the raw image data to create the object.

Use Horde_Support_Array objects for private class params to avoid all the if (!empty($this->_param['foo']) ? $this->_param['foo'] : '') type conditionals


Flash based image uploader:
http://www.uploadify.com/

http://24ways.org/2009/going-nuts-with-css-transitions
http://ajaxian.com/archives/transm-programmable-image-transitions?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+ajaxian+%28Ajaxian+Blog%29


++ Objective C/Cocoa stuff (For iPhoto/Aperture -> Ansel exporters, and iPhone/iPod Touch development):

http://www.slideshare.net/fraserspeirs/integrating-with-the-photography-ecosystem-on-mac-os-x#notesList
http://caffeinatedcocoa.com/blog/?p=7
http://blakeseely.com/blog/archives/2006/03/31/nsimage-deceivingly-simple-or-just-deceiving/

If I ever get *really* motivated to dust off my C++ skills (and I use that term very loosely), add support for XMP metadata fields:
http://www.adobe.com/devnet/xmp/

Some XML-RPC implementations for dealing with the lack of the WS* helper classes on the iPhone/iPod Touch:
http://code.google.com/p/wsdl2objc/
http://www.kilbot.com.au/2009/06/14/xml-rpc-on-the-iphone/

...at least until we have a RESTful interface to our api

Unit Testing with Objective C:
http://cocoawithlove.com/2009/12/sample-mac-application-with-complete.html
http://chanson.livejournal.com/119097.html


 
++Horde_Image



++ GPS / Geocoding Stuff

Some code for using gps tracks in PHP - would like to provide apis for apps with geodata top filter based on date and location.

http://sgowtham.net/blog/2009/02/12/php-storing-gps-track-points-in-mysql/

Basic info on creating GIS capable tables, queries.
http://emad.fano.us/blog/?p=211

Choosing the best images to display based on location?
http://www.jongales.com/blog/2009/04/14/nearest-records-by-latitude-longitude-in-sql/
http://lists.mysql.com/mysql/204782
http://dev.mysql.com/tech-resources/articles/4.1/gis-with-mysql.html
http://www.scribd.com/doc/2569355/Geo-Distance-Search-with-MySQL
http://mysqlgis.com/

Alternative to google for webservices - plus a downloadable location database:
http://www.geonames.org/
http://www.gisgraphy.com/

Open source map server
http://mapserver.org/

Open source javascript abstraction for in-line dynamic maps
http://openlayers.org/

++ Kronolith Stuff/Ideas:
http://demo.helioscalendar.com/events/ (Some map integration ideas)