Getting to appreciate all of those facets of Smalltalk takes time and dedication. So much to learn.
Anyway, the journey is rewarding. I do not think that the current education system is producing people who want to explore etc. My wife is a maths teacher (for teens for the two years before university, 6+2 hours of math a week) and well, their attitude isn't too encouraging (there are 2 out of 30 who would be picking this up).
This isn't deterring me from exposing them to Pharo tough. Phil On Tue, Feb 25, 2014 at 12:10 AM, Eliot Miranda <[hidden email]> wrote:
|
In reply to this post by Eliot Miranda-2
First time I heard of #piecesCutWhere:
:D |
In reply to this post by pharo4Stef@free.fr
cool!
Reviewing String is a chance to provide a clean, brief, readable API for what’s probably the most popular set of needs. If you’re starting with computing it wont take too long to try to modify strings and get value from it. So doing more with the tool (instead of abandoning it for an easier alternative) is more likely. If you’re a veteran engineer you will face that too and end up appreciating the convenience. If you can do that in intuitive english instead of cryptic-memory-addicted things like printlf, etc then it’s an all win. Also wanted to say that you probably developed your most successful strategy but there is no single path or way to explore a system. Nature loves to try everything, all the paths, and select the most universally convenient. The more bridges we build the better* So, if the API additions are intuitive, then I’m all for it *because, among other things, we would make possible the success of less myopic software models / views of the world / future innovations On Feb 25, 2014, at 3:48 AM, Pharo4Stef <[hidden email]> wrote: this is exactly the point of the project. |
Yes but... in Pharo strings are collections and a ton of things can be done with collections already.
Other languages have more "basic" strings and are cutting them in all ways possible but not as collections.
things like detect, inject etc are not really in the repertoire of other languages. Okay, there are chop, split, ... but these are pretty basic things. Why not have a test suite with a test for demonstrating how to do these things with the platform we do have?
e.g. testChomp, testSplit, ...all put in a Tests-Strings-RubyStyle or Tests-Strings-PythonStyle packages? And like there are Seaside-Pharo-XXX packages, why not a String-Ruby-XXXX thing ? Phil On Tue, Feb 25, 2014 at 12:39 PM, Sebastian Sastre <[hidden email]> wrote:
|
2014-02-25 8:49 GMT-03:00 [hidden email] <[hidden email]>:
Yes, that is a really good idea. Hernán
|
In reply to this post by Daniela Meneses
Eliot wrote
>But the real things to learn are the Method Finder and the browser. In case you are wondering why no beginner seems to know about Method Finder: Your post made me take a look at it for the first time (after near a decade of smalltalk). Interesting class comment. I’m pretty sure no beginner will understand it. The first thing I did was google for some blog posts and videos on it. I wouldn’t have bothered if you hadn’t been so clear about having to learn it. A much more simple example is needed (to start with). And that only helps after discovering that there is a tool like that. >So why aren't people taking the time to learn it today? Is it the system's fault? Is it too big? Are the readable parts of the system non-existent, or >too difficult to find? Is it some cultural change that means people can't learn such systems any more? Was it only learnable by a few people back >in the day and it remains unsuitable for a mass audience? Is it impossible to design user interfaces that invite exploration? Do people no longer >want to play with the system but instead want to use it to get something done fast, and can't spare the time to learn it properly? Are computing >languages like English, and every programming language must adopt the conventions and vocabulary of the most popular? Is inheritance too >hard to navigate to discover that SequenceableCollection has lots of useful String mehtods, and some useful methods on ByteString are in String, >etc? The system is much larger than it used to be. A larger system is much more difficult to navigate. And how should you learn it? Which subset of concepts should you learn, and in which order? Pharo by Example targets more new programmers than switching ones. Tools that were added are almost by definition designed for experienced users. They don’t care enough about discoverability, as they know where they are. Inheritance is not so much a problem, that is a well known concept in mainstream languages Stephan |
In reply to this post by hernanmd
On 2014-02-26, at 03:53, Hernán Morales Durand <[hidden email]> wrote: > > > > 2014-02-25 8:49 GMT-03:00 [hidden email] <[hidden email]>: > Yes but... in Pharo strings are collections and a ton of things can be done with collections already. > Other languages have more "basic" strings and are cutting them in all ways possible but not as collections. > > things like detect, inject etc are not really in the repertoire of other languages. Okay, there are chop, split, ... but these are pretty basic things. > > Why not have a test suite with a test for demonstrating how to do these things with the platform we do have? > > e.g. testChomp, testSplit, ...all put in a Tests-Strings-RubyStyle or Tests-Strings-PythonStyle packages? > > And like there are Seaside-Pharo-XXX packages, why not a String-Ruby-XXXX thing ? > > > Yes, that is a really good idea. 1. create the ruby / pythonic compatibility packages (blindly ignoring any pharo conventions) 2. see which methods (if any) actually make sense to steal signature.asc (457 bytes) Download Attachment |
Which Ruby guru an Python guru is going to give it a shot? [I am a Tcl guy... hey, that's an everything is a string language... ] Oh well, I started something:
So, who is taking StringRubyShim and StringPythonShim :-p ? Phil On Wed, Feb 26, 2014 at 5:09 PM, Camillo Bruni <[hidden email]> wrote:
|
In reply to this post by Eliot Miranda-2
On 2/24/14, Eliot Miranda <[hidden email]> wrote:
> On Mon, Feb 24, 2014 at 12:29 PM, Alexandre Bergel > <[hidden email]>wrote: > >> Would be great to have: 'ConfigurationOfRoassal' chopCamel => >> #('Configuration' 'Of' 'Roassal'). >> > > 'ConfigurationOfRoassal' piecesCutWhere: [:a :b| a isLowercase and: [b > isUppercase]] an OrderedCollection('Configuration' 'Of' 'Roassal') > > It's too trivial, surely. Nice piece of code. Not sure if it is too trivial. I have never seen #piecesCutWhere before. It is not in Cuis and Squeak. Must be a new Pharo method. --Hannes > > >> >> Alexandre >> >> >> On Feb 24, 2014, at 2:30 PM, Daniela Meneses <[hidden email]> >> wrote: >> >> > Hi to all, >> > >> > As you may know I'm working on in some improvements for the String >> class. Until now I implemented some missing tests. Right now I'm looking >> forward to add new methods that could be useful based on Ruby API ( >> http://www.ruby-doc.org/core-2.1.0/String.html). These are a few of the >> methods that I'm planning to implement: >> > >> > * chomp(separator=$/) -> new_str >> > * chop() -> new_str >> > * ljust(integer, padstr='') ->new_str >> > * next -> new_str >> > * partition(sep) -> [head, sep, tail] >> > >> > Could you help to find out if these methods are already available for >> the String class? >> > >> > If you have any idea of new methods for the string class, will be >> > really >> welcome. >> > >> > -- >> > Cheers, >> > Daniela Meneses >> >> -- >> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: >> Alexandre Bergel http://www.bergel.eu >> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. >> >> >> >> >> > > > -- > best, > Eliot > |
Indeed, it's a new addition to Pharo (originally developed in Moose). Doru On Thu, Jul 30, 2015 at 10:32 PM, H. Hirzel <[hidden email]> wrote: On 2/24/14, Eliot Miranda <[hidden email]> wrote: |
In reply to this post by Hannes Hirzel
Where are the String extension packages available which were mentioned?
1. Olivier Auverlot has all kind of string distance. 2. Hernan Morales has also a package extending string. 3. ... more? On 7/30/15, H. Hirzel <[hidden email]> wrote: > On 2/24/14, Eliot Miranda <[hidden email]> wrote: >> On Mon, Feb 24, 2014 at 12:29 PM, Alexandre Bergel >> <[hidden email]>wrote: >> >>> Would be great to have: 'ConfigurationOfRoassal' chopCamel => >>> #('Configuration' 'Of' 'Roassal'). >>> >> >> 'ConfigurationOfRoassal' piecesCutWhere: [:a :b| a isLowercase and: [b >> isUppercase]] an OrderedCollection('Configuration' 'Of' 'Roassal') >> >> It's too trivial, surely. > > Nice piece of code. Not sure if it is too trivial. > > I have never seen #piecesCutWhere before. It is not in Cuis and > Squeak. Must be a new Pharo method. > > --Hannes > > >> >> >>> >>> Alexandre >>> >>> >>> On Feb 24, 2014, at 2:30 PM, Daniela Meneses <[hidden email]> >>> wrote: >>> >>> > Hi to all, >>> > >>> > As you may know I'm working on in some improvements for the String >>> class. Until now I implemented some missing tests. Right now I'm looking >>> forward to add new methods that could be useful based on Ruby API ( >>> http://www.ruby-doc.org/core-2.1.0/String.html). These are a few of the >>> methods that I'm planning to implement: >>> > >>> > * chomp(separator=$/) -> new_str >>> > * chop() -> new_str >>> > * ljust(integer, padstr='') ->new_str >>> > * next -> new_str >>> > * partition(sep) -> [head, sep, tail] >>> > >>> > Could you help to find out if these methods are already available for >>> the String class? >>> > >>> > If you have any idea of new methods for the string class, will be >>> > really >>> welcome. >>> > >>> > -- >>> > Cheers, >>> > Daniela Meneses >>> >>> -- >>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: >>> Alexandre Bergel http://www.bergel.eu >>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. >>> >>> >>> >>> >>> >> >> >> -- >> best, >> Eliot >> > |
I did not know but looking around I found
- http://smalltalkhub.com/#!/~olivierauverlot/Phonetix - http://smalltalkhub.com/#!/~hernan/StringExtensions Stef Le 30/7/15 22:34, H. Hirzel a écrit : > Where are the String extension packages available which were mentioned? > > 1. Olivier Auverlot has all kind of string distance. > 2. Hernan Morales has also a package extending string. > 3. ... more? > > On 7/30/15, H. Hirzel <[hidden email]> wrote: >> On 2/24/14, Eliot Miranda <[hidden email]> wrote: >>> On Mon, Feb 24, 2014 at 12:29 PM, Alexandre Bergel >>> <[hidden email]>wrote: >>> >>>> Would be great to have: 'ConfigurationOfRoassal' chopCamel => >>>> #('Configuration' 'Of' 'Roassal'). >>>> >>> 'ConfigurationOfRoassal' piecesCutWhere: [:a :b| a isLowercase and: [b >>> isUppercase]] an OrderedCollection('Configuration' 'Of' 'Roassal') >>> >>> It's too trivial, surely. >> Nice piece of code. Not sure if it is too trivial. >> >> I have never seen #piecesCutWhere before. It is not in Cuis and >> Squeak. Must be a new Pharo method. >> >> --Hannes >> >> >>> >>>> Alexandre >>>> >>>> >>>> On Feb 24, 2014, at 2:30 PM, Daniela Meneses <[hidden email]> >>>> wrote: >>>> >>>>> Hi to all, >>>>> >>>>> As you may know I'm working on in some improvements for the String >>>> class. Until now I implemented some missing tests. Right now I'm looking >>>> forward to add new methods that could be useful based on Ruby API ( >>>> http://www.ruby-doc.org/core-2.1.0/String.html). These are a few of the >>>> methods that I'm planning to implement: >>>>> * chomp(separator=$/) -> new_str >>>>> * chop() -> new_str >>>>> * ljust(integer, padstr='') ->new_str >>>>> * next -> new_str >>>>> * partition(sep) -> [head, sep, tail] >>>>> >>>>> Could you help to find out if these methods are already available for >>>> the String class? >>>>> If you have any idea of new methods for the string class, will be >>>>> really >>>> welcome. >>>>> -- >>>>> Cheers, >>>>> Daniela Meneses >>>> -- >>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: >>>> Alexandre Bergel http://www.bergel.eu >>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. >>>> >>>> >>>> >>>> >>>> >>> >>> -- >>> best, >>> Eliot >>> > |
In reply to this post by Tudor Girba-2
Erm. Eliot added these methods to Squeak in 2012.
Levente On Thu, 30 Jul 2015, Tudor Girba wrote: > Indeed, it's a new addition to Pharo (originally developed in Moose). > Doru > > > On Thu, Jul 30, 2015 at 10:32 PM, H. Hirzel <[hidden email]> wrote: > On 2/24/14, Eliot Miranda <[hidden email]> wrote: > > On Mon, Feb 24, 2014 at 12:29 PM, Alexandre Bergel > > <[hidden email]>wrote: > > > >> Would be great to have: 'ConfigurationOfRoassal' chopCamel => > >> #('Configuration' 'Of' 'Roassal'). > >> > > > > 'ConfigurationOfRoassal' piecesCutWhere: [:a :b| a isLowercase and: [b > > isUppercase]] an OrderedCollection('Configuration' 'Of' 'Roassal') > > > > It's too trivial, surely. > > Nice piece of code. Not sure if it is too trivial. > > I have never seen #piecesCutWhere before. It is not in Cuis and > Squeak. Must be a new Pharo method. > > --Hannes > > > > > > > >> > >> Alexandre > >> > >> > >> On Feb 24, 2014, at 2:30 PM, Daniela Meneses <[hidden email]> > >> wrote: > >> > >> > Hi to all, > >> > > >> > As you may know I'm working on in some improvements for the String > >> class. Until now I implemented some missing tests. Right now I'm looking > >> forward to add new methods that could be useful based on Ruby API ( > >> http://www.ruby-doc.org/core-2.1.0/String.html). These are a few of the > >> methods that I'm planning to implement: > >> > > >> > * chomp(separator=$/) -> new_str > >> > * chop() -> new_str > >> > * ljust(integer, padstr='') ->new_str > >> > * next -> new_str > >> > * partition(sep) -> [head, sep, tail] > >> > > >> > Could you help to find out if these methods are already available for > >> the String class? > >> > > >> > If you have any idea of new methods for the string class, will be > >> > really > >> welcome. > >> > > >> > -- > >> > Cheers, > >> > Daniela Meneses > >> > >> -- > >> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: > >> Alexandre Bergel http://www.bergel.eu > >> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. > >> > >> > >> > >> > >> > > > > > > -- > > best, > > Eliot > > > > > > > -- > www.tudorgirba.com > > "Every thing has its own flow" > > |
In reply to this post by Tudor Girba-2
Sent from my iPhone
|
In reply to this post by Levente Uzonyi-2
Sent from my iPhone > On Jul 30, 2015, at 2:05 PM, Levente Uzonyi <[hidden email]> wrote: > > Erm. Eliot added these methods to Squeak in 2012. Right. I reimplemented Travis Griggs original from VisualWorks. > > Levente > >> On Thu, 30 Jul 2015, Tudor Girba wrote: >> >> Indeed, it's a new addition to Pharo (originally developed in Moose). >> Doru >> On Thu, Jul 30, 2015 at 10:32 PM, H. Hirzel <[hidden email]> wrote: >> On 2/24/14, Eliot Miranda <[hidden email]> wrote: >> > On Mon, Feb 24, 2014 at 12:29 PM, Alexandre Bergel >> > <[hidden email]>wrote: >> > >> >> Would be great to have: 'ConfigurationOfRoassal' chopCamel => >> >> #('Configuration' 'Of' 'Roassal'). >> >> >> > >> > 'ConfigurationOfRoassal' piecesCutWhere: [:a :b| a isLowercase and: [b >> > isUppercase]] an OrderedCollection('Configuration' 'Of' 'Roassal') >> > >> > It's too trivial, surely. >> >> Nice piece of code. Not sure if it is too trivial. >> >> I have never seen #piecesCutWhere before. It is not in Cuis and >> Squeak. Must be a new Pharo method. >> >> --Hannes >> >> > >> > >> >> >> >> Alexandre >> >> >> >> >> >> On Feb 24, 2014, at 2:30 PM, Daniela Meneses <[hidden email]> >> >> wrote: >> >> >> >> > Hi to all, >> >> > >> >> > As you may know I'm working on in some improvements for the String >> >> class. Until now I implemented some missing tests. Right now I'm looking >> >> forward to add new methods that could be useful based on Ruby API ( >> >> http://www.ruby-doc.org/core-2.1.0/String.html). These are a few of the >> >> methods that I'm planning to implement: >> >> > >> >> > * chomp(separator=$/) -> new_str >> >> > * chop() -> new_str >> >> > * ljust(integer, padstr='') ->new_str >> >> > * next -> new_str >> >> > * partition(sep) -> [head, sep, tail] >> >> > >> >> > Could you help to find out if these methods are already available for >> >> the String class? >> >> > >> >> > If you have any idea of new methods for the string class, will be >> >> > really >> >> welcome. >> >> > >> >> > -- >> >> > Cheers, >> >> > Daniela Meneses >> >> >> >> -- >> >> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: >> >> Alexandre Bergel http://www.bergel.eu >> >> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. >> >> >> >> >> >> >> >> >> >> >> > >> > >> > -- >> > best, >> > Eliot >> > >> -- >> www.tudorgirba.com >> "Every thing has its own flow" |
Indeed. I just checked. We ported it to Pharo when we moved Moose from VW around 2008/2009 :). My bad. Cheers, Doru On Fri, Jul 31, 2015 at 5:33 PM, Eliot Miranda <[hidden email]> wrote:
|
Free forum by Nabble | Edit this page |