by Luke Crawford
Background Availability
people rely more and more on web apps
internet access is not ubiquitous
even works on planes
Background Features
enable rich-internet-apps to be full peers
remove latency of the internet
distribute processing to the edge of the network
peer-to-peer server with advanced sync
encourages more desktop-like user interfaces
What’s slingshot
mac + pc desktop app
rails plugin
ruby + mongrel runtime
set of conventions
GPLv2 open-source software
Current uses
apple: instead of cocoa apps
farm app for cows
government internal app
joyent connector
(connector Demo)
slingshot isn’t 100% complete, some of the things they use on connector aren’t finished or resolved yet for more advanced apps.
Network
xml or http
Software
mac + pc desktop app
rails plugin
ruby + mongrel runtime
YOUR APP
radiant CMS
the perfect candidate for slingshot
rails plugin
syncs at the DB level
uses sqlite locally
provides hooks to write your own sync code
SlignshotSyncController#aggregat_data
can run other processes locally
slinging your app
five easy steps (+1)
install plugin
add create_at + updated_at columns
add routes
generate sync controller
implement aggregate_data
(packaging)
Drag
dropping a link initiates a background download of a file
currently only working in MacOSX
Drop
VM/SlingShotConfig.xml
define different post rules for different kinds of files
http post to the PostURI
Packaging
mac
standard .app package
distribute as a .dmg
customize .nib files in XCode
info.plist settings
pc
NSIS installer
Resource Hacker
What does slingshot not do yet?
sync conflict resolution
encrypt your code
domain-specific online/offline issues
package your app automatically
update itself + your Rails app code
(demo)
Resources
code, wiki, blog, mailing list:
http://dev.joyent.com/projects/slingshot
Pingback: Centopeia » RailsConf Europe 2007 (Personal Notes)