[Pharo-users] Re: A question about Pharo’s Vision document

2024-08-20 Thread James Foster via Pharo-users
I think of this as a reference to the phrase “Turtles all the way down.” This 
is an allusion to the idea that the world is a dome-shaped turtle that stands 
on another turtle that stands on another turtle. How far? “Why, it is turtles 
all the way down.” In this theory, “down” is not toward the center of a sphere, 
but has an absolute direction and implies invinite recursion. See 
https://en.wikipedia.org/wiki/Turtles_all_the_way_down.

The idea is that Smalltalk is pure objects, made up of objects, made up of 
objects. How far? “Objects, all the way down.” Here “down” implies infinite 
recursion. 

James Foster

> On Aug 20, 2024, at 12:15 AM, Rene Paul Mages (ramix)  
> wrote:
> 
> Dear Pharo community,
> 
> At the beginning of this 2012-document  :
> 
> https://inria.hal.science/hal-01879346/document
> 
> we can read the following sentence (page 4) :
> 
>   "Objects all the way down"
> 
> Please what is the meaning (in this context) of the adjective "down" ?
> 
> -- 
> All the best
> Rene Paul Mages (ramix) GnuPG key : 0x9840A6F7
> https://sites.google.com/view/les-logiciels-libres/pharo
> https://sites.google.com/view/renepaulmages/propriete-intellectuelle
> https://twitter.com/RenePaulMages



[Pharo-users] Re: [Pharo-dev] EU Citizen Initiative for consumers to have access to apps they purchased

2024-08-03 Thread James Foster via Pharo-users
How would this impact software that is licensed on a subscription basis? What 
if some functionality in the application requires a server component. Is the 
vendor required to provide that server component forever? Or is the vendor 
prohibited from building applications that have a server component?

I have a deep suspicion of government regulation of business arrangements like 
this.

James

> On Aug 3, 2024, at 5:47 AM, David Mason  wrote:
> 
> There is currently a citizen initiative to get a law in place that makers of 
> software must not make the software become unusable after they end support.
> 
> While this is directly about games, it has implications for things like cars, 
> tractors, medical devices, and anything that has a significant software 
> component.
> 
> I encourage my EU friends and colleagues to consider signing and explaining 
> to their friends why it's important for them to sign even if they don't play 
> games.
> 
> Here's a video that explains it: https://www.youtube.com/watch?v=mkMe9MxxZiI
> 
> Here's tha petition: https://www.stopkillinggames.com/
> 
> Sorry this is a bit off-topic, but I think it's important to the entire 
> software industry.
> 
> ../Dave



[Pharo-users] Re: Early rate deadline is approaching....

2024-04-09 Thread James Foster via Pharo-users
Is the presentation deadline past? I ask because 
https://registration.esug.org/call2024.html doesn’t work.

> On Apr 9, 2024, at 5:46 AM, stephane ducasse  
> wrote:
> 
> Hello
> 
> People do not miss this unique opportunity to participate in ESUG in early 
> July
> 
>   https://esug.org
>   
> Pay attention that the early rate end is approaching… 15 of April 2024.
> 
> https://registration.esug.org/ESUG
> 
> 
> 
> Stéphane Ducasse
> http://stephane.ducasse.free.fr
> 06 30 93 66 73
> 
> "If you knew today was your last day on earth, what would you do differently? 
> ESPECIALLY if, by doing something different, today might not be your last 
> day on earth.” Calvin & Hobbes
> 
> 
> 
> 
> 



[Pharo-users] GemStone and Relational Databases

2024-02-19 Thread James Foster via Pharo-users
On Feb 19, 2024, at 3:17 AM, Tim Mackinnon  wrote:
> 
> I do think [GemStone] might have solutions to map to a SQL db to appease corp 
> teams - although I'm not sure.

