Offline collections - Meteor 0.6 - html

The smart package appcache allow us to improve the load time of Meteor applications by keeping in the browser static ressources defined in the manifest.
But that's not enough to run the app offline, we need to have offline database/collections as well.
Today, what are the best strategies to use offline minimongo? What is planned (or not) in the future?

Is Meteor (as excellent as it is) the right tool when there's a lot of offline? SyncIt is one of the "edit locally then apply to server" libraries, but it's thought about as offline first. Disclosure: I wrote it.

At the moment the collections aren't persisted offline. Meteor needs the ability to sync between offline and online collections as well the ability to persist collections offline. While its not on the roadmap yet, hopefully its still on the minds of core developers.
Hopefully they see this question and put it on

I answer my own question by linking the offline-data package for Meteor by Andrew Wilcox who is the author of the appcache package as well.

Related

Using the workspace in a Eclipse RAP application

I have an Eclipse RCP application which I am planning to write in RAP so that I can allow my users to access it on web. I have just started with RAP and have gone through what RAP can provide and what it can't. Also I have seen the demo workbench application. Seems like a good fit for my use case but I still have some questions around the feasibility and workarounds possible in RAP.
Can RAP allow ports for existing views from eclipse like Package Explorer or Navigator. Also since the workspace would be shared can there be a way around to show different projects to different users.
The short answer is NO!
The Package Explorer or Navigator views itself wouldn't be hard to port to RAP. The Workspace/Resource API is the limiting factor here, as you already guessed. For RAP, a multi-user aware resource API would be desireable that provides a workspace for each seesion.
But until now, nobody put in the effort to implement this feature.

How does the mozilla stub installer works?

I'm currently working on a no-touch deployment and auto-update mechanism for a Windows application. I've tried Microsoft ClickOnce strategy but it did not work for me as the strategy only suits small-sized apps, and my application hauls at ~500MB.
I'm interested in how the stub based installation and update strategies work for Mozilla Firefox and Google Chrome and also Microsoft's packages including its .NET framework and VS installers. I've come across Google Omaha which hosts the Google product update deployment mechanism, but it is not very conclusive for me.
Can anybody please help me out how the stub-based deployment design works?
P.S. Any open source code for the same would be of a great help. ;-)
I'm not quite exactly sure of what you mean by "stub-based". There's a handful of technologies and tools involved in what I understand you want to accomplish. For the setup packages creation there are: NSIS, Inno Setup and the WiX Toolset, for example. A core technology is MSI. On the other hand, for application updates and the such, there's BITS and also some web stuff involved in updates publishing, like using an ATOM feed, for instance (your referenced Google Omaha might fit into this category).
It's only a bunch of pointers, but I hope it helps.
The Mozilla installer is opensource (as is the NSIS system it uses) so I'd suggest adapting the code found here: http://lxr.mozilla.org/seamonkey/source/toolkit/mozapps/installer/windows/nsis/
It's a bit complex so you could start with a simpler script and incorporate the bits you want (like finding/downloading updates and UAC evelation).

Is there any JavaScript framework that supports offline scenario in MVC 4 SPA?

Steve Sanderson presented MVC 4 SPA "Delivery Trucker" for mobile devices with offline support using upshot.js JavaScript framework.
http://channel9.msdn.com/Events/TechDays/TechDays-2012-Belgium/199
It seems that the MVC team dropped support for upshot.js
Is there any other JavaScript framework to provide offline support for mobile devices?
Example: MVC4 SPAs application is running on a smart phone. The phone might lose reception. SPA is using the HTML5 local storage to save data changes when offline. The JavaScript framework in question will detect when the mobile device is back online and synchronize the changes from the HTML5 local storage to the DB Server.
It would be really helpful if the MVC team provides support for Single Page Applications (SPAs) templates running on mobile devices offline.
Please vote for it if you think it will be helpful:
http://aspnet.uservoice.com/forums/147203-spa-single-page-application-framework-with-javas/suggestions/3721721-offline-support-for-single-page-application-templa
Want to improve this post? Provide detailed answers to this question, including citations and an explanation of why your answer is correct. Answers without enough detail may be edited or deleted.
SpineJS has support for persistent local storage of model objects. Here's the guide. It's actually surprisingly transparent for the programmer to use and I highly recommend it.
Specifically, it fits your requirements in the following way:
it enables you to save state changes locally when offline
it's possible to announce itself to a server-side service when it's back online and push changes to the backend
the creators of Spine.js plan to implement an automation of that process using AJAX CRUD replays of the transactions you did when offline, read about it here.

