[Pharo-users] Inspector #send: has vanished

2022-07-03 Thread Evan Donahue
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

2021-12-12 Thread Evan Donahue
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

2021-08-12 Thread Evan Donahue
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

2021-03-30 Thread Evan Donahue
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

2020-05-03 Thread Evan Donahue
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

2018-08-06 Thread Evan Donahue
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

2018-08-06 Thread Evan Donahue
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

2018-08-04 Thread Evan Donahue
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

2018-08-04 Thread Evan Donahue
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

2018-08-01 Thread Evan Donahue
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

2018-07-27 Thread Evan Donahue
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

2018-06-03 Thread Evan Donahue
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

2018-05-24 Thread Evan Donahue
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 :)

2018-01-25 Thread Evan Donahue
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

2018-01-15 Thread Evan Donahue
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

2018-01-13 Thread Evan Donahue
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

2018-01-04 Thread Evan Donahue
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

2018-01-02 Thread Evan Donahue
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

2017-12-26 Thread Evan Donahue
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

2017-12-24 Thread Evan Donahue
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

2017-12-19 Thread Evan Donahue
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

2017-12-12 Thread Evan Donahue
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

2017-12-11 Thread Evan Donahue
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

2017-12-11 Thread Evan Donahue
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

2017-11-25 Thread Evan Donahue
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

2017-11-13 Thread Evan Donahue
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

2017-11-05 Thread Evan Donahue
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

2017-08-07 Thread Evan Donahue
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

2017-08-07 Thread Evan Donahue
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

2017-08-07 Thread Evan Donahue
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

2017-08-06 Thread Evan Donahue
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

2017-08-05 Thread Evan Donahue
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

2017-08-04 Thread Evan Donahue
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

2017-07-18 Thread Evan Donahue
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

2017-06-17 Thread Evan Donahue
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

2017-06-17 Thread Evan Donahue
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

2017-05-12 Thread Evan Donahue
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

2017-05-12 Thread Evan Donahue
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

2017-05-11 Thread Evan Donahue
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

2017-05-09 Thread Evan Donahue
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

2017-03-09 Thread Evan Donahue
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

2017-03-09 Thread Evan Donahue
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

2017-03-09 Thread Evan Donahue
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

2017-02-28 Thread Evan Donahue
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

2016-12-26 Thread Evan Donahue
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

2016-12-23 Thread Evan Donahue
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

2016-12-08 Thread Evan Donahue
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?

2016-10-18 Thread Evan Donahue
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?

2016-05-31 Thread Evan Donahue
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?

2016-05-30 Thread Evan Donahue
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?

2016-05-29 Thread Evan Donahue
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?

2016-05-29 Thread Evan Donahue
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

2016-05-01 Thread Evan Donahue
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

2016-04-08 Thread Evan Donahue
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

2016-03-19 Thread Evan Donahue
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

2016-03-18 Thread Evan Donahue
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

2016-03-12 Thread Evan Donahue
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

2016-03-10 Thread Evan Donahue
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

2016-03-09 Thread Evan Donahue
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

2015-12-13 Thread Evan Donahue
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

2015-10-13 Thread Evan Donahue
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

2015-07-27 Thread Evan Donahue
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

2015-07-26 Thread Evan Donahue
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

2015-01-31 Thread Evan Donahue
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

2015-01-25 Thread Evan Donahue
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

2015-01-25 Thread Evan Donahue
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

2015-01-25 Thread Evan Donahue
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

2015-01-10 Thread Evan Donahue
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

2015-01-09 Thread Evan Donahue
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

2014-11-18 Thread Evan Donahue
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

2014-11-12 Thread Evan Donahue
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

2014-10-14 Thread Evan Donahue
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

2014-10-14 Thread Evan Donahue
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

2014-10-14 Thread Evan Donahue
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

2014-10-13 Thread Evan Donahue
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

2014-10-13 Thread Evan Donahue
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

2014-08-07 Thread Evan Donahue
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

2014-08-06 Thread Evan Donahue
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

2014-08-06 Thread Evan Donahue
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

2014-08-04 Thread Evan Donahue
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