[Pharo-users] Re: Opening presentation of the JPL Open Developer seminar series
> Great ! What is the time zone? UTC-8 -C -- Craig Latta :: research computer scientist Black Page Digital :: Berkeley, California 663137D7940BF5C0AFC 1349FB2ADA32C4D5314CE
Re: [Pharo-users] Pharo at JPL
Good luck, Ted, and congratulations! -C -- Craig Latta Black Page Digital Berkeley, California blackpagedigital.com https://caffeine.js.org
[Pharo-users] browsing references to elements of Undeclared?
Hi all-- In various Smalltalks, I'm used to being able to open an inspector on the Undeclared dictionary, then selecting an element and browsing references to it. I don't seem to see that functionality in Pharo 8. Is there an equivalent? thanks! Craig -- Craig Latta Black Page Digital Amsterdam :: San Francisco cr...@blackpagedigital.com +31 6 2757 7177 + 1 415 287 3547
Re: [Pharo-users] New type of web application using HTML, CSS and Smalltalk
Hi Paul-- > I wonder if you had or could make something like this: > > https://jgthms.com/web-design-in-4-minutes/ > > that shows the value of caffeine in a way being placed into the > default dev environment + readme doesn't. Yes indeed, I expect to produce such material. > It seems like your work would be really useful to me as a person that > writes web apps in Smalltalk but I have no idea what "extra" I can do > with it. The extra thing is writing web apps in a livecoding style, from within a web browser. I wanted this for my own web app development, as an alternative to the mainstream edit-build-run cycle. > I've watched the youtube presentation and navigated through the > impress presentation on your site and it too quickly introduces tons > of concepts of what you can do but nothing about why anyone should > want to do those things or how to put them together into something a > user would use once a developer has made something. Right, that presentation is just a bunch of demos of works in progress, showing some things that are possible. They're meant to inspire the viewer to imagine what she might do with those abilities, rather than convince the viewer to adopt anything yet. > I also think the dynamic nature of what you're making is cool but it > seems like it adds another level of difficulty in making things > comprehensible to/usable for/accessible by end users. Ultimately, I think making most of the external tools and build steps unnecessary, and enabling direct manipulation, will make things more comprehensible. > Its clear something is there I just have no idea how to unlock the > value for myself or current users and/or theoretical future users. I think it's just the classic value proposition of having a runtime environment in which further development and debugging can occur. For me, the greatest value is being to fix a problem at a point that took a long time to reach, then just continuing the usage session (retaining all that built-up state) rather than starting over. In highly interactive environments like VR, this is critical. -C -- Craig Latta Black Page Digital Amsterdam :: San Francisco cr...@blackpagedigital.com +31 6 2757 7177 + 1 415 287 3547
Re: [Pharo-users] New type of web application using HTML, CSS and Smalltalk
> [Caffeine is] something very different from a standard single-page Web > app showing standard HTML elements and no IDE in sight, in exchange > for a small footprint. It depends what you do with it. Caffeine can interact with the web browser and other JavaScript frameworks just as any JS framework can. I have other demos showing mainstream SPAs and UIs, using WebComponents, VueJS, plain old DOM elements, etc. -C -- Craig Latta Black Page Digital Amsterdam :: San Francisco cr...@blackpagedigital.com +31 6 2757 7177 + 1 415 287 3547
Re: [Pharo-users] Reminder: Smalltalk Webcamp, 22nd of October
Hi Johan-- Looking forward to it! -C *** On 23/9/19 19:57, Johan Brichau wrote: > Hi, > > Are you doing Web development with Smalltalk? Then this meeting is for you. > We organise an informal meetup on Smalltalk Web Technologies at the > Yesplan offices. > > === > Smalltalk WebCamp > --- > Date: Tuesday October 22nd, 2019 (9h30 -> 18h00) > Location: Yesplan offices in Gent, Belgium. (www.yesplan.be > <http://www.yesplan.be/>) > === > > This is an un-conference: everyone is invited to actively participate by > presenting their project. > Come and share your web development experience with Smalltalk. > Wether you are doing Seaside, Teapot, PharoJS, Amber, SqueakJs, Zinc > REST, … or anything else that involves Smalltalk and web technologies: > come and share your experience! > > We provide ample time to discuss and collaborate on topics, meet people > and have a beer in the evening. > > Attendance is free, but please register before October 15th if you are > attending, so we can plan accordingly. > Registration > link: https://www.eventbrite.com/e/smalltalk-webcamp-tickets-69185265993 > > At this time, there are 9 participants, excluding the Yesplan team. > > Questions? Please send me an email. > > Best regards > Johan Brichau > jo...@yesplan.be <mailto:jo...@yesplan.be> -- Craig Latta Black Page Digital Amsterdam :: San Francisco cr...@blackpagedigital.com +31 6 2757 7177 + 1 415 287 3547
Re: [Pharo-users] pharo for ios and android
Hi Richard-- > I see there is a caffeine.js.org/pharo... I'm trying it but it takes > rather longer to start than the Squeak page. Ah, I recently condensed the changes file of the Squeak version, so the first download is much faster. I also think the Pharo 6 image I was using is much larger than the Squeak one, for some reason. I intend to update the Pharo image to version 8 soon, anyway. > By the way, I'm using Firefox on Ubuntu, so what do I type to get, for > example, "print it"? Ctrl-P is captured by Firefox. You should be able to use the normal meta key for your host platform, it's a bug in the supporting page code in .../js/squeakjs/squeak.js if not. We can handle command key events ourselves and then call .preventDefault() on them, to keep the web browser from chiming in. It should be that Smalltalk handles all of them except for copy/cut/paste/reload. Thanks for checking it out! -C -- Craig Latta Black Page Digital Amsterdam :: San Francisco cr...@blackpagedigital.com +31 6 2757 7177 + 1 415 287 3547
Re: [Pharo-users] pharo for ios and android
Hi-- > Craig Latta runs Smalltalk images on the javascript vm written by Bert > Freudenberg. Search for Caffeine Yes, https://caffeine.js.org is my main development system these days, and it runs nicely on my iPhone (or any device, with any web browser). Caffeine is the https://squeak.js.org virtual machine (which can run Squeak, Pharo, and Cuis) with Web platform and frameworks support. thanks, -C -- Craig Latta Black Page Digital Amsterdam :: San Francisco cr...@blackpagedigital.com +31 6 2757 7177 + 1 415 287 3547
Re: [Pharo-users] Status of Caffeine
> What about the UI lag and the occasional spinner that blocks the UI, > is this related to the debugging protocol (I see that the IDEs are > loaded in iframes) that will go away when run from local, or is this > something that can be optimized away? That's just the speed of Morphic. The VM is set up to display the spinner whenever anything takes more than a certain amount of time (one alternative is to just turn it off :). While Morphic in SqueakJS has gotten a lot faster since the first release, just because JavaScript engines have gotten faster, I was still motivated to explore alternatives. That's why I experimented with animated HTML wireframes, morphic.js from Snap, and using a separate HMTL5 canvas for each morph. All three of these approaches are much faster than traditional Morphic. However, the traditional Morphic UI has the appeal that it's pixel-portable between the Web and native apps. thanks again, -C -- Craig Latta Black Page Digital Amsterdam :: San Francisco cr...@blackpagedigital.com +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-users] Status of Caffeine
> The minimal example seems to load fast enough. Do you think there is a > potential to slim it down even further for a production system that > uses the DOM as its UI, ie remove morphic and others and use the image > in headless mode? Certainly. I've done some experiments with "animated wireframes" for the development tools. See [1]. I can compose UIs in HTML, then read them into SqueakJS and give them behavior by giving them DOM event handlers written in Smalltalk. > Thanks for the offer to work together on the Pharo port. It is too > early for me to commit to that, but I definitely like the idea. Right > now I'm just checking out. I'd like to use Pharo's (or Squak's) > interactive development workflow to develop single page web apps and > mobile apps in a reliable manner. Yes, I've found it to be a very productive environment. It's great to be able to debug things in situ, in the DOM environment. > Is there a way to run the IDE in a separate window from the actual > application, so that the UI would behave as in production during > development? I'm especially thinking of responsive web applications > here. Yes; I've also built an interface to the Google remote debugging protocol, so (in Chrome) I can run SqueakJS in one browser window, and control whatever's going on in any other browser window. > (If not then perhaps putting them into divs next to each other might > be a decent workaround) Yeah, this is what I did in the first Caffeine demo[2]. When I want the Smalltalk IDE to disappear I just set the opacity of its div to zero and its pointer-events to none. This approach works across all browsers. thanks, -C [1] https://tinyurl.com/y9ngn363 (github.com) [2] https://caffeine.js.org -- Craig Latta Black Page Digital Amsterdam :: San Francisco cr...@blackpagedigital.com +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-users] Status of Caffeine
Hi Erik-- > I read in some of the more recent issues that on some mobile devices > (based on iOS) the page reloads after switching apps and/or locking > the device. This will loose any data currently in the Caffeine app. > Craig is working on a solution based on WebWorkers. This probably > means: not production ready for mobiles yet. It turns out splitting the app over multiple processes is only necessary on iOS 12, which has more severe memory limits. iOS 12 doesn't support OffscreenCanvases in web workers yet, or 2d contexts for OCs, so for now I'm just back in iOS 11, where everything works in one big process (Squeak + A-Frame). thanks, -C -- Craig Latta Black Page Digital Amsterdam :: San Francisco cr...@blackpagedigital.com +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-users] Status of Caffeine
Hi Siemen-- > What is the status of Caffeine now - is it production-ready with > Pharo, and how large is a minimal (not development) image with > everything required to run a production system - i.e. what would be > the load time of a Caffeine web app? I'm using Caffeine in production with Squeak; there are a few bugs to deal with in Pharo. Would you like to work together on it? A minimal system is a few hundred kilobytes, depending on the application. The VR app I'm doing now is fairly large and loads in 10 seconds. A small app should take about two seconds. The mini image demo at [1] is a good approximation. Please feel free to join in on Caffeine issues, at [2]. thanks, -C [1] https://squeak.js.org/demo/simple.html#fullscreen [2] https://github.com/ccrraaiigg/ccrraaiigg.github.io/issues -- Craig Latta Black Page Digital Amsterdam :: San Francisco cr...@blackpagedigital.com +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-users] Standalone HTML Model
Hi Norbert-- > > In Pharo on the SqueakJS virtual machine in a web browser[1], I > > sketch with live DOM objects, and write them out as HTML. This way, > > the DSL is the actual JavaScript DOM API which is sitting in the web > > browser anyway, although driven with Smalltalk messages over the JS > > bridge. I'm also assured that everything I do with the DOM objects > > is legitimate, and I can handle DOM API errors live in Smalltalk. > > Sure you can do the same with PharoJS. Really? I wasn't aware that one can livecode JS objects with PharoJS, only that PharoJS generates JS source which eventually runs in a browser. Can you give an example? > But there are scenarios where you want to have DOM actions without > having a browser. Oh, it wasn't clear to me that this was one of Sean's requirements. thanks, -C -- Craig Latta Black Page Digital Amsterdam :: San Francisco cr...@blackpagedigital.com +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-users] Standalone HTML Model
Hi Sean-- > I'd like to create HTML via a DSL, like Seaside's canvas builder, but > without loading a whole web framework. Any ideas? In Pharo on the SqueakJS virtual machine in a web browser[1], I sketch with live DOM objects, and write them out as HTML. This way, the DSL is the actual JavaScript DOM API which is sitting in the web browser anyway, although driven with Smalltalk messages over the JS bridge. I'm also assured that everything I do with the DOM objects is legitimate, and I can handle DOM API errors live in Smalltalk. -C [1] https://caffeine.js.org/pharo -- Craig Latta Black Page Digital Amsterdam :: San Francisco cr...@blackpagedigital.com +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-users] Minimizing an Application
Hi-- > > > ...10mbs which is the size pharo image can be reduced to is > > > nothing for todays TBs hard drives and GBs flash drives and > > > online storage. Unless you do an embedded app and 10 mbs are huge > > > for your limited storage. > > > > Or you want to minimize initial startup time, including the time it > > takes to transmit the entire system over the net. > > ...transmitting the entire image would be necessary only in the case > you want to install it remotely and that remote location has no > immediate access to the installation. Yes, that's what I meant by "initial startup". -C -- Craig Latta Black Page Digital Amsterdam :: San Francisco cr...@blackpagedigital.com voice through 2017-09-12: + 1 510 833 5799 (SMS ok) +31 20 893 2796 (no SMS)
Re: [Pharo-users] Minimizing an Application
> ...10mbs which is the size pharo image can be reduced to is nothing > for todays TBs hard drives and GBs flash drives and online storage. > Unless you do an embedded app and 10 mbs are huge for your limited > storage. Or you want to minimize initial startup time, including the time it takes to transmit the entire system over the net. -C -- Craig Latta Black Page Digital Amsterdam :: San Francisco cr...@blackpagedigital.com voice through 2017-09-12: + 1 510 833 5799 (SMS ok) +31 20 893 2796 (no SMS)
Re: [Pharo-users] Pharo on the SqueakJS virtual machine
Hi Torsten-- > > The next big step is getting a WebAssembly version of Cog running. > > Anyone known already to work on such a beast? Yes, I'm working on it. > Another path could be to run on a Linux booting in the browser: > > https://bellard.org/jslinux Blech! :) -C -- Craig Latta Black Page Digital Amsterdam :: San Francisco cr...@blackpagedigital.com voice through 2017-09-12: + 1 510 833 5799 (SMS ok) +31 20 893 2796 (no SMS)
Re: [Pharo-users] Pharo on the SqueakJS virtual machine
Hi Sean-- > > https://tinyurl.com/y727fz4a > > Cool! > > A few things: > - There is a very noticeable lag (e.g. ~5 seconds to open an "About" > window). Any idea what it would take to deliver performance levels > that feel more native? The next big step is getting a WebAssembly version of Cog running. Until then, we're riding the performance improvements in the web browser JavaScript engines. At the moment, Chrome seems a lot faster than the others. Bert's just-in-time translation of compiled methods to JS (which the web browser's JS engine then translates to native code) helped a lot. > - I wonder how Tether compares to Denis' Seamless I think Tether's serialization takes more advantage of the fact that the participants are live Smalltalk systems with many of the same objects already in all locations. Tether also attempts to allow remote messages with parameters from multiple object memories (e.g., in a context on machine A, a message is sent to an object on B, with parameters on C and D). > - I was going to ask the same question for Naiad vs Epicea, but after > reading on your blog, it seems Naiad is much more ambitious than > simply tracking changes Yes, Naiad is ultimately a deployment vehicle, enabling the accurate construction and deconstruction of systems. I want a coherent way to release apps and work in teams, livecoding all the time. > - I got a few errors off the bat > - UnixResolver>>#cantFindOriginError from #getEnvViaFFI > - "The primitiveFetchMourner is missing. Please upgrade your virtual > machine..." Mm, I haven't delved into any of the non-fatal Pharo errors yet. :) thanks! -C -- Craig Latta Black Page Digital Amsterdam :: San Francisco cr...@blackpagedigital.com voice through 2017-09-12: + 1 510 833 5799 (SMS ok) +31 20 893 2796 (no SMS)
Re: [Pharo-users] Pharo on the SqueakJS virtual machine
Well, that didn't take as long as I thought. :) Probably due to progress Bert made since we looked at it at ESUG 2016. For more details, see https://tinyurl.com/y727fz4a (thiscontext.com). Let the bugfixing begin. :) thanks again, -C -- Craig Latta Black Page Digital Amsterdam :: San Francisco cr...@blackpagedigital.com +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-users] Pharo on the SqueakJS virtual machine (was "PharoJS")
Hi Aik-Siong-- > Great news for Pharo. I presume it will be after you are done with > Squeak running on SqueakJS. Now that I've gotten a release of Caffeine out[1], and written some blog posts about it[2], I've turned my attention to Pharo in web browsers. I also want Squeak and Pharo in web browsers to communicate with their native counterparts, and with other Smalltalks. My goal is a federation of live collaborating Smalltalk nodes on the net. I also have SqueakJS controlling and reprogramming NodeJS instances. > Do you have a roadmap? Bert and I worked on it a bit at ESUG 2016, and it was going alright. Very conservatively, I expect to have it finished this year sometime. > How will WebAssembly help or not with project? I think WebAssembly will enable us to run Cog, with the usual web security compromises. That's also something I'm interested in working on. It may make the SqueakJS virtual machine obsolete. thanks, -C [1] https://caffeine.js.org [2] https://thiscontext.com -- Craig Latta Black Page Digital Amsterdam :: San Francisco cr...@blackpagedigital.com +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-users] PharoJS
Hi-- Aik-Siong writes: > Craig Latta is doing something interesting[1] with SqueakJS which is > an optimized Smalltalk VM in JavaScript and HTML5. It is supposedly > able to run Smalltalk fast inside the browser and access the > JavaScript world freely. I think this route will benefit greatly from > WebAssembly. I'm also making it run Pharo. thanks, -C [1] https://caffeine.js.org -- Craig Latta Black Page Digital Amsterdam :: San Francisco cr...@blackpagedigital.com +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)