1,252 karma · joined October 29, 2008
rgd@hey.com
EDIT: I see that they mention OT on the people page: http://www.meteor.com/about/people, so excuse my ignorance about the people behind the work...
A couple of questions for you:
1) What's the current and projected goal in terms of concurrency for the server? Is this going to be able to handle thousands of simultaneous connections? Is the Node server built on anything else like Socket.IO, or is it fully new and unique code?
2) How does this handle conflicts? ShareJS implements Operational Transformation[2] to attempt to smartly handle conflicting writes from multiple clients (used in Google Wave, for example). Does this just do a simple timestamp-based overwrite? If so, how far down the tree? I'm not familiar with MongoDB (sorry), but would it be at the object level? Or the property level?
[1] http://sharejs.org [2] http://en.wikipedia.org/wiki/Operational_transformation
http://ie.microsoft.com/testdrive/Performance/SantasWorkshop...
Runs significantly faster and smoother for me now.
Titanium lets you write Javascript that executes using JavascriptCore (a Javascript processor that is part of iOS) on iOS, and I believe V8 on Android, but I could be wrong on that. Then, they have bindings in Objective C (and Java). So when you call in Javascript Titanium.window.create();, the relevant Objective C is executed by the bridge.
This is all fine and dandy until you start doing something more complicated than displaying a few windows. For example, our app needed to have some complicated TableViews with highly customized rows that needed to be re-generated on each draw. Executing the logic for that in Javascript has a huge penalty hit.
So while I would recommend Titanium over PhoneGap any day, it is not true that it is a "compiled to Objective C" sort of thing (again, at least it wasn't 4 months ago, and I was using at that time 1.80 which was the super-bleeding-edge-dev build, because I had a ton of issues with random crashes in the 1.7x series due to the Titanium Database module not being completely thread-safe at the time).
Sorry to hijack.
EDIT: Just to confirm, 1.81 is the current "stable" release, so what I was using 4 or 5 months ago is what is the standard now. So it does not compile Javascript to Obj. C.
Also, for an example of the random crashes we were seeing, see: http://www.juliusbuss.de/web/youatnotes/blog-jb.nsf/dx/quick...
A lot has been fixed in the 1.8x series, but at the end of the day you're still depending on someone else's middleware to behave and not crash your app for no reason.
In case anyone decides to go down the learning Objective C route, learning with the excellent "Programming iOS 4" book took me about 1 month from the first page I read to having the whole app re-written, so it's really not too terrible. You don't have to do any of the memory management stuff anymore with iOS 5 and ARC, either.
You can remove the text by highlighting it and tapping the Delete key on your keyboard, or by right-clicking and choose "Delete". If you click the Gear icon that's above the Search box when you are in the Image Search dialog, you can set it to put automatic labels above, below, or not at all.
Are you trying to tag image results in your personal image library? Or tagging supports doesn't work when your browsing the site outside of the editor?
Thanks for the feedback! And feel free to email help@symbly.us if you would rather do this via email :-).
I would, of course, appreciate any feedback that you can give about the website, and if you or anyone you know is involved in special education, have them give the app a try as well!
Thanks for all the great advice over the years. This entire community is an inspiration.
EDIT: For those technically inclined, the app itself runs on a combination of Raphael JS, SVG, Backbone JS, Share JS, and Node.
$ host assets.tumblr.com
assets.tumblr.com is an alias for
assets.tumblr.com.edgesuite.net.
assets.tumblr.com.edgesuite.net is an alias for
a1092.g.akamai.net.
a1092.g.akamai.net has address 69.31.106.32
a1092.g.akamai.net has address 69.31.106.50I've used it the last 3 times I've booked a flight, and I would never use anything else. It makes it so easy to get the flight we prefer it's ridiculous.
In addition, your system seems to be more about automatically finding content, whereas the OP's system is much more manual and curated by the user.
I signed up for your beta list because I actually think your idea is interesting, but I think they solve two different problems.
One tip, to solve the "chicken and egg" problem of getting a good garden going while still consuming current levels of information, allow the user to choose to include some of those "low quality" sources as well.
For example, right now the vast majority of my info comes from HN and Reddit, both from links and comments. Ideally I'd be able to subscribe the service and keep getting all that info, then as I slowly build up my own more personalized, curated sources I could slowly start to remove the low-quality sources. I think if you could make this a pretty frictionless process you'd have a winner.
I've been thinking for a little bit now that it would awesome to build a Backbone sync system that could cache things locally when the user is offline, then seamlessly handle bringing them back in sync with ShareJS.
If you were ever considering contributing your modifications back to the community/Etherpad/Etherpad Lite, I would certainly make good use of them. Unfortunately our wiki is a highly integrated component of our custom-built Intranet, so we couldn't make use of a SaaS solution for it. But congrats all the same! I will keep an eye out for potential non-work uses.