[Pharo-users] Inspector #send: has vanished
Returning to Pharo after some time away and it seems the inspector API has changed a bit. In particular, I can't seem to find the #send: method that used to allow a list presenter to intercept and modify selected objects before they were displayed in the next panel of the inspector: inspectItems: aBuilder ^ aBuilder newList send: [ :x | 10 ] When I inspect this, I just get an error, and I can't seem to find anything resembling #send: anywhere in the presenter's class hierarchy. Does anyone know where this method has gone (Pharo 10)? Thanks, Evan
[Pharo-users] Audio Capture in Pharo
Hello, Does anyone know if it is currently possible to capture sound from the microphone in Pharo? I found this blog post that seemed to suggest that it wasn't possible in 2020: https://thepharo.dev/2020/11/17/how-to-play-sound-in-pharo/ Thanks, Evan
[Pharo-users] ABBench: Lightweight Microbenchmarking Library
Hello, I've just released a utility I've been using for the past few years to help optimize Pharo code. It's a library that makes it easy to check whether an optimization has improved performance by wrapping the optimization and the old code in an if block and executing the optimized and unoptimized paths repeatedly under the same runtime conditions to determine which is faster. Basic usage is to wrap changes to the code in if blocks like so: ABBench a: [ ...existing code...] b: [...optimized code...] And then run the A/B test by printing: ABBench bench: [...some main method...] I have found it to make performance testing simple and quick enough that I actually do it. Perhaps someone else will find it useful. Install with: Metacello new githubUser: 'emdonahue' project: 'ABBench' commitish: 'master' path: ''; baseline: 'ABBench'; load. More details can be found here: https://github.com/emdonahue/ABBench Cheers, Evan
[Pharo-users] Roassal3 Popups
Hello, Just returning to Pharo after 1000 years and have discovered that Roassal has upgraded to Roassal3. Trying to update my inspector integrations and can't seem to figure out how to get popups working. How can I get popups for the y values in a scatter plot such as the following: RSChart new addPlot: (RSScatterPlot new y: #(1 2 3)). Thanks, Evan
[Pharo-users] MetaLinks for Dynamic Contracts
Hello, I am returning to some work in Pharo after about ~2.5 years and reminding myself of what I was working on before I got sidetracked. It appears I had mostly finished for release a dynamic contracts library for run time type checking based on Racket's contract library.[1] However, it relied on some hackery to interact well with the TestCoverage class, since both the contract and the TestCoverage wanted to replace the method during the run of a test. However, since it seems in Pharo 8 the TestCoverage class is no longer present, this seems like a good time to re-evaluate the project before I go in to see what needs to be patched up. I therefore have three questions: 1) Are there now any existing libraries for dynamic contracts that I should use instead of patching my old library? 2) Is MetaLinks the preferred way to intercept messages, and if so can someone point me to the repo (I can't seem to find it on Github)? 3) If 2, does MetaLinks play well with whatever is the current TestCoverage alternative that I assume still does some form of message interception, e.g. will the test coverage function still work properly on a MetaLink'ed message, or will that require further hackery (I discovered MetaLinks after the first version, so I used the more basic message replacement apis)? Thank you, Evan [1] https://docs.racket-lang.org/reference/contracts.html
[Pharo-users] Cargo & Future Proofing Releases
Hi, I will have a few general interest packages to release in the near future, for performance testing, contracts, and the like, and I'm wondering what the current story is for package release. I've heard some things about an upcoming "Cargo" package manager, so I'm wondering what the timeline on that is and whether I should be doing anything in anticipation of that, whether I should be putting things on the old Catalog, and just generally what the standard story is right now for releasing packages. Thanks, Evan
Re: [Pharo-users] Pharo Launcher & Stored Settings
Hmm, the only things I'm trying to accomplish are 1) use Pharo Launcher and 2) have each new image keep its repositories separate, as advised by others on the list, so that different images can check out different branches. Does that set up require custom scripting to adjust the repo path? The cache path does seem to do the required adjusting on its own, but the 'metacello default directory' path defaults to that crazy thing that's not a path on my computer: /builds/workspace/Pharo-6.0-Update-Step-1-Tracker PS, Is the 'store settings' button in the settings menu the standard way to configure cross-image preferences, because that seems to also save things like these paths that should be generated anew with each new image. Maybe I should stick with one single place for repos and just configure these paths to be global? Thanks -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
[Pharo-users] Pharo Launcher & Stored Settings
Is there a way to handle settings that should be different for every image when using Pharo Launcher? In particular, Settings > Software Configuraiton > Monticello > Default Local Repository & Local Cache Directory should be specific to the new image, but if I ever store settings for any reason, they get saved and incorrectly propagate to fresh images. Also, they are initialized wrong in the first place. How can I avoid this issue without manually adjusting these paths every time I make a new image? Thanks, Evan
Re: [Pharo-users] Jupyter notebooks / Dynabook / JupyterTalk
Try: Metacello new githubUser: 'jmari' project: 'JupyterTalk' commitish: 'master' path: 'repository'; baseline: 'JupyterTalk'; load -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
Re: [Pharo-users] Monticello default repositories & Iceberg
Thanks to these replies I found the issue, but I'm not sure how to solve it. I found the start up script. I have never consciously set it, but I assume some process in the distant past automatically created it for me. The issue was that the settings for: #monticello#cacheDirectory and #monticello#defaultDirectoryName pointed to obsolete random projects from the past. I deleted them from the settings file, but it looks like when my new image autogenerated them, it stored new ones in the settings file that are equally irrelevant to future generated images: /home/myusername/Pharo/images/testimage/pharo-local/package-cache and /builds/workspace/Pharo-6.0-Update-Step-1-Tracker, respectively. What should I set these to so that they behave appropriately as I create new images in Pharo launcher? Does pharo launcher have a global dedicated place for a package cache, or is there a way to make it switch per new image? -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
[Pharo-users] Monticello default repositories & Iceberg
I am using Pharo Launcher. Currently, if I create a new image and go to Settings > Software Configuration > Monticello, I see a "default local repository" and a "local cache directory" that point to old obsolete paths from years ago on my machine. As a result, I'm having trouble using iceberg through metacello, because it keeps looking for baselines in these old paths and crashing. What should those paths be for Pharo launcher? Does it use one default path for all images, or is there a way to tell it to change the default cache for each new image? Thanks, Evan
[Pharo-users] Loading Local Repositories with Iceberg
I'm using the Pharo 6.1 image with the Pharo Launcher. I have committed changes to several local github repos through Iceberg. I would like to be able to clone a new 6.1 image and load all the locally committed packages. I have "Share repositories between images" checked in both images, and the path looks right, but I do not see any of my repos in the fresh image. Is there something I need to do to load them? I tried "add local repository" but it claimed none of my repositories had any packages to load. I have had no trouble pushing to github and downloading my packages again from there on a different computer, but I am afraid to try it on the same computer in case the repositories collide. In short, what is the best way to set up the project I was working on in a fresh image so I can continue working on it? Thanks, Evan
Re: [Pharo-users] Reverting changes in Iceberg
Thanks. Command line didn't occur to me. Functional fixedness. Evan -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
Re: [Pharo-users] looking for another iterator :)
It is also worth mentioning that there is now also the Cons library available through the Pharo6 catalog browser. Cons is a lazy linked list that can be used like a normal linked list, but can also be used as an iterator over streams or infinite-sequence-generating blocks, using the usual Pharo collections API. myStream := (1 to: 100) readStream. (myStream asCons take: 5) do: [ ... ]. Due to the laziness, Cons, like Clojure's transducers, doesn't build intermediate representations, so things like #selectThenCollect: aren't necessary. (myList select: sBlock) collect: cBlock just creates an iterator and never actually creates the whole list, although you can still treat it like a list with #first, #allButRest, etc. The code is stable and in use in several of my projects. Evan -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
Re: [Pharo-users] Iceberg Branching
Hi, I think it's ok. I had accidentally gotten a 70 alpha version. Workflow seems fine on 61 and 70 stable versions. I tried to go in again and see what the error message was on the alpha version, but something else went wrong, and then I discovered that it had somehow found my actual working repository in another folder and was committing to that, and I decided to leave it alone lest it do something mischievous. Roughly, the error happened when I made a new branch, switched to it, committed changes, switched back to the other branch, and tried to view the packages tab to reload the old code. I don't recall what the error said. Evan -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
[Pharo-users] Iceberg Branching
What's the current status of branching? I can create, switch, and commit to branches, but my attempts to load code from other branches throws errors. Since branching isn't thoroughly documented in the readme yet afaict, I just wanted to check whether it was known to be 'under development' and I should leave it alone, or whether I should try to be more proactive about reporting the errors I'm getting. Thanks, Evan
[Pharo-users] Removing contents-changed marker from Rubric on save
Currently, if you add a "composite text" view using gtInspector, the editor lets you use ctrl+s to save changes to the local inspector. However, if you intercept ctrl+s to implement an actual save function, as FileReference does, the text editor no longer knows to remove the contents-changed indicator. You can see this in the current FileReference inspector: f := FileSystem disk / 'tmp' / 'filerefinspectortest.txt'. f writeStreamDo: [ :s | s nextPutAll: 'test data' ]. f inspect. "Change the data and hit ctrl+s. The contents-changed indicator is still there." f inspect. "If you inspect again, you will see that the contents have indeed been saved to disk." How would I change code like the FileReference >> gtInspectorContentsIn: code to make the content-changed indicator work properly? Who is in charge of that indicator and how do I tell them to turn it off? Thanks, Evan
Re: [Pharo-users] Releasing to Catalog
Ok, that works. Thanks. My last question is about adding a development symbolic version. Can I use my existing BaselineOf class somehow as a baseline from within my ConfigurationOf "" method, or should I define a redundant "baseline: spec" method in the Configuration of the old fashioned way? Thanks, Evan -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
[Pharo-users] Pharo Catalog Submission
Hi, I have just finished making a BaselineOf and ConfigurationOf for submitting my github-based project to the Pharo catalog. If my ConfigurationOf is with my code on github (via Iceberg), what Metacello command should I run to test that it works correctly before submitting to the catalog (to fetch the ConfigurationOf and then load it)? Thanks, Evan
[Pharo-users] Getting Iceberg Commits Back to Github
Hi, Once I have cloned my github repository and committed changes locally, how do I actually get those changes back to github? I went to synchronize repository > push > publish all, and it has a loading bar for a few seconds that says "pushing local commits to origin," but github reflects no changes. ssh -T confirms that github recognizes my key, and I'm using a stable pharo 7 from within the last week or so. Any help would be appreciated. Thanks, Evan
[Pharo-users] Roassal Axes
Does anyone know how to change the min/max of the axes? I'm trying to figure out how to make x and y not start at 0. data := #(1000 1001 1002). b := RTGrapher new. ds := RTData new. ds points: data. ds x: [ :c | c ]. ds y: [ :c | c ]. b add: ds. b minX: 999. b maxX: 1003. b minY: 999. b maxY: 1003. b. ^ this does not do what I was expecting. If the data is all clustered together but far from zero, I'd like to adjust the axes so I can see the actual variation in the data, and not just a single point where everything is clustered. What is the right way to do this? Thanks, Evan
Re: [Pharo-users] Iceberg: Code directory missing
Got it. I didn't realize the code subdirectory wasn't automatically created by Iceberg if it didn't exist. I deleted the subdirectory name in the repo config and my code seems to have made it to github. I submitted a pull request with some clarifications to the iceberg readme. Thanks, Evan -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
[Pharo-users] Iceberg: Code directory missing
Hi, I'm trying to push a local project to github via iceberg. I just pulled the stable 70 threaded image & vm pair (70+vmT) and tried to follow the instructions on the iceberg github page, but after successfully cloning the new empty repo on github (I can see the README), the iceberg browser just says "Code directory missing" in the repo status, and it does not seem to give me the option to add packages. The only available tab says "Repository is invalid". Anyone know what might have gone wrong? Thanks, Evan
[Pharo-users] Package Discoverability
Hello, I was wondering what the current story was for releasing packages so that they can be discovered. I'm trying to get into the habit of finishing and releasing all those 90% complete projects lying around, and so I wanted to know what the standard process should be for releasing a package of general interest. Especially now that iceberg is a thing, should I make a smalltalkhub page too just for people to search for? Should I submit it to the pharo catalog? Send a note to the mailing list? Any other best practices? Thanks, Evan
[Pharo-users] deselecting individual items with beMultiple
If I have a gl fast table with #beMultiple enabled, is there a way for me to select non-contiguous items? Eg - item 1 - item 2 - item 3 Using shift, I can highlight items 1&2 or 1-3, but not 1&3, excluding 2. Some listing interfaces in non-pharo applications allow control clicking to deselect individual items from the middle of a selection. Is there something like that in Pharo glm presentations? Thanks
[Pharo-users] Stream API
I've heard mention once or twice on this list and in some release notes of what sounded like possible coming changes to the stream API. Could anyone point me to any concrete details about that? I haven't been able to dig anything up myself by searching. I'm about to write something that I'd like to be polymorphic with the stream API, but if that's about to change, I'd like to plan ahead. Thanks, Evan
Re: [Pharo-users] LiteratureResearcher - where graphs, PDFs, and BibTex happily live together
This looks great. What would it take to get it running on Ubuntu? -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
Re: [Pharo-users] gtInspector override default select behavior
Perfect. Do you know if these methods are systematically documented anywhere? I feel like if I understood Glamour better these things might be more obvious, but I can never manage to infer the gtInspector calls from the Glamour docs. Thanks. -- View this message in context: http://forum.world.st/gtInspector-override-default-select-behavior-tp4959037p4959141.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] Best Practices for Bundling Documentation
Gracias, pronto lo reviso. -- View this message in context: http://forum.world.st/Best-Practices-for-Bundling-Documentation-tp4958788p4959140.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] Best Practices for Bundling Documentation
Ok, thanks. -- View this message in context: http://forum.world.st/Best-Practices-for-Bundling-Documentation-tp4958788p4959139.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
[Pharo-users] gtInspector override default select behavior
Hello, I have a gtInspector extension a tree-structured object. By default, when I click on one of the objects in the gtInspector, the inspector opens up another inspector on that node (using the finder-style display). What I would like to know is, is it possible to override the default click behavior so that, instead of opening the next inspector on that node of the tree, it opens on the result of a block run on that tree. Specifically, I have this: gtInspectorSource: composite composite tree title: 'Source'; children: [ :r | r sourceChildren ]; format: [ :r | r sourceName ]; display: self and I was hoping there was some way I could do something like this: ... display: self; onSelectAction: [ :r | r next ] so when I click, I get an inspector not on the node of the tree r, but on r next. Thanks, Evan
Re: [Pharo-users] Best Practices for Bundling Documentation
Hello, The projects are a logic programming and machine learning system respectively, so they probably warrant more involved tutorial-style documentation. I will take a look at the Pillar docs, but just to think ahead a bit, assuming I write up some docs in Pillar, what would be the best way to distribute those? Can they be packaged with the code or would the docs be outside the image? If outside, where do people tend to host them? Thanks, Evan -- View this message in context: http://forum.world.st/Best-Practices-for-Bundling-Documentation-tp4958788p4958910.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
[Pharo-users] Best Practices for Bundling Documentation
Hello, I'm working on cleaning up a couple of projects for release, and I was wondering what the best practices were for including appropriate documentation with projects. Should I just drop a text blob in a prominent class comment? Is there a tool for structuring documentation? Is documentation typically kept separate from the code? Seems natural to include it so you never have to leave the image, but I'm not sure what most people do. Thanks, Evan
[Pharo-users] Performance Testing Tools
Hi, I've been doing a lot of performance testing lately, and I've found myself wanting to upgrade my methods from ad hoc use of bench and message tally. Is there any kind of framework for like, statistically comparing improvements in performance benchmarks across different versions of code, or anything that generally helps manage the test-tweak-test loop? Just curious what's out there before I go writing something. Too many useful little libraries to keep track of! Evan
Re: [Pharo-users] Prolog in Pharo
Hi, Yes, I am planning to move it to github, which is part of why I didn't get around to keeping the sth version synced. I have just managed to get iceberg working, so hopefully I won't have any trouble uploading it. That said, I am still a little unclear on how to specify dependencies on other repositories when using github (since I have typically been generating them and committing through versionner), so if anyone can point me to any resources about that, I'd appreciate it. Thanks, Evan -- View this message in context: http://forum.world.st/Prolog-in-Pharo-tp4951719p4951783.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] Prolog in Pharo
Hi, just saw this. Smallkanren is complete and under very active development, I just haven't put a new version up in a while because I didn't think that anyone was using it. I'm currently cleaning up a new release and was planning to upload that in the next few days. It should have full support for all the core functions and a better interface, in addition to being much faster. As far as the matter of real world vs academic exercise, I think I might say rather that it has not *yet* been as thoroughly developed and proven as prolog. It is, after all, a much newer language by almost a half century. However, it forms the basis of clojure's core.logic library, and has been seeing an increasing amount of deployment in real world projects in that area (configuration, parsing, test generation sorts of things I think). I'd like to enable the same in Pharo. If anyone is interested to know more, feel free to get in touch. Cheers, Evan -- View this message in context: http://forum.world.st/Prolog-in-Pharo-tp4951719p4951737.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] Wandering Through Dependency Hell
Ok, I think this case is closed. Having gotten my code out of the image with Monticello and manual recompile, I can use versionner for upload if and only if I do it in Pharo6. Likewise, I can use it for download if and only if I do it in Pharo6. Pharo5 breaks in strange ways on both ends, even with fresh image/vm. I take this as a sign that I should transition to Pharo6. Relievedly yours, Evan -- View this message in context: http://forum.world.st/Wandering-Through-Dependency-Hell-tp4946266p4946933.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
[Pharo-users] Basic Iceberg First Commit
Hello, I am trying to get Iceberg working. I have a new Pharo 6 image as of about 5 minutes ago, and I am following the tutorial here: https://github.com/pharo-vcs/iceberg I get as far as cloning the repository, but when I enter my github ssh url and hit "Create repository" I get "LGit_GIT_ERROR: no error message set by libgit2." I am wondering three things: 1) What are the dependencies, libgit or otherwise, that I should make sure to have on my system? I have everything mentioned at the top of teh tutorial. 2) Is this tutorial still up to date enough that I should be getting past this step? I know the code is under development. 3) Is there a way to see what actually gets sent to the ffi? Nothing in the call trace looks especially out of place. Thanks, Evan
Re: [Pharo-users] Wandering Through Dependency Hell
Thanks for the replies. With Juraj's help, I figured out the first layer of my problem. I needed to recompile all the methods after loading the code with Monticello, because their bytecode was all messed up. Now I can get code out of the image via plain Monticello. Tests were failing not because of reversion, but because of random bytecode issues. There is still some odd versioning behavior, but it's not my biggest problem. Now I am trying to create a ConfigurationOf with Versionner. I followed this video: https://www.youtube.com/watch?v=cFRJDuWL-Q0 When I go to commit, Versionner gives me an array out of bounds due to the "KommitStagingArea" not having any elements in its packages array. Sometimes this yields no upload, sometimes it uploads a Config that does not seem to work when I try to download with it, and sometimes I get a debugger on smalltalkhub while trying to view the source. I'm not sure how to predict or interpret which will happen. Essentially, I am just trying to find the simplest, easiest way to let people download a project and its dependencies. The above errors have happened in more or less every project I've tried to commit, and I know other people don't have the same difficulty I do in trying to get code out of and into an image, so I suspect that it is something about my workflow that is off, or possibly my computer. So my first question is, is that video still up to date, or has the system changed? Thanks, Sorry for what I know is not a lot of detail. I'm not really sure where to start with this one. Evan -- View this message in context: http://forum.world.st/Wandering-Through-Dependency-Hell-tp4946266p4946815.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
[Pharo-users] Wandering Through Dependency Hell
Hello, I was wondering if there was a resource somewhere that laid out a best practice for how to manage version control in Pharo. I know *how* to use Monticello and Versionner, but something about the way I use them inevitably dooms my efforts to the darkest circles of dependency hell, where strange and gruesome partial versions of old and abandoned branches come back to haunt me like some kind of object oriented night of the living dead. In particular, I usually commit daily to a local repository on my disk, and only occasionally to a remote repository like smalltalkhub. It has come to my attention that this only commits recent changes, with the result that no single repository actually has the current working code that I see in my image. I am in that situation now, where loading the latest version revives some distant and broken code where good, currently working code should be. If anyone knows how to figure out how to force all the current good code in my image into one massive commit, so that other people can check out the current, working version, please do not hesitate to let me know. Thanks, Evan
Re: [Pharo-users] What is the craziest bug you ever face
Yeah, that sounds right. The debugger needed to be able to step through lines of code like normal (to debug the logic framework) as well as to step through search steps (to debug programs written in the framework) defined in terms of the system semantics (since bugs could be in either program or framework at this point). It also needed to recognize the semantics not only of the framework, but of the debugging interaction, because I needed it to step through the search space until it arrived at a particular leaf of the search frontier. The framework itself basically does a breadth-first-search, and it doesn't care when a particular frontier node will be visited again, but if I am tracing the search in one particular part of the space for the very specific purposes of debugging, only then do I need the debugger to recognize the semantics of when we are expanding a child of a given frontier node. I also played with the idea of actually changing the search order while debugging, which would change the semantics of the actual running program to make it turn out a certain way so that I could observe rare behavior. The analogy would be manually setting a random number in the debugger, except that it might take more than a single instance variable assignment to change the structure of a search tree. Evan -- View this message in context: http://forum.world.st/What-is-the-craziest-bug-you-ever-face-tp4937984p4938057.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] What is the craziest bug you ever face
I should add that users of the logic framework from non-smalltalk languages were very impressed by the potential. Evan -- View this message in context: http://forum.world.st/What-is-the-craziest-bug-you-ever-face-tp4937984p4938040.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] What is the craziest bug you ever face
I actually have a whole class of bugs and elements of a very Pharo-y solution. I do a lot of work in a logic programming framework. Being a logic programming framework, it does not execute the code you write in a start-to-finish manner, but executes a few lines here, then jumps around and executes a few lines there. As a result, if you are trying to trace the evolution of a particular branch in the search tree, you can only follow one or two operations at a time in the debugger, then that branch gets put in the queue and you may have to step through tens or hundreds of other searches before you get back to it (if you can even recognize which branch you were following when it comes around again). This makes debugging basically impossible in every other language this framework has been ported to, and the standard strategy is just to stare at the code. Pharo's debugger was already a step up, but it still wasn't nearly up to the task. I had been trying to get a particularly complex program to work for several days with no success, at which point I decided to investigate the moldable debugger framework. It took me several more days of going through the debugger code in different versions and emailing with its developers to get something working, which just speaks to the state that framework and documentation happened to be in at the time, but when I did get it working I found the bug in a few minutes. I essentially set up a visual depiction of the search tree where I could click on a branch and have the framework run until that branch came up again to the front of the queue. This meant I could trace execution linearly by giving myself a way to get a handle on the control flow via a visual interface. I have since changed my framework and broken the debugger code, but I definitely intend to try to get that rigged up again when the logic system is in a more polished form. Admittedly, many programs probably do not have the problem that their control flow is so complex that a normal linear debugger is too difficult to understand, but on some level the ability to specify a debugging control flow outside the execution of the program itself seems like a pretty powerful idea, and something Pharo should be very well suited for with its interactivity/reflectivity. Maybe there would be more complex, logic-based programs if they weren't so hard to write! Evan -- View this message in context: http://forum.world.st/What-is-the-craziest-bug-you-ever-face-tp4937984p4938039.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] Socket, network, testing and coding
Hi, Depending on what exactly you are doing, you could either use or look at the source of: http://smalltalkhub.com/#!/~EvanDonahue/P2P It is basically a simple API for setting up image-to-image networked communication. You make a server object, set it running, and then open a connection from a client image. The threading etc is all handled. A simple chat system only takes a couple lines, and there is a well commented example of a simple multi (3+) person chat server in the examples package. Yes, one image does need to be the "server," but it only matters for setting up the initial connection. After that, they are essentially peer to peer, and either party can send to the other. I would imagine that this still fits your requirements, unless you have a very special use case like UDP hole punching, which I ultimately plan to implement one day when I return to this project. But the current form is very stable and complete. Let me know if you have any questions. Cheers, Evan -- View this message in context: http://forum.world.st/Proof-of-Concept-FileTree-and-Fossil-tp4936260p4936490.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] Japanese Fonts
Hi, thanks for the reply. FreeType disable/reenable seems to have done the trick. It loaded up my system fonts, and I was able to select Noto Sans CJK JP, which seems to do the trick. For reference, this is on Pharo 6 #60334. I also installed this for text entry: http://smalltalkhub.com/#!/~tomooda/Tekka and it seems to work like a charm. Thanks, Evan -- View this message in context: http://forum.world.st/Japanese-Fonts-tp4928056p4928161.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
[Pharo-users] Japanese Fonts
Hello, I am trying to get Japanese characters to show up in my Pharo image. Following some advice I found on google, I have set my font to something that I think should handle Japanese characters: defaultFont := LogicalFont familyName: 'Droid Sans Fallback' pointSize: 18. StandardFonts defaultFont: defaultFont. I then used the settings browser to force that to all system fonts. I did not notice a change to any of the text when I did this, so I am not sure it worked. Also, Japanese text still shows up as spaces. Does anyone know whether this is something I need to deal with in Pharo, on Ubuntu, or both? As far as I can tell, the font is on my system. Thanks, Evan
[Pharo-users] Contributing code
Hello, I wanted to ask if there was a good resource I could use to learn how to find out about current bugs and submit patches/code/contributions to the core Pharo classes (or other major Pharo projects). I'd like to be able to fix the things I encounter, I've just never gotten around to learning how. Ideally, it would be great if something could show me how to find and fix some minor tweak of a comment or something like that, just so I know the process. This seems like the kind of thing that is either obvious, or has been addressed somewhere, but for whatever reason, I've never been able to find it. Thank you, Evan
Re: [Pharo-users] CodeGenerator, your opinions?
So this isn't a specific out-of-the-box solution to any of the code-generation use cases people have been discussing, but I thought it was relevant enough to toss it out there. I'm currently doing some work on program synthesis using a Pharo port of the miniKanren logic programming language (http://minikanren.org/). The Pharo version is here: http://smalltalkhub.com/#!/~EvanDonahue/SmallKanren . So far, I've only used it to implement this paper on generating scheme programs (http://smalltalkhub.com/#!/~EvanDonahue/SmallKanren), the implementation of which is here: http://smalltalkhub.com/#!/~EvanDonahue/Barliman . I've thought a bit about things like generating GUI's, and it seems like something interesting could be done there, since you could imagine feeding it constraints and then giving the results a thumbs up/thumbs down to see other satisfying layouts more or less like the ones you voted on, but the probabilistic learning component is an object of current research and isn't ready yet. I was planning on sending out an announcement once it was more complete and robust, as right now it has lots of tests but not much documentation, and the architecture is changing rapidly, per research requirements, but if anyone is interested in knowing more about it feel free to get in touch. This is part of a broader research program on intelligent interfaces, so hopefully some cooler things come out of it later down the line. Cheers, Evan -- View this message in context: http://forum.world.st/CodeGenerator-your-opinions-tp4919152p4919250.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] What should I name my nested packages?
Yes, that looks like it. Thanks. Relatedly, do I correctly infer that tags only organise /within/ packages, and so cannot be downloaded separately? Thank you, Evan -- View this message in context: http://forum.world.st/What-should-I-name-my-nested-packages-tp4898193p4898399.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
[Pharo-users] What should I name my nested packages?
Hello, Just a quick question as I work on refactoring and cleaning up a project I've been working on. I notice that packages like Fuel appear in nice, nested hierarchies in my code browser, with 'Core' nested under 'Fuel' even though 'Core's package name is actually Fuel-Core. I'm wondering what I have to do to get my own packages to nest similarly in the code browser beyond just naming them accordingly. Thank you, Evan
Re: [Pharo-users] Is lazy evaluation of infinite series possible?
Hello, Other people are probably better qualified to weigh in on the best ways to manage packages in a Pharo image, but this is what I do: 1) Left click on the "desktop" to bring up the "world menu" and select "Monticello Browser." 2) Click the "+Repository" button and select "smalltalkhub.com" from the popup menu. 3) Type 'EvanDonahue' and 'Lazy' inside the provided quotes next to owner: and project:, respectively (user and password can be left ''). Then click OK. 4) Highlight "Lazy-Core-EvanDonahue.26.mcz" on the right panel (may be 26 or any other number) and click the "Browse" button to explore the classes and methods without actually installing in your image. 5) Click the "Load" button to install the classes in the image. You may also want to install Lazy-Tests just to have some code examples to look at. 6) To remove everything later, open Monticello again, search for "Lazy," right-click Lazy-Core in the left pane, and "unload" As for your use case, what you have written should work, but if you just want a ton of 1's, you can use LazyList repeat: 1 There are other class methods of increasing generality for generating infinite lists, but of course you can always use #collect: and friends to compose appropriately. LazyList is technically still "under development," but it should be feature complete for most uses. Let me know if there's any functionality it's missing, or if you're wondering whether and how it can do something. If you want to say any more about the operations you are trying to perform, I can be more specific about how to do them. Roughly, aside from the infinite methods, the API follows the standard Pharo collections. And also welcome to Pharo. It's a trip. Cheers, Evan -- View this message in context: http://forum.world.st/Is-lazy-evaluation-of-infinite-series-possible-tp4897956p4898034.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] Is lazy evaluation of infinite series possible?
Hello, I know infinite series are mentioned in the numerical methods book, although I haven't worked with those classes specifically. http://files.pharo.org/books/numerical-methods/2016-04-NumericalMethods.pdf You could also use a LazyList, depending on what you were doing, from http://smalltalkhub.com/#!/~EvanDonahue/Lazy/ x := 3. Float e raisedTo: x. " = 20.085536923187664" eX := LazyList wholes collect: [ :n | (x raisedTo: n) / n factorial ]. (eX take: 20) sum asFloat. " = 20.085536921517672" 2 * (Float e raisedTo: x). " = 40.17107384637533" twoEX := eX with: eX collect: [ :a :b | a + b ]. (twoEX take: 20) sum asFloat. " = 40.171073843035344" Will either of those work? Evan -- View this message in context: http://forum.world.st/Is-lazy-evaluation-of-infinite-series-possible-tp4897956p4898015.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] Machine learning in Pharo
Hello, I added a "MachineLearning" repository to Smalltalkhub a while back, but I got sidetracked before adding anything beyond a naive KNN classifier, which was really just to help prototype the testing framework. That said, my plans involve expanding the library extensively this summer in conjunction with my research, starting in about 6 days. I work on natural language processing, so it is possible that I was already planning to build some of the models you were intending to use. What models were you looking for? I also added a parallel NLP repository, which is similarly barren but for a naive IBM Model 1 translation model, which probably won't help you. Relatedly, I was contemplating building an RSS classifier myself, and would gladly use one, were it to exist. Cheers, Evan -- View this message in context: http://forum.world.st/Machine-learning-in-Pharo-tp4893062p4893161.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] Nesting Builders in Roassal
Hello, I got that working, and a bit more besides, and things are starting to look pretty good. However, I've run into another issue I'm not sure how to resolve. Recognizing that, as you mentioned, nested builders are something of a bleeding edge feature, I'm happy to try to contribute code if what I'm trying to do isn't already implemented. My question now is how to adjust the size and shape of the nested, builder-produced elements. In the example code you posted, is it possible to 1) remove the square borders from the pie graphs, and 2) make the pie graphs different sizes based on, for instance, the size of the array they represent? This second question is also relevant for sizing the pie graphs in proportion to other elements such as labels. Witness the uneven proportions between the pie charts and a label added to the display: v := RTView new. data := #((1) (2) (1 2)). es := data collect: [ :d | b := RTPieBuilder new. b interaction popupText. b objects: d. b slice: #value. b build. b view asElement. ]. v add: (RTLabel new elementOn: 'label'). v addAll: es. RTCellLayout new lineItemsCount: 3; on: es. RTMetricNormalizer new view: v; elements: v elements; distinctColor. v Normally, I gather, this is done by adding size and shape info to the element factory before it produces its elements. Since the builders do not appear to have been intended to fill this role initially, however, I can't seem to find any corresponding inputs for size or shape of their generated elements as nested in another builder's view. Cheers, Evan -- View this message in context: http://forum.world.st/Nesting-Builders-in-Roassal-tp4885185p4889195.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] Nesting Builders in Roassal
Hello, Many thanks for the reply. This indeed solves part of my problem, and does what I expect (although in the smalltalkhub / ObjectProfile / development code, only RTView has #asElement, not RTBuilder). Given this, I think I can give an example of the real stumbling block I'm facing (although whether it is a framework limitation or my own ignorance, I cannot say). Note that in the following code, there are two solid pie charts of the same color, but each represents a different object (the numbers 1 and 2 respectively). This is happening because each pie chart is generated with its own normalizer. Is it possible to share a single, global normalizer across many pie charts, or set up a single pie builder outside of the loop and then only vary its objects? I would like every slice in every pie chart that represents the number 1 to be one color, and every slice representing the number 2 to be a different color. Which color they are does not matter so long as they are distinct, and I will not know ahead of time how many different colors I will need or what types of objects I will be representing, so I can't manually assign colors to categories. v := RTView new. data := #((1) (2) (1 2)). es := data collect: [ :d | b := RTPieBuilder new. b interaction popupText. b objects: d. b slice: #value. b normalizer distinctColor. b build. b view asElement. ]. v addAll: es. RTCellLayout new lineItemsCount: 3; on: es. v Thank you, Evan -- View this message in context: http://forum.world.st/Nesting-Builders-in-Roassal-tp4885185p4885372.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
[Pharo-users] Nesting Builders in Roassal
Hello, I am working with Roassal and trying to write a cell-layout builder that uses RTPieBuilders internally as its nested objects. The nesting docs cover nesting RT elements, but not builders. The composition docs cover composing builders, but not nesting them. I have a partial solution, but it is getting increasingly hacky, to the point where it may be easier to just duplicate the piebuilder code in my builder. Before I go down that road, I wanted to check if there was a more natural way to nest builders. Below is a mashup of the Roassal Examples Nesting and Pie Chart builders that gives the basic flavor of what I am trying to accomplish. Notice that I am creating new PieBuilders every time, running them, and extracting their createdElements for my layout. This works well enough, but if I then want to normalize global properties so that all pie slices with the same property get the same color, I have no way to coordinate the newly generated PieBuilders, as each possesses its own normalizer. Likewise, if I have a global PieBuilder, its internal state gets trampled with each iteration. I figured there was likely an easy way to compose builders that I didn't know about, so I thought I would ask. | v es b | v := RTView new. es := RTEllipse elementsOn: RTShape withAllSubclasses. v addAll: es. RTNest new for: es add: [ :group :model | b := RTPieBuilder new. b objects: RTShape withAllSubclasses. b slice: #numberOfMethods. b normalizer distinctColor. b view: v. b build. group addAll: b createdElements. ]. RTCellLayout new lineItemsCount: 8; on: es. v Thanks, Evan
Re: [Pharo-users] Roassal2 on Ubuntu 64
Aha, I followed the Quick Start at https://dl.dropboxusercontent.com/u/31543901/AgileVisualization/QuickStart/0101-QuickStart.html and didn't notice anything there. Cheers, Evan -- View this message in context: http://forum.world.st/Roassal2-on-Ubuntu-64-tp4883675p4884245.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] Roassal2 on Ubuntu 64
D'oh. Yep, this did it. I think I've been bitten by 32 bits before both on sound and on file opening. One day I'll learn, and on that day, Pharo will be 64 bit. Thanks, Evan -- View this message in context: http://forum.world.st/Roassal2-on-Ubuntu-64-tp4883675p4883840.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
[Pharo-users] Roassal2 on Ubuntu 64
Hello, I'm trying to learn Roassal, but I can't seem to get the first visualization from https://dl.dropboxusercontent.com/u/31543901/AgileVisualization/QuickStart/0101-QuickStart.html working on any combination of image and vm. I've tried the vm+40 and vm+50 from get.pharo and the moose 6.0 image from the moose site. The issue seems to be that CairoLibrary>>unixModuleName does not contain the /usr/lib/x86_64-linux-gnu/libcairo.so.2 path where 64-bit Ubuntu installs cairo. If I symlink that library, I get an Error: External module not found from AthensCairoSurface. I don't really know enough about the external module system to know what this is telling me. Any ideas would be much appreciated. Thanks, Evan
[Pharo-users] Machine Learning in Pharo
I saw a post on pharo-dev a little while ago about adding some machine learning libraries to pharo, and I was just wondering if there have been any developments on that front. I'm about to do some machine learning work myself, so it might make sense to coordinate with anyone out there already working on it. Cheers, Evan
Re: [Pharo-users] distributed peer2peer sharing app in Pharo
Hello, Just to follow up on Juraj's reply: Trantor is a framework for distributed applications. The basic idea is that you can establish a p2p network between various images, and then build applications using a set of specialized distributed collections that can be plugged into the p2p network and synchronized between hosts. The example Todo application is just a simple spec gui that writes items to a basic distributed collection. That collection is added to a running Trantor host in the image, and changes are broadcast to peer hosts in other images. The project is in the early stages, but it's definitely ready for prototypes and personal apps. I have been using Todo to synchronize a grocery list across all of the computers in my house (computers can join and leave the network and stay in sync). If anyone thinks they may have a use case for such a framework, please do get in touch. A lot of infrastructural decisions have yet to be made, and more use cases would really help ensure the final product is as broadly useful as possible. Cheers, Evan -- View this message in context: http://forum.world.st/distributed-peer2peer-sharing-app-in-Pharo-tp4855144p4855461.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] Personal wiki / information manager
Ah, yes, by 'offline' I did mean outside of the mailing list, but that was purely out of consideration for the list. If the list wants to hear it, far be it from me to keep it from them. For my part, I am a graduate student working on my dissertation, and I have been trying to build tools to facilitate that as I go, from taking and sharing notes, to visualizing primary material, to (eventually) organizing and writing the dissertation. I have been following Offray's updates with interest, as I think my goals are very much allied, but I am starting in a slightly different place, if I have understood correctly (research and organizing, and not yet writing, sharing, or publishing). My efforts thus far have been concentrated in two repositories: Chancery (http://smalltalkhub.com/#!/~EvanDonahue/Chancery) is an early prototype for a note taking system. I am coming from taking notes in emacs org-mode, and so Chancery right now is the most straightforward collapsable tree outliner/note taker that could give me functionality basically equivalent to what I had in org-mode, and serve as a platform to co-evolve my research methods and their supporting technology. The near-term goals for this involve adding metadata (authors, dates, etc) to the sources I am annotating and using that for various kinds of historical visualization (and further, attendant annotation) eg who wrote what when, referencing who, influenced by what, etc), and can I edit all that directly in its graphical form. The status of this project is that it is usable by myself and those I have worked with on it (and I use it as my primary note taking system), but I'm not sure what it would look like to someone loading it at the moment (no real intro/docs, as it was just a quick prototype to provoke further design discussion). Trantor (http://smalltalkhub.com/#!/~EvanDonahue/Trantor) is a disttributed p2p system for incrementally keeping data structures in sync between multiple, asynchronously connected pharo instances across the internet without requiring human attention to resolve merge conflicts (think laptos where data is edited offline and then automatically synced when they connect to one another); it is my answer to sharing and collaboration for things created in Chancery (although it is a more general purpose project). Functionally, Trantor provides a set of common datatypes (set, dict, text blob, etc) and a means to run nodes and peer them for synchronization of said datatypes. The goal with respect to Chancery/personal information management is being able to easily grab some structured set of notes or writing out of the note taking system and share it with collaborators or colleagues with a button click, and without having to go through the whole export/send/manage versions dance. This project is about 85% complete, the proof of concept works, it just needs a big refactor to make it usable and quash some bugs. I guess my observations on using Pharo thus far are first, that it is absolutely ideal for evolving prototypes, since you get a sort of poor man's gui and persistance (object inspector + image serialization) basically for free, which is 90% of the work of such a simple information management app prototype. I have a fully functional tree outliner at a point when in another language I would still be trying to hack a low functionality command line interface. The other thing I've found refreshing is that my application can live as one among many within the image, sharing data with other programs by passing objects around in a way that is impossible to do with a standalone application running on a modern operating system. the dream of the web is, I think, heading more in this direction, but working with the browser (as I was before I came to pharo) requires coordinating a separate server process, compressing everything into http/html/json, and a host of other problems that vanish when you can just serialize objects between pharo instances. In short, I'm getting a lot done in this language and I expect I'll be around for a while. Cheers, Evan
Re: [Pharo-users] Personal wiki / information manager
Seems that Pharo is a magnet for this kind of project. I've been writing one as well and using it to organize my research notes. Does anyone working on personal info mgmt tools want to talk offline? I expect we're running into some of the same issues, both conceptual and technical. Evan
Re: [Pharo-users] Rule engine
I would be curious to hear more about the various projects mentioned in this thread. I am working on a constraint logic system that has been used as a backend for a variety of inference systems in other languages. Thanks, Evan -- View this message in context: http://forum.world.st/Rule-engine-tp4801671p4802961.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
[Pharo-users] Pharo Sound of Silence
Hello, I'm trying to get sounds working in Pharo and I seem to be unable to locate a combination of PharoExtras/Sound and image/vm version that add up to audible sound. The best I've done so far is pharo3/sound6.1, which lets me beep, and write sounds to wav files, but the primitive for playing sounds fails silently. The pharo4/sound6 combination seems not to have a SoundService object that Beeper depends on, so I don't even get beeps. If anyone could help me figure out which version of what code is best supported right now, or why the sound playing primitive is failing, it would be most appreciated. Thank you, Evan
Re: [Pharo-users] Pharo Sound of Silence
That did the trick. Thanks. Evan -- View this message in context: http://forum.world.st/Pharo-Sound-of-Silence-tp4801562p4801633.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] Pharo Sound of Silence
64-bit Arch linux 3.17.6-1-ARCH I seem to be running pulse-audio with alsa, and I believe I have all the 32-compadibility libraries installed, but my experience with linux sound is limited. What is Pharo expecting? Thanks, Evan -- View this message in context: http://forum.world.st/Pharo-Sound-of-Silence-tp4801562p4801584.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] issue with and/or inlining
Hmm, so that works when I annotate my test class, but I probably shouldn't be exporting pragma concerns to my end users. Was your other suggestion about dealing with the warning itself something I could do, or were you referring to a change to pharo itself? In case it's relevant, the warning also seems to cause an issue where I can't deselect a new class in the system browser and have to re-open the browser. Thanks, Evan -- View this message in context: http://forum.world.st/issue-with-and-or-inlining-tp4798622p4798769.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
[Pharo-users] issue with and/or inlining
Hello, I'm currently working on an embedding of the miniKanren logic programming language in Pharo (http://minikanren.org/) and I have run into an issue with the method compilation internals I was hoping someone could shed some light on: miniKanren has an operator, fresh, that basically evaluates a block and returns a logic variable. My current syntax for a conjunction of logic variables is: var1 and: var2 When I try to use the same syntax for fresh: var1 and: [ :var2 | var2 ] Compilation fails with Warning: and: (or:) takes zero-arg block which seems on first glance to come from the compiler attempting to inline my and: call. If I add an auxiliary method andFresh: that evaluates the block and and:'s the result in 2 steps, my tests pass. What I'd like to know is: 1) Is there a work around to let me use the and: syntax here? 2) Might my overriding of and: and or: for normal logic variables cause other problems I'm not thinking of? Obviously this is not a critical issue, but my code's aesthetics are at stake, and if we can't have pretty code, then what can we have? Thanks, Evan
[Pharo-users] Building 64-bit pharo VM
Hello, I am working on building a 64-bit pharo vm to open large files, as per a previous question to the list. I have gone down a few roads from different dates and with different basic strategies and met with little success so far. Could someone recommend the best place to look for the vm build instructions that would be the closest fit to building a current pharo vm for pharo4 in 64 bits on a 64 bit arch linux os? Thanks, Evan
[Pharo-users] Glamour stream presentations
Hello, I was just wondering if it was possible to use list/table presentations (or an analogous presentation) in Glamour to display streams that load on demand as you page through them (rather than loading all entries into memory before displaying the first page). If not, does anyone have any tips on the best way to go about creating one? Thanks, Evan
Re: [Pharo-users] Trouble opening large files
The OS is Arch Linux. I can read the file with less. The problem, insofar as I can trace it, seems to stem from this line in UnixStore: Primitives lookupDirectory: encodedPath filename: encodedBasename When I have my 57G file there this line returns nil. If I move the 57G file and create a small file with the same name, the same command successfully finds the file. I am not sure how large a file must be to cause this issue, but A 1.5G file works fine. On Tue, Oct 14, 2014 at 8:17 AM, Nicolai Hess nicolaih...@web.de wrote: 2014-10-14 6:38 GMT+02:00 Evan Donahue emdon...@gmail.com: Hi, thanks for the reply. The response is the same: MessageNotUnderstood: FalsehumanReadableSIByteSize. This happens both to print-it as well as to do-it-and-go. Running the command on the neighboring wiki.torrent torrent file yields the correct 54kb. Thanks, Evan On Tue, Oct 14, 2014 at 12:24 AM, Tudor Girba tu...@tudorgirba.com wrote: Hi, If I understand correctly, the failure occurs while navigating in the Items presentation. I cannot reproduce this problem because I do not have enough disk space for such a large file :). But, could you do the following and let me know what the outcome is: 'path/to/your/large/file.xml' asFileReference humanReadableSize ? Cheers, Doru On Tue, Oct 14, 2014 at 2:27 AM, Evan Donahue emdon...@gmail.com wrote: Hello, I've run into some odd behavior and wanted to check whether I might be missing something: I have downloaded a copy of the english wikipedia as an xml file and am hoping to (sax) parse it. However, I can't even seem to get pharo to recognize that the file exists. If I open FileSystem disk root in the playground and naigate, attempting to enter the folder containing the (57G) xml file fails with MessageNotUnderstood: FalsehumanReadableSIByteSize. Likewise if I get a FileReference with FileSystem disk root / 'path' / 'to' / 'file' then self exists returns false and the parser fails. Am I doing something wrong? Should I be able to do this? The version number is #40283 Thanks, Evan -- www.tudorgirba.com Every thing has its own flow Which OS ? Can you check with other programs if this file is readable at all? Nicolai
Re: [Pharo-users] Trouble opening large files
64 bits! That makes sense. I don't generally work with large files either. I have been getting my vm from get.pharo.org, so I will need to get the source to build the vm in the first place. A quick survey over the last few hours has revealed a multitude of vms, projects, platforms, repositories, and versions that I, in my pharo ignorance, cannot differentiate. Could someone please point me to the source I should be using to build the vm for the pharo40 image I have been pulling of get.pharo.org? Thank you, Evan On Tue, Oct 14, 2014 at 3:02 PM, Nicolai Hess nicolaih...@web.de wrote: Rebuild pharo vm with D_FILE_OFFSET_BITS=64 option: Reading list directories with (very) large files working now. 2014-10-14 20:26 GMT+02:00 Nicolai Hess nicolaih...@web.de: There is a bug report on mantis for squeaks unix vm. I think this applies to pharo too, although I don't know if this bug is still valid on recent squeak vm. http://bugs.squeak.org/view.php?id=7522 2014-10-14 17:43 GMT+02:00 Evan Donahue emdon...@gmail.com: The OS is Arch Linux. I can read the file with less. The problem, insofar as I can trace it, seems to stem from this line in UnixStore: Primitives lookupDirectory: encodedPath filename: encodedBasename When I have my 57G file there this line returns nil. If I move the 57G file and create a small file with the same name, the same command successfully finds the file. I am not sure how large a file must be to cause this issue, but A 1.5G file works fine. On Tue, Oct 14, 2014 at 8:17 AM, Nicolai Hess nicolaih...@web.de wrote: 2014-10-14 6:38 GMT+02:00 Evan Donahue emdon...@gmail.com: Hi, thanks for the reply. The response is the same: MessageNotUnderstood: FalsehumanReadableSIByteSize. This happens both to print-it as well as to do-it-and-go. Running the command on the neighboring wiki.torrent torrent file yields the correct 54kb. Thanks, Evan On Tue, Oct 14, 2014 at 12:24 AM, Tudor Girba tu...@tudorgirba.com wrote: Hi, If I understand correctly, the failure occurs while navigating in the Items presentation. I cannot reproduce this problem because I do not have enough disk space for such a large file :). But, could you do the following and let me know what the outcome is: 'path/to/your/large/file.xml' asFileReference humanReadableSize ? Cheers, Doru On Tue, Oct 14, 2014 at 2:27 AM, Evan Donahue emdon...@gmail.com wrote: Hello, I've run into some odd behavior and wanted to check whether I might be missing something: I have downloaded a copy of the english wikipedia as an xml file and am hoping to (sax) parse it. However, I can't even seem to get pharo to recognize that the file exists. If I open FileSystem disk root in the playground and naigate, attempting to enter the folder containing the (57G) xml file fails with MessageNotUnderstood: FalsehumanReadableSIByteSize. Likewise if I get a FileReference with FileSystem disk root / 'path' / 'to' / 'file' then self exists returns false and the parser fails. Am I doing something wrong? Should I be able to do this? The version number is #40283 Thanks, Evan -- www.tudorgirba.com Every thing has its own flow Which OS ? Can you check with other programs if this file is readable at all? Nicolai
Re: [Pharo-users] Trouble opening large files
Certainly, thanks for the curiosity. I am processing natural language statistics over the entire wiki corpus, not querying for specific entries. The information and entries aren't important so much as the raw quantity of words. A simple stream through a file on disk is all I need. Thanks, Evan On Wed, Oct 15, 2014 at 12:49 AM, Hernán Morales Durand hernan.mora...@gmail.com wrote: 2014-10-13 21:27 GMT-03:00 Evan Donahue emdon...@gmail.com: Hello, I've run into some odd behavior and wanted to check whether I might be missing something: I have downloaded a copy of the english wikipedia as an xml file and am hoping to (sax) parse it. However, I can't even seem to get pharo to recognize that the file exists. Just for curiosity's sake, is there a reason why you don't query through a Sparql to dbpedia? Cheers, Hernán
[Pharo-users] Trouble opening large files
Hello, I've run into some odd behavior and wanted to check whether I might be missing something: I have downloaded a copy of the english wikipedia as an xml file and am hoping to (sax) parse it. However, I can't even seem to get pharo to recognize that the file exists. If I open FileSystem disk root in the playground and naigate, attempting to enter the folder containing the (57G) xml file fails with MessageNotUnderstood: FalsehumanReadableSIByteSize. Likewise if I get a FileReference with FileSystem disk root / 'path' / 'to' / 'file' then self exists returns false and the parser fails. Am I doing something wrong? Should I be able to do this? The version number is #40283 Thanks, Evan
Re: [Pharo-users] Trouble opening large files
Hi, thanks for the reply. The response is the same: MessageNotUnderstood: FalsehumanReadableSIByteSize. This happens both to print-it as well as to do-it-and-go. Running the command on the neighboring wiki.torrent torrent file yields the correct 54kb. Thanks, Evan On Tue, Oct 14, 2014 at 12:24 AM, Tudor Girba tu...@tudorgirba.com wrote: Hi, If I understand correctly, the failure occurs while navigating in the Items presentation. I cannot reproduce this problem because I do not have enough disk space for such a large file :). But, could you do the following and let me know what the outcome is: 'path/to/your/large/file.xml' asFileReference humanReadableSize ? Cheers, Doru On Tue, Oct 14, 2014 at 2:27 AM, Evan Donahue emdon...@gmail.com wrote: Hello, I've run into some odd behavior and wanted to check whether I might be missing something: I have downloaded a copy of the english wikipedia as an xml file and am hoping to (sax) parse it. However, I can't even seem to get pharo to recognize that the file exists. If I open FileSystem disk root in the playground and naigate, attempting to enter the folder containing the (57G) xml file fails with MessageNotUnderstood: FalsehumanReadableSIByteSize. Likewise if I get a FileReference with FileSystem disk root / 'path' / 'to' / 'file' then self exists returns false and the parser fails. Am I doing something wrong? Should I be able to do this? The version number is #40283 Thanks, Evan -- www.tudorgirba.com Every thing has its own flow
Re: [Pharo-users] Versionner and issue tracking
Halos! Of course! Thanks, new smalltalker here. Your advice in the other message proved key. I had set the ConfigurationOf's repo, but didn't realize I had to manually set the repo for each package on the commit screen. I have now uploaded and downloaded to a new image and everything works. Thanks, Evan -- View this message in context: http://forum.world.st/Versionner-and-issue-tracking-tp4772087p4772374.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
[Pharo-users] Versionner and issue tracking
Hello, I am working on figuring out how to upload my first project to smalltalkhub. I am using Versionner and when I commit, I am presented with a prompt for Retrieve Slice title with a field for issue number and title. Since I have no issue tracking for my project that I am aware of, I am unsure both what to put in these fields and, more practically, how to accept a given issue number, as there does not seem to be any kind of 'confirm' button. Thanks, Evan
Re: [Pharo-users] Versionner and issue tracking
pharo --version returns 3.9-7 and the image's about pane lists Latest update: #30848 Is either of those the relevant statistic? I should also note that I can't seem to find a way to dismiss the issue tracker window one way or another and ended up killing the vm process. Probably missing something obvious. Thanks, Evan -- View this message in context: http://forum.world.st/Versionner-and-issue-tracking-tp4772087p4772111.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
[Pharo-users] Monticello vs Metacello dependency management
Hello, I am working on getting a project into Monticello, and I am trying to understand the difference between letting Monticello handle package dependencies and setting up a metacello configurationOf class. In particular: PBE2 describes a technique of adding a MyProject-All package that requires MyProject-Core and MyProject-Tests (for example) so that one need only save and load MyProject-All and the others will come along for the ride. I have gotten this to work and it seems like a straightforward approach for a simple project. My question, then, is how does a Metacello ConfigurationOf differ from this approach for the simple core + tests project described? Here are a couple of my points of confusion, but it may be that they can all be answered with one concise statement: 1) If I set up a ConfigurationOf, can that replace the MyProject-All package for saving and loading the whole project at once, or are they complimentary techniques? 2) Is the Monticello action-click add required package necessary if one specifies dependencies in the ConfigurationOf? Would they cause problems if they went out of sync with the dependencies described in the ConfigurationOf? 3) Do I correctly infer that the proper way to use a ConfigurationOf is to give it no dependencies, load it from the project repository on its own, and then run its project load message to have it import the rest of the project? If there are any particularly good resources describing the use of Metacello beyond PBE2, please let me know. In the meantime, I'll keep searching and experimenting. Thanks, Evan