>> Gentlemen, may I ask what you thought of my list of requirements?
>>
>> http://lists.squeakfoundation.org/pipermail/squeak-dev/2016-March/188486.ht…
> IMHO the first point is not a requirement (what?) at all but a solution (how?).
It depends on who your actor is. I get your point when the
actor is an end user playing with an iPad, but requirement #1 is
trying to assert that the type of actor for *these* requirements is a
non-programmer user who wants to write a little code or make a little
application that might have a Preference or two. In that case, the
requirement is that we have a simple, easy to understand English-based
class hierarchy, and not computery terms.
We already have it anyway, so we don't even need to discuss this..
>> I honestly think we don’t need pragmas to do it.
> I agree but I cannot understand why you seem to hate pragmas.
Whoa, I don't "hate" pragma's at all, they're an important capability,
I'm simply saying that using them for our Preferences system makes a
design that is not only unnecessarily complex and confusing but
embarassingly bad and incapable. We're supposed to be the language of
"objects" but can't even represent a template of Preferences to solve
the most basic of requirements, like #7..!
Meanwhile, Marcel's new Themeing implementation solves the same
problem with a fraction of the code and complexity, and yet is 10X
more powerful. Its a leveraged design based on objects, instead of
diluted based on dozens of global variables..
>>> the other
>>> is in being modular, in that the pragma method can live in the package to
>>> which it belongs.
>>
>> Let’s not let package concerns dictate the design.
> IMHO packaging concerns are very important design drivers. I consider missing modularity one of the main problems with Smalltalk.
Don't worry, our packaging system is flexible enough that we don't
need to limit our design because of packaging (a developer activity,
BTW). As I showed earlier in this thread, Pragma preferences provide
no benefit in the area of packaging, every preference accessor can
still be in its own package. The new theming implementation proves
this, too.
>> snip...
> I don’t understand why you consider pragma more computery whihz-bang than classes, objects and messages. I’d even say they are much simpler to understand than metaclasses. And pragmas are in all commonly used Smalltalk implementations by now.
Because they represent metadata about something "in the computer"
rather than a description of the domain which the power-user actor
cares about.
They're supposed to represent information about methods of the system.
Using them for the user domain models is a confusing mis-use.
We *really should* try harder to target users besides our developer
selves. Please? Smalltalk was the only system in which users can
learn to program without learning or caring anything about computers.
If they have to become programmers, then suddenly the whole menu of
more popular languages like Python or Ruby becomes just as accessible
to them. We keep trying to nullify our Smalltalk advantage.. :(
>> IMO, we should just do Smalltalk and objects. 1) Get rid of teh class
>> vars, 2) change the getter/setters to access Preferences
>> wrapped-dictionary, which still compiles dynamic accessors, if
>> necessary, and 3) hopefully also ditch the pragmas in favor of a
>> protocol selection.
> Please no.
What about requirement #7?
Hi,
just in time for Christmas, we're releasing RSqueak/VM version 0.2. This is
another alpha-quality release for the brave.
Bundles with prepared images can be found at
https://www.hpi.uni-potsdam.de/swa/artefacts/rsqueak/bundle/RSqueak.tar.gz
<https://www.hpi.uni-potsdam.de/hirschfeld/artefacts/rsqueak/bundle/RSqueak.…>
or https://www.hpi.uni-potsdam.de/swa/artefacts/rsqueak/bundle/RSqueak.zip
<https://www.hpi.uni-potsdam.de/hirschfeld/artefacts/rsqueak/bundle/RSqueak.…>.
These start with a Help browser to explain a bit about RSqueak/VM and some
of the features we have.
This release includes many bug fixes, performance improvements, and new
features.
- We are now closer to using RSqueak/VM for development, but our main
objective is still to make code fast that we think is likely to be run in
production, rather than at development time. We run benchmarks every day on
http://speed.squeak.org/.
- We have added and are currently working on optional, non-standard plugins
that enable tail-call optimization, JIT profiling, and integration of a
Ruby and a SQLite runtime directly with the VM and its JIT (so code across
the language boundaries is also JITed).
- We have worked to improve RSqueak/VM's test coverage with unit tests from
previously ~50% to over 80%. This helps us give students a more reliable
base to work against in our teaching with RSqueak/VM and is also meant to
make it easier for other new contributors to approach the code base (over
30% of the code is now in tests).
- Since the first alpha release, we have fixed many bugs and crashes, and
are now able to run all but two tests in the default Squeak image. Of the
two tests that do not work, one segfaults (TestValueWithinFix) and one
hangs (SUnit>>testTimeoutLoop). Of the remaining tests (~4500) about 300
produce errors (many due to incomplete features, such as Sockets) and about
200 fail (some of those failures assert things that we believe should not
be part of the language definition, but that's another story).
As before, RSqueak/VM is still being tested on a regular basis to work with
images starting with Squeak 2 (the mini.image) up to the most recent Spur
images. We still do not include BitBlt or Balloon as plugins, so we rely on
the Slang code or some other fallback code for those plugins to be loaded
into the image. As of now, running those plugins in Smalltalk rather than
compiling them as a plugin can be between 5-100x slower compared to Cog,
with 32-bit operations being on the faster end of that spectrum and
blitting between different color depths (some bitmapped fonts are 16-bit)
being on the slower end.
All RSqueak/VMs by default work with 32-bit images, so even the 64-bit VMs
for Linux and macOS run off a 32-bit image. Image saving for older image
versions is still in its early stages, so make sure to have backups of any
image you test.
The bundle only includes 64-bit Linux, 64-bit macOS, and 32-bit Windows
VMs. 32-bit x86 and ARM VMs for Linux are available separately from our
Github page: https://github.com/HPI-SWA-Lab/RSqueak
Season's Greetings and a Happy New Year
from the people at HPI's Software Architecture Group
Hi all, I had the opportunity to resurrect an old project I've been
wanting to finish for a long time. This control software for the
AT-101, a.k.a., "Audiotron", from Turtle Beach [1], now on SqueakMap.
Although this network music player has long since been discontinued,
its still, IMO, the best way to replace an old CD collection and bulky
mechanical CD player with a slim, fanless, driveless, 1U rack
mountable network music player, with zero loss in fidelity (thanks to
the S/PDIF output). Just run a Cat5[6] cable to your router and
configure access to music shares on an existing desktop computer or
NAS drive.
This thing is predates Apple's iPod, but they can be found on eBay,
inexpensively. It only plays .WAV, .MP3 and .WMA, and tunes about 900
internet radion stations OOTB, absolutely free, without any signups
anywhere.
The Squeak software is a full implementation of the AT-101's control
API with a Maui front-end that is 10X more efficient than the units
own web interface, and also providing a .WAV ripping and tagging
process for Linux to rip and install CD's onto the unit with one
click.
Cheers and Happy Holidays! :)
[1] -- https://en.wikipedia.org/wiki/AudioTron
Chris Muller uploaded a new version of Collections to project The Trunk:
http://source.squeak.org/trunk/Collections-cmm.729.mcz
==================== Summary ====================
Name: Collections-cmm.729
Author: cmm
Time: 22 December 2016, 11:41:23.542114 pm
UUID: 7055f774-a3b6-4f1f-a8e6-94265108c10f
Ancestors: Collections-nice.728
Symbol>>#selector affords flexibility with input arguments that normally only accept Symbol selectors, to also accept MessageSends or CompiledMethods, too, as when drag and dropping a method out of a browser window.
=============== Diff against Collections-nice.728 ===============
Item was added:
+ ----- Method: Symbol>>selector (in category 'accessing') -----
+ selector
+ ^ self!
When commiting an MCZ, I get a timeout notifier, but the upload did
actually succeed. It seems as if the server is handling the upload fine bit
is not sending the proper response. Anybody else see this too?
- Bert -
Hi All,
Just posted this article and thought I should also mention it here.
https://news.squeak.org/2016/12/21/eliot-miranda-lubrication-and-flow/
Eliot gave the presentation to help get the discussion going (it's not the
start of the conversation either, there are earlier efforts like the Pharo
Consortium) this Article is part of that discussion.
All the best,
Ron Teitelbaum