mfikes / shrimp

Example project using Goby
Eclipse Public License 1.0
51 stars 7 forks source link

REPL Fails to connect with "Unable to mount WebDAV" #5

Closed DavidYKay closed 9 years ago

DavidYKay commented 9 years ago

Great library, Mike!

After getting the REPL running in Ambly, I was unable to get the REPL running in Shrimp. I followed all the steps but, after selecting the iOS simulator, received an exception in ambly.repl.jsc/mount_webdav.

Let me know what other info you need from me. Would be happy to help get this resolved.

Here's the dump.

mfikes commented 9 years ago

Thanks for the feedback @DavidYKay ! Can you check to see if your locally cloned copy of Ambly has this commit in it?

https://github.com/omcljs/ambly/commit/90f3c4887519b193ad01c746c416d0e6f3121baa

For me, this commit made it much less likely to see what is in your dump, but the change is essentially trying to avoid a race and perhaps more time needs to be given. Or, alternatively, there is a fundamentally new problem you are seeing, in which case we can easily debug it by trying to run the mount_webdav command from a terminal on your box to see if it works.

For your particular setup, the command would be

mount_webdav http://192.168.1.9:49153 /Volumes/Ambly-FOO

where Ambly-FOO is a folder it ends up making in /Volumes.

DavidYKay commented 9 years ago

@mfikes Thanks for the prompt reply!

omcljs/ambly@90f3c48 -- I have this commit.

I was able to perform the mount_webdav command and I believe this led me to the bug! I had some leftover Ambly-UUID directories hanging around in /Volumes. I deleted them and the REPL now works. I suspect they were the source of the problem.

I'll keep an eye on this to see if it recurs, but I'm all set for now. Many thanks!

mfikes commented 9 years ago

@DavidYKay ok. Ambly checks for, and first unmounts a leftover directory. (If you exit the REPL by typing :cljs/quit or Ctrl-D, then it will unmount upon exit. But if you hit Ctrl-C, it will leave behind a mount.)

Maybe I need to increase the sleep time. What age is your Mac? I’ve tested this on one from 2011, currently running Yosemite.)

mfikes commented 9 years ago

Landed omcljs/ambly@d0ef731700c8ae688cbf267d9c86d1865ad6e79c which should make WebDAV mounting more robust.

DavidYKay commented 9 years ago

Mike,

You work quickly! Many thanks.

My Mac is also from 2011, but the HDD seems to be slowing down more than usual.

I'll be springing for an SSD in the near future, but I'm glad I got to play "canary in the coal mine" for you in the meantime. :)

Thanks again for the fix. I'll be playing around with getting the REPL working properly with CIDER. Looking forward to spending more time with Goby/Ambly. I've been looking for a convincing native solution on iOS and this just might be it! On Mar 25, 2015 11:03 PM, "Mike Fikes" notifications@github.com wrote:

Landed omcljs/ambly@d0ef731 https://github.com/omcljs/ambly/commit/d0ef731700c8ae688cbf267d9c86d1865ad6e79c which should make WebDAV mounting more robust.

— Reply to this email directly or view it on GitHub https://github.com/mfikes/shrimp/issues/5#issuecomment-86316102.

mfikes commented 9 years ago

@DavidYKay Thanks!

If you look at the big picture, Goby ends up being a thin wrapper around the mutable iOS SDK, and doesn't really try to do anything to address that.

In the meanwhile, Facebook has been making great strides towards building iOS apps in a functional style. In particular, React Native looks extremely promising and our hope is that something like Om driving React Native could lead to a very clean solution. (That's why Ambly ended up being part of omcljs—it could directly facilitate that style of programming, while also being a general-purpose iOS REPL supporting other approaches like Goby's).

DavidYKay commented 9 years ago

@mfikes:

"thin wrapper around the mutable iOS SDK" -> I was looking forward to getting that all working, stateful APIs and all. Been developing apps on iOS and Android for 6-7 years in imperative languages and my feeling is that using Clojure on both platforms is worth the effort of wrapping the native UIs. Xamarin and RoboVm are doing me well, but the Clojure story isn't quite there yet, hence the interest in Goby.

React Native: Very big news. Could be a potential game-changer. Building on top of React Native would save us a lot of work. My main concern is that it seems to sit at a very high level of abstraction and I spend a lot of my time working with low-level APIs on each platform. If I have to spend a lot of time jumping between Clojurescript and native code, I fear that React Native might just be getting in the way. Anyway, now that it's been released, I'll have to kick the tires and see how extensible it is.

Thanks again for the help and the conversation. :)

On Thu, Mar 26, 2015 at 10:19 AM, Mike Fikes notifications@github.com wrote:

@DavidYKay https://github.com/DavidYKay Thanks!

If you look at the big picture, Goby ends up being a thin wrapper around the mutable iOS SDK, and doesn't really try to do anything to address that.

In the meanwhile, Facebook has been making great strides towards building iOS apps in a functional style. In particular, React Native looks extremely promising and our hope is that something like Om driving React Native could lead to a very clean solution. (That's why Ambly ended up being part of omcljs—it could directly facilitate that style of programming, while also being a general-purpose iOS REPL supporting other approaches like Goby's).

— Reply to this email directly or view it on GitHub https://github.com/mfikes/shrimp/issues/5#issuecomment-86536400.

David Young-Chan Kay www.davidykay.com DavidYKay@gmail.com 404-624-6385

Schedule a call with me: https://www.sohelpful.me/davidykay

mfikes commented 9 years ago

Absolutely. Excited to see where all of this leads. :)

I'll close this issue for now. If you encounter Ambly WebDAV mounting issues, by all means, let us know!