static html blog/cms to run on a USB stick?

What are the options for having a simple blog, content management system that will deploy the full site as static html over FTP/SFTP and any blog API?
I am aware of Thingamablog but it hasn't been updated in more than a year so i guess is dead now. What are my alternatives that must export at least static HTML to a FTP server?
It would be nice if the app would have some visual gui to enter the blog post and could run from a USB stick.
I don't know that Thingamablog is dead just because it hasn't been updated in a year. Lack of recent updates doesn't necessarily mean the project is dead, it just may mean that it has achieved it's goals and has nothing more to add. Does Thingamablog do what you need?
How about TiddlyWiki. Not a blog or CMS, but it seems to be the kind of thing you need.
Today I came across this tool: Zeta producer. They have a free and a pay version.
Second the motion for CityDesk. You could probably run your blog on the free version (up to 50 "assets" - files, pages, images, etc.), and publishes static HTML to servers via FTP as its specialty. It's trivial to add updates; re-publish process does a differential between your new version and the one that's on the server, and only makes necessary changes.
Examples abound - just google for "*.cty" files.
Here's a CityDesk site I help run:
http://bv-embs-chapter.com
Hope this helps.
Thingamablog is active again. 1.5 will be released soon, currently 1.5veta5 is the latest. Looks good for what you need.
Paul.
You could use the MoWeS Portable: The Modular Web Server.
http://www.chsoftware.net/en/useware/mowes/mowes.htm
It lets you pick and choose a number of static and dynamic services to run on top of a web server straight off the USB drive or a virtual drive.
I run a Wiki off a virtual drive using Mowes at work and at home, i run a personal blog from my usb stick.
Its verrry easy to configure and powerful enough to be productive.
Edit: Heres a link to help you get started with it:
http://www.mediawiki.org/wiki/Manual:Installing_on_WOS_Portable_(Windows)
In the download section, you can select what packages you want to install. This is where you can select what CMS/Blog softwares you want to include.

Browser application & local file system access

I want to enhance my browser-based web application with functionality that enables management of local files and folders. E.g. folder tree structures should be synchronized between local workstation and server via HTTP(S).
I am aware of security-related limitations in browser-based applications. However, there are some techniques that "work around" these issues:
Signed Java applets (full trust)
.NET Windows Forms browser controls (no joke, that works. Just the configuration is horrible)
ActiveX
My question is: What do you use/suggest, both technology and implementation practice? Key requirement is that the installation process is as simple as possible.
Thanks for your opinions!
Google Gears.
it lets you write Javascript applications with a much bigger platform support than the usual browser, and go 'unconnected' with local file access, cache and DB. and if/when connected it syncs to the central server.
available for several browsers on all platforms; but still under heavy evolution.
Both Gears and Adobe Air require the user to manually select a local file before you get any programmatic access. Very limited because of security considerations when it comes to local filesystem access, so no chance for any web based file sync type functionality there as far as I can see. Maybe I'm wrong about Adobe Air but this is definitely the case with gears. But If I'm wrong let me know!
Silverlight 4 (still in beta) allows file system access:
"Read and write files to the user’s MyDocuments, MyMusic, MyPictures and MyVideos folder (or equivalent for non-windows platforms) for example storage of media files and taking local copies of reports"
http://www.silverlight.net/getstarted/silverlight-4/
Definitely not ActiveX. No sense spending time on something that out-of-date.
Adobe AIR (essentially, Flash for the Desktop), is something that we considered in my last contract, as opposed to Java applets. Last I checked, though it's been several months, the installation of the AIR runtime environment was fast and easy
Your best bet might be to write a custom application that interacts with your web application. For example, Dropbox lets you synchronize files across computers by use of a background application that watches a Dropbox-enabled folder. It also lets you view your Dropbox files online through a web browser. The Dropbox web application then allows you to delete/move/copy files which is echoed in your local filesystem.
In the demo of Google Wave...
http://www.youtube.com/watch?v=v_UyVmITiYQ&fmt=18
...at 15:30 in, a group of img files are drag-and-dropped from the file system to the browser. The functionality is attributed to Google Gears. This seems a bit different from what Daniel OCallaghan and the official documentation suggest is possible.
Anybody know what's actually possible w/ Google Gear and the local file system?