Offline Web App for GSoC

475 views
Skip to first unread message

Sankha Narayan Guria

unread,
Apr 9, 2013, 4:27:34 PM4/9/13
to cesiu...@googlegroups.com, scott.k...@gmail.com, ke...@kotachrome.com
Hi,

I am new here and wanted to participate in GSoC this year. I went through the list of ideas and I am particularly interested in the Offline Web App support project.

I would like to know the particular details for this project and how should I start with it?

Thanks,
Sankha Narayan Guria

Scott Hunter

unread,
Apr 10, 2013, 4:30:21 PM4/10/13
to cesiu...@googlegroups.com
Hi,

Thanks for your interest.  I believe student applications open on the 22nd of April, but in the meantime, areas to investigate in the code are the ImageryProvider and TerrainProvider systems.  The current implementations load tiles via HTTP, but for offline support, tiles will need to be stored and retrieved from one of the HTML5 offline storage systems mentioned in the idea description.  Part of the project will be to research and investigate each of those storage APIs to see which one has the best user experience and cross-browser support.

thanks,
Scott

ionlaurent...@gmail.com

unread,
May 2, 2013, 5:02:14 PM5/2/13
to cesiu...@googlegroups.com
Hey guys,

I'm Laurentiu and I am excited to contribute to Cesium.
I know I'm quite late to the party, but what can you do...

I have always felt the need for offline.. everything. And I really feel like I could take this to the next step. I am kind of picky on what I work on, so I am glad to have found this project. There are a lot of cool ones, but I sense this is the one for me.

I am one of the Grand Prize Winners of last year's Google Code-in, which is like GSoC, but for under 18 year olds, and with a lot of smaller 'tasks' as opposed to one big 'project'. I consider that the fact that over a period of 2-3 months (winter), while I also had high school projects (and Christmas and stuff), I managed to be one of the top contributors and eventually got picked as a winner shows a great deal of determination. That proves, in my opinion, that I will give my best to this project.

I am eager to hear back from you guys.

Cheers!


PS: do you have IRC or something?
--
Laurentiu Cristian Ion

Laurentiu Cristian Ion

unread,
May 3, 2013, 12:23:27 PM5/3/13
to cesiu...@googlegroups.com

TJ Koury

unread,
May 23, 2013, 5:18:59 PM5/23/13
to cesiu...@googlegroups.com
i built a Node.js simple cesium server:


What you could do is to create a terrain server with the same API as one of the other providers using the Node.js server instance and then just create providers that point to localhost.  You can still store the files locally and serve them using Node, without having to worry about creating the code with local storage options (though if you have time it's certainly a worthy pursuit).


On Friday, May 3, 2013 12:23:27 PM UTC-4, Laurentiu Cristian Ion wrote:
Feedback? :D

http://www.google-melange.com/gsoc/proposal/review/google/gsoc2013/laurentiu_ion/12001

Patrick Cozzi

unread,
May 24, 2013, 1:13:43 PM5/24/13
to cesiu...@googlegroups.com
TJ - offline support goes beyond terrain.  We also care about imagery, vector data, etc.  For me, the most common use case is that I need to give a talk at a conference, but I don't trust the internet access, so I want to run the demo local with the most painless possible setup, e.g., perhaps run the app in a record mode first.

Patrick

TJ Koury

unread,
May 24, 2013, 1:31:27 PM5/24/13
to cesiu...@googlegroups.com
Patrick,

All this should be possible without much pain using Node, as long as the data is available in a local database then you can call it from Node using one of the many ORM (or direct) database access libraries, or just call the files using a universal naming scheme.
If you want me to work on building this up, I'll just need to be pointed towards the entire set of requirements.

-TJK


--
You received this message because you are subscribed to a topic in the Google Groups "cesium-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cesium-dev/nijPVlTjDGo/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to cesium-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Patrick Cozzi

unread,
May 24, 2013, 1:37:11 PM5/24/13
to cesiu...@googlegroups.com
Thanks for the offer TJ.  This isn't exactly my area of expertise but I don't think node is appropriate here.  We are all about frictionless deployment and no barrier to entry, and requiring users to use node to have offline support doesn't seem to fit the bill.  Think about the typical Google Maps user - what would they want to do?  The simplest thing possible.

Patrick

Ed Mackey

unread,
May 24, 2013, 3:46:04 PM5/24/13
to cesiu...@googlegroups.com
Keep in mind the user can't run off the filesystem directly, they need some kind of local server software.  Possibly we could ask them to use the Jetty server that you get from "ant runServer" in Cesium.  But we do have an old copy of Node hanging around in cesium/Tools, so it's fairly low-barrier to just call that.

        --Ed.



--
You received this message because you are subscribed to the Google Groups "cesium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cesium-dev+...@googlegroups.com.

Patrick Cozzi

unread,
May 24, 2013, 8:38:03 PM5/24/13
to cesiu...@googlegroups.com
Why can't we run off the filesystem?  I thought that was the whole point of local storage and friends.  If we really do need a server, then node.js is fine, of course.  I just find it hard to believe.

Patrick

TJ Koury

unread,
May 24, 2013, 8:39:03 PM5/24/13
to cesiu...@googlegroups.com
Ed,

Node.js is a local webserver (among other things).

Patrick,

You can package Node up inside a platform specific executable/archive, so it's a no-install type of deal.  They don't have to know it's Node, but all the code you write can be used both server/client side, really cutting down on the amount of code you have to write to get everything just the way you want it.  I'll show you what I mean when I get done with my demo.

-TJK

Ed Mackey

unread,
May 24, 2013, 9:29:19 PM5/24/13
to cesiu...@googlegroups.com
Patrick, not sure what I was thinking.  Of course the plan is to use offline web apps with the manifest file and such to make this work without a local server.  I think I was saying that it can't be implemented with simple "file://" links, due to XHR being forbidden against the local filesystem, but the manifest file works around that by explicitly allowing certain files to be "fetched" while offline.

TJK, yes I know Node.js, my comment was unclear and wrong but I do know Node.js is a local server.  Both it and Jetty ship with Cesium, in the Tools folder.

       --Ed.

TJ Koury

unread,
May 24, 2013, 10:22:42 PM5/24/13
to cesiu...@googlegroups.com
Ed,

After re-reading your comment I get what you were saying.

It's very easy to do some file stuff with Node:


It can mimic much of the POSIX spec on windows which can come in handy.

You're going to run into issues with using either localStorage or IndexedDB due to size issues cross-platform, and the manifest file will only work if you are first online so that the files can be downloaded (http://www.html5rocks.com/en/tutorials/appcache/beginner/).  If you start offline you're going to be out of luck.

I think that a platform-specific app that:

-Starts a Node process with a local server that can read the files stored on the local device
-Makes available a modern browser running without install (like http://commondatastorage.googleapis.com/chromium-browser-continuous/index.html).

would probably be our best bet.  I'm already working on a demo that *hopefully* will be ready soon.

r/TJK

TJ Koury

unread,
May 24, 2013, 10:28:18 PM5/24/13
to cesiu...@googlegroups.com
Also, if you wanted to use the fileSystem APIs:



Tom Payne

unread,
May 27, 2013, 10:10:41 AM5/27/13
to cesiu...@googlegroups.com
This is another way to make standalone applications in JavaScript:

As I understand it, it's node.js + WebKit (including WebGL) running in the same process/JS environment. I haven't used it though.

Regards,
Tom
Camptocamp SA
Tom PAYNE
PSE A
CH-1015 Lausanne

+41 21 619 10 13 (direct)
+41 21 619 10 10 (centrale)
+41 21 619 10 00 (fax)
Reply all
Reply to author
Forward
0 new messages