Re: [Pharo-dev] DebugSession>>activePC:
Hi all-- Eliot writes: > Do you want to remove the method simply because there are no senders > in the image? > > If so, this is indicative of a serious problem with the Pharo > development process. In the summer I ported VMMaker.oscog to Pharo 6. > Now as feenk try and build a VMMaker.oscog image on Pharo 7, the > system is broken, in part because of depreciations and in part because > useful methods (isOptimisedBlock (isOptimizedBlock?) in the Opal > compiler) have been removed. > > Just because a method is not in the image does not imply it is not in > use. It simply means that it is not in use in the base image. As the > system gets modularised this issue will only increase. There are lots > of collection methods that exist as a library that are not used in the > base image and removing them would clearly damage the library for > users. This is the case for lots of so-called system code. There are > users out there, like those of us in the vm team, who rely on such > system code, and it is extremely unsettling and frustrating to have > that system code change all the time. If Pharo is to be a useful > platform to the vm team it has to be more stable. Esteban responds: > ...we are told that we remove things without caring. I don't see where Eliot said anyone didn't care. Stef responds: > About the method removed, could you please react less negatively? It > would be nice. > > ... > > How much time opening a bug entry can take? Under 1 min I guess. So > why if marcus removed it inadvertly would you want to make him feel > bad? Eliot said the system has to be more stable. It doesn't seem like a negative reaction, or an attempt to make anyone feel bad. As Ben pointed out, the major cost of reporting regressions isn't the time spent interacting with the bug-tracking system, it's being switched away from what you were doing. Using the automated regression-testing system seems like a good way of catching this particular issue (even though it's a step away from having full live traceability all the time, before committing changes). > For calypso we try and sometimes fail and retry. But we do not rant... > The solution is also to have ***positive* > communication... There is no point to piss on our process... So before > bashing us I would expect a bit of respect that it is due to our track > record... it would be nice if you could refrain to be systematically > negative about what we are doing. I don't think Eliot is being systematically negative, or that he was ranting, pissing, or bashing. I think introducing those accusatory words into the conversation detracts from positive communication. > I think that we are doing a great job make Smalltalk cool. I do, too! (And thanks for using that word. ;) 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-dev] Anybody using Orca Smalltalk to JavaScript?
Hi Frank-- > > > ...especially if their sources MUST be closely connected with > > > existing Smalltalk code, which does not run in the client like > > > all the data-driven model definitions etc that I already have > > > > There is no such requirement. > > Of course, there is, actually it's an absolute necessity in my case. Oh, I misunderstood you. I thought you were saying that such a coupling was a bad thing; I didn't realize it's a constraint you already have. Anyway, Caffeine is a distributed system. As long as your existing code can use WebSockets, you can use remote messaging between your code and the object memories running in web browsers. The Snowglobe remote UI examples, for example, have object memories running in the AWS cloud which can send messages to objects in a web browser, modifying that web browser's DOM objects. > > ...at the moment my UI is Mozilla's A-Frame 3D virtual reality > > framework, at 90 frames per second. > > Well, what I have seen from the demos, the responsiveness to the > cursor alone is so very far away from being acceptable... That must have been the first Smalltalk Morphic demo, in which Morphic had full unoptimized control of the cursor. Since then, I've made UIs that use the Zebkit UI framework, morphic.js from the Snap project, A-Frame, and pure HTML/CSS. As it turns out, I now always use the web browser's built-in cursor handling for the normal case, even with Smalltalk Morphic, so one gets the native OS cursor handling speed. > ...that I only believe, what you are writing, when I have seen a > real-world JavaScript UI based on your system. Sorry, over the years, > from bad experiences and one's own mistakes, I have become very > skeptical and even more careful. Sure, no worries; as older demos are replaced with newer ones this stuff will be obvious. > > > and it's impossible to port my >10.000 framwork and application > > > classes to Squeak. > > > Caffeine can use Pharo, Squeak, or Cuis. > > Well, my Smalltalk code is in neither of these and it would cost many > months of work and the loss of very essential tools to port this to > any of your supported systems. Oh, since you're not using Pharo, if were were to continue this conversation it should be off-list in private email. Anyway, you could use Caffeine's remote UI server component in your Smalltalk environment, and just use web browsers for the UI. I'm currently adapting the remote messaging parts to all the other Smalltalks. > However, *I see one advantage in your approach*, assuming that no > Smalltalk source code must be sent to the client (I have no info > about that) and this is in the fact that Smalltalk byte code is, of > course, a much better protection of IPR than any obfuscated > JavaScript could ever offer. But the price for this advantage would > be far to high, as far as I can currently tell. No, no Smalltalk code need be sent to the client, although you always have the option of sending remote messages. 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-dev] Anybody using Orca Smalltalk to JavaScript?
Hi Frank-- > I see absolutely no sense in this approach for real-world end-user > applications... Smalltalk in a web browser (or NodeJS) makes just as much sense as any other JS framework, like React, Angular, etc. BitBLT, Morphic, and even the Smalltalk process scheduler are all entirely optional; since there is full JavaScript connectivity, one can manipulate the DOM (or shadow DOM) just like any other framework, using JS functions and promises (and Smalltalk objects which can stand in for those things). > ...especially if their sources MUST be closely connected with existing > Smalltalk code, which does not run in the client like all the > data-driven model definitions etc that I already have There is no such requirement. > the Morph UI is out of any question related to what end-users expect > (pardon, but end-users would regard this as a bad joke) One need not use Morphic. One can use any JS code one likes. > the responsivness of such a solution in the browser must always be far > slower than any "normal" browser UI That's not true. For example, at the moment my UI is Mozilla's A-Frame 3D virtual reality framework, at 90 frames per second. > and it's impossible to port my >10.000 framwork and application > classes to Squeak. Caffeine can use Pharo, Squeak, or Cuis. > Should my view be completely wrong, please let me know. It actually is. :) Best of luck with your project! -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-dev] Anybody using Orca Smalltalk to JavaScript?
Hi Frank-- I'm working on a different project called Caffeine[1]. It runs Pharo, Squeak, and Cuis object memories in web browsers, using the SqueakJS virtual machine. There is support for the Chrome Debugging Protocol, the A-Frame WebVR framework, and the Snowglobe remote UI framework (e.g., run Pharo in the cloud and interact with it live in a web browser), and for peer-to-peer communication and NodeJS server livecoding. The target is large-scale web deployments. The project is currently in alpha. thanks, -C [1] https://caffeine.js.org -- 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-dev] Anybody using Orca Smalltalk to JavaScript?
Hi-- Eliot writes to Frank: > Craig Latta has done some strong work integrating Squeak and Pharo > with the browser using a bridge derived from Bert Freudenberg's > SqueakJS. Craig's work allows one to use Pharo running on the > standard Cog VM, client side, to render to the browser, receive > events from the browser, and manipulate the DOM. > > You could contact him to find out if his work is relevant to you. He > isn't comfortable discussing it on the Pharo lists himself. Oh, I'm plenty comfortable discussing it on the Pharo lists. :) I was referring to different context in which someone asked me a question here, and I got attacked for responding to it. Anyway, yes: livecoded Pharo in web browsers is working. 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-dev] Smalltalk Internet Browser
Raffaello writes: > > > If I understand the proposal correctly, something similar was > > > tried in project Lively Kernel (https://www.lively-kernel.org/), > > > which is dead since long... > > > > That project is alive, actually. > > The last news and copyright notices are from 2012, the last release is > from February 2014, the last mailing list entry is from August 2016 > and its gzipped volume in the last year is less than 5 KB. > > Would anybody honestly call such a project "alive"? As long as there are people using it, then yes, it's alive. I would say the best indication of activity is the HPI Lively Kernel page[1], and its associated wiki, which has content from 2017. You might also be interested in the consulting work done for Daimler with Lively, and other real-world projects described in the paper "A World of Active Objects for Work and Play: The First Ten Years of Lively", by Ingalls et al[2]. For me, the most relevant example of Lively's real-world impact is Bert Freudenberg's use of it to create SqueakJS. You can read about that in the paper "SqueakJS - A Modern and Practical Smalltalk That Runs in Any Browser"[3]. I'm using SqueakJS now to create in-browser JavaScript IDEs (for livecoding JS front-end frameworks like React), and distributed systems that federate native apps with web browsers across multiple machines. Stéphane writes: > ...is [SqueakJS] a browser plugin? No, it's a JS framework written in normal JavaScript, loadable by any HTML page via a
Re: [Pharo-dev] Smalltalk Internet Browser
Raffaello writes: > If I understand the proposal correctly, something similar was tried in > project Lively Kernel (https://www.lively-kernel.org/), which is dead > since long... That project is alive, actually. > ...and was marginally relevant perhaps only in the academic > field and not at all in the real world. As far as I know, the most Lively activity is at the Hasso-Plattner Institute, but it was also very well received at industry conference JSConf. Frank writes: > ...Squeak running in a browser is already old news, thanks to > [SqueakJS by] Bert Freudenberg... Right, I mentioned it earlier in this very thread, along with WebAssembly. > I don't know about interop between that image running in the browser, > and the browser itself. Since there's a two-way JavaScript bridge in SqueakJS, you can do anything with the browser that any other script can do. It works well. -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-dev] Smalltalk Internet Browser
> So the Smalltalk VMs, which are mostly C, can be compiled to > WebAssembly to run inside browsers everywhere and be fast too. Wow. > Is WebAssembly released yet? It's enabled by default in Chrome 57 and Firefox 52 and later. See [1] and [2] for ongoing status and instructional material. > When can we expect such a VM running a standard Smalltalk? I expect it'll happen this year, although I don't know when the Safari and Edge web browsers will enable it. > What are the pros and cons compared to native apps? For me, the pros are zero-installation ubiquity and integration with other web tech, and the con is restricted access to local resources. -C [1] https://developer.mozilla.org/en-US/docs/WebAssembly [2] http://webassembly.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-dev] Smalltalk Internet Browser
Hi Aik-Siong-- > I want to go to a web page, select a body of text and have Smalltalk > code analyze the text in some way and return the answer in the > browser or in the Smalltalk app or file output. There should be > two-way communication between app and browser. I would like to do > live debugging too. Ah, it sounds like you want something that would work with arbitrary websites you happen to visit. I would do that by making a SqueakJS-powered extension for an existing web browser (e.g., a Chrome extension). The JavaScript bridge in SqueakJS gives you full two-way livecoding access to the host browser's JS engine, and I'd probably use it for the Smalltalk app's UI (driving some JS front-end library, like React). And there's no reason the object memory can't be Pharo. At this point, I think it makes much more sense to run Smalltalk in a web browser rather than building a Smalltalk web browser. I find SqueakJS easily fast enough for useful things, like the Cog app streaming Eliot mentioned. WebAssembly will enable web browsers to run Cog directly (although subject to web security constraints), making JavaScript completely optional. Yes, the web platform is full of astounding accidental complexity, as Stephen pointed out. Still, there's a lot of great work, community energy, and reach in which Smalltalk can now participate, and I'm enjoying it. (Thanks again, Bert, Dan and all!) -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-dev] Pharo bootstrap
> From my perspective, I am very frustrated to not be able to use: > > - Context in Pharo > - Your remote running of tiny images in my Pharo browser (including > the sonar ping sound when messages are landing remotely) > - Using WebDav for looking into my images using your WebDav component Cool, that's all planned for this year (in reverse order). thanks, -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Pharo bootstrap
Hi Christophe-- > > Another approach is to modify the virtual machine so that it marks > > methods as they are run, and modify the garbage collector to reclaim > > methods that haven't been run. Then you can create systems that > > consist of only what is necessary to run unit tests, effectively > > imprinting the unit tests. You can interact with the target system > > from completely independent one over a remote messaging network > > connection, so your unit tests need not include graphics support, > > etc.[1] This seems much simpler to me than making a virtual machine > > that can run multiple object memories, and distributed object > > memories have several other important uses too. > > Guillermo also implemented this kind of approach with Tornado. Right, I read that in his PhD thesis. That's why I mentioned my earlier work, when others claimed there was a precedent being set. > But is not so easy... Sure, I learned that first-hand when I did it. One important thing I learned is that it's easier and more accurate to install code as a side-effect of actually running it live, and not through analysis. It's also useful to have the option of faulting code in when it's missing from a running target, or pushing it in from a running source. -C [1] http://netjam.org/context -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Pharo bootstrap
Hi Guille-- > The point is that “cleaning the image” is not reproducible. A cleanup > script may work with today’s image but may not work with tomorrow’s. I consider this sort of cleaning something that gets done once per preexisting Smalltalk implementation (Pharo, VisualWorks, etc.). After it's done, I would build every release artifact up from the identified essentials (minimal object memory). You need a good module system for that, and I think one based on live remote messaging instead of source code stored in files would be best (easiest to build and use, and most accurate). With the knowledge of those essentials, I would create new Smalltalk implementations from a system tracer informed by them. Cleaning isn't something I would expect to do routinely as an app developer. It's primarily a research activity. > [Cleaning] does not scale when it starts to become circular. For > example, you want to refactor a part of morphic => but you are use > morphic while the refactor is performed. We do that all the time, but > at the cost of splitting and staging changes that require to be > atomic, which adds more complexity to the process. Of course, this is another argument for using remote tools. > ...I wrote a prototype of Espell that manipulated an image loaded in > the simulator. The result is that you had a high-level API provided > by mirrors to manipulate an image without requiring a VM change. I think that's definitely something you want to be able to do, since there are some changes that can only be made when time is stopped for the target image. And the simulator is simply the most pleasant tool for it. The implementation of this that I did was especially useful for making complimentary documentation, like the directed-graph movies at [1]. True, the simulator is slow, and making movie frames with it is glacial. :) We should never be afraid to change the virtual machine, though, in the absence of any other constraint. :) > A distributed object memory forces you to include in every peer that > may receive code a distribution layer (at least sockets, class > builder, compiler or serializer + dependencies). And we wanted to go > further. We wanted to be able to easily manipulate an image that does > not have those features. Right, I use the simulator stuff when I care about leaving those things out (e.g. [2]). But all of the systems I actually want to deploy do have those things, to the point that I do consider them to be as fundamental as anything else. And they don't include the class builder or compiler; the remote messaging protocol I wrote gets by with just sockets, a few collection classes, and the reflection primitives that the virtual machine needs anyway. There is never a need to compile source code. > The main point was to use the same infrastructure to build an image > in an explicit manner (the bootstrap) as well as in an implicit > on-demand manner (tornado). And I believe that the bootstrap is a > more transparent process where we can control what happens. It seems to me that push imprinting, where methods are transferred from one system to another as a side-effect of running them, is just as transparent and controllable, and gives you tools that you want anyway for other purposes. thanks, -C [1] http://netjam.org/context/viz [2] http://netjam.org/context/smallest -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Pharo bootstrap
Hi Phil-- > ...prior art is not running on my environment. So, it is irrelevant > for my current activities. You weren't talking about your current activities before, you were talking about some allegedly innovative capability. At any rate, I do have versions of Context for Pharo and other Smalltalks, which I intend to release this year. I wanted to deal with SqueakJS after Squeak, then Pharo, then VisualWorks, etc. -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Pharo bootstrap
> > I am pretty sure that the people behind the Pharo Bootstrap project > > are aware of the existing literature. > > oh yes and even of things that were not written in papers. :) Papers are no longer the only way to publish, and paper-writers are still obligated to cite prior work however they become acquainted with it. -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] [squeak-dev] Smalltalk website tricks
> Please guys use the Pharo-user mailing-list. I chose pharo-devel for the original post because I think it's relevant here. Pharo object memories could, should, and will be running on that virtual machine, too. -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Pharo bootstrap
Hi all-- Phil writes: > The point is not to clean but to start with an empty object engine and > fill it in with the minimum required core. Currently, the image is > the result of an evolutionary process and rebuilding it from zero was > not possible. Another approach is to modify the virtual machine so that it marks methods as they are run, and modify the garbage collector to reclaim methods that haven't been run. Then you can create systems that consist of only what is necessary to run unit tests, effectively imprinting the unit tests. You can interact with the target system from completely independent one over a remote messaging network connection, so your unit tests need not include graphics support, etc.[1] This seems much simpler to me than making a virtual machine that can run multiple object memories, and distributed object memories have several other important uses too. > This makes it possible to audit the whole build process, create > different base image for various purposes (very small, headless with > no UI objects at all, using the object engine in a completely > different way that is used today). > > That makes the image the result of a fully reproducible process, from > a file of zero bytes, to a file with a working image. You can do all of these things with imprinted unit tests as well. > Also, this allows to experiment with new low level mechanisms. This is > currently not possible since it makes us like performing surgery on > our own brain. With remote messaging, which has been around for many years, you can perform this surgery from afar. > Also, the Oz-inspired system will help in exploring other image > memories (small or large) and manipulate them as entities. At this > point, this is also not common pratice. This has been common practice since the introduction of the virtual machine simulator in 1996. The remote facilities I mentioned all work under simulation, too. There's a lot of prior art here. -C [1] http://netjam.org/context -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] What is the current status of flow (flow-stack)?
Hoi Erik-- > SqueakJS seems a 'heavy' solution since I probably would like to keep > the front-end relatively thin (and not use the Morphic UI). You can also use the MVC UI, or use no Smalltalk graphics at all and just manipulate the DOM etc. via the JavaScript bridge. -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] About being a real Pharo Jedi developer
Stef writes: > When I was getting to be a Jedi, my Yoda master (Joseph Pelrine) told > me the following (yes back in 96) > > translated from Yoda language: > > you will be a real Jedi when your code will load in one click! > you will be a real Jedi when your code will unload in one click > and do not let shit behind it! > > Simple no. So when do we get real Jedi knights? We get them when we have modules that exist as live objects all the time, to which we can delegate the task of unloading. Those modules have access to all versions of methods and class definitions, and every method and class definition is covered by the module system at all times. -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] About being a real Pharo Jedi developer
> IMO, unloading is for the viewpoint of having an "ultimate image" > which is never replaced. Or, at least, not replaced from scratch while you're in the middle of day-to-day work and don't want to have to recreate a bunch of useful state somewhere else. Unloading has practical value. -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Preparing for the (already here) future world of multi-core PCs
> Maybe a 'pack' of Seasides is the wrong collective. > A 'shoreline' of Seasides? A 'coast'? An archipelago. -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Get a symbolic link's reference.
Hoi Skip-- > Does anyone know of a way to get the path a symbolic link points to? > For example, I have a file /foo/x, and a symbolic link /foo/bar/link, > which points to /foo/x. I would like to get the path /foo/x (or ../x) > somehow from /foo/bar/link You could parse the output from a CommandShell command (from the OSProcess package). -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Alien and FFI in Pharo
> I want to get NIO sockets working using FFI, which I understand means > Alien. I can't seem to load Alien from the Catalog. > > What do you suggest I do? If NIO sockets involve callbacks from threads forked by the library, don't bother. Cog's scheduler deadlocks. -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Slack?
Slack works very well for large groups. I'm already using it with a group that is larger than this one. -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] TextAttributes in source code or class comment?
(autocorrect-unmangled version... ;) Eliot writes: > ...I was pragmatic and made sure Cog supported the existing > requirements, not some platonic ideal. I wish you would adopt as a > principle that functionality be retained as you are cleaning up > Pharo. Instead I see useful functionality is discarded because of > scruples and I find it "unpleasant". -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] [Reflectivity] Progress with Reifications
"Reificated" is not a word. The word that means what you want is "reified". -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Pharo on iPad Pro
They still won't approve apps that install new code at runtime, though. So any IDE that used Monticello, for example, would have to be distributed ad-hoc rather than through the Apple Store. Please let me know if that's changed; I would be a lot more interested in iOS if it did. -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Image and bootstrap dependencies
> I updated the graph. There is now: > > * dependencies to remove in red > * if you double-click on a node, you only see links where the node > is involved. Very nice! -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Image and bootstrap dependencies
Hoi Christophe-- > We now have a best overview of bootstrap dependencies. That's a pretty grim picture. :) Can you post a movie of you picking through that ball of connections? (E.g., with the search feature as you described, or any with any other UI affordance that you have with this system.) thanks! -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Image-specific "cache"
Hoi Uko-- > I want to persist some value (in a singleton), but when a user > creates a copy of the image, I want to regenerate that data, so there > will be no two images with the same persisted data. Is there some way > to act on an image launch? Sure, you can tie into the StartUpList and ShutDownList in SmalltalkImage. This is how the delay scheduler is restarted on system startup, for example. > Or maybe you have better suggestions... This seems like the conventional way of doing things like that, as long the system doesn't need the assistance of another running system to compute the data. cheers, -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
[Pharo-dev] translucent windows
Hi all-- I'd like to have windows that use translucent colors, so I can see other windows and the app background beneath. I've been doing this in various versions of Squeak and like it a lot. In Pharo, when I use the titlebar menu of window to change the window's color, the window color doesn't change. What must I do? I'm using the tODE memory from Dale Henrich's GSDevKit project for Gemstone, built from Pharo 3.0.30864. thanks! -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Unified property API for code.
Hoi Tudor-- I also vote for the xyzAt:put: pattern, even though propertyAt: sounds less English than propertyNamed:. (Obligatory native-English-speaker comment...) I think it maintains continuity with English just as much as at: does, which is very much. -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Event handling insanity
I've had good results debugging GUI subsystems by using the GUI of a remote system for interacting with exceptions. Something goes wrong in system A, but the exception notifier is displayed on system B, etc. It's also helpful to be able to revert methods and classes from afar, as well. For simple use cases, I've used the simulator, too. -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] ICLC (was Edge bundles)
Hi Ben-- I was at the first International Conference on Live Coding[1] instead this year, which happened at the same time. A great gathering! I hope there's more overlap between that, ESUG, and the International Workshop on Live Programming[2] in the future. I would be interested to know your impressions and potential for Smalltalk here. What is that community's current exposure to Smalltalk and what are their competing technologies? It's not a competition. Everyone uses what they like, respects each other's choices, and collaboration is high, through messaging technologies like OSC[3]. People are educated about and interested in prior work. It's very inspiring. Regarding Smalltalk in particular, there's a lot of potential. I met many people who are interested in systems that are more dynamic, portable, reflective, persistent, etc. I think recent developments toward running in web browsers are what they find most interesting. You can observe and join the Live Coding Research Network discussions at [4]. thanks, -C [1] http://iclc.livecodenetwork.org [2] https://liveprogramming.github.io/2013 [3] http://opensoundcontrol.org [4] http://lurk.org/groups/lcrn -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Edge bundles
Hi Alexandre-- Very nice! I would love to use this for my object memory visualizations[1], so that they can be recomputed live. Have you done any work toward hyperbolic display, as with Walrus[2]? The datasets I work with are sufficiently large that such a technique is indispensable. We can discuss about this at esug. You are coming right? I was at the first International Conference on Live Coding[3] instead this year, which happened at the same time. A great gathering! I hope there's more overlap between that, ESUG, and the International Workshop on Live Programming[4] in the future (although without requiring one to be in multiple places at the same time :). Please contact me privately; perhaps we can meet up somewhere in Europe before the next ESUG. cheers, -C [1] http://netjam.org/context/viz [2] http://www.caida.org/tools/visualization/walrus [3] http://iclc.livecodenetwork.org [4] https://liveprogramming.github.io/2013 -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Edge bundles
Hoi Stef-- Do not expect that people will not look at you strangely when you mention smalltalk. Actually, the people at ICLC have immense respect for Smalltalk and its current developers. It was refreshing to skip right past any sort of apologetics and get right to the doing. -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Edge bundles
Hi Alexandre-- Very nice! I would love to use this for my object memory visualizations[1], so that they can be recomputed live. Have you done any work toward hyperbolic display, as with Walrus[2]? The datasets I work with are sufficiently large that such a technique is indispensable. thanks, -C [1] http://netjam.org/context/viz [2] http://www.caida.org/tools/visualization/walrus -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] [Pharo-users] Pharo 4 Image Freeze
Hi Martin-- ...the problem might be in the Windows VM. Is there a way to get trace output from the VM so I can see the sequence leading up to the hang, or a way to get a Smalltalk stack trace from a C debugger? You can evaluate, for example, printCallStack() from the Microsoft Visual C++ debugger console. Or make a snapshot at that point with primitiveSnapshot(), and poke around with the virtual machine simulator on your preferred host platform. -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] [FIX]: Issue 4795: Horizontal wheel
Bueller? I think the devs here are perhaps *slightly* more busy than the drooling teenagers in that scene... :) -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Matrix API question for a native english
Hoi Stef-- So should we use rowCount for method argument? because we got rows: rows meaning rows: rowCount and I rewrote them as rows: rowNumber but it could be better to have rows: rowCount. numberOfRows is unambiguous, in both a selector and a variable name. Therefore (in my opinion as a native English speaker :), it is better than the alternatives mentioned. -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Context status 2015-01-16
Hi Guille-- For your information guille produced pharo images of 11k for simple addition... Why so large? The simple addition image I made is 1k. Haha, this already looks like a competition. I don't want to compete ^^. Oh, that wasn't my intention. :) I really wanted to know what objects are in there. Of course, for a simple addition you just need - a special objects array - a processor - a process - a context - the method for the context doing the addition - some SmallInteger class for the VM to check And voilá. That should be even smaller than 1K. By my count, you need fifteen objects. I wrote a summary of them (including a visualization) at [1]. In any case, the image just doing an addition is just the example that pushes the limits of *my* particular tailoring framework... But afterwards it has no other real usage :). Indeed so. The value of making it is showing that you can account for each and every bit in the result, and that's just easiest to do if you go for the least amount of code. As Chris says, what the minimal kernel should ensure is that you can grow it. Exactly, the definition of minimal depends on your intended use. thanks, -C [1] http://netjam.org/context/smallest -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] OpenStreetMap integration
Lovely! -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Context status 2015-01-16
Hi Stef-- For your information guille produced pharo images of 11k for simple addition, 18k for large numbers. Also Seaside counter application of about 500k. Why so large? The simple addition image I made is 1k. Of course this is done in Pharo so it will not really be exciting for you. The minimal kernel isn't the exciting part, it's just a prerequisite. The exciting part is the distributed module system (Naiad). You need a minimal kernel for that to be practical. There is nothing like Naiad for Pharo yet. As always, I'm very interested in collaborating with you. thanks! -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] InfoWorld on Redline Smalltalk
Hoi Stef-- I do not want to lose time reading it I find I can get through the mailing list in a couple of minutes a day by reading via NNTP from Gmane, and killing threads I no longer find interesting. -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] InfoWorld on Redline Smalltalk
Shaking the hive can certainly have a positive outcome, but you can also get you bitten. :) Sure, and shaking the hive too rarely will get you starved. -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] InfoWorld on Redline Smalltalk
Hi Sven-- Nothing happened to this project in more than a year... It is mostly vapourware and has no users. People following the links on the article will soon find out. Well, perhaps this reminder will stimulate some interest. -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Hosting the Pharo VM on MirageOS
Hoi Joerg-- The Mirage group envisions thousands of kernels running on a single Hypervisor with his speed inter-kernel communications. See http://openmirage.org/blog/update-on-vchan. The facilitates Smalltalk systems consisting of a swarm of communicating images where each image is single threaded and concurrency is via message passing. Cool! This would be a good place to use Context[1,2]. -C [1] https://github.com/ccrraaiigg/context [2] http://thiscontext.com -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] The Smalltalk Renaissance Program
Hoi-- Who are you? Who is your audience? thanks, -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Engage on Where Smalltalk Went Wrong (2004)
2004? Spontaneously rehashing 2004 is interesting now? Must be the end of the year. :) -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Pharo Days 2015
Hoi Francois-- I can host one or two people at my place in Mons, Belgium (~1h drive from INRIA Lille) for free. I can drive to the conference both days. In the best case, I might have some friends to host me (us?) in Lille. So we can have some beers without having to drive. Oh, cool, I'd love to stay there. (Sorry for the broadcast, I didn't see your email address anywhere.) thanks, -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Should literals be immutable ?
Hoi Clément-- In keeping with the principle of least surprise (and least time spent chasing strange bugs at 4am :), I would prefer that literals be immutable. thanks, -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Should literals be immutable ?
Craig In keeping with the principle of least surprise (and least time Craig spent chasing strange bugs at 4am :), I would prefer that Craig literals be immutable. Eliot Sleep no sleep no sleep no sleep and no mad Eliot Video machine to eat time, a city scene Eliot I can't explain, strange bugs alone at 4am Eliot The Seine alone at 4a.m, ... Cool, King Crimson agrees with us. :) Tudor Talking about 4 am, you should also watch the coolest talk about Tudor it: [1]. And a beautiful follow up: [2] Thanks! I'll save these for 4am, not long now... -C [1] http://www.ted.com/talks/rives_on_4_a_m [2] http://www.ted.com/talk/rives_a_museum_of_4_o_clock_in_the_morning -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Data Analysis in Pharo
The teams of Serge, Thierry and Noury have been doing wonderful things. [links to wonderful things] Nice! -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
[Pharo-dev] showing decompiled code in the browser (was Nautilus roadmap / icons)
Hi Marcus-- Honestly, I do not get why [showing decompiled code in the browser] was useful, ever. Some of my debugging sessions require using the virtual machine simulator. I find browser-presented decompilation useful for finding my place in a method I'm running that way. It's also useful for learning about how the compiler and virtual machine work. -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Objective-C (was deployment components)
Actually, I am fine with the prefixes. Objective-C also works like that and well, it hasn't exactly hampered its community to scale. I think Objective-C might have had one or two other forces behind it to compensate. :) Sure. But not when it was at NeXT. Eh? Sure it did: Steve Jobs and his team, the same force behind NeXT's reverse takeover of Apple. -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Live Visual Coding environment inspired from Smalltalk and iPython
it's called Larch... Excellent name! https://www.youtube.com/watch?v=ug8nHaelWtc -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] The Dilemma: Building a Futuristic GUI for Ephestos
...one real problem with the Squeak/Pharo UI is the lack of native windows. There is an old project Graphics-External-Ffenestri but AFAICT it isn't being used. I'm using it, on Mac OS so far (Windows and Ubuntu Linux are the other host platforms I care about at the moment). But there /is/ a really good prototype of a native window system above Squeak done by Vassili Bykov in Newspeak. Hld on there... :) Does this mean that Vassili tried Ffenestri and found it unusable? If so, why? Details, please. thanks, -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] fosdem 2015
Hoi Stephan-- I will put out a proposal for a devroom, yes. That is no guarantee that we will get one, the amount of space is limited. Looking forward to it! -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Thanks :)
Hooray! :) -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Pharo Success Stories on homepage
...we should always deal with decision makers who are concerned with business benefits and not technological conformity with the herd. I quite agree, and I'm most interested in success stories which highlight such people. I want to show those stories to those who hesitate because they think they'll have a hard time expanding a team. -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Looking for PhD students
Hi Michele-- I'm very interested in pursuing a PhD. I started developing with Smalltalk while studying music and computer science at the University of California at Berkeley. I went on to develop interactive audio tools at Atari Games, consumer electronics applications at Interval Research, and AI research at the IBM T.J. Watson Research Center, all with Smalltalk. I've participated in the Squeak and Pharo communities since they began, and have served on the Squeak board for several years. I wrote the Flow, Naiad, and Spoon frameworks, for Smalltalk streaming (including remote messaging), change management (including team collaboration), and minimal system deployment (including distributed operation). I would love to pursue them in the context of a PhD. There's more information about them on my blog[1] and website[2]. I use them in my own work with remote music collaboration, improvisation, and livecoding[3]. I look forward to speaking with you! thanks, -C [1] http://thiscontext.com [2] http://netjam.org/cv [3] http://toplap.org -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Roadmap on tools?
As far as I know no one has built anything more complex than a class browser. I would say Spec was incapable of building a complex interface of any kind. It's clumsy, developer-hostile, and counter- intuitive. The whole Spec process of writing code in three different places is the very definition of a /super pain in the asset/s. it is far less intuitive to my mind than creating composite morphs. Progress on Spec is glacially slow - but that's not the problem. Spec is profoundly misconceived and fundamentally flawed and offers nothing over raw Morphic. The Spec model is simply not how anyone would want to build an interface in 2014. I certainly would never use it. Okay, but how do you really feel? :) I'm intrigued by the 2014 comment, though (which of course will look hilarious in 2015). How do people want to build interfaces in 2014? -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Stack size for compiled methods (issue 13854 Crash/hang on array access)
Hoi Eliot-- [great explanation of method/block stack depth] Cool, is this viewable from an in-system tool somewhere (even if only a documentation method in a class browser)? thanks, -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] New Woden Video
...it looks like 2 powerful game engines/graphic engines [Woden, Ephestos/Blender] are coming to Pharo which should open a big door to graphical 3d visualisation for Pharo. Cool, I look forward to using them! -C -- Craig Latta netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Busy week :)
http://pharoweekly.wordpress.com/2014/07/15/another-busy-week- in-pharoland Cool! Typos: “without being forced” (not “without been forced”) and “thank you for your contributions” (not “thanks you”). -C -- Craig Latta http://netjam.org/cv +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] a Pharo talk from a ruby conference
[recent Pharo accomplishments] No such thing in Squeak these days. That was an unnecessary dig, and totally uninteresting to newcomers (not to mention false). Also, Pharo progress doesn't come at the expense of progress anywhere else, so such comments are a complete waste of your time and energy. If you feel the need to slag another project to make yourself feel better about Pharo, you have deeper problems. You were better off with tunnel vision. :) -C -- Craig Latta www.netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] a Pharo talk from a ruby conference
Hoi! Eliot wrote: Pharo isn't inspired by Smalltalk; it /is/ a Smalltalk. Trying to be mealy-mouthed about it and claiming inspiration, rather than proudly declaring its a Smalltalk is IMO as bad as apologizing for it being dead... We don't need to avoid the S word... Sean later wrote: ...it's a question of who you're marketing to. Since we're marketing to non-Smalltalkers (quite wise since 16% market penetration is the tipping point, and we're not there yet), clearly Pharo is Smalltalk- inspired is the thing to say. It's not any more or less true than the latter, just more useful in its context. And of course, with apologies to Alan, some of us think the name Smalltalk was a poor choice from day one (in 1971). Surely there are names which are suitably innocuous[1] but also convey some of the magic in providing computer support for the creative spirit in everyone[2]. Smalltalk is a vague and anemic name. From that weak starting point, the other baggage is even heavier (perhaps it's helpful to think of a balloon here? :). I would use a new name and not mention Smalltalk at all unless asked about it. At that point, I would proudly recount accomplishments. Whenever someone just blurts out that Smalltalk is dead, I always correct them, and it's not difficult. Smalltalk-inspired is a non-starter, because it implies (in all contexts) that there isn't a direct line of descent (there clearly is). I agree that it sounds mealy-mouthed, disingenuous. Smalltalk-derived would be the honest phrasing, and also sounds bad. Yeesh, if you have a problem with the Smalltalk name, don't be the first to mention it. :) Let's put more energy into a concise and intriguing description. I think the primary concepts are programming, dynamism and messaging. The word livecoding seems to resonate these days. If we're going to repeat a word twenty times, I would choose that one. :) It has a nice ring that draws people in. When they ask what livecoding is, you can describe dynamism, and then describe how the coding is structured (messaging, objects, etc.). thanks, -C [1] http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html [2] http://tinyurl.com/25s52qd (archive.org, Ingalls) -- Craig Latta www.netjam.org +31 6 2757 7177 (SMS ok) + 1 415 287 3547 (no SMS)
Re: [Pharo-dev] Spotlight Demo
Nice! -C -- Craig Latta www.netjam.org/resume +1 510 984 8117 (Skype rings this until 31 January 2014)
Re: [Pharo-dev] Great Sprint Yesterday!
Here are some Photos: Nice, looks like a lot of fun! -C -- Craig Latta www.netjam.org/resume +1 510 984 8117 (Skype rings this until 31 January 2014)
Re: [Pharo-dev] Another thought about globals
Hi Norbert-- Class names are globals. A class is registered in a global namespace by its name. Names need to be looked up. How should it work in another way? Get rid of globals. Make the root classes elements of the special objects array (Object already is), and look up classes through that. Make everything else that used to be a global (like Transcript) the responsibility of some class, and use them by sending messages. This also makes the modularization straightforward. There's no need for a system dictionary. It was a profound and long-lived mistake. -C -- Craig Latta www.netjam.org/resume +1 510 984 8117 (Skype rings this until 31 January 2014)
Re: [Pharo-dev] Smalltalks 2013 video now available
Thanks Andres! This is so important to share the conferences beyond the slice of our community attending :) Hear hear! Thanks, Andres! -C -- Craig Latta www.netjam.org/resume +1 510 984 8117 (Skype rings this until 31 January 2014)