GemConnect (https://gemtalksystems.com/products/gemconnect/) is an add-on 
product for GemStone that allows you to interact with an Oracle relational 
database from GemStone. It is used by several customers to dump transactional 
data to Oracle for reporting. See also GemConnect-for-Postgres 
(https://github.com/GemTalk/GemConnect-for-Postgres).

Less developed is a way to make GemStone look like a relational database. Years 
(decades!) ago there was a third-party add-on that allowed marketing to check a 
box in RFPs but it was never taken seriously. More recently (years, but not 
decades ago), I did a proof-of-concept that demonstrated connecting Microsoft’s 
ODBC to GemStone (so you could see GemStone data using SQL. See 
https://github.com/jgfoster/GemStone-ODBC with links to a silent video and 
slides.

James

[Pharo-users] Re: [Pharo-dev] A little post Why class number is an idiotic quality metric?

2024-02-10 Thread James Foster via Pharo-users
For those that didn't write the post, here is a link…

https://pharoweekly.wordpress.com/2024/02/10/why-class-number-is-an-idiotic-quality-metric/

James

> On Feb 10, 2024, at 1:13 AM, stephane ducasse  
> wrote:
> 
> 
> https://wordpress.com/post/pharoweekly.wordpress.com/4226
> 
> 
> Stéphane Ducasse
> http://stephane.ducasse.free.fr
> 06 30 93 66 73
> 
> "If you knew today was your last day on earth, what would you do differently? 
> ESPECIALLY if, by doing something different, today might not be your last 
> day on earth.” Calvin & Hobbes
> 
> 
> 
> 
> 



[Pharo-users] Re: Iterating over a Dictionary

2024-01-23 Thread James Foster via Pharo-users
myDict associationsDo: [: anAssociation | ].
myDict keysDo: [:aKey | ].
myDict valuesDo: [:aValue | ].
myDict do: [:aValue | ]. “An alias for #valuesDo:”

James Foster

> On Jan 23, 2024, at 8:27 AM, Joachim Tuchel  wrote:
> 
> AI knows little about Smalltalk ;-)
> 
> You can use do: with each Association as a parameter or you can use 
> keysAndValuesDo:
> 
> myDic do: [:assoc| | key value| key := assoc key. value := assoc value. ...].
> myDic keysAndValuesDo: [:key :value| ...]
> 
> 
> Joachim
> 
> 
> 
> 
> 
> Am 23.01.24 um 17:24 schrieb sergio ruiz:
>> I need to iterate over a dictionary.
>> 
>> I asked the AI buddy for a little help, and he says:
>> 
>> | myDictionary |
>> 
>> "Create a dictionary"
>> myDictionary := Dictionary new.
>> myDictionary at: 'one' put: 1.
>> myDictionary at: 'two' put: 2.
>> myDictionary at: 'three' put: 3.
>> 
>> "Iterate over the dictionary"
>> myDictionary do: [ :key :value |
>> Transcript show: key , ' -> ', value printString ; nl.
>> ].
>> 
>> but when i try this, I get:
>> 
>> ArgumentsCountMismatch: This block accepts 2 arguments, but was called with 
>> 1 argument.
>> 
>> Is the AI using a different dialect of smalltalk?
>> 
>> how would I go about acting on each pair?
>> 
>> Thanks!
>> 
>> 
>> peace,
>> sergio
>> photographer, journalist, visionary
>> 
>> Public Key: 
>> https://pgp.key-server.io/pks/lookup?op=get&search=0x69B08F58923AB3A2
>> #BitMessage BM-NBaswViL21xqgg9STRJjaJaUoyiNe2dV
>> @sergio_101@mastodon.social
>> https://sergio101.com 
>> http://www.codeandmusic.com 
>> http://www.twitter.com/sergio_101
>> http://www.facebook.com/sergio101
>> 
> -- 
> 
> --- 
> Objektfabrik Joachim Tuchel  mailto:jtuc...@objektfabrik.de 
> Fliederweg 1 http://www.objektfabrik.de 
> 
> D-71640 Ludwigsburg  http://joachimtuchel.wordpress.com 
> 
> Telefon: +49 7141 56 10 86 0Fax: +49 7141 56 10 86 1
> 



[Pharo-users] Re: Backing up data

2024-01-17 Thread James Foster via Pharo-users
Sergio,

If you are keeping data in a Pharo image then you could just save the image 
instead of using STON. Alternatively, you could model your data in an 
Application class with three instance variables: theaters, movies, and events. 
Then you could dump the root application object and STON should preserve the 
relationships (I expect). I prefer this model since it allows me to create a 
test object that encapsulates all the data in one place (even if it is 
referenced from a class variable).

For GemStone, execute `SystemRepository fullBackupGzCompressedTo: aFilePath` 
(see details at 
https://downloads.gemtalksystems.com/docs/GemStone64/3.7.x/GS64-SysAdminGuide-3.7/11-BackupAndRestore.htm).
 This does a full object dump and preserves the relationship between objects. 
Note that GemStone also creates a transaction log so once a transaction 
commits, you can restore it in event of a system crash.

James Foster

> On Jan 17, 2024, at 8:48 PM, sergio ruiz  wrote:
> 
> I have been in the relational database world for decades. One of the things 
> that is super simple is backing up and restoring data.
> 
> Sometimes, it makes it makes sense to pull the production data into 
> development. In the case of a catastrophe, it’s super simple to restore data 
> from a backup.
> 
> I am thinking of backup strategies for my data once again, and am wondering 
> if things have changed since I was last using smalltalk.
> 
> I am thinking of the following:
> 
> STON
> I could dump all of my data into STON, but there is one slight twist. In this 
> project, it’s just making a list of movie listings. There are three basic 
> classes: Theater, Movie, Event. Each of these classes stores an 
> OrderedCollection of items of that type on a class variable, as I’ll need to 
> access each on their own.. so, if an event has a theater, I’ll need to access 
> Theaters on their own, and Movies on their own.
> 
> So, I would have to rebuild the list of Theaters from the Theaters in each 
> event. Otherwise, I would lose the link between the Theaters on the Theater 
> class variable and the Theater in the Event instance.
> 
> Am I thinking about this incorrectly?
> 
> Gemstones
> I am totally into the idea of using gemstones. Is there a backup and restore 
> for objects here? do the relationships remain?
> 
> Voyage
> This seems like a good solution, but I would rather stay in the smalltalk 
> object store.
> 
> Ideas?
> 
> Thanks!
> 
> 
> peace,
> sergio
> photographer, journalist, visionary
> 
> Public Key: 
> https://pgp.key-server.io/pks/lookup?op=get&search=0x69B08F58923AB3A2
> #BitMessage BM-NBaswViL21xqgg9STRJjaJaUoyiNe2dV
> @sergio_101@mastodon.social
> https://sergio101.com
> http://www.codeandmusic.com
> http://www.twitter.com/sergio_101
> http://www.facebook.com/sergio101
> 



[Pharo-users] Re: [ Security ] Accessing private information from Pharo image

2024-01-17 Thread James Foster via Pharo-users
On Jan 17, 2024, at 3:55 AM, Norbert Hartl  wrote:
> 
> the example is about cloud servers. So we can rule out thumb drives easily ;) 
> …
> 
> Norbert


I read the following to say that the goal is to talk to a cloud server from a 
non-cloud client.

> One of my projects logs in to Spaces (Digital Ocean’s version of S3).

James

[Pharo-users] Re: [ Security ] Accessing private information from Pharo image

2024-01-16 Thread James Foster via Pharo-users
Dear Sergio,

You are right that passwords and credentials should not be committed to source 
code. There are several alternatives available.

If you are running the code on your own machine, logged as you, then I would 
just keep the credentials in ~/.ssh as a private key. Another place for the 
credentials might be something like /var/opt/MYAPP/myPrivateKey. In any case, 
ensure that you protect the key with 400 or 600 security (this assumes you are 
using Linux or macOS).

James Foster

> On Jan 16, 2024, at 8:27 PM, sergio ruiz  wrote:
> 
> Hi, all.
> 
> One of my projects logs in to Spaces (Digital Ocean’s version of S3). I need 
> to be able access the credentials, but I don’t want to store them in the 
> source code, as I will be using Github to store the projects.
> 
> Is there an accepted way to do this (encryption)?
> 
> Should I store them on the system as environment variables? is this efficient?
> 
> thanks!
> 
> 
> 
> peace,
> sergio
> photographer, journalist, visionary
> 
> Public Key: 
> https://pgp.key-server.io/pks/lookup?op=get&search=0x69B08F58923AB3A2
> #BitMessage BM-NBaswViL21xqgg9STRJjaJaUoyiNe2dV
> @sergio_101@mastodon.social
> https://sergio101.com
> http://www.codeandmusic.com
> http://www.twitter.com/sergio_101
> http://www.facebook.com/sergio101
> 



[Pharo-users] Re: GLASS Platform - Docker container?

2024-01-16 Thread James Foster via Pharo-users
Hi Sergio,

This question might be better for the GLASS mailing list 
(https://gemtalksystems.com/techsupport/community-and-mailing-lists/), but I’m 
happy to respond here.

I wrote about GemStone in a Docker container in 2018 (see 
https://programminggems.wordpress.com/2018/09/01/gemstone-in-a-docker-container/
 and https://github.com/jgfoster/DockerForGemStone) and David Schaffer has a 
nice follow-up that he has keep up-to-date at 
https://github.com/cdavidshaffer/gemstone-docker. There is also one from Julián 
Maestri at https://hub.docker.com/r/basmalltalk/gemstone-s.

Hope that helps!

James Foster

> On Jan 16, 2024, at 8:22 PM, sergio ruiz  wrote:
> 
> 
> Hi, all.
> 
> I used the GLASS platform years ago, and I was thinking it might be a good 
> match for my upcoming projects.
> 
> The documentation looks to be the same documentation I used back when I 
> started with Seaside.
> 
> I am wondering if GLASS has been ported to Docker yet. This seems like a 
> natural extension.
> 
> Thanks!
> 
> 
> 
> peace,
> sergio
> photographer, journalist, visionary
> 
> Public Key: 
> https://pgp.key-server.io/pks/lookup?op=get&search=0x69B08F58923AB3A2
> #BitMessage BM-NBaswViL21xqgg9STRJjaJaUoyiNe2dV
> @sergio_101@mastodon.social
> https://sergio101.com
> http://www.codeandmusic.com
> http://www.twitter.com/sergio_101
> http://www.facebook.com/sergio101
> 



[Pharo-users] Re: [ANN] Willow-SpinKit v10.0.0 [v10.0.0] released!

2023-05-29 Thread James Foster via Pharo-users
I’m curious about these emails. Is it common practice to have the Pharo mailing 
list notified for GitHub events on Pharo-based projects? Personally, rather 
than getting 8-10 emails today from "Buenos Aires Smalltalk," I’d prefer 
getting one a month written by a person with a summary of what is happening. 
Even for Pharo itself, we get at most one a week. It seems that interested 
persons could subscribe directly to the GitHub project if they wanted more 
details.

James

> On May 29, 2023, at 1:13 PM, Buenos Aires Smalltalk  
> wrote:
> 
> Willow-SpinKit , integration between 
> Willow and SpinKit reached it's v10.0.0 
>  version.
> 
> What's Changed
> 
> Add Pharo 11 support by @gcotelli in 
> https://github.com/ba-st/Willow-SpinKit/pull/26
> Update Willow to v15
> Full Changelog: https://github.com/ba-st/Willow-SpinKit/compare/v9.1.0…v10.0.0
> 
> Regards,
> 
> The Buenos Aires Smalltalk team
> 



[Pharo-users] Re: Exception handler chaining

2023-05-25 Thread James Foster via Pharo-users
Rather than ‘Array with:with:’ it probably should be ‘ExceptionSet with:with:’.

> On May 25, 2023, at 9:19 AM, James Foster via Pharo-users 
>  wrote:
> 
> The #’on:do:’ implementation in Block accepts either an Exception or an 
> ExceptionSet as the first parameter. So you can do something like the 
> following (I’m typing from memory without trying so may have syntax errrors):
> 
> [ “tryBlock” ] on: (Array with: ExceptionOne with: ExceptionTwo) do: [:ex | 
>   (ex isKindOf: ExceptionOne) ifTrue: [ “handleOne” ].
>   (ex isKindOf: ExceptionTwo) ifTrue: [ “handleTwo” ].
> ].
> 
> The above code can be improved in a variety of ways, but it should get you 
> started. Note also that since Smalltalk allows you to modify base classes, 
> you could add #’on:do:on:do:’ to Block.
> 
> James
> 
>> On May 25, 2023, at 8:24 AM, mlnt...@gmail.com wrote:
>> 
>> In other languages there is the possibility to chain exception handlers like 
>> this:
>> 
>> try { doOne(); doTwo(); doThree(); }
>> 
>> catch(ExceptionOne ex){
>> 
>> handleOne();
>> 
>> }
>> 
>> catch(ExceptionTwo ex) {
>> 
>> handleTwo();
>> 
>> }
>> 
>> catch(ExceptionThree ex) {
>> 
>> handleThree();
>> 
>> }
>> 
>> catch(Exception ex) {
>> 
>> handleRest();
>> 
>> }
>> 
>> Is this possible in Pharo? I’ve tried
>> 
>> [ block ]
>> 
>> on: ExceptionOne do: [ handleOne ]
>> 
>> on: ExceptionTwo do: [ handleTwo ]
>> 
>> but it is invalid syntax.
>> 
> 



[Pharo-users] Re: Exception handler chaining

2023-05-25 Thread James Foster via Pharo-users
The #’on:do:’ implementation in Block accepts either an Exception or an 
ExceptionSet as the first parameter. So you can do something like the following 
(I’m typing from memory without trying so may have syntax errrors):

[ “tryBlock” ] on: (Array with: ExceptionOne with: ExceptionTwo) do: [:ex | 
  (ex isKindOf: ExceptionOne) ifTrue: [ “handleOne” ].
  (ex isKindOf: ExceptionTwo) ifTrue: [ “handleTwo” ].
].

The above code can be improved in a variety of ways, but it should get you 
started. Note also that since Smalltalk allows you to modify base classes, you 
could add #’on:do:on:do:’ to Block.

James

> On May 25, 2023, at 8:24 AM, mlnt...@gmail.com wrote:
> 
> In other languages there is the possibility to chain exception handlers like 
> this:
> 
> try { doOne(); doTwo(); doThree(); }
> 
> catch(ExceptionOne ex){
> 
> handleOne();
> 
> }
> 
> catch(ExceptionTwo ex) {
> 
> handleTwo();
> 
> }
> 
> catch(ExceptionThree ex) {
> 
> handleThree();
> 
> }
> 
> catch(Exception ex) {
> 
> handleRest();
> 
> }
> 
> Is this possible in Pharo? I’ve tried
> 
> [ block ]
> 
> on: ExceptionOne do: [ handleOne ]
> 
> on: ExceptionTwo do: [ handleTwo ]
> 
> but it is invalid syntax.
> 



[Pharo-users] Re: Wow - Chat GPT understands Smalltalk

2023-03-22 Thread James Foster via Pharo-users
Are you willing to sign your name to this? Is anonymity important to presenting 
these ideas?

James Foster

> On Mar 22, 2023, at 5:34 AM, in_pharo_users--- via Pharo-users 
>  wrote:
> 
> Offray,  and to all others,
> 
> you are missing the issue.
> 
> The problem we face is not to measure 'intelligence' of a system, but it's 
> ability to verbally act indistinguishable from a human.
> 
> This ability is allready given as chatbots are accepted by millions of users, 
> f.i. as user interfaces. (measurement = 'true', right?)
> 
> ChatGPT has the ability to follow a certain intention, f.i. to convince the 
> user to buy a certain product.  For this purpose, chat bots are getting  now 
> equipped with life like portrait pictures, speech input and output systems 
> with life like voices, phone numbers that they can use to make calls or being 
> called.  They are fed with all available data on the user, and we know that 
> ALL information about every single internet user in available and is being 
> consolidared on necessity.  The chat bots are able to use this information to 
> guide their conversational strategy, as the useful aspects of the users 
> mindset are extracted from his internet activity.
> 
> These chat bots are now operated on social network platforms with life like 
> names, 'pretending' to be human.
> 
> These bots act verbally indistinguishable from humans for most social media 
> users, as the most advanced psychotronic technology to manufacture consent.
> 
> The first goal of such a propaganda will naturally be to manufacture consent 
> about humans accepting being manipulated by AI chat bots, right?
> 
> How can this be achieved?  
> 
> Like allways in propaganda, the first attempt is to 
> - suppress awareness of the propaganda, then 
> - suppress the awareness of the problematic aspects of the propaganda 
> content, then 
> - reframe the propaganda content as acceptable, then as something to wish for,
> - achive collaboration of the propaganda victim with the goals of the 
> propaganda content.
> 
> Interestingly, this is exactly the schema that your post follows, Offray.
> 
> This often takes the form of domain framing, like we see in our conversation: 
>  the problem is shifted to the realm of academics - here informatics/computer 
> sciences - and thus delegated to experts exclusively.  We saw this in the 
> 9/11 aftermath coverup.
> 
> Then, Offray, you established yourself as an expert in color, discussing 
> aspects that have allready been introduced by others and including the groups 
> main focus 'Smalltalk', thus manufacturing consent and establishing yourself 
> as a reliable 'expert', and in reverse trying to hit at me, whom you have 
> identified as an adversary.
> 
> Then you offered a solution in color to the problem at hand with 'traceable 
> AI' and thus tried to open the possibility of collaboration with AI 
> proponents for the once critical reader.
> 
> I do not state, Offray, that you are knowingly an agent to promote the NWO AI 
> program.  I think you just 'learned' / have been programmed to be a 
> successful academic software developer, because to be successful in 
> academics, it is neccessary to learn to argue just like that since the 
> downfall of academic science in the tradition of, let's say, Humboldt.  So, I 
> grant that you may be a victim of propaganda yourself, instead of being a 
> secret service sposored agent. You took quite some time to formulate your 
> post, though.
> 
> You acted to contain the discussion about AI in this vital and important 
> informatics community to technical detail, when it is neccessary that 
> academics and community members look beyond the narrow borders of their 
> certifications and shift their thinking to the point of view where they can 
> see what technology does in the real world.
> 
> 
> 
> 
> 
> On 21.3.2023 at 7:21 PM, "Offray Vladimir Luna Cárdenas" 
>  wrote:
>> 
>> I agree with Richard. The Turing test is not a good one to test 
>> intelligence and we have now just over glorified Eliza chatbots 
>> that 
>> appear to think and to understand but do none of them. ...