Wrapper for file access in different Smalltalk dialects

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
34 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: Wrapper for file access in different Smalltalk dialects

Hannes Hirzel
+1

On 6/2/15, Ken.Dickey <[hidden email]> wrote:

> On Tue, 02 Jun 2015 10:16:23 -0300
> Juan Vuletich <[hidden email]> wrote:
>
>> This is the plan (if everybody agrees)
>> - Make FileMan part of the Cuis base image.
>> - Convert all code in the base image and core packages to use FileMan
>> instead of FileDirectory and DirectoryEntry.
>> - Remove FileDirectory and DirectoryEntry to SqueakCompatibility.pck.st,
>> and discourage its use.
>
> Sounds good to me.
>
> I'll update as soon as FileMan is added to base.
>
> FYI,
> -KenD
>
> _______________________________________________
> Cuis mailing list
> [hidden email]
> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Reply | Threaded
Open this post in threaded view
|

Re: Wrapper for file access in different Smalltalk dialects

Edgar De Cleene
In reply to this post by Juan Vuletich-4
> On 6/2/15, 10:16 AM, "Juan Vuletich" <[hidden email]> wrote:
>
>> Hi folks,
>>
>> This is the plan (if everybody agrees)
>> - Make FileMan part of the Cuis base image.
>> - Convert all code in the base image and core packages to use FileMan
>> instead of FileDirectory and DirectoryEntry.
>> - Remove FileDirectory and DirectoryEntry to SqueakCompatibility.pck.st,
>> and discourage its use.
>>
>> This might take some time, and would be done in incremental steps. But
>> I'd start soonish.
>>
>> Cheers,
>> Juan Vuletich
>
>
> Great.
> Glad to be here and have fast feedback from all here.
>
> Edgar

I mistake and send to Juan :=)
Any knows , remember, use ,  DebugReport ?

DebugReport
Summary: Generates HTML document that has the same view as Debugger
Author: Kazuki Minamitani <mailto:[hidden email]>
Owner: Kazuki Minamitani (minami)
<http://map.squeak.org/accountbyid/8cca62ef-b335-4595-b980-7fe2dc5f3214>

Description:

You can generate more helpful debug log from Notifier or Debugger.
Generated HTML document has the same view as Debugger.
See sample page: http://squeak.sakura.ne.jp/etc/DebugReportSample/


The page still works...



_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Reply | Threaded
Open this post in threaded view
|

Re: Wrapper for file access in different Smalltalk dialects

Juan Vuletich-4
In reply to this post by garduino
Yes. It should be.

Cheers,
Juan Vuletich

On 6/2/2015 10:23 AM, Germán Arduino wrote:
Aha....And this will be a new version of Cuis, for example 4.3?




2015-06-02 10:16 GMT-03:00 Juan Vuletich <[hidden email]>:
Hi folks,

This is the plan (if everybody agrees)
- Make FileMan part of the Cuis base image.
- Convert all code in the base image and core packages to use FileMan instead of FileDirectory and DirectoryEntry.
- Remove FileDirectory and DirectoryEntry to SqueakCompatibility.pck.st, and discourage its use.

This might take some time, and would be done in incremental steps. But I'd start soonish.

Cheers,
Juan Vuletich


On 5/29/2015 8:03 AM, Edgar J. De Cleene wrote:
Yes, put in Core if possible.
Welcome Masashi-san and FileMan was one old times favorite


On 5/28/15, 9:21 AM, "Juan Vuletich"<[hidden email]>  wrote:

Hi Masashi-san,
On 5/26/2015 11:34 PM, Masashi UMEZAWA wrote:
Hi all,

I
think it is nice if FileMan is on the core package repository.

FileMan for
Cuis (and Squeak) has minimum dependencies to the existing
FileDirectory and
DirectoryEntry. FileMan selectively uses a few
methods of them.

So we
can gradually adopt FileMan interfaces and trim the
FileDirectory and
DirectoryEntry's non-intuitive methods.

Another way of cleaning-up the
file-related classes is to port
FileSystems to Cuis.
But since Cuis is a
lightweight Smalltalk dialect, FileSystems might
be an overkill.

Best
regards,
Thank you!

Having a better, simpler filesystem api would be a good
improvement.
Being it multi-dialect is even better.

We can adopt
Masashi-san's FileMan as an optional package, or if we
agree, we can just
include it in the base image and start converting
existing code to use it.
Please take a good look at it

https://github.com/mumez/Cuis-Smalltalk-FileMan

After some time, we can
start converting FileMan so it doesn't use
FileDirectory at all. Then we can
just completely remove the old api.
Thoughts?
Juan Vuletich



_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org



--
Saludos / Regards,
Germán Arduino
www.arduinosoftware.com

_______________________________________________ Cuis mailing list [hidden email] http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org


_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Reply | Threaded
Open this post in threaded view
|

Re: Wrapper for file access in different Smalltalk dialects

Juan Vuletich-4
In reply to this post by Masashi UMEZAWA-3
Hi Masashi,

I was trying FileMan tests today and I saw they create some folders in
my drive. The names looked a bit strange, so I took a closer look and
found a couple of bugs. At least on Windows, #testRecursiveDelete
instead of creating
       subDir/aaa/bbb/ccc/ddd/eee/fff/ggg/test1
it created
        subDir/bbb/ccc/eee/ggg/test!

So I wrote a few more tests on the issues I saw, and teaked the code to
make them pass. The result is attached, and I think is useful for all
ports of FileMan.

Thanks,
Juan Vuletich

On 5/26/2015 11:34 PM, Masashi UMEZAWA wrote:

> Hi all,
>
> I think it is nice if FileMan is on the core package repository.
>
> FileMan for Cuis (and Squeak) has minimum dependencies to the existing
> FileDirectory and DirectoryEntry. FileMan selectively uses a few
> methods of them.
>
> So we can gradually adopt FileMan interfaces and trim the
> FileDirectory and DirectoryEntry's non-intuitive methods.
>
> Another way of cleaning-up the file-related classes is to port
> FileSystems to Cuis.
> But since Cuis is a lightweight Smalltalk dialect, FileSystems might
> be an overkill.
>
> Best regards,
>
> 2015-05-19 9:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>> Hi Folks,
>>
>> I apologize for talking before taking even a quick look, but anyway, We'd
>> take a good look at this. And seriously consider replacing files stuff in
>> Cuis base. Or at least adopting it as a core package in our repo.
>>
>> Thoughts?
>>
>> Masashi-san: opinions?
>>
>> Thanks,
>> Juan Vuletich
>>
>>
>> On 5/17/2015 12:07 PM, H. Hirzel wrote:
>>> Below are the comments from the FileMan package.
>>>
>>> Question: How do you compare the FileMan package to the FileSystem
>>> package in Pharo?
>>>
>>>
>>>
>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L45
>>> I represent a single file entry (including directory).
>>> You can write data by #fileContents: , and read the data by #fileContents.
>>> ---
>>> mu 11/6/2006 20:21!
>>>
>>>
>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L53
>>> I represent a single file directory.
>>> I implement various directory specific behaviors.
>>> You can write data by #at:put: , and read the data by #at:.
>>> ---
>>> mu 11/6/2006 20:21
>>>
>>>
>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L63
>>> !FmFileIOAccessor commentStamp: '<historical>' prior: 0!
>>> I am an accessor to the low level file IO.
>>> You can extend/rewrite me if you port FileMan to other Smalltalk dialects.
>>>
>>>
>>>
>>>
>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L44
>>> !FmBackupDirectoryEntry commentStamp: 'mu 5/4/2007 23:26' prior: 0!
>>> This is a simple example for adding special behaviors to FmDirectoryEntry.
>>> I backup file contents automatically, while users are not conscious about
>>> that.
>>> Usage:
>>> dir := './withBackup' asDirectoryEntry: FmBackupDirectoryEntry.
>>> dir at: 'text' put: 'abc'.
>>> dir at: 'text' put: 'def'.
>>> (dir at: 'text') inspect. "def"
>>> (dir backupAt: 'text') inspect. "abc"
>>> ((dir / 'sub') at: 'text2' put: '123').
>>> ((dir / 'sub') at: 'text2' put: '456').
>>> ((dir / 'sub') at: 'text2') inspect. "456"
>>> ((dir / 'sub') backupAt: 'text2') inspect. "123"
>>>
>>>
>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L63
>>> This is a simple example for adding special behaviors to FmDirectoryEntry.
>>> I put and get file contents as gzipped, while users are not conscious
>>> about that.
>>> Usage:
>>> | dir |
>>> dir := './gzipped2' asDirectoryEntry: FmGZipDirectoryEntry.
>>> dir binaryAt: 'bin' put: #(1 2 3 12 34 56) asByteArray.
>>> (dir binaryAt: 'bin') inspect.
>>> dir at: 'text' put: 'This will be gzipped'.
>>> (dir at: 'text') inspect.
>>> I would be useful for storing/loading big contents in a simple
>>> dictionary-like manner.
>>>
>>>
>>>
>>> On 5/17/15, H. Hirzel<[hidden email]>   wrote:
>>>> Hello Masashi-san
>>>>
>>>> I'd like to come back to your FileMan package
>>>>
>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>
>>>> and ask a question.
>>>>
>>>> Is this package a port from somewhere or did you write it from scratch?
>>>>
>>>> Some background information is appreciated.
>>>>
>>>> There is no description
>>>>
>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L2
>>>>
>>>> Thank you in advance
>>>>
>>>> Hannes Hirzel
>>>>
>>>>
>>>> On 5/2/14, Masashi UMEZAWA<[hidden email]>   wrote:
>>>>> Hi all,
>>>>>
>>>>> Thank you for the kind words. I've just started Cuis on March, and I
>>>>> was impressed with its cleanness, simplicity, etc.
>>>>> So I did a introductory presentation at Tokyo Smalltalkers meeting. It
>>>>> was successful.
>>>>> Now I'm planning to port Folktale (telnet-base object shell), and SIXX
>>>>> to Cuis. My pace maybe slow, but please stay tuned. ;)
>>>>>
>>>>> Best regards,
>>>>>
>>>>> 2014-05-02 1:05 GMT+09:00 Germán Arduino<[hidden email]>:
>>>>>> Wow, I was completely unaware of Masashi working in Cuis! Welcome
>>>>>> aboard!!
>>>>>>
>>>>>>
>>>>>> 2014-05-01 12:19 GMT-03:00 H. Hirzel<[hidden email]>:
>>>>>>
>>>>>>> Thank you for the link to  Masashi Umezawa's presentation.
>>>>>>>
>>>>>>> It is from 2014 and talks about
>>>>>>>
>>>>>>> - the number of classes compared to Squeak and Pharo
>>>>>>> - the size of Morphic -- Morph allSelectors size "=>   502"
>>>>>>> - something I do not fully get about instance variables
>>>>>>>        'bounds owner submorphs fullBounds color extension'
>>>>>>>        versus
>>>>>>>       'owner submorphs location layoutNeeded layoutSpec properties'
>>>>>>> - layoutSpec
>>>>>>> - PackageInfo
>>>>>>> - version control with git
>>>>>>> - Feature require: '<PackageName>'.
>>>>>>> - your Unicode package
>>>>>>> https://github.com/KenDickey/Cuis-Smalltalk-Unicode
>>>>>>> - https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-StyledTextEditor
>>>>>>> - How to query for other Cuis-Smalltalk repositories
>>>>>>>                https://github.com/search?q=cuis-smalltalk
>>>>>>>
>>>>>>> All things which we will include Cuis documentation effort.
>>>>>>>
>>>>>>> --Hannes
>>>>>>>
>>>>>>> On 5/1/14, Ken Dickey<[hidden email]>   wrote:
>>>>>>>> On Thu, 1 May 2014 07:28:54 +0000
>>>>>>>> "H. Hirzel"<[hidden email]>   wrote:
>>>>>>>>
>>>>>>>>> A noteworthy effort
>>>>>>>>>
>>>>>>>>>         https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>>> Yes.  Masashi Umezawa is the man in Japan!
>>>>>>>>
>>>>>>>> He should introduce himself.
>>>>>>>>
>>>>>>>> He gave a talk about Cuis at the 63rd Smalltalkers' meeting in Tokyo:
>>>>>>>>
>>>>>>>>
>>>>>>>> http://www.smalltalk-users.jp/Home/gao-zhi/dai63kaismalltalkbenkyoukai/shiryou
>>>>>>>>
>>>>>>>> Masashi has ported several packages to CUis.
>>>>>>>>
>>>>>>>> Because of Unicode interest, I was made aware that recent font tweaks
>>>>>>>> have
>>>>>>>> broken my Unicode package in the latest Cuis versions.
>>>>>>>>
>>>>>>>> Masashi-san, would you care to tell us about yourself and what people
>>>>>>>> there
>>>>>>>> think about Cuis?
>>>>>>>>
>>>>>>>> -KenD
>>> _______________________________________________
>>> Cuis mailing list
>>> [hidden email]
>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>>
>
>

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org

jmvChangesToFileMan.zip (5K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Wrapper for file access in different Smalltalk dialects

Masashi UMEZAWA-3
Hello Juan,

Thank you for the patches and more tests! I'll adapt those updates for
other FileMan ports.

Best regards,

2015-06-07 12:42 GMT+09:00 Juan Vuletich <[hidden email]>:

> Hi Masashi,
>
> I was trying FileMan tests today and I saw they create some folders in my
> drive. The names looked a bit strange, so I took a closer look and found a
> couple of bugs. At least on Windows, #testRecursiveDelete instead of
> creating
>       subDir/aaa/bbb/ccc/ddd/eee/fff/ggg/test1
> it created
>        subDir/bbb/ccc/eee/ggg/test!
>
> So I wrote a few more tests on the issues I saw, and teaked the code to make
> them pass. The result is attached, and I think is useful for all ports of
> FileMan.
>
> Thanks,
> Juan Vuletich
>
> On 5/26/2015 11:34 PM, Masashi UMEZAWA wrote:
>>
>> Hi all,
>>
>> I think it is nice if FileMan is on the core package repository.
>>
>> FileMan for Cuis (and Squeak) has minimum dependencies to the existing
>> FileDirectory and DirectoryEntry. FileMan selectively uses a few
>> methods of them.
>>
>> So we can gradually adopt FileMan interfaces and trim the
>> FileDirectory and DirectoryEntry's non-intuitive methods.
>>
>> Another way of cleaning-up the file-related classes is to port
>> FileSystems to Cuis.
>> But since Cuis is a lightweight Smalltalk dialect, FileSystems might
>> be an overkill.
>>
>> Best regards,
>>
>> 2015-05-19 9:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>
>>> Hi Folks,
>>>
>>> I apologize for talking before taking even a quick look, but anyway, We'd
>>> take a good look at this. And seriously consider replacing files stuff in
>>> Cuis base. Or at least adopting it as a core package in our repo.
>>>
>>> Thoughts?
>>>
>>> Masashi-san: opinions?
>>>
>>> Thanks,
>>> Juan Vuletich
>>>
>>>
>>> On 5/17/2015 12:07 PM, H. Hirzel wrote:
>>>>
>>>> Below are the comments from the FileMan package.
>>>>
>>>> Question: How do you compare the FileMan package to the FileSystem
>>>> package in Pharo?
>>>>
>>>>
>>>>
>>>>
>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L45
>>>> I represent a single file entry (including directory).
>>>> You can write data by #fileContents: , and read the data by
>>>> #fileContents.
>>>> ---
>>>> mu 11/6/2006 20:21!
>>>>
>>>>
>>>>
>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L53
>>>> I represent a single file directory.
>>>> I implement various directory specific behaviors.
>>>> You can write data by #at:put: , and read the data by #at:.
>>>> ---
>>>> mu 11/6/2006 20:21
>>>>
>>>>
>>>>
>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L63
>>>> !FmFileIOAccessor commentStamp: '<historical>' prior: 0!
>>>> I am an accessor to the low level file IO.
>>>> You can extend/rewrite me if you port FileMan to other Smalltalk
>>>> dialects.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L44
>>>> !FmBackupDirectoryEntry commentStamp: 'mu 5/4/2007 23:26' prior: 0!
>>>> This is a simple example for adding special behaviors to
>>>> FmDirectoryEntry.
>>>> I backup file contents automatically, while users are not conscious
>>>> about
>>>> that.
>>>> Usage:
>>>> dir := './withBackup' asDirectoryEntry: FmBackupDirectoryEntry.
>>>> dir at: 'text' put: 'abc'.
>>>> dir at: 'text' put: 'def'.
>>>> (dir at: 'text') inspect. "def"
>>>> (dir backupAt: 'text') inspect. "abc"
>>>> ((dir / 'sub') at: 'text2' put: '123').
>>>> ((dir / 'sub') at: 'text2' put: '456').
>>>> ((dir / 'sub') at: 'text2') inspect. "456"
>>>> ((dir / 'sub') backupAt: 'text2') inspect. "123"
>>>>
>>>>
>>>>
>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L63
>>>> This is a simple example for adding special behaviors to
>>>> FmDirectoryEntry.
>>>> I put and get file contents as gzipped, while users are not conscious
>>>> about that.
>>>> Usage:
>>>> | dir |
>>>> dir := './gzipped2' asDirectoryEntry: FmGZipDirectoryEntry.
>>>> dir binaryAt: 'bin' put: #(1 2 3 12 34 56) asByteArray.
>>>> (dir binaryAt: 'bin') inspect.
>>>> dir at: 'text' put: 'This will be gzipped'.
>>>> (dir at: 'text') inspect.
>>>> I would be useful for storing/loading big contents in a simple
>>>> dictionary-like manner.
>>>>
>>>>
>>>>
>>>> On 5/17/15, H. Hirzel<[hidden email]>   wrote:
>>>>>
>>>>> Hello Masashi-san
>>>>>
>>>>> I'd like to come back to your FileMan package
>>>>>
>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>
>>>>> and ask a question.
>>>>>
>>>>> Is this package a port from somewhere or did you write it from scratch?
>>>>>
>>>>> Some background information is appreciated.
>>>>>
>>>>> There is no description
>>>>>
>>>>>
>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L2
>>>>>
>>>>> Thank you in advance
>>>>>
>>>>> Hannes Hirzel
>>>>>
>>>>>
>>>>> On 5/2/14, Masashi UMEZAWA<[hidden email]>   wrote:
>>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> Thank you for the kind words. I've just started Cuis on March, and I
>>>>>> was impressed with its cleanness, simplicity, etc.
>>>>>> So I did a introductory presentation at Tokyo Smalltalkers meeting. It
>>>>>> was successful.
>>>>>> Now I'm planning to port Folktale (telnet-base object shell), and SIXX
>>>>>> to Cuis. My pace maybe slow, but please stay tuned. ;)
>>>>>>
>>>>>> Best regards,
>>>>>>
>>>>>> 2014-05-02 1:05 GMT+09:00 Germán Arduino<[hidden email]>:
>>>>>>>
>>>>>>> Wow, I was completely unaware of Masashi working in Cuis! Welcome
>>>>>>> aboard!!
>>>>>>>
>>>>>>>
>>>>>>> 2014-05-01 12:19 GMT-03:00 H. Hirzel<[hidden email]>:
>>>>>>>
>>>>>>>> Thank you for the link to  Masashi Umezawa's presentation.
>>>>>>>>
>>>>>>>> It is from 2014 and talks about
>>>>>>>>
>>>>>>>> - the number of classes compared to Squeak and Pharo
>>>>>>>> - the size of Morphic -- Morph allSelectors size "=>   502"
>>>>>>>> - something I do not fully get about instance variables
>>>>>>>>        'bounds owner submorphs fullBounds color extension'
>>>>>>>>        versus
>>>>>>>>       'owner submorphs location layoutNeeded layoutSpec properties'
>>>>>>>> - layoutSpec
>>>>>>>> - PackageInfo
>>>>>>>> - version control with git
>>>>>>>> - Feature require: '<PackageName>'.
>>>>>>>> - your Unicode package
>>>>>>>> https://github.com/KenDickey/Cuis-Smalltalk-Unicode
>>>>>>>> - https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-StyledTextEditor
>>>>>>>> - How to query for other Cuis-Smalltalk repositories
>>>>>>>>                https://github.com/search?q=cuis-smalltalk
>>>>>>>>
>>>>>>>> All things which we will include Cuis documentation effort.
>>>>>>>>
>>>>>>>> --Hannes
>>>>>>>>
>>>>>>>> On 5/1/14, Ken Dickey<[hidden email]>   wrote:
>>>>>>>>>
>>>>>>>>> On Thu, 1 May 2014 07:28:54 +0000
>>>>>>>>> "H. Hirzel"<[hidden email]>   wrote:
>>>>>>>>>
>>>>>>>>>> A noteworthy effort
>>>>>>>>>>
>>>>>>>>>>         https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>>>>
>>>>>>>>> Yes.  Masashi Umezawa is the man in Japan!
>>>>>>>>>
>>>>>>>>> He should introduce himself.
>>>>>>>>>
>>>>>>>>> He gave a talk about Cuis at the 63rd Smalltalkers' meeting in
>>>>>>>>> Tokyo:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> http://www.smalltalk-users.jp/Home/gao-zhi/dai63kaismalltalkbenkyoukai/shiryou
>>>>>>>>>
>>>>>>>>> Masashi has ported several packages to CUis.
>>>>>>>>>
>>>>>>>>> Because of Unicode interest, I was made aware that recent font
>>>>>>>>> tweaks
>>>>>>>>> have
>>>>>>>>> broken my Unicode package in the latest Cuis versions.
>>>>>>>>>
>>>>>>>>> Masashi-san, would you care to tell us about yourself and what
>>>>>>>>> people
>>>>>>>>> there
>>>>>>>>> think about Cuis?
>>>>>>>>>
>>>>>>>>> -KenD
>>>>
>>>> _______________________________________________
>>>> Cuis mailing list
>>>> [hidden email]
>>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>>>
>>>
>>
>>
>



--
[:masashi | ^umezawa]

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Reply | Threaded
Open this post in threaded view
|

Re: Wrapper for file access in different Smalltalk dialects

Juan Vuletich-4
Hi Masashi,

Recently we found that in FileMan, if we do

'inexistentFile' asFileEntry readStream

we get an empty readStream.

I think it is better to throw the #fileDoesNotExistException , as
FileDirectory did, and let the user handle the exception appropriately.
But I would not want to break compatibility with FileMan, as the main
purpose of FileMan is to give compatibility amongst dialects.

Are there good reasons to avoid the exception? Should we add another
method, besides #readStream when we want a readStream strictly on
existing file contents?

Thanks,
Juan Vuletich


On 6/14/2015 8:38 AM, Masashi UMEZAWA wrote:

> Hello Juan,
>
> Thank you for the patches and more tests! I'll adapt those updates for
> other FileMan ports.
>
> Best regards,
>
> 2015-06-07 12:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>> Hi Masashi,
>>
>> I was trying FileMan tests today and I saw they create some folders in my
>> drive. The names looked a bit strange, so I took a closer look and found a
>> couple of bugs. At least on Windows, #testRecursiveDelete instead of
>> creating
>>        subDir/aaa/bbb/ccc/ddd/eee/fff/ggg/test1
>> it created
>>         subDir/bbb/ccc/eee/ggg/test!
>>
>> So I wrote a few more tests on the issues I saw, and teaked the code to make
>> them pass. The result is attached, and I think is useful for all ports of
>> FileMan.
>>
>> Thanks,
>> Juan Vuletich
>>
>> On 5/26/2015 11:34 PM, Masashi UMEZAWA wrote:
>>> Hi all,
>>>
>>> I think it is nice if FileMan is on the core package repository.
>>>
>>> FileMan for Cuis (and Squeak) has minimum dependencies to the existing
>>> FileDirectory and DirectoryEntry. FileMan selectively uses a few
>>> methods of them.
>>>
>>> So we can gradually adopt FileMan interfaces and trim the
>>> FileDirectory and DirectoryEntry's non-intuitive methods.
>>>
>>> Another way of cleaning-up the file-related classes is to port
>>> FileSystems to Cuis.
>>> But since Cuis is a lightweight Smalltalk dialect, FileSystems might
>>> be an overkill.
>>>
>>> Best regards,
>>>
>>> 2015-05-19 9:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>> Hi Folks,
>>>>
>>>> I apologize for talking before taking even a quick look, but anyway, We'd
>>>> take a good look at this. And seriously consider replacing files stuff in
>>>> Cuis base. Or at least adopting it as a core package in our repo.
>>>>
>>>> Thoughts?
>>>>
>>>> Masashi-san: opinions?
>>>>
>>>> Thanks,
>>>> Juan Vuletich
>>>>
>>>>
>>>> On 5/17/2015 12:07 PM, H. Hirzel wrote:
>>>>> Below are the comments from the FileMan package.
>>>>>
>>>>> Question: How do you compare the FileMan package to the FileSystem
>>>>> package in Pharo?
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L45
>>>>> I represent a single file entry (including directory).
>>>>> You can write data by #fileContents: , and read the data by
>>>>> #fileContents.
>>>>> ---
>>>>> mu 11/6/2006 20:21!
>>>>>
>>>>>
>>>>>
>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L53
>>>>> I represent a single file directory.
>>>>> I implement various directory specific behaviors.
>>>>> You can write data by #at:put: , and read the data by #at:.
>>>>> ---
>>>>> mu 11/6/2006 20:21
>>>>>
>>>>>
>>>>>
>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L63
>>>>> !FmFileIOAccessor commentStamp: '<historical>' prior: 0!
>>>>> I am an accessor to the low level file IO.
>>>>> You can extend/rewrite me if you port FileMan to other Smalltalk
>>>>> dialects.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L44
>>>>> !FmBackupDirectoryEntry commentStamp: 'mu 5/4/2007 23:26' prior: 0!
>>>>> This is a simple example for adding special behaviors to
>>>>> FmDirectoryEntry.
>>>>> I backup file contents automatically, while users are not conscious
>>>>> about
>>>>> that.
>>>>> Usage:
>>>>> dir := './withBackup' asDirectoryEntry: FmBackupDirectoryEntry.
>>>>> dir at: 'text' put: 'abc'.
>>>>> dir at: 'text' put: 'def'.
>>>>> (dir at: 'text') inspect. "def"
>>>>> (dir backupAt: 'text') inspect. "abc"
>>>>> ((dir / 'sub') at: 'text2' put: '123').
>>>>> ((dir / 'sub') at: 'text2' put: '456').
>>>>> ((dir / 'sub') at: 'text2') inspect. "456"
>>>>> ((dir / 'sub') backupAt: 'text2') inspect. "123"
>>>>>
>>>>>
>>>>>
>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L63
>>>>> This is a simple example for adding special behaviors to
>>>>> FmDirectoryEntry.
>>>>> I put and get file contents as gzipped, while users are not conscious
>>>>> about that.
>>>>> Usage:
>>>>> | dir |
>>>>> dir := './gzipped2' asDirectoryEntry: FmGZipDirectoryEntry.
>>>>> dir binaryAt: 'bin' put: #(1 2 3 12 34 56) asByteArray.
>>>>> (dir binaryAt: 'bin') inspect.
>>>>> dir at: 'text' put: 'This will be gzipped'.
>>>>> (dir at: 'text') inspect.
>>>>> I would be useful for storing/loading big contents in a simple
>>>>> dictionary-like manner.
>>>>>
>>>>>
>>>>>
>>>>> On 5/17/15, H. Hirzel<[hidden email]>    wrote:
>>>>>> Hello Masashi-san
>>>>>>
>>>>>> I'd like to come back to your FileMan package
>>>>>>
>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>
>>>>>> and ask a question.
>>>>>>
>>>>>> Is this package a port from somewhere or did you write it from scratch?
>>>>>>
>>>>>> Some background information is appreciated.
>>>>>>
>>>>>> There is no description
>>>>>>
>>>>>>
>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L2
>>>>>>
>>>>>> Thank you in advance
>>>>>>
>>>>>> Hannes Hirzel
>>>>>>
>>>>>>
>>>>>> On 5/2/14, Masashi UMEZAWA<[hidden email]>    wrote:
>>>>>>> Hi all,
>>>>>>>
>>>>>>> Thank you for the kind words. I've just started Cuis on March, and I
>>>>>>> was impressed with its cleanness, simplicity, etc.
>>>>>>> So I did a introductory presentation at Tokyo Smalltalkers meeting. It
>>>>>>> was successful.
>>>>>>> Now I'm planning to port Folktale (telnet-base object shell), and SIXX
>>>>>>> to Cuis. My pace maybe slow, but please stay tuned. ;)
>>>>>>>
>>>>>>> Best regards,
>>>>>>>
>>>>>>> 2014-05-02 1:05 GMT+09:00 Germán Arduino<[hidden email]>:
>>>>>>>> Wow, I was completely unaware of Masashi working in Cuis! Welcome
>>>>>>>> aboard!!
>>>>>>>>
>>>>>>>>
>>>>>>>> 2014-05-01 12:19 GMT-03:00 H. Hirzel<[hidden email]>:
>>>>>>>>
>>>>>>>>> Thank you for the link to  Masashi Umezawa's presentation.
>>>>>>>>>
>>>>>>>>> It is from 2014 and talks about
>>>>>>>>>
>>>>>>>>> - the number of classes compared to Squeak and Pharo
>>>>>>>>> - the size of Morphic -- Morph allSelectors size "=>    502"
>>>>>>>>> - something I do not fully get about instance variables
>>>>>>>>>         'bounds owner submorphs fullBounds color extension'
>>>>>>>>>         versus
>>>>>>>>>        'owner submorphs location layoutNeeded layoutSpec properties'
>>>>>>>>> - layoutSpec
>>>>>>>>> - PackageInfo
>>>>>>>>> - version control with git
>>>>>>>>> - Feature require: '<PackageName>'.
>>>>>>>>> - your Unicode package
>>>>>>>>> https://github.com/KenDickey/Cuis-Smalltalk-Unicode
>>>>>>>>> - https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-StyledTextEditor
>>>>>>>>> - How to query for other Cuis-Smalltalk repositories
>>>>>>>>>                 https://github.com/search?q=cuis-smalltalk
>>>>>>>>>
>>>>>>>>> All things which we will include Cuis documentation effort.
>>>>>>>>>
>>>>>>>>> --Hannes
>>>>>>>>>
>>>>>>>>> On 5/1/14, Ken Dickey<[hidden email]>    wrote:
>>>>>>>>>> On Thu, 1 May 2014 07:28:54 +0000
>>>>>>>>>> "H. Hirzel"<[hidden email]>    wrote:
>>>>>>>>>>
>>>>>>>>>>> A noteworthy effort
>>>>>>>>>>>
>>>>>>>>>>>          https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>>>>> Yes.  Masashi Umezawa is the man in Japan!
>>>>>>>>>>
>>>>>>>>>> He should introduce himself.
>>>>>>>>>>
>>>>>>>>>> He gave a talk about Cuis at the 63rd Smalltalkers' meeting in
>>>>>>>>>> Tokyo:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> http://www.smalltalk-users.jp/Home/gao-zhi/dai63kaismalltalkbenkyoukai/shiryou
>>>>>>>>>>
>>>>>>>>>> Masashi has ported several packages to CUis.
>>>>>>>>>>
>>>>>>>>>> Because of Unicode interest, I was made aware that recent font
>>>>>>>>>> tweaks
>>>>>>>>>> have
>>>>>>>>>> broken my Unicode package in the latest Cuis versions.
>>>>>>>>>>
>>>>>>>>>> Masashi-san, would you care to tell us about yourself and what
>>>>>>>>>> people
>>>>>>>>>> there
>>>>>>>>>> think about Cuis?
>>>>>>>>>>
>>>>>>>>>> -KenD
>>>>> _______________________________________________
>>>>> Cuis mailing list
>>>>> [hidden email]
>>>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>>>>
>>>
>
>


_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Reply | Threaded
Open this post in threaded view
|

Re: Wrapper for file access in different Smalltalk dialects

Hannes Hirzel
I as well opened an issue for Cuis to get mentioned.

https://github.com/mumez/FileMan/issues/1

--Hannes

On 7/27/15, Juan Vuletich <[hidden email]> wrote:

> Hi Masashi,
>
> Recently we found that in FileMan, if we do
>
> 'inexistentFile' asFileEntry readStream
>
> we get an empty readStream.
>
> I think it is better to throw the #fileDoesNotExistException , as
> FileDirectory did, and let the user handle the exception appropriately.
> But I would not want to break compatibility with FileMan, as the main
> purpose of FileMan is to give compatibility amongst dialects.
>
> Are there good reasons to avoid the exception? Should we add another
> method, besides #readStream when we want a readStream strictly on
> existing file contents?
>
> Thanks,
> Juan Vuletich
>
>
> On 6/14/2015 8:38 AM, Masashi UMEZAWA wrote:
>> Hello Juan,
>>
>> Thank you for the patches and more tests! I'll adapt those updates for
>> other FileMan ports.
>>
>> Best regards,
>>
>> 2015-06-07 12:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>>> Hi Masashi,
>>>
>>> I was trying FileMan tests today and I saw they create some folders in
>>> my
>>> drive. The names looked a bit strange, so I took a closer look and found
>>> a
>>> couple of bugs. At least on Windows, #testRecursiveDelete instead of
>>> creating
>>>        subDir/aaa/bbb/ccc/ddd/eee/fff/ggg/test1
>>> it created
>>>         subDir/bbb/ccc/eee/ggg/test!
>>>
>>> So I wrote a few more tests on the issues I saw, and teaked the code to
>>> make
>>> them pass. The result is attached, and I think is useful for all ports
>>> of
>>> FileMan.
>>>
>>> Thanks,
>>> Juan Vuletich
>>>
>>> On 5/26/2015 11:34 PM, Masashi UMEZAWA wrote:
>>>> Hi all,
>>>>
>>>> I think it is nice if FileMan is on the core package repository.
>>>>
>>>> FileMan for Cuis (and Squeak) has minimum dependencies to the existing
>>>> FileDirectory and DirectoryEntry. FileMan selectively uses a few
>>>> methods of them.
>>>>
>>>> So we can gradually adopt FileMan interfaces and trim the
>>>> FileDirectory and DirectoryEntry's non-intuitive methods.
>>>>
>>>> Another way of cleaning-up the file-related classes is to port
>>>> FileSystems to Cuis.
>>>> But since Cuis is a lightweight Smalltalk dialect, FileSystems might
>>>> be an overkill.
>>>>
>>>> Best regards,
>>>>
>>>> 2015-05-19 9:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>>> Hi Folks,
>>>>>
>>>>> I apologize for talking before taking even a quick look, but anyway,
>>>>> We'd
>>>>> take a good look at this. And seriously consider replacing files stuff
>>>>> in
>>>>> Cuis base. Or at least adopting it as a core package in our repo.
>>>>>
>>>>> Thoughts?
>>>>>
>>>>> Masashi-san: opinions?
>>>>>
>>>>> Thanks,
>>>>> Juan Vuletich
>>>>>
>>>>>
>>>>> On 5/17/2015 12:07 PM, H. Hirzel wrote:
>>>>>> Below are the comments from the FileMan package.
>>>>>>
>>>>>> Question: How do you compare the FileMan package to the FileSystem
>>>>>> package in Pharo?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L45
>>>>>> I represent a single file entry (including directory).
>>>>>> You can write data by #fileContents: , and read the data by
>>>>>> #fileContents.
>>>>>> ---
>>>>>> mu 11/6/2006 20:21!
>>>>>>
>>>>>>
>>>>>>
>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L53
>>>>>> I represent a single file directory.
>>>>>> I implement various directory specific behaviors.
>>>>>> You can write data by #at:put: , and read the data by #at:.
>>>>>> ---
>>>>>> mu 11/6/2006 20:21
>>>>>>
>>>>>>
>>>>>>
>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L63
>>>>>> !FmFileIOAccessor commentStamp: '<historical>' prior: 0!
>>>>>> I am an accessor to the low level file IO.
>>>>>> You can extend/rewrite me if you port FileMan to other Smalltalk
>>>>>> dialects.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L44
>>>>>> !FmBackupDirectoryEntry commentStamp: 'mu 5/4/2007 23:26' prior: 0!
>>>>>> This is a simple example for adding special behaviors to
>>>>>> FmDirectoryEntry.
>>>>>> I backup file contents automatically, while users are not conscious
>>>>>> about
>>>>>> that.
>>>>>> Usage:
>>>>>> dir := './withBackup' asDirectoryEntry: FmBackupDirectoryEntry.
>>>>>> dir at: 'text' put: 'abc'.
>>>>>> dir at: 'text' put: 'def'.
>>>>>> (dir at: 'text') inspect. "def"
>>>>>> (dir backupAt: 'text') inspect. "abc"
>>>>>> ((dir / 'sub') at: 'text2' put: '123').
>>>>>> ((dir / 'sub') at: 'text2' put: '456').
>>>>>> ((dir / 'sub') at: 'text2') inspect. "456"
>>>>>> ((dir / 'sub') backupAt: 'text2') inspect. "123"
>>>>>>
>>>>>>
>>>>>>
>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L63
>>>>>> This is a simple example for adding special behaviors to
>>>>>> FmDirectoryEntry.
>>>>>> I put and get file contents as gzipped, while users are not conscious
>>>>>> about that.
>>>>>> Usage:
>>>>>> | dir |
>>>>>> dir := './gzipped2' asDirectoryEntry: FmGZipDirectoryEntry.
>>>>>> dir binaryAt: 'bin' put: #(1 2 3 12 34 56) asByteArray.
>>>>>> (dir binaryAt: 'bin') inspect.
>>>>>> dir at: 'text' put: 'This will be gzipped'.
>>>>>> (dir at: 'text') inspect.
>>>>>> I would be useful for storing/loading big contents in a simple
>>>>>> dictionary-like manner.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 5/17/15, H. Hirzel<[hidden email]>    wrote:
>>>>>>> Hello Masashi-san
>>>>>>>
>>>>>>> I'd like to come back to your FileMan package
>>>>>>>
>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>>
>>>>>>> and ask a question.
>>>>>>>
>>>>>>> Is this package a port from somewhere or did you write it from
>>>>>>> scratch?
>>>>>>>
>>>>>>> Some background information is appreciated.
>>>>>>>
>>>>>>> There is no description
>>>>>>>
>>>>>>>
>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L2
>>>>>>>
>>>>>>> Thank you in advance
>>>>>>>
>>>>>>> Hannes Hirzel
>>>>>>>
>>>>>>>
>>>>>>> On 5/2/14, Masashi UMEZAWA<[hidden email]>    wrote:
>>>>>>>> Hi all,
>>>>>>>>
>>>>>>>> Thank you for the kind words. I've just started Cuis on March, and
>>>>>>>> I
>>>>>>>> was impressed with its cleanness, simplicity, etc.
>>>>>>>> So I did a introductory presentation at Tokyo Smalltalkers meeting.
>>>>>>>> It
>>>>>>>> was successful.
>>>>>>>> Now I'm planning to port Folktale (telnet-base object shell), and
>>>>>>>> SIXX
>>>>>>>> to Cuis. My pace maybe slow, but please stay tuned. ;)
>>>>>>>>
>>>>>>>> Best regards,
>>>>>>>>
>>>>>>>> 2014-05-02 1:05 GMT+09:00 Germán Arduino<[hidden email]>:
>>>>>>>>> Wow, I was completely unaware of Masashi working in Cuis! Welcome
>>>>>>>>> aboard!!
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2014-05-01 12:19 GMT-03:00 H. Hirzel<[hidden email]>:
>>>>>>>>>
>>>>>>>>>> Thank you for the link to  Masashi Umezawa's presentation.
>>>>>>>>>>
>>>>>>>>>> It is from 2014 and talks about
>>>>>>>>>>
>>>>>>>>>> - the number of classes compared to Squeak and Pharo
>>>>>>>>>> - the size of Morphic -- Morph allSelectors size "=>    502"
>>>>>>>>>> - something I do not fully get about instance variables
>>>>>>>>>>         'bounds owner submorphs fullBounds color extension'
>>>>>>>>>>         versus
>>>>>>>>>>        'owner submorphs location layoutNeeded layoutSpec
>>>>>>>>>> properties'
>>>>>>>>>> - layoutSpec
>>>>>>>>>> - PackageInfo
>>>>>>>>>> - version control with git
>>>>>>>>>> - Feature require: '<PackageName>'.
>>>>>>>>>> - your Unicode package
>>>>>>>>>> https://github.com/KenDickey/Cuis-Smalltalk-Unicode
>>>>>>>>>> -
>>>>>>>>>> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-StyledTextEditor
>>>>>>>>>> - How to query for other Cuis-Smalltalk repositories
>>>>>>>>>>                 https://github.com/search?q=cuis-smalltalk
>>>>>>>>>>
>>>>>>>>>> All things which we will include Cuis documentation effort.
>>>>>>>>>>
>>>>>>>>>> --Hannes
>>>>>>>>>>
>>>>>>>>>> On 5/1/14, Ken Dickey<[hidden email]>    wrote:
>>>>>>>>>>> On Thu, 1 May 2014 07:28:54 +0000
>>>>>>>>>>> "H. Hirzel"<[hidden email]>    wrote:
>>>>>>>>>>>
>>>>>>>>>>>> A noteworthy effort
>>>>>>>>>>>>
>>>>>>>>>>>>          https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>>>>>> Yes.  Masashi Umezawa is the man in Japan!
>>>>>>>>>>>
>>>>>>>>>>> He should introduce himself.
>>>>>>>>>>>
>>>>>>>>>>> He gave a talk about Cuis at the 63rd Smalltalkers' meeting in
>>>>>>>>>>> Tokyo:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> http://www.smalltalk-users.jp/Home/gao-zhi/dai63kaismalltalkbenkyoukai/shiryou
>>>>>>>>>>>
>>>>>>>>>>> Masashi has ported several packages to CUis.
>>>>>>>>>>>
>>>>>>>>>>> Because of Unicode interest, I was made aware that recent font
>>>>>>>>>>> tweaks
>>>>>>>>>>> have
>>>>>>>>>>> broken my Unicode package in the latest Cuis versions.
>>>>>>>>>>>
>>>>>>>>>>> Masashi-san, would you care to tell us about yourself and what
>>>>>>>>>>> people
>>>>>>>>>>> there
>>>>>>>>>>> think about Cuis?
>>>>>>>>>>>
>>>>>>>>>>> -KenD
>>>>>> _______________________________________________
>>>>>> Cuis mailing list
>>>>>> [hidden email]
>>>>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>>>>>
>>>>
>>
>>
>
>

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Reply | Threaded
Open this post in threaded view
|

Re: Wrapper for file access in different Smalltalk dialects

Masashi UMEZAWA-3
In reply to this post by Juan Vuletich-4
Hi all,

Sorry for the late reply. I've missed the mail...

As I recall, I have deliberately selected not using Exceptions mainly
for portability.

Actually there are various non-existent-file exceptions -
FileDoesNotExist (Squeak), FileDoesNotExistException (Pharo),
OSErrorHolder nonexistentSignal (VW).

Originally old FileMan did not have exception wrappers, but it has
now. So I think it is a good time to introduce exception-aware APIs.

How about adding tryReadStream series?

[ readStream := 'foo.txt' asFileEntry tryReadStream ] on:
FmFileIOAccessor fileDoesNotExistException do: [:ex | ].

readStream := 'foo.txt' asFileEntry tryReadStreamIfError: [:ex | ].

Best regards,

2015-07-27 23:58 GMT+09:00 Juan Vuletich <[hidden email]>:

> Hi Masashi,
>
> Recently we found that in FileMan, if we do
>
> 'inexistentFile' asFileEntry readStream
>
> we get an empty readStream.
>
> I think it is better to throw the #fileDoesNotExistException , as
> FileDirectory did, and let the user handle the exception appropriately. But
> I would not want to break compatibility with FileMan, as the main purpose of
> FileMan is to give compatibility amongst dialects.
>
> Are there good reasons to avoid the exception? Should we add another method,
> besides #readStream when we want a readStream strictly on existing file
> contents?
>
> Thanks,
> Juan Vuletich
>
>
>
> On 6/14/2015 8:38 AM, Masashi UMEZAWA wrote:
>>
>> Hello Juan,
>>
>> Thank you for the patches and more tests! I'll adapt those updates for
>> other FileMan ports.
>>
>> Best regards,
>>
>> 2015-06-07 12:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>
>>> Hi Masashi,
>>>
>>> I was trying FileMan tests today and I saw they create some folders in my
>>> drive. The names looked a bit strange, so I took a closer look and found
>>> a
>>> couple of bugs. At least on Windows, #testRecursiveDelete instead of
>>> creating
>>>        subDir/aaa/bbb/ccc/ddd/eee/fff/ggg/test1
>>> it created
>>>         subDir/bbb/ccc/eee/ggg/test!
>>>
>>> So I wrote a few more tests on the issues I saw, and teaked the code to
>>> make
>>> them pass. The result is attached, and I think is useful for all ports of
>>> FileMan.
>>>
>>> Thanks,
>>> Juan Vuletich
>>>
>>> On 5/26/2015 11:34 PM, Masashi UMEZAWA wrote:
>>>>
>>>> Hi all,
>>>>
>>>> I think it is nice if FileMan is on the core package repository.
>>>>
>>>> FileMan for Cuis (and Squeak) has minimum dependencies to the existing
>>>> FileDirectory and DirectoryEntry. FileMan selectively uses a few
>>>> methods of them.
>>>>
>>>> So we can gradually adopt FileMan interfaces and trim the
>>>> FileDirectory and DirectoryEntry's non-intuitive methods.
>>>>
>>>> Another way of cleaning-up the file-related classes is to port
>>>> FileSystems to Cuis.
>>>> But since Cuis is a lightweight Smalltalk dialect, FileSystems might
>>>> be an overkill.
>>>>
>>>> Best regards,
>>>>
>>>> 2015-05-19 9:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>>>
>>>>> Hi Folks,
>>>>>
>>>>> I apologize for talking before taking even a quick look, but anyway,
>>>>> We'd
>>>>> take a good look at this. And seriously consider replacing files stuff
>>>>> in
>>>>> Cuis base. Or at least adopting it as a core package in our repo.
>>>>>
>>>>> Thoughts?
>>>>>
>>>>> Masashi-san: opinions?
>>>>>
>>>>> Thanks,
>>>>> Juan Vuletich
>>>>>
>>>>>
>>>>> On 5/17/2015 12:07 PM, H. Hirzel wrote:
>>>>>>
>>>>>> Below are the comments from the FileMan package.
>>>>>>
>>>>>> Question: How do you compare the FileMan package to the FileSystem
>>>>>> package in Pharo?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L45
>>>>>> I represent a single file entry (including directory).
>>>>>> You can write data by #fileContents: , and read the data by
>>>>>> #fileContents.
>>>>>> ---
>>>>>> mu 11/6/2006 20:21!
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L53
>>>>>> I represent a single file directory.
>>>>>> I implement various directory specific behaviors.
>>>>>> You can write data by #at:put: , and read the data by #at:.
>>>>>> ---
>>>>>> mu 11/6/2006 20:21
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L63
>>>>>> !FmFileIOAccessor commentStamp: '<historical>' prior: 0!
>>>>>> I am an accessor to the low level file IO.
>>>>>> You can extend/rewrite me if you port FileMan to other Smalltalk
>>>>>> dialects.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L44
>>>>>> !FmBackupDirectoryEntry commentStamp: 'mu 5/4/2007 23:26' prior: 0!
>>>>>> This is a simple example for adding special behaviors to
>>>>>> FmDirectoryEntry.
>>>>>> I backup file contents automatically, while users are not conscious
>>>>>> about
>>>>>> that.
>>>>>> Usage:
>>>>>> dir := './withBackup' asDirectoryEntry: FmBackupDirectoryEntry.
>>>>>> dir at: 'text' put: 'abc'.
>>>>>> dir at: 'text' put: 'def'.
>>>>>> (dir at: 'text') inspect. "def"
>>>>>> (dir backupAt: 'text') inspect. "abc"
>>>>>> ((dir / 'sub') at: 'text2' put: '123').
>>>>>> ((dir / 'sub') at: 'text2' put: '456').
>>>>>> ((dir / 'sub') at: 'text2') inspect. "456"
>>>>>> ((dir / 'sub') backupAt: 'text2') inspect. "123"
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L63
>>>>>> This is a simple example for adding special behaviors to
>>>>>> FmDirectoryEntry.
>>>>>> I put and get file contents as gzipped, while users are not conscious
>>>>>> about that.
>>>>>> Usage:
>>>>>> | dir |
>>>>>> dir := './gzipped2' asDirectoryEntry: FmGZipDirectoryEntry.
>>>>>> dir binaryAt: 'bin' put: #(1 2 3 12 34 56) asByteArray.
>>>>>> (dir binaryAt: 'bin') inspect.
>>>>>> dir at: 'text' put: 'This will be gzipped'.
>>>>>> (dir at: 'text') inspect.
>>>>>> I would be useful for storing/loading big contents in a simple
>>>>>> dictionary-like manner.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 5/17/15, H. Hirzel<[hidden email]>    wrote:
>>>>>>>
>>>>>>> Hello Masashi-san
>>>>>>>
>>>>>>> I'd like to come back to your FileMan package
>>>>>>>
>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>>
>>>>>>> and ask a question.
>>>>>>>
>>>>>>> Is this package a port from somewhere or did you write it from
>>>>>>> scratch?
>>>>>>>
>>>>>>> Some background information is appreciated.
>>>>>>>
>>>>>>> There is no description
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L2
>>>>>>>
>>>>>>> Thank you in advance
>>>>>>>
>>>>>>> Hannes Hirzel
>>>>>>>
>>>>>>>
>>>>>>> On 5/2/14, Masashi UMEZAWA<[hidden email]>    wrote:
>>>>>>>>
>>>>>>>> Hi all,
>>>>>>>>
>>>>>>>> Thank you for the kind words. I've just started Cuis on March, and I
>>>>>>>> was impressed with its cleanness, simplicity, etc.
>>>>>>>> So I did a introductory presentation at Tokyo Smalltalkers meeting.
>>>>>>>> It
>>>>>>>> was successful.
>>>>>>>> Now I'm planning to port Folktale (telnet-base object shell), and
>>>>>>>> SIXX
>>>>>>>> to Cuis. My pace maybe slow, but please stay tuned. ;)
>>>>>>>>
>>>>>>>> Best regards,
>>>>>>>>
>>>>>>>> 2014-05-02 1:05 GMT+09:00 Germán Arduino<[hidden email]>:
>>>>>>>>>
>>>>>>>>> Wow, I was completely unaware of Masashi working in Cuis! Welcome
>>>>>>>>> aboard!!
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2014-05-01 12:19 GMT-03:00 H. Hirzel<[hidden email]>:
>>>>>>>>>
>>>>>>>>>> Thank you for the link to  Masashi Umezawa's presentation.
>>>>>>>>>>
>>>>>>>>>> It is from 2014 and talks about
>>>>>>>>>>
>>>>>>>>>> - the number of classes compared to Squeak and Pharo
>>>>>>>>>> - the size of Morphic -- Morph allSelectors size "=>    502"
>>>>>>>>>> - something I do not fully get about instance variables
>>>>>>>>>>         'bounds owner submorphs fullBounds color extension'
>>>>>>>>>>         versus
>>>>>>>>>>        'owner submorphs location layoutNeeded layoutSpec
>>>>>>>>>> properties'
>>>>>>>>>> - layoutSpec
>>>>>>>>>> - PackageInfo
>>>>>>>>>> - version control with git
>>>>>>>>>> - Feature require: '<PackageName>'.
>>>>>>>>>> - your Unicode package
>>>>>>>>>> https://github.com/KenDickey/Cuis-Smalltalk-Unicode
>>>>>>>>>> -
>>>>>>>>>> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-StyledTextEditor
>>>>>>>>>> - How to query for other Cuis-Smalltalk repositories
>>>>>>>>>>                 https://github.com/search?q=cuis-smalltalk
>>>>>>>>>>
>>>>>>>>>> All things which we will include Cuis documentation effort.
>>>>>>>>>>
>>>>>>>>>> --Hannes
>>>>>>>>>>
>>>>>>>>>> On 5/1/14, Ken Dickey<[hidden email]>    wrote:
>>>>>>>>>>>
>>>>>>>>>>> On Thu, 1 May 2014 07:28:54 +0000
>>>>>>>>>>> "H. Hirzel"<[hidden email]>    wrote:
>>>>>>>>>>>
>>>>>>>>>>>> A noteworthy effort
>>>>>>>>>>>>
>>>>>>>>>>>>          https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>>>>>>
>>>>>>>>>>> Yes.  Masashi Umezawa is the man in Japan!
>>>>>>>>>>>
>>>>>>>>>>> He should introduce himself.
>>>>>>>>>>>
>>>>>>>>>>> He gave a talk about Cuis at the 63rd Smalltalkers' meeting in
>>>>>>>>>>> Tokyo:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> http://www.smalltalk-users.jp/Home/gao-zhi/dai63kaismalltalkbenkyoukai/shiryou
>>>>>>>>>>>
>>>>>>>>>>> Masashi has ported several packages to CUis.
>>>>>>>>>>>
>>>>>>>>>>> Because of Unicode interest, I was made aware that recent font
>>>>>>>>>>> tweaks
>>>>>>>>>>> have
>>>>>>>>>>> broken my Unicode package in the latest Cuis versions.
>>>>>>>>>>>
>>>>>>>>>>> Masashi-san, would you care to tell us about yourself and what
>>>>>>>>>>> people
>>>>>>>>>>> there
>>>>>>>>>>> think about Cuis?
>>>>>>>>>>>
>>>>>>>>>>> -KenD
>>>>>>
>>>>>> _______________________________________________
>>>>>> Cuis mailing list
>>>>>> [hidden email]
>>>>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>>>>>
>>>>>
>>>>
>>
>>
>

--
[:masashi | ^umezawa]

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Reply | Threaded
Open this post in threaded view
|

Re: Wrapper for file access in different Smalltalk dialects

Juan Vuletich-4
Hi Masashi,

> Hi all,
>
> Sorry for the late reply. I've missed the mail...
>
> As I recall, I have deliberately selected not using Exceptions mainly
> for portability.
>
> Actually there are various non-existent-file exceptions -
> FileDoesNotExist (Squeak), FileDoesNotExistException (Pharo),
> OSErrorHolder nonexistentSignal (VW).
>
> Originally old FileMan did not have exception wrappers, but it has
> now. So I think it is a good time to introduce exception-aware APIs.
>
> How about adding tryReadStream series?
>
> [ readStream := 'foo.txt' asFileEntry tryReadStream ] on:
> FmFileIOAccessor fileDoesNotExistException do: [:ex | ].
>
> readStream := 'foo.txt' asFileEntry tryReadStreamIfError: [:ex | ].
>
> Best regards,

Thanks for your support.

I guess I would prefer #readStream for the basic, raising exceptions
api, and maybe #readStreamNoFail or #readStreamOrEmpty or such for the
"exception eating api" . In any case it is your call, I understand there
is back compatibility to care about, and I'll be happy with your choice.

Cheers,
Juan Vuletich

> 2015-07-27 23:58 GMT+09:00 Juan Vuletich<[hidden email]>:
>> Hi Masashi,
>>
>> Recently we found that in FileMan, if we do
>>
>> 'inexistentFile' asFileEntry readStream
>>
>> we get an empty readStream.
>>
>> I think it is better to throw the #fileDoesNotExistException , as
>> FileDirectory did, and let the user handle the exception appropriately. But
>> I would not want to break compatibility with FileMan, as the main purpose of
>> FileMan is to give compatibility amongst dialects.
>>
>> Are there good reasons to avoid the exception? Should we add another method,
>> besides #readStream when we want a readStream strictly on existing file
>> contents?
>>
>> Thanks,
>> Juan Vuletich
>>
>>
>>
>> On 6/14/2015 8:38 AM, Masashi UMEZAWA wrote:
>>> Hello Juan,
>>>
>>> Thank you for the patches and more tests! I'll adapt those updates for
>>> other FileMan ports.
>>>
>>> Best regards,
>>>
>>> 2015-06-07 12:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>> Hi Masashi,
>>>>
>>>> I was trying FileMan tests today and I saw they create some folders in my
>>>> drive. The names looked a bit strange, so I took a closer look and found
>>>> a
>>>> couple of bugs. At least on Windows, #testRecursiveDelete instead of
>>>> creating
>>>>         subDir/aaa/bbb/ccc/ddd/eee/fff/ggg/test1
>>>> it created
>>>>          subDir/bbb/ccc/eee/ggg/test!
>>>>
>>>> So I wrote a few more tests on the issues I saw, and teaked the code to
>>>> make
>>>> them pass. The result is attached, and I think is useful for all ports of
>>>> FileMan.
>>>>
>>>> Thanks,
>>>> Juan Vuletich
>>>>
>>>> On 5/26/2015 11:34 PM, Masashi UMEZAWA wrote:
>>>>> Hi all,
>>>>>
>>>>> I think it is nice if FileMan is on the core package repository.
>>>>>
>>>>> FileMan for Cuis (and Squeak) has minimum dependencies to the existing
>>>>> FileDirectory and DirectoryEntry. FileMan selectively uses a few
>>>>> methods of them.
>>>>>
>>>>> So we can gradually adopt FileMan interfaces and trim the
>>>>> FileDirectory and DirectoryEntry's non-intuitive methods.
>>>>>
>>>>> Another way of cleaning-up the file-related classes is to port
>>>>> FileSystems to Cuis.
>>>>> But since Cuis is a lightweight Smalltalk dialect, FileSystems might
>>>>> be an overkill.
>>>>>
>>>>> Best regards,
>>>>>
>>>>> 2015-05-19 9:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>>>> Hi Folks,
>>>>>>
>>>>>> I apologize for talking before taking even a quick look, but anyway,
>>>>>> We'd
>>>>>> take a good look at this. And seriously consider replacing files stuff
>>>>>> in
>>>>>> Cuis base. Or at least adopting it as a core package in our repo.
>>>>>>
>>>>>> Thoughts?
>>>>>>
>>>>>> Masashi-san: opinions?
>>>>>>
>>>>>> Thanks,
>>>>>> Juan Vuletich
>>>>>>
>>>>>>
>>>>>> On 5/17/2015 12:07 PM, H. Hirzel wrote:
>>>>>>> Below are the comments from the FileMan package.
>>>>>>>
>>>>>>> Question: How do you compare the FileMan package to the FileSystem
>>>>>>> package in Pharo?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L45
>>>>>>> I represent a single file entry (including directory).
>>>>>>> You can write data by #fileContents: , and read the data by
>>>>>>> #fileContents.
>>>>>>> ---
>>>>>>> mu 11/6/2006 20:21!
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L53
>>>>>>> I represent a single file directory.
>>>>>>> I implement various directory specific behaviors.
>>>>>>> You can write data by #at:put: , and read the data by #at:.
>>>>>>> ---
>>>>>>> mu 11/6/2006 20:21
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L63
>>>>>>> !FmFileIOAccessor commentStamp: '<historical>' prior: 0!
>>>>>>> I am an accessor to the low level file IO.
>>>>>>> You can extend/rewrite me if you port FileMan to other Smalltalk
>>>>>>> dialects.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L44
>>>>>>> !FmBackupDirectoryEntry commentStamp: 'mu 5/4/2007 23:26' prior: 0!
>>>>>>> This is a simple example for adding special behaviors to
>>>>>>> FmDirectoryEntry.
>>>>>>> I backup file contents automatically, while users are not conscious
>>>>>>> about
>>>>>>> that.
>>>>>>> Usage:
>>>>>>> dir := './withBackup' asDirectoryEntry: FmBackupDirectoryEntry.
>>>>>>> dir at: 'text' put: 'abc'.
>>>>>>> dir at: 'text' put: 'def'.
>>>>>>> (dir at: 'text') inspect. "def"
>>>>>>> (dir backupAt: 'text') inspect. "abc"
>>>>>>> ((dir / 'sub') at: 'text2' put: '123').
>>>>>>> ((dir / 'sub') at: 'text2' put: '456').
>>>>>>> ((dir / 'sub') at: 'text2') inspect. "456"
>>>>>>> ((dir / 'sub') backupAt: 'text2') inspect. "123"
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L63
>>>>>>> This is a simple example for adding special behaviors to
>>>>>>> FmDirectoryEntry.
>>>>>>> I put and get file contents as gzipped, while users are not conscious
>>>>>>> about that.
>>>>>>> Usage:
>>>>>>> | dir |
>>>>>>> dir := './gzipped2' asDirectoryEntry: FmGZipDirectoryEntry.
>>>>>>> dir binaryAt: 'bin' put: #(1 2 3 12 34 56) asByteArray.
>>>>>>> (dir binaryAt: 'bin') inspect.
>>>>>>> dir at: 'text' put: 'This will be gzipped'.
>>>>>>> (dir at: 'text') inspect.
>>>>>>> I would be useful for storing/loading big contents in a simple
>>>>>>> dictionary-like manner.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 5/17/15, H. Hirzel<[hidden email]>     wrote:
>>>>>>>> Hello Masashi-san
>>>>>>>>
>>>>>>>> I'd like to come back to your FileMan package
>>>>>>>>
>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>>>
>>>>>>>> and ask a question.
>>>>>>>>
>>>>>>>> Is this package a port from somewhere or did you write it from
>>>>>>>> scratch?
>>>>>>>>
>>>>>>>> Some background information is appreciated.
>>>>>>>>
>>>>>>>> There is no description
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L2
>>>>>>>>
>>>>>>>> Thank you in advance
>>>>>>>>
>>>>>>>> Hannes Hirzel
>>>>>>>>
>>>>>>>>
>>>>>>>> On 5/2/14, Masashi UMEZAWA<[hidden email]>     wrote:
>>>>>>>>> Hi all,
>>>>>>>>>
>>>>>>>>> Thank you for the kind words. I've just started Cuis on March, and I
>>>>>>>>> was impressed with its cleanness, simplicity, etc.
>>>>>>>>> So I did a introductory presentation at Tokyo Smalltalkers meeting.
>>>>>>>>> It
>>>>>>>>> was successful.
>>>>>>>>> Now I'm planning to port Folktale (telnet-base object shell), and
>>>>>>>>> SIXX
>>>>>>>>> to Cuis. My pace maybe slow, but please stay tuned. ;)
>>>>>>>>>
>>>>>>>>> Best regards,
>>>>>>>>>
>>>>>>>>> 2014-05-02 1:05 GMT+09:00 Germán Arduino<[hidden email]>:
>>>>>>>>>> Wow, I was completely unaware of Masashi working in Cuis! Welcome
>>>>>>>>>> aboard!!
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2014-05-01 12:19 GMT-03:00 H. Hirzel<[hidden email]>:
>>>>>>>>>>
>>>>>>>>>>> Thank you for the link to  Masashi Umezawa's presentation.
>>>>>>>>>>>
>>>>>>>>>>> It is from 2014 and talks about
>>>>>>>>>>>
>>>>>>>>>>> - the number of classes compared to Squeak and Pharo
>>>>>>>>>>> - the size of Morphic -- Morph allSelectors size "=>     502"
>>>>>>>>>>> - something I do not fully get about instance variables
>>>>>>>>>>>          'bounds owner submorphs fullBounds color extension'
>>>>>>>>>>>          versus
>>>>>>>>>>>         'owner submorphs location layoutNeeded layoutSpec
>>>>>>>>>>> properties'
>>>>>>>>>>> - layoutSpec
>>>>>>>>>>> - PackageInfo
>>>>>>>>>>> - version control with git
>>>>>>>>>>> - Feature require: '<PackageName>'.
>>>>>>>>>>> - your Unicode package
>>>>>>>>>>> https://github.com/KenDickey/Cuis-Smalltalk-Unicode
>>>>>>>>>>> -
>>>>>>>>>>> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-StyledTextEditor
>>>>>>>>>>> - How to query for other Cuis-Smalltalk repositories
>>>>>>>>>>>                  https://github.com/search?q=cuis-smalltalk
>>>>>>>>>>>
>>>>>>>>>>> All things which we will include Cuis documentation effort.
>>>>>>>>>>>
>>>>>>>>>>> --Hannes
>>>>>>>>>>>
>>>>>>>>>>> On 5/1/14, Ken Dickey<[hidden email]>     wrote:
>>>>>>>>>>>> On Thu, 1 May 2014 07:28:54 +0000
>>>>>>>>>>>> "H. Hirzel"<[hidden email]>     wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> A noteworthy effort
>>>>>>>>>>>>>
>>>>>>>>>>>>>           https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>>>>>>> Yes.  Masashi Umezawa is the man in Japan!
>>>>>>>>>>>>
>>>>>>>>>>>> He should introduce himself.
>>>>>>>>>>>>
>>>>>>>>>>>> He gave a talk about Cuis at the 63rd Smalltalkers' meeting in
>>>>>>>>>>>> Tokyo:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> http://www.smalltalk-users.jp/Home/gao-zhi/dai63kaismalltalkbenkyoukai/shiryou
>>>>>>>>>>>>
>>>>>>>>>>>> Masashi has ported several packages to CUis.
>>>>>>>>>>>>
>>>>>>>>>>>> Because of Unicode interest, I was made aware that recent font
>>>>>>>>>>>> tweaks
>>>>>>>>>>>> have
>>>>>>>>>>>> broken my Unicode package in the latest Cuis versions.
>>>>>>>>>>>>
>>>>>>>>>>>> Masashi-san, would you care to tell us about yourself and what
>>>>>>>>>>>> people
>>>>>>>>>>>> there
>>>>>>>>>>>> think about Cuis?
>>>>>>>>>>>>
>>>>>>>>>>>> -KenD
>>>>>>> _______________________________________________
>>>>>>> Cuis mailing list
>>>>>>> [hidden email]
>>>>>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>>>>>>
>>>


_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Reply | Threaded
Open this post in threaded view
|

Re: Wrapper for file access in different Smalltalk dialects

Masashi UMEZAWA-3
Hi Juan,

Yes, I'm concerning about backward-compatibility.
FmFileEntry>>#readStream has been used long. So I would prefer just
adding new APIs.

Best regards,

> I guess I would prefer #readStream for the basic, raising exceptions api,
> and maybe #readStreamNoFail or #readStreamOrEmpty or such for the "exception
> eating api" . In any case it is your call, I understand there is back
> compatibility to care about, and I'll be happy with your choice.
>
> Cheers,
> Juan Vuletich
>
>
>> 2015-07-27 23:58 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>
>>> Hi Masashi,
>>>
>>> Recently we found that in FileMan, if we do
>>>
>>> 'inexistentFile' asFileEntry readStream
>>>
>>> we get an empty readStream.
>>>
>>> I think it is better to throw the #fileDoesNotExistException , as
>>> FileDirectory did, and let the user handle the exception appropriately.
>>> But
>>> I would not want to break compatibility with FileMan, as the main purpose
>>> of
>>> FileMan is to give compatibility amongst dialects.
>>>
>>> Are there good reasons to avoid the exception? Should we add another
>>> method,
>>> besides #readStream when we want a readStream strictly on existing file
>>> contents?
>>>
>>> Thanks,
>>> Juan Vuletich
>>>
>>>
>>>
>>> On 6/14/2015 8:38 AM, Masashi UMEZAWA wrote:
>>>>
>>>> Hello Juan,
>>>>
>>>> Thank you for the patches and more tests! I'll adapt those updates for
>>>> other FileMan ports.
>>>>
>>>> Best regards,
>>>>
>>>> 2015-06-07 12:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>>>
>>>>> Hi Masashi,
>>>>>
>>>>> I was trying FileMan tests today and I saw they create some folders in
>>>>> my
>>>>> drive. The names looked a bit strange, so I took a closer look and
>>>>> found
>>>>> a
>>>>> couple of bugs. At least on Windows, #testRecursiveDelete instead of
>>>>> creating
>>>>>         subDir/aaa/bbb/ccc/ddd/eee/fff/ggg/test1
>>>>> it created
>>>>>          subDir/bbb/ccc/eee/ggg/test!
>>>>>
>>>>> So I wrote a few more tests on the issues I saw, and teaked the code to
>>>>> make
>>>>> them pass. The result is attached, and I think is useful for all ports
>>>>> of
>>>>> FileMan.
>>>>>
>>>>> Thanks,
>>>>> Juan Vuletich
>>>>>
>>>>> On 5/26/2015 11:34 PM, Masashi UMEZAWA wrote:
>>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> I think it is nice if FileMan is on the core package repository.
>>>>>>
>>>>>> FileMan for Cuis (and Squeak) has minimum dependencies to the existing
>>>>>> FileDirectory and DirectoryEntry. FileMan selectively uses a few
>>>>>> methods of them.
>>>>>>
>>>>>> So we can gradually adopt FileMan interfaces and trim the
>>>>>> FileDirectory and DirectoryEntry's non-intuitive methods.
>>>>>>
>>>>>> Another way of cleaning-up the file-related classes is to port
>>>>>> FileSystems to Cuis.
>>>>>> But since Cuis is a lightweight Smalltalk dialect, FileSystems might
>>>>>> be an overkill.
>>>>>>
>>>>>> Best regards,
>>>>>>
>>>>>> 2015-05-19 9:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>>>>>
>>>>>>> Hi Folks,
>>>>>>>
>>>>>>> I apologize for talking before taking even a quick look, but anyway,
>>>>>>> We'd
>>>>>>> take a good look at this. And seriously consider replacing files
>>>>>>> stuff
>>>>>>> in
>>>>>>> Cuis base. Or at least adopting it as a core package in our repo.
>>>>>>>
>>>>>>> Thoughts?
>>>>>>>
>>>>>>> Masashi-san: opinions?
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Juan Vuletich
>>>>>>>
>>>>>>>
>>>>>>> On 5/17/2015 12:07 PM, H. Hirzel wrote:
>>>>>>>>
>>>>>>>> Below are the comments from the FileMan package.
>>>>>>>>
>>>>>>>> Question: How do you compare the FileMan package to the FileSystem
>>>>>>>> package in Pharo?
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L45
>>>>>>>> I represent a single file entry (including directory).
>>>>>>>> You can write data by #fileContents: , and read the data by
>>>>>>>> #fileContents.
>>>>>>>> ---
>>>>>>>> mu 11/6/2006 20:21!
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L53
>>>>>>>> I represent a single file directory.
>>>>>>>> I implement various directory specific behaviors.
>>>>>>>> You can write data by #at:put: , and read the data by #at:.
>>>>>>>> ---
>>>>>>>> mu 11/6/2006 20:21
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L63
>>>>>>>> !FmFileIOAccessor commentStamp: '<historical>' prior: 0!
>>>>>>>> I am an accessor to the low level file IO.
>>>>>>>> You can extend/rewrite me if you port FileMan to other Smalltalk
>>>>>>>> dialects.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L44
>>>>>>>> !FmBackupDirectoryEntry commentStamp: 'mu 5/4/2007 23:26' prior: 0!
>>>>>>>> This is a simple example for adding special behaviors to
>>>>>>>> FmDirectoryEntry.
>>>>>>>> I backup file contents automatically, while users are not conscious
>>>>>>>> about
>>>>>>>> that.
>>>>>>>> Usage:
>>>>>>>> dir := './withBackup' asDirectoryEntry: FmBackupDirectoryEntry.
>>>>>>>> dir at: 'text' put: 'abc'.
>>>>>>>> dir at: 'text' put: 'def'.
>>>>>>>> (dir at: 'text') inspect. "def"
>>>>>>>> (dir backupAt: 'text') inspect. "abc"
>>>>>>>> ((dir / 'sub') at: 'text2' put: '123').
>>>>>>>> ((dir / 'sub') at: 'text2' put: '456').
>>>>>>>> ((dir / 'sub') at: 'text2') inspect. "456"
>>>>>>>> ((dir / 'sub') backupAt: 'text2') inspect. "123"
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L63
>>>>>>>> This is a simple example for adding special behaviors to
>>>>>>>> FmDirectoryEntry.
>>>>>>>> I put and get file contents as gzipped, while users are not
>>>>>>>> conscious
>>>>>>>> about that.
>>>>>>>> Usage:
>>>>>>>> | dir |
>>>>>>>> dir := './gzipped2' asDirectoryEntry: FmGZipDirectoryEntry.
>>>>>>>> dir binaryAt: 'bin' put: #(1 2 3 12 34 56) asByteArray.
>>>>>>>> (dir binaryAt: 'bin') inspect.
>>>>>>>> dir at: 'text' put: 'This will be gzipped'.
>>>>>>>> (dir at: 'text') inspect.
>>>>>>>> I would be useful for storing/loading big contents in a simple
>>>>>>>> dictionary-like manner.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On 5/17/15, H. Hirzel<[hidden email]>     wrote:
>>>>>>>>>
>>>>>>>>> Hello Masashi-san
>>>>>>>>>
>>>>>>>>> I'd like to come back to your FileMan package
>>>>>>>>>
>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>>>>
>>>>>>>>> and ask a question.
>>>>>>>>>
>>>>>>>>> Is this package a port from somewhere or did you write it from
>>>>>>>>> scratch?
>>>>>>>>>
>>>>>>>>> Some background information is appreciated.
>>>>>>>>>
>>>>>>>>> There is no description
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L2
>>>>>>>>>
>>>>>>>>> Thank you in advance
>>>>>>>>>
>>>>>>>>> Hannes Hirzel
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 5/2/14, Masashi UMEZAWA<[hidden email]>     wrote:
>>>>>>>>>>
>>>>>>>>>> Hi all,
>>>>>>>>>>
>>>>>>>>>> Thank you for the kind words. I've just started Cuis on March, and
>>>>>>>>>> I
>>>>>>>>>> was impressed with its cleanness, simplicity, etc.
>>>>>>>>>> So I did a introductory presentation at Tokyo Smalltalkers
>>>>>>>>>> meeting.
>>>>>>>>>> It
>>>>>>>>>> was successful.
>>>>>>>>>> Now I'm planning to port Folktale (telnet-base object shell), and
>>>>>>>>>> SIXX
>>>>>>>>>> to Cuis. My pace maybe slow, but please stay tuned. ;)
>>>>>>>>>>
>>>>>>>>>> Best regards,
>>>>>>>>>>
>>>>>>>>>> 2014-05-02 1:05 GMT+09:00 Germán Arduino<[hidden email]>:
>>>>>>>>>>>
>>>>>>>>>>> Wow, I was completely unaware of Masashi working in Cuis! Welcome
>>>>>>>>>>> aboard!!
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> 2014-05-01 12:19 GMT-03:00 H. Hirzel<[hidden email]>:
>>>>>>>>>>>
>>>>>>>>>>>> Thank you for the link to  Masashi Umezawa's presentation.
>>>>>>>>>>>>
>>>>>>>>>>>> It is from 2014 and talks about
>>>>>>>>>>>>
>>>>>>>>>>>> - the number of classes compared to Squeak and Pharo
>>>>>>>>>>>> - the size of Morphic -- Morph allSelectors size "=>     502"
>>>>>>>>>>>> - something I do not fully get about instance variables
>>>>>>>>>>>>          'bounds owner submorphs fullBounds color extension'
>>>>>>>>>>>>          versus
>>>>>>>>>>>>         'owner submorphs location layoutNeeded layoutSpec
>>>>>>>>>>>> properties'
>>>>>>>>>>>> - layoutSpec
>>>>>>>>>>>> - PackageInfo
>>>>>>>>>>>> - version control with git
>>>>>>>>>>>> - Feature require: '<PackageName>'.
>>>>>>>>>>>> - your Unicode package
>>>>>>>>>>>> https://github.com/KenDickey/Cuis-Smalltalk-Unicode
>>>>>>>>>>>> -
>>>>>>>>>>>>
>>>>>>>>>>>> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-StyledTextEditor
>>>>>>>>>>>> - How to query for other Cuis-Smalltalk repositories
>>>>>>>>>>>>                  https://github.com/search?q=cuis-smalltalk
>>>>>>>>>>>>
>>>>>>>>>>>> All things which we will include Cuis documentation effort.
>>>>>>>>>>>>
>>>>>>>>>>>> --Hannes
>>>>>>>>>>>>
>>>>>>>>>>>> On 5/1/14, Ken Dickey<[hidden email]>     wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Thu, 1 May 2014 07:28:54 +0000
>>>>>>>>>>>>> "H. Hirzel"<[hidden email]>     wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> A noteworthy effort
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>           https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>>>>>>>>
>>>>>>>>>>>>> Yes.  Masashi Umezawa is the man in Japan!
>>>>>>>>>>>>>
>>>>>>>>>>>>> He should introduce himself.
>>>>>>>>>>>>>
>>>>>>>>>>>>> He gave a talk about Cuis at the 63rd Smalltalkers' meeting in
>>>>>>>>>>>>> Tokyo:
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> http://www.smalltalk-users.jp/Home/gao-zhi/dai63kaismalltalkbenkyoukai/shiryou
>>>>>>>>>>>>>
>>>>>>>>>>>>> Masashi has ported several packages to CUis.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Because of Unicode interest, I was made aware that recent font
>>>>>>>>>>>>> tweaks
>>>>>>>>>>>>> have
>>>>>>>>>>>>> broken my Unicode package in the latest Cuis versions.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Masashi-san, would you care to tell us about yourself and what
>>>>>>>>>>>>> people
>>>>>>>>>>>>> there
>>>>>>>>>>>>> think about Cuis?
>>>>>>>>>>>>>
>>>>>>>>>>>>> -KenD
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Cuis mailing list
>>>>>>>> [hidden email]
>>>>>>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>>>>>>>
>>>>>>>
>>>>
>



--
[:masashi | ^umezawa]

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Reply | Threaded
Open this post in threaded view
|

Re: Wrapper for file access in different Smalltalk dialects

Juan Vuletich-4
Hi Masashi,

Ok. #tryReadStream is reasonable. Or maybe #readStreamOrFail.

Any other suggestion? Preferences?

Thanks,
Juan Vuletich

On 8/22/2015 10:15 AM, Masashi UMEZAWA wrote:

> Hi Juan,
>
> Yes, I'm concerning about backward-compatibility.
> FmFileEntry>>#readStream has been used long. So I would prefer just
> adding new APIs.
>
> Best regards,
>
>> I guess I would prefer #readStream for the basic, raising exceptions api,
>> and maybe #readStreamNoFail or #readStreamOrEmpty or such for the "exception
>> eating api" . In any case it is your call, I understand there is back
>> compatibility to care about, and I'll be happy with your choice.
>>
>> Cheers,
>> Juan Vuletich
>>
>>
>>> 2015-07-27 23:58 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>> Hi Masashi,
>>>>
>>>> Recently we found that in FileMan, if we do
>>>>
>>>> 'inexistentFile' asFileEntry readStream
>>>>
>>>> we get an empty readStream.
>>>>
>>>> I think it is better to throw the #fileDoesNotExistException , as
>>>> FileDirectory did, and let the user handle the exception appropriately.
>>>> But
>>>> I would not want to break compatibility with FileMan, as the main purpose
>>>> of
>>>> FileMan is to give compatibility amongst dialects.
>>>>
>>>> Are there good reasons to avoid the exception? Should we add another
>>>> method,
>>>> besides #readStream when we want a readStream strictly on existing file
>>>> contents?
>>>>
>>>> Thanks,
>>>> Juan Vuletich
>>>>
>>>>
>>>>
>>>> On 6/14/2015 8:38 AM, Masashi UMEZAWA wrote:
>>>>> Hello Juan,
>>>>>
>>>>> Thank you for the patches and more tests! I'll adapt those updates for
>>>>> other FileMan ports.
>>>>>
>>>>> Best regards,
>>>>>
>>>>> 2015-06-07 12:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>>>> Hi Masashi,
>>>>>>
>>>>>> I was trying FileMan tests today and I saw they create some folders in
>>>>>> my
>>>>>> drive. The names looked a bit strange, so I took a closer look and
>>>>>> found
>>>>>> a
>>>>>> couple of bugs. At least on Windows, #testRecursiveDelete instead of
>>>>>> creating
>>>>>>          subDir/aaa/bbb/ccc/ddd/eee/fff/ggg/test1
>>>>>> it created
>>>>>>           subDir/bbb/ccc/eee/ggg/test!
>>>>>>
>>>>>> So I wrote a few more tests on the issues I saw, and teaked the code to
>>>>>> make
>>>>>> them pass. The result is attached, and I think is useful for all ports
>>>>>> of
>>>>>> FileMan.
>>>>>>
>>>>>> Thanks,
>>>>>> Juan Vuletich
>>>>>>
>>>>>> On 5/26/2015 11:34 PM, Masashi UMEZAWA wrote:
>>>>>>> Hi all,
>>>>>>>
>>>>>>> I think it is nice if FileMan is on the core package repository.
>>>>>>>
>>>>>>> FileMan for Cuis (and Squeak) has minimum dependencies to the existing
>>>>>>> FileDirectory and DirectoryEntry. FileMan selectively uses a few
>>>>>>> methods of them.
>>>>>>>
>>>>>>> So we can gradually adopt FileMan interfaces and trim the
>>>>>>> FileDirectory and DirectoryEntry's non-intuitive methods.
>>>>>>>
>>>>>>> Another way of cleaning-up the file-related classes is to port
>>>>>>> FileSystems to Cuis.
>>>>>>> But since Cuis is a lightweight Smalltalk dialect, FileSystems might
>>>>>>> be an overkill.
>>>>>>>
>>>>>>> Best regards,
>>>>>>>
>>>>>>> 2015-05-19 9:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>>>>>> Hi Folks,
>>>>>>>>
>>>>>>>> I apologize for talking before taking even a quick look, but anyway,
>>>>>>>> We'd
>>>>>>>> take a good look at this. And seriously consider replacing files
>>>>>>>> stuff
>>>>>>>> in
>>>>>>>> Cuis base. Or at least adopting it as a core package in our repo.
>>>>>>>>
>>>>>>>> Thoughts?
>>>>>>>>
>>>>>>>> Masashi-san: opinions?
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Juan Vuletich
>>>>>>>>
>>>>>>>>
>>>>>>>> On 5/17/2015 12:07 PM, H. Hirzel wrote:
>>>>>>>>> Below are the comments from the FileMan package.
>>>>>>>>>
>>>>>>>>> Question: How do you compare the FileMan package to the FileSystem
>>>>>>>>> package in Pharo?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L45
>>>>>>>>> I represent a single file entry (including directory).
>>>>>>>>> You can write data by #fileContents: , and read the data by
>>>>>>>>> #fileContents.
>>>>>>>>> ---
>>>>>>>>> mu 11/6/2006 20:21!
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L53
>>>>>>>>> I represent a single file directory.
>>>>>>>>> I implement various directory specific behaviors.
>>>>>>>>> You can write data by #at:put: , and read the data by #at:.
>>>>>>>>> ---
>>>>>>>>> mu 11/6/2006 20:21
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L63
>>>>>>>>> !FmFileIOAccessor commentStamp: '<historical>' prior: 0!
>>>>>>>>> I am an accessor to the low level file IO.
>>>>>>>>> You can extend/rewrite me if you port FileMan to other Smalltalk
>>>>>>>>> dialects.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L44
>>>>>>>>> !FmBackupDirectoryEntry commentStamp: 'mu 5/4/2007 23:26' prior: 0!
>>>>>>>>> This is a simple example for adding special behaviors to
>>>>>>>>> FmDirectoryEntry.
>>>>>>>>> I backup file contents automatically, while users are not conscious
>>>>>>>>> about
>>>>>>>>> that.
>>>>>>>>> Usage:
>>>>>>>>> dir := './withBackup' asDirectoryEntry: FmBackupDirectoryEntry.
>>>>>>>>> dir at: 'text' put: 'abc'.
>>>>>>>>> dir at: 'text' put: 'def'.
>>>>>>>>> (dir at: 'text') inspect. "def"
>>>>>>>>> (dir backupAt: 'text') inspect. "abc"
>>>>>>>>> ((dir / 'sub') at: 'text2' put: '123').
>>>>>>>>> ((dir / 'sub') at: 'text2' put: '456').
>>>>>>>>> ((dir / 'sub') at: 'text2') inspect. "456"
>>>>>>>>> ((dir / 'sub') backupAt: 'text2') inspect. "123"
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L63
>>>>>>>>> This is a simple example for adding special behaviors to
>>>>>>>>> FmDirectoryEntry.
>>>>>>>>> I put and get file contents as gzipped, while users are not
>>>>>>>>> conscious
>>>>>>>>> about that.
>>>>>>>>> Usage:
>>>>>>>>> | dir |
>>>>>>>>> dir := './gzipped2' asDirectoryEntry: FmGZipDirectoryEntry.
>>>>>>>>> dir binaryAt: 'bin' put: #(1 2 3 12 34 56) asByteArray.
>>>>>>>>> (dir binaryAt: 'bin') inspect.
>>>>>>>>> dir at: 'text' put: 'This will be gzipped'.
>>>>>>>>> (dir at: 'text') inspect.
>>>>>>>>> I would be useful for storing/loading big contents in a simple
>>>>>>>>> dictionary-like manner.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 5/17/15, H. Hirzel<[hidden email]>      wrote:
>>>>>>>>>> Hello Masashi-san
>>>>>>>>>>
>>>>>>>>>> I'd like to come back to your FileMan package
>>>>>>>>>>
>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>>>>>
>>>>>>>>>> and ask a question.
>>>>>>>>>>
>>>>>>>>>> Is this package a port from somewhere or did you write it from
>>>>>>>>>> scratch?
>>>>>>>>>>
>>>>>>>>>> Some background information is appreciated.
>>>>>>>>>>
>>>>>>>>>> There is no description
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L2
>>>>>>>>>>
>>>>>>>>>> Thank you in advance
>>>>>>>>>>
>>>>>>>>>> Hannes Hirzel
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 5/2/14, Masashi UMEZAWA<[hidden email]>      wrote:
>>>>>>>>>>> Hi all,
>>>>>>>>>>>
>>>>>>>>>>> Thank you for the kind words. I've just started Cuis on March, and
>>>>>>>>>>> I
>>>>>>>>>>> was impressed with its cleanness, simplicity, etc.
>>>>>>>>>>> So I did a introductory presentation at Tokyo Smalltalkers
>>>>>>>>>>> meeting.
>>>>>>>>>>> It
>>>>>>>>>>> was successful.
>>>>>>>>>>> Now I'm planning to port Folktale (telnet-base object shell), and
>>>>>>>>>>> SIXX
>>>>>>>>>>> to Cuis. My pace maybe slow, but please stay tuned. ;)
>>>>>>>>>>>
>>>>>>>>>>> Best regards,
>>>>>>>>>>>
>>>>>>>>>>> 2014-05-02 1:05 GMT+09:00 Germán Arduino<[hidden email]>:
>>>>>>>>>>>> Wow, I was completely unaware of Masashi working in Cuis! Welcome
>>>>>>>>>>>> aboard!!
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> 2014-05-01 12:19 GMT-03:00 H. Hirzel<[hidden email]>:
>>>>>>>>>>>>
>>>>>>>>>>>>> Thank you for the link to  Masashi Umezawa's presentation.
>>>>>>>>>>>>>
>>>>>>>>>>>>> It is from 2014 and talks about
>>>>>>>>>>>>>
>>>>>>>>>>>>> - the number of classes compared to Squeak and Pharo
>>>>>>>>>>>>> - the size of Morphic -- Morph allSelectors size "=>      502"
>>>>>>>>>>>>> - something I do not fully get about instance variables
>>>>>>>>>>>>>           'bounds owner submorphs fullBounds color extension'
>>>>>>>>>>>>>           versus
>>>>>>>>>>>>>          'owner submorphs location layoutNeeded layoutSpec
>>>>>>>>>>>>> properties'
>>>>>>>>>>>>> - layoutSpec
>>>>>>>>>>>>> - PackageInfo
>>>>>>>>>>>>> - version control with git
>>>>>>>>>>>>> - Feature require: '<PackageName>'.
>>>>>>>>>>>>> - your Unicode package
>>>>>>>>>>>>> https://github.com/KenDickey/Cuis-Smalltalk-Unicode
>>>>>>>>>>>>> -
>>>>>>>>>>>>>
>>>>>>>>>>>>> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-StyledTextEditor
>>>>>>>>>>>>> - How to query for other Cuis-Smalltalk repositories
>>>>>>>>>>>>>                   https://github.com/search?q=cuis-smalltalk
>>>>>>>>>>>>>
>>>>>>>>>>>>> All things which we will include Cuis documentation effort.
>>>>>>>>>>>>>
>>>>>>>>>>>>> --Hannes
>>>>>>>>>>>>>
>>>>>>>>>>>>> On 5/1/14, Ken Dickey<[hidden email]>      wrote:
>>>>>>>>>>>>>> On Thu, 1 May 2014 07:28:54 +0000
>>>>>>>>>>>>>> "H. Hirzel"<[hidden email]>      wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> A noteworthy effort
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>            https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>>>>>>>>> Yes.  Masashi Umezawa is the man in Japan!
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> He should introduce himself.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> He gave a talk about Cuis at the 63rd Smalltalkers' meeting in
>>>>>>>>>>>>>> Tokyo:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> http://www.smalltalk-users.jp/Home/gao-zhi/dai63kaismalltalkbenkyoukai/shiryou
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Masashi has ported several packages to CUis.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Because of Unicode interest, I was made aware that recent font
>>>>>>>>>>>>>> tweaks
>>>>>>>>>>>>>> have
>>>>>>>>>>>>>> broken my Unicode package in the latest Cuis versions.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Masashi-san, would you care to tell us about yourself and what
>>>>>>>>>>>>>> people
>>>>>>>>>>>>>> there
>>>>>>>>>>>>>> think about Cuis?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> -KenD
>>>>>>>>> _______________________________________________
>>>>>>>>> Cuis mailing list
>>>>>>>>> [hidden email]
>>>>>>>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>>>>>>>>
>
>


_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Reply | Threaded
Open this post in threaded view
|

Re: Wrapper for file access in different Smalltalk dialects

Masashi UMEZAWA-3
Hi Juan,

How about adding #tryWriteStream and #tryWriteStreamIfError: for consistency.
Currently FmFileEntry has #writeStreamConfirming, but it is a bit
ad-hoc. It can be renamed to #tryWriteStream.

So we can write:

[ writeStream := 'foo.txt' asFileEntry tryWriteStream ] on:
FmFileIOAccessor fileExistsException do: [:ex | ].

writeStream := 'foo.txt' asFileEntry tryWriteStreamIfError: [:ex | ].

Best regards,

2015-08-24 22:42 GMT+09:00 Juan Vuletich <[hidden email]>:

> Hi Masashi,
>
> Ok. #tryReadStream is reasonable. Or maybe #readStreamOrFail.
>
> Any other suggestion? Preferences?
>
> Thanks,
> Juan Vuletich
>
>
> On 8/22/2015 10:15 AM, Masashi UMEZAWA wrote:
>>
>> Hi Juan,
>>
>> Yes, I'm concerning about backward-compatibility.
>> FmFileEntry>>#readStream has been used long. So I would prefer just
>> adding new APIs.
>>
>> Best regards,
>>
>>> I guess I would prefer #readStream for the basic, raising exceptions api,
>>> and maybe #readStreamNoFail or #readStreamOrEmpty or such for the
>>> "exception
>>> eating api" . In any case it is your call, I understand there is back
>>> compatibility to care about, and I'll be happy with your choice.
>>>
>>> Cheers,
>>> Juan Vuletich
>>>
>>>
>>>> 2015-07-27 23:58 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>>>
>>>>> Hi Masashi,
>>>>>
>>>>> Recently we found that in FileMan, if we do
>>>>>
>>>>> 'inexistentFile' asFileEntry readStream
>>>>>
>>>>> we get an empty readStream.
>>>>>
>>>>> I think it is better to throw the #fileDoesNotExistException , as
>>>>> FileDirectory did, and let the user handle the exception appropriately.
>>>>> But
>>>>> I would not want to break compatibility with FileMan, as the main
>>>>> purpose
>>>>> of
>>>>> FileMan is to give compatibility amongst dialects.
>>>>>
>>>>> Are there good reasons to avoid the exception? Should we add another
>>>>> method,
>>>>> besides #readStream when we want a readStream strictly on existing file
>>>>> contents?
>>>>>
>>>>> Thanks,
>>>>> Juan Vuletich
>>>>>
>>>>>
>>>>>
>>>>> On 6/14/2015 8:38 AM, Masashi UMEZAWA wrote:
>>>>>>
>>>>>> Hello Juan,
>>>>>>
>>>>>> Thank you for the patches and more tests! I'll adapt those updates for
>>>>>> other FileMan ports.
>>>>>>
>>>>>> Best regards,
>>>>>>
>>>>>> 2015-06-07 12:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>>>>>
>>>>>>> Hi Masashi,
>>>>>>>
>>>>>>> I was trying FileMan tests today and I saw they create some folders
>>>>>>> in
>>>>>>> my
>>>>>>> drive. The names looked a bit strange, so I took a closer look and
>>>>>>> found
>>>>>>> a
>>>>>>> couple of bugs. At least on Windows, #testRecursiveDelete instead of
>>>>>>> creating
>>>>>>>          subDir/aaa/bbb/ccc/ddd/eee/fff/ggg/test1
>>>>>>> it created
>>>>>>>           subDir/bbb/ccc/eee/ggg/test!
>>>>>>>
>>>>>>> So I wrote a few more tests on the issues I saw, and teaked the code
>>>>>>> to
>>>>>>> make
>>>>>>> them pass. The result is attached, and I think is useful for all
>>>>>>> ports
>>>>>>> of
>>>>>>> FileMan.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Juan Vuletich
>>>>>>>
>>>>>>> On 5/26/2015 11:34 PM, Masashi UMEZAWA wrote:
>>>>>>>>
>>>>>>>> Hi all,
>>>>>>>>
>>>>>>>> I think it is nice if FileMan is on the core package repository.
>>>>>>>>
>>>>>>>> FileMan for Cuis (and Squeak) has minimum dependencies to the
>>>>>>>> existing
>>>>>>>> FileDirectory and DirectoryEntry. FileMan selectively uses a few
>>>>>>>> methods of them.
>>>>>>>>
>>>>>>>> So we can gradually adopt FileMan interfaces and trim the
>>>>>>>> FileDirectory and DirectoryEntry's non-intuitive methods.
>>>>>>>>
>>>>>>>> Another way of cleaning-up the file-related classes is to port
>>>>>>>> FileSystems to Cuis.
>>>>>>>> But since Cuis is a lightweight Smalltalk dialect, FileSystems might
>>>>>>>> be an overkill.
>>>>>>>>
>>>>>>>> Best regards,
>>>>>>>>
>>>>>>>> 2015-05-19 9:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>>>>>>>
>>>>>>>>> Hi Folks,
>>>>>>>>>
>>>>>>>>> I apologize for talking before taking even a quick look, but
>>>>>>>>> anyway,
>>>>>>>>> We'd
>>>>>>>>> take a good look at this. And seriously consider replacing files
>>>>>>>>> stuff
>>>>>>>>> in
>>>>>>>>> Cuis base. Or at least adopting it as a core package in our repo.
>>>>>>>>>
>>>>>>>>> Thoughts?
>>>>>>>>>
>>>>>>>>> Masashi-san: opinions?
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Juan Vuletich
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 5/17/2015 12:07 PM, H. Hirzel wrote:
>>>>>>>>>>
>>>>>>>>>> Below are the comments from the FileMan package.
>>>>>>>>>>
>>>>>>>>>> Question: How do you compare the FileMan package to the FileSystem
>>>>>>>>>> package in Pharo?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L45
>>>>>>>>>> I represent a single file entry (including directory).
>>>>>>>>>> You can write data by #fileContents: , and read the data by
>>>>>>>>>> #fileContents.
>>>>>>>>>> ---
>>>>>>>>>> mu 11/6/2006 20:21!
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L53
>>>>>>>>>> I represent a single file directory.
>>>>>>>>>> I implement various directory specific behaviors.
>>>>>>>>>> You can write data by #at:put: , and read the data by #at:.
>>>>>>>>>> ---
>>>>>>>>>> mu 11/6/2006 20:21
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L63
>>>>>>>>>> !FmFileIOAccessor commentStamp: '<historical>' prior: 0!
>>>>>>>>>> I am an accessor to the low level file IO.
>>>>>>>>>> You can extend/rewrite me if you port FileMan to other Smalltalk
>>>>>>>>>> dialects.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L44
>>>>>>>>>> !FmBackupDirectoryEntry commentStamp: 'mu 5/4/2007 23:26' prior:
>>>>>>>>>> 0!
>>>>>>>>>> This is a simple example for adding special behaviors to
>>>>>>>>>> FmDirectoryEntry.
>>>>>>>>>> I backup file contents automatically, while users are not
>>>>>>>>>> conscious
>>>>>>>>>> about
>>>>>>>>>> that.
>>>>>>>>>> Usage:
>>>>>>>>>> dir := './withBackup' asDirectoryEntry: FmBackupDirectoryEntry.
>>>>>>>>>> dir at: 'text' put: 'abc'.
>>>>>>>>>> dir at: 'text' put: 'def'.
>>>>>>>>>> (dir at: 'text') inspect. "def"
>>>>>>>>>> (dir backupAt: 'text') inspect. "abc"
>>>>>>>>>> ((dir / 'sub') at: 'text2' put: '123').
>>>>>>>>>> ((dir / 'sub') at: 'text2' put: '456').
>>>>>>>>>> ((dir / 'sub') at: 'text2') inspect. "456"
>>>>>>>>>> ((dir / 'sub') backupAt: 'text2') inspect. "123"
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L63
>>>>>>>>>> This is a simple example for adding special behaviors to
>>>>>>>>>> FmDirectoryEntry.
>>>>>>>>>> I put and get file contents as gzipped, while users are not
>>>>>>>>>> conscious
>>>>>>>>>> about that.
>>>>>>>>>> Usage:
>>>>>>>>>> | dir |
>>>>>>>>>> dir := './gzipped2' asDirectoryEntry: FmGZipDirectoryEntry.
>>>>>>>>>> dir binaryAt: 'bin' put: #(1 2 3 12 34 56) asByteArray.
>>>>>>>>>> (dir binaryAt: 'bin') inspect.
>>>>>>>>>> dir at: 'text' put: 'This will be gzipped'.
>>>>>>>>>> (dir at: 'text') inspect.
>>>>>>>>>> I would be useful for storing/loading big contents in a simple
>>>>>>>>>> dictionary-like manner.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 5/17/15, H. Hirzel<[hidden email]>      wrote:
>>>>>>>>>>>
>>>>>>>>>>> Hello Masashi-san
>>>>>>>>>>>
>>>>>>>>>>> I'd like to come back to your FileMan package
>>>>>>>>>>>
>>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>>>>>>
>>>>>>>>>>> and ask a question.
>>>>>>>>>>>
>>>>>>>>>>> Is this package a port from somewhere or did you write it from
>>>>>>>>>>> scratch?
>>>>>>>>>>>
>>>>>>>>>>> Some background information is appreciated.
>>>>>>>>>>>
>>>>>>>>>>> There is no description
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L2
>>>>>>>>>>>
>>>>>>>>>>> Thank you in advance
>>>>>>>>>>>
>>>>>>>>>>> Hannes Hirzel
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On 5/2/14, Masashi UMEZAWA<[hidden email]>      wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Hi all,
>>>>>>>>>>>>
>>>>>>>>>>>> Thank you for the kind words. I've just started Cuis on March,
>>>>>>>>>>>> and
>>>>>>>>>>>> I
>>>>>>>>>>>> was impressed with its cleanness, simplicity, etc.
>>>>>>>>>>>> So I did a introductory presentation at Tokyo Smalltalkers
>>>>>>>>>>>> meeting.
>>>>>>>>>>>> It
>>>>>>>>>>>> was successful.
>>>>>>>>>>>> Now I'm planning to port Folktale (telnet-base object shell),
>>>>>>>>>>>> and
>>>>>>>>>>>> SIXX
>>>>>>>>>>>> to Cuis. My pace maybe slow, but please stay tuned. ;)
>>>>>>>>>>>>
>>>>>>>>>>>> Best regards,
>>>>>>>>>>>>
>>>>>>>>>>>> 2014-05-02 1:05 GMT+09:00 Germán Arduino<[hidden email]>:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Wow, I was completely unaware of Masashi working in Cuis!
>>>>>>>>>>>>> Welcome
>>>>>>>>>>>>> aboard!!
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> 2014-05-01 12:19 GMT-03:00 H. Hirzel<[hidden email]>:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thank you for the link to  Masashi Umezawa's presentation.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> It is from 2014 and talks about
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> - the number of classes compared to Squeak and Pharo
>>>>>>>>>>>>>> - the size of Morphic -- Morph allSelectors size "=>      502"
>>>>>>>>>>>>>> - something I do not fully get about instance variables
>>>>>>>>>>>>>>           'bounds owner submorphs fullBounds color extension'
>>>>>>>>>>>>>>           versus
>>>>>>>>>>>>>>          'owner submorphs location layoutNeeded layoutSpec
>>>>>>>>>>>>>> properties'
>>>>>>>>>>>>>> - layoutSpec
>>>>>>>>>>>>>> - PackageInfo
>>>>>>>>>>>>>> - version control with git
>>>>>>>>>>>>>> - Feature require: '<PackageName>'.
>>>>>>>>>>>>>> - your Unicode package
>>>>>>>>>>>>>> https://github.com/KenDickey/Cuis-Smalltalk-Unicode
>>>>>>>>>>>>>> -
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-StyledTextEditor
>>>>>>>>>>>>>> - How to query for other Cuis-Smalltalk repositories
>>>>>>>>>>>>>>                   https://github.com/search?q=cuis-smalltalk
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> All things which we will include Cuis documentation effort.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> --Hannes
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On 5/1/14, Ken Dickey<[hidden email]>      wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Thu, 1 May 2014 07:28:54 +0000
>>>>>>>>>>>>>>> "H. Hirzel"<[hidden email]>      wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> A noteworthy effort
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>            https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Yes.  Masashi Umezawa is the man in Japan!
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> He should introduce himself.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> He gave a talk about Cuis at the 63rd Smalltalkers' meeting
>>>>>>>>>>>>>>> in
>>>>>>>>>>>>>>> Tokyo:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> http://www.smalltalk-users.jp/Home/gao-zhi/dai63kaismalltalkbenkyoukai/shiryou
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Masashi has ported several packages to CUis.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Because of Unicode interest, I was made aware that recent
>>>>>>>>>>>>>>> font
>>>>>>>>>>>>>>> tweaks
>>>>>>>>>>>>>>> have
>>>>>>>>>>>>>>> broken my Unicode package in the latest Cuis versions.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Masashi-san, would you care to tell us about yourself and
>>>>>>>>>>>>>>> what
>>>>>>>>>>>>>>> people
>>>>>>>>>>>>>>> there
>>>>>>>>>>>>>>> think about Cuis?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> -KenD
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Cuis mailing list
>>>>>>>>>> [hidden email]
>>>>>>>>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>>>>>>>>>
>>>>>>>>>
>>
>>
>



--
[:masashi | ^umezawa]

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Reply | Threaded
Open this post in threaded view
|

Re: Wrapper for file access in different Smalltalk dialects

Juan Vuletich-4
Hi Masashi,

Looks great to me. Please let us know when you update
https://github.com/mumez/FileMan (or
https://github.com/mumez/Cuis-Smalltalk-FileMan ), so we follow. Or post
code to the mail list. As you prefer.

Thanks!
Juan Vuletich

On 8/27/2015 12:24 PM, Masashi UMEZAWA wrote:

> Hi Juan,
>
> How about adding #tryWriteStream and #tryWriteStreamIfError: for consistency.
> Currently FmFileEntry has #writeStreamConfirming, but it is a bit
> ad-hoc. It can be renamed to #tryWriteStream.
>
> So we can write:
>
> [ writeStream := 'foo.txt' asFileEntry tryWriteStream ] on:
> FmFileIOAccessor fileExistsException do: [:ex | ].
>
> writeStream := 'foo.txt' asFileEntry tryWriteStreamIfError: [:ex | ].
>
> Best regards,
>
> 2015-08-24 22:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>> Hi Masashi,
>>
>> Ok. #tryReadStream is reasonable. Or maybe #readStreamOrFail.
>>
>> Any other suggestion? Preferences?
>>
>> Thanks,
>> Juan Vuletich
>>
>>
>> On 8/22/2015 10:15 AM, Masashi UMEZAWA wrote:
>>> Hi Juan,
>>>
>>> Yes, I'm concerning about backward-compatibility.
>>> FmFileEntry>>#readStream has been used long. So I would prefer just
>>> adding new APIs.
>>>
>>> Best regards,
>>>
>>>> I guess I would prefer #readStream for the basic, raising exceptions api,
>>>> and maybe #readStreamNoFail or #readStreamOrEmpty or such for the
>>>> "exception
>>>> eating api" . In any case it is your call, I understand there is back
>>>> compatibility to care about, and I'll be happy with your choice.
>>>>
>>>> Cheers,
>>>> Juan Vuletich
>>>>
>>>>
>>>>> 2015-07-27 23:58 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>>>> Hi Masashi,
>>>>>>
>>>>>> Recently we found that in FileMan, if we do
>>>>>>
>>>>>> 'inexistentFile' asFileEntry readStream
>>>>>>
>>>>>> we get an empty readStream.
>>>>>>
>>>>>> I think it is better to throw the #fileDoesNotExistException , as
>>>>>> FileDirectory did, and let the user handle the exception appropriately.
>>>>>> But
>>>>>> I would not want to break compatibility with FileMan, as the main
>>>>>> purpose
>>>>>> of
>>>>>> FileMan is to give compatibility amongst dialects.
>>>>>>
>>>>>> Are there good reasons to avoid the exception? Should we add another
>>>>>> method,
>>>>>> besides #readStream when we want a readStream strictly on existing file
>>>>>> contents?
>>>>>>
>>>>>> Thanks,
>>>>>> Juan Vuletich
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 6/14/2015 8:38 AM, Masashi UMEZAWA wrote:
>>>>>>> Hello Juan,
>>>>>>>
>>>>>>> Thank you for the patches and more tests! I'll adapt those updates for
>>>>>>> other FileMan ports.
>>>>>>>
>>>>>>> Best regards,
>>>>>>>
>>>>>>> 2015-06-07 12:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>>>>>> Hi Masashi,
>>>>>>>>
>>>>>>>> I was trying FileMan tests today and I saw they create some folders
>>>>>>>> in
>>>>>>>> my
>>>>>>>> drive. The names looked a bit strange, so I took a closer look and
>>>>>>>> found
>>>>>>>> a
>>>>>>>> couple of bugs. At least on Windows, #testRecursiveDelete instead of
>>>>>>>> creating
>>>>>>>>           subDir/aaa/bbb/ccc/ddd/eee/fff/ggg/test1
>>>>>>>> it created
>>>>>>>>            subDir/bbb/ccc/eee/ggg/test!
>>>>>>>>
>>>>>>>> So I wrote a few more tests on the issues I saw, and teaked the code
>>>>>>>> to
>>>>>>>> make
>>>>>>>> them pass. The result is attached, and I think is useful for all
>>>>>>>> ports
>>>>>>>> of
>>>>>>>> FileMan.
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Juan Vuletich
>>>>>>>>
>>>>>>>> On 5/26/2015 11:34 PM, Masashi UMEZAWA wrote:
>>>>>>>>> Hi all,
>>>>>>>>>
>>>>>>>>> I think it is nice if FileMan is on the core package repository.
>>>>>>>>>
>>>>>>>>> FileMan for Cuis (and Squeak) has minimum dependencies to the
>>>>>>>>> existing
>>>>>>>>> FileDirectory and DirectoryEntry. FileMan selectively uses a few
>>>>>>>>> methods of them.
>>>>>>>>>
>>>>>>>>> So we can gradually adopt FileMan interfaces and trim the
>>>>>>>>> FileDirectory and DirectoryEntry's non-intuitive methods.
>>>>>>>>>
>>>>>>>>> Another way of cleaning-up the file-related classes is to port
>>>>>>>>> FileSystems to Cuis.
>>>>>>>>> But since Cuis is a lightweight Smalltalk dialect, FileSystems might
>>>>>>>>> be an overkill.
>>>>>>>>>
>>>>>>>>> Best regards,
>>>>>>>>>
>>>>>>>>> 2015-05-19 9:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>>>>>>>> Hi Folks,
>>>>>>>>>>
>>>>>>>>>> I apologize for talking before taking even a quick look, but
>>>>>>>>>> anyway,
>>>>>>>>>> We'd
>>>>>>>>>> take a good look at this. And seriously consider replacing files
>>>>>>>>>> stuff
>>>>>>>>>> in
>>>>>>>>>> Cuis base. Or at least adopting it as a core package in our repo.
>>>>>>>>>>
>>>>>>>>>> Thoughts?
>>>>>>>>>>
>>>>>>>>>> Masashi-san: opinions?
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>> Juan Vuletich
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 5/17/2015 12:07 PM, H. Hirzel wrote:
>>>>>>>>>>> Below are the comments from the FileMan package.
>>>>>>>>>>>
>>>>>>>>>>> Question: How do you compare the FileMan package to the FileSystem
>>>>>>>>>>> package in Pharo?
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L45
>>>>>>>>>>> I represent a single file entry (including directory).
>>>>>>>>>>> You can write data by #fileContents: , and read the data by
>>>>>>>>>>> #fileContents.
>>>>>>>>>>> ---
>>>>>>>>>>> mu 11/6/2006 20:21!
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L53
>>>>>>>>>>> I represent a single file directory.
>>>>>>>>>>> I implement various directory specific behaviors.
>>>>>>>>>>> You can write data by #at:put: , and read the data by #at:.
>>>>>>>>>>> ---
>>>>>>>>>>> mu 11/6/2006 20:21
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L63
>>>>>>>>>>> !FmFileIOAccessor commentStamp: '<historical>' prior: 0!
>>>>>>>>>>> I am an accessor to the low level file IO.
>>>>>>>>>>> You can extend/rewrite me if you port FileMan to other Smalltalk
>>>>>>>>>>> dialects.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L44
>>>>>>>>>>> !FmBackupDirectoryEntry commentStamp: 'mu 5/4/2007 23:26' prior:
>>>>>>>>>>> 0!
>>>>>>>>>>> This is a simple example for adding special behaviors to
>>>>>>>>>>> FmDirectoryEntry.
>>>>>>>>>>> I backup file contents automatically, while users are not
>>>>>>>>>>> conscious
>>>>>>>>>>> about
>>>>>>>>>>> that.
>>>>>>>>>>> Usage:
>>>>>>>>>>> dir := './withBackup' asDirectoryEntry: FmBackupDirectoryEntry.
>>>>>>>>>>> dir at: 'text' put: 'abc'.
>>>>>>>>>>> dir at: 'text' put: 'def'.
>>>>>>>>>>> (dir at: 'text') inspect. "def"
>>>>>>>>>>> (dir backupAt: 'text') inspect. "abc"
>>>>>>>>>>> ((dir / 'sub') at: 'text2' put: '123').
>>>>>>>>>>> ((dir / 'sub') at: 'text2' put: '456').
>>>>>>>>>>> ((dir / 'sub') at: 'text2') inspect. "456"
>>>>>>>>>>> ((dir / 'sub') backupAt: 'text2') inspect. "123"
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L63
>>>>>>>>>>> This is a simple example for adding special behaviors to
>>>>>>>>>>> FmDirectoryEntry.
>>>>>>>>>>> I put and get file contents as gzipped, while users are not
>>>>>>>>>>> conscious
>>>>>>>>>>> about that.
>>>>>>>>>>> Usage:
>>>>>>>>>>> | dir |
>>>>>>>>>>> dir := './gzipped2' asDirectoryEntry: FmGZipDirectoryEntry.
>>>>>>>>>>> dir binaryAt: 'bin' put: #(1 2 3 12 34 56) asByteArray.
>>>>>>>>>>> (dir binaryAt: 'bin') inspect.
>>>>>>>>>>> dir at: 'text' put: 'This will be gzipped'.
>>>>>>>>>>> (dir at: 'text') inspect.
>>>>>>>>>>> I would be useful for storing/loading big contents in a simple
>>>>>>>>>>> dictionary-like manner.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On 5/17/15, H. Hirzel<[hidden email]>       wrote:
>>>>>>>>>>>> Hello Masashi-san
>>>>>>>>>>>>
>>>>>>>>>>>> I'd like to come back to your FileMan package
>>>>>>>>>>>>
>>>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>>>>>>>
>>>>>>>>>>>> and ask a question.
>>>>>>>>>>>>
>>>>>>>>>>>> Is this package a port from somewhere or did you write it from
>>>>>>>>>>>> scratch?
>>>>>>>>>>>>
>>>>>>>>>>>> Some background information is appreciated.
>>>>>>>>>>>>
>>>>>>>>>>>> There is no description
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L2
>>>>>>>>>>>>
>>>>>>>>>>>> Thank you in advance
>>>>>>>>>>>>
>>>>>>>>>>>> Hannes Hirzel
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On 5/2/14, Masashi UMEZAWA<[hidden email]>       wrote:
>>>>>>>>>>>>> Hi all,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thank you for the kind words. I've just started Cuis on March,
>>>>>>>>>>>>> and
>>>>>>>>>>>>> I
>>>>>>>>>>>>> was impressed with its cleanness, simplicity, etc.
>>>>>>>>>>>>> So I did a introductory presentation at Tokyo Smalltalkers
>>>>>>>>>>>>> meeting.
>>>>>>>>>>>>> It
>>>>>>>>>>>>> was successful.
>>>>>>>>>>>>> Now I'm planning to port Folktale (telnet-base object shell),
>>>>>>>>>>>>> and
>>>>>>>>>>>>> SIXX
>>>>>>>>>>>>> to Cuis. My pace maybe slow, but please stay tuned. ;)
>>>>>>>>>>>>>
>>>>>>>>>>>>> Best regards,
>>>>>>>>>>>>>
>>>>>>>>>>>>> 2014-05-02 1:05 GMT+09:00 Germán Arduino<[hidden email]>:
>>>>>>>>>>>>>> Wow, I was completely unaware of Masashi working in Cuis!
>>>>>>>>>>>>>> Welcome
>>>>>>>>>>>>>> aboard!!
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 2014-05-01 12:19 GMT-03:00 H. Hirzel<[hidden email]>:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Thank you for the link to  Masashi Umezawa's presentation.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> It is from 2014 and talks about
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> - the number of classes compared to Squeak and Pharo
>>>>>>>>>>>>>>> - the size of Morphic -- Morph allSelectors size "=>       502"
>>>>>>>>>>>>>>> - something I do not fully get about instance variables
>>>>>>>>>>>>>>>            'bounds owner submorphs fullBounds color extension'
>>>>>>>>>>>>>>>            versus
>>>>>>>>>>>>>>>           'owner submorphs location layoutNeeded layoutSpec
>>>>>>>>>>>>>>> properties'
>>>>>>>>>>>>>>> - layoutSpec
>>>>>>>>>>>>>>> - PackageInfo
>>>>>>>>>>>>>>> - version control with git
>>>>>>>>>>>>>>> - Feature require: '<PackageName>'.
>>>>>>>>>>>>>>> - your Unicode package
>>>>>>>>>>>>>>> https://github.com/KenDickey/Cuis-Smalltalk-Unicode
>>>>>>>>>>>>>>> -
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-StyledTextEditor
>>>>>>>>>>>>>>> - How to query for other Cuis-Smalltalk repositories
>>>>>>>>>>>>>>>                    https://github.com/search?q=cuis-smalltalk
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> All things which we will include Cuis documentation effort.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> --Hannes
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On 5/1/14, Ken Dickey<[hidden email]>       wrote:
>>>>>>>>>>>>>>>> On Thu, 1 May 2014 07:28:54 +0000
>>>>>>>>>>>>>>>> "H. Hirzel"<[hidden email]>       wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> A noteworthy effort
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>             https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>>>>>>>>>>> Yes.  Masashi Umezawa is the man in Japan!
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> He should introduce himself.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> He gave a talk about Cuis at the 63rd Smalltalkers' meeting
>>>>>>>>>>>>>>>> in
>>>>>>>>>>>>>>>> Tokyo:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> http://www.smalltalk-users.jp/Home/gao-zhi/dai63kaismalltalkbenkyoukai/shiryou
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Masashi has ported several packages to CUis.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Because of Unicode interest, I was made aware that recent
>>>>>>>>>>>>>>>> font
>>>>>>>>>>>>>>>> tweaks
>>>>>>>>>>>>>>>> have
>>>>>>>>>>>>>>>> broken my Unicode package in the latest Cuis versions.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Masashi-san, would you care to tell us about yourself and
>>>>>>>>>>>>>>>> what
>>>>>>>>>>>>>>>> people
>>>>>>>>>>>>>>>> there
>>>>>>>>>>>>>>>> think about Cuis?
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> -KenD
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Cuis mailing list
>>>>>>>>>>> [hidden email]
>>>>>>>>>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>>>>>>>>>>
>>>
>
>


_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
Reply | Threaded
Open this post in threaded view
|

Re: Wrapper for file access in different Smalltalk dialects

Masashi UMEZAWA-3
Hi Juan,

I've updated Cuis-Smalltalk-FileMan repository.
https://github.com/mumez/Cuis-Smalltalk-FileMan

I've added FmFileEntry>>tryReadStream, tryWriteStream,
readStreamIfError:, writeStreamIfError: and unit tests for them.

All tests were green on Windows. Please check.

Best regards,

2015-08-31 22:20 GMT+09:00 Juan Vuletich <[hidden email]>:

> Hi Masashi,
>
> Looks great to me. Please let us know when you update
> https://github.com/mumez/FileMan (or
> https://github.com/mumez/Cuis-Smalltalk-FileMan ), so we follow. Or post
> code to the mail list. As you prefer.
>
> Thanks!
> Juan Vuletich
>
>
> On 8/27/2015 12:24 PM, Masashi UMEZAWA wrote:
>>
>> Hi Juan,
>>
>> How about adding #tryWriteStream and #tryWriteStreamIfError: for
>> consistency.
>> Currently FmFileEntry has #writeStreamConfirming, but it is a bit
>> ad-hoc. It can be renamed to #tryWriteStream.
>>
>> So we can write:
>>
>> [ writeStream := 'foo.txt' asFileEntry tryWriteStream ] on:
>> FmFileIOAccessor fileExistsException do: [:ex | ].
>>
>> writeStream := 'foo.txt' asFileEntry tryWriteStreamIfError: [:ex | ].
>>
>> Best regards,
>>
>> 2015-08-24 22:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>
>>> Hi Masashi,
>>>
>>> Ok. #tryReadStream is reasonable. Or maybe #readStreamOrFail.
>>>
>>> Any other suggestion? Preferences?
>>>
>>> Thanks,
>>> Juan Vuletich
>>>
>>>
>>> On 8/22/2015 10:15 AM, Masashi UMEZAWA wrote:
>>>>
>>>> Hi Juan,
>>>>
>>>> Yes, I'm concerning about backward-compatibility.
>>>> FmFileEntry>>#readStream has been used long. So I would prefer just
>>>> adding new APIs.
>>>>
>>>> Best regards,
>>>>
>>>>> I guess I would prefer #readStream for the basic, raising exceptions
>>>>> api,
>>>>> and maybe #readStreamNoFail or #readStreamOrEmpty or such for the
>>>>> "exception
>>>>> eating api" . In any case it is your call, I understand there is back
>>>>> compatibility to care about, and I'll be happy with your choice.
>>>>>
>>>>> Cheers,
>>>>> Juan Vuletich
>>>>>
>>>>>
>>>>>> 2015-07-27 23:58 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>>>>>
>>>>>>> Hi Masashi,
>>>>>>>
>>>>>>> Recently we found that in FileMan, if we do
>>>>>>>
>>>>>>> 'inexistentFile' asFileEntry readStream
>>>>>>>
>>>>>>> we get an empty readStream.
>>>>>>>
>>>>>>> I think it is better to throw the #fileDoesNotExistException , as
>>>>>>> FileDirectory did, and let the user handle the exception
>>>>>>> appropriately.
>>>>>>> But
>>>>>>> I would not want to break compatibility with FileMan, as the main
>>>>>>> purpose
>>>>>>> of
>>>>>>> FileMan is to give compatibility amongst dialects.
>>>>>>>
>>>>>>> Are there good reasons to avoid the exception? Should we add another
>>>>>>> method,
>>>>>>> besides #readStream when we want a readStream strictly on existing
>>>>>>> file
>>>>>>> contents?
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Juan Vuletich
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 6/14/2015 8:38 AM, Masashi UMEZAWA wrote:
>>>>>>>>
>>>>>>>> Hello Juan,
>>>>>>>>
>>>>>>>> Thank you for the patches and more tests! I'll adapt those updates
>>>>>>>> for
>>>>>>>> other FileMan ports.
>>>>>>>>
>>>>>>>> Best regards,
>>>>>>>>
>>>>>>>> 2015-06-07 12:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>>>>>>>
>>>>>>>>> Hi Masashi,
>>>>>>>>>
>>>>>>>>> I was trying FileMan tests today and I saw they create some folders
>>>>>>>>> in
>>>>>>>>> my
>>>>>>>>> drive. The names looked a bit strange, so I took a closer look and
>>>>>>>>> found
>>>>>>>>> a
>>>>>>>>> couple of bugs. At least on Windows, #testRecursiveDelete instead
>>>>>>>>> of
>>>>>>>>> creating
>>>>>>>>>           subDir/aaa/bbb/ccc/ddd/eee/fff/ggg/test1
>>>>>>>>> it created
>>>>>>>>>            subDir/bbb/ccc/eee/ggg/test!
>>>>>>>>>
>>>>>>>>> So I wrote a few more tests on the issues I saw, and teaked the
>>>>>>>>> code
>>>>>>>>> to
>>>>>>>>> make
>>>>>>>>> them pass. The result is attached, and I think is useful for all
>>>>>>>>> ports
>>>>>>>>> of
>>>>>>>>> FileMan.
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Juan Vuletich
>>>>>>>>>
>>>>>>>>> On 5/26/2015 11:34 PM, Masashi UMEZAWA wrote:
>>>>>>>>>>
>>>>>>>>>> Hi all,
>>>>>>>>>>
>>>>>>>>>> I think it is nice if FileMan is on the core package repository.
>>>>>>>>>>
>>>>>>>>>> FileMan for Cuis (and Squeak) has minimum dependencies to the
>>>>>>>>>> existing
>>>>>>>>>> FileDirectory and DirectoryEntry. FileMan selectively uses a few
>>>>>>>>>> methods of them.
>>>>>>>>>>
>>>>>>>>>> So we can gradually adopt FileMan interfaces and trim the
>>>>>>>>>> FileDirectory and DirectoryEntry's non-intuitive methods.
>>>>>>>>>>
>>>>>>>>>> Another way of cleaning-up the file-related classes is to port
>>>>>>>>>> FileSystems to Cuis.
>>>>>>>>>> But since Cuis is a lightweight Smalltalk dialect, FileSystems
>>>>>>>>>> might
>>>>>>>>>> be an overkill.
>>>>>>>>>>
>>>>>>>>>> Best regards,
>>>>>>>>>>
>>>>>>>>>> 2015-05-19 9:42 GMT+09:00 Juan Vuletich<[hidden email]>:
>>>>>>>>>>>
>>>>>>>>>>> Hi Folks,
>>>>>>>>>>>
>>>>>>>>>>> I apologize for talking before taking even a quick look, but
>>>>>>>>>>> anyway,
>>>>>>>>>>> We'd
>>>>>>>>>>> take a good look at this. And seriously consider replacing files
>>>>>>>>>>> stuff
>>>>>>>>>>> in
>>>>>>>>>>> Cuis base. Or at least adopting it as a core package in our repo.
>>>>>>>>>>>
>>>>>>>>>>> Thoughts?
>>>>>>>>>>>
>>>>>>>>>>> Masashi-san: opinions?
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Juan Vuletich
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On 5/17/2015 12:07 PM, H. Hirzel wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Below are the comments from the FileMan package.
>>>>>>>>>>>>
>>>>>>>>>>>> Question: How do you compare the FileMan package to the
>>>>>>>>>>>> FileSystem
>>>>>>>>>>>> package in Pharo?
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L45
>>>>>>>>>>>> I represent a single file entry (including directory).
>>>>>>>>>>>> You can write data by #fileContents: , and read the data by
>>>>>>>>>>>> #fileContents.
>>>>>>>>>>>> ---
>>>>>>>>>>>> mu 11/6/2006 20:21!
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L53
>>>>>>>>>>>> I represent a single file directory.
>>>>>>>>>>>> I implement various directory specific behaviors.
>>>>>>>>>>>> You can write data by #at:put: , and read the data by #at:.
>>>>>>>>>>>> ---
>>>>>>>>>>>> mu 11/6/2006 20:21
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Core.pck.st#L63
>>>>>>>>>>>> !FmFileIOAccessor commentStamp: '<historical>' prior: 0!
>>>>>>>>>>>> I am an accessor to the low level file IO.
>>>>>>>>>>>> You can extend/rewrite me if you port FileMan to other Smalltalk
>>>>>>>>>>>> dialects.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L44
>>>>>>>>>>>> !FmBackupDirectoryEntry commentStamp: 'mu 5/4/2007 23:26' prior:
>>>>>>>>>>>> 0!
>>>>>>>>>>>> This is a simple example for adding special behaviors to
>>>>>>>>>>>> FmDirectoryEntry.
>>>>>>>>>>>> I backup file contents automatically, while users are not
>>>>>>>>>>>> conscious
>>>>>>>>>>>> about
>>>>>>>>>>>> that.
>>>>>>>>>>>> Usage:
>>>>>>>>>>>> dir := './withBackup' asDirectoryEntry: FmBackupDirectoryEntry.
>>>>>>>>>>>> dir at: 'text' put: 'abc'.
>>>>>>>>>>>> dir at: 'text' put: 'def'.
>>>>>>>>>>>> (dir at: 'text') inspect. "def"
>>>>>>>>>>>> (dir backupAt: 'text') inspect. "abc"
>>>>>>>>>>>> ((dir / 'sub') at: 'text2' put: '123').
>>>>>>>>>>>> ((dir / 'sub') at: 'text2' put: '456').
>>>>>>>>>>>> ((dir / 'sub') at: 'text2') inspect. "456"
>>>>>>>>>>>> ((dir / 'sub') backupAt: 'text2') inspect. "123"
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L63
>>>>>>>>>>>> This is a simple example for adding special behaviors to
>>>>>>>>>>>> FmDirectoryEntry.
>>>>>>>>>>>> I put and get file contents as gzipped, while users are not
>>>>>>>>>>>> conscious
>>>>>>>>>>>> about that.
>>>>>>>>>>>> Usage:
>>>>>>>>>>>> | dir |
>>>>>>>>>>>> dir := './gzipped2' asDirectoryEntry: FmGZipDirectoryEntry.
>>>>>>>>>>>> dir binaryAt: 'bin' put: #(1 2 3 12 34 56) asByteArray.
>>>>>>>>>>>> (dir binaryAt: 'bin') inspect.
>>>>>>>>>>>> dir at: 'text' put: 'This will be gzipped'.
>>>>>>>>>>>> (dir at: 'text') inspect.
>>>>>>>>>>>> I would be useful for storing/loading big contents in a simple
>>>>>>>>>>>> dictionary-like manner.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On 5/17/15, H. Hirzel<[hidden email]>       wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Hello Masashi-san
>>>>>>>>>>>>>
>>>>>>>>>>>>> I'd like to come back to your FileMan package
>>>>>>>>>>>>>
>>>>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>>>>>>>>
>>>>>>>>>>>>> and ask a question.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Is this package a port from somewhere or did you write it from
>>>>>>>>>>>>> scratch?
>>>>>>>>>>>>>
>>>>>>>>>>>>> Some background information is appreciated.
>>>>>>>>>>>>>
>>>>>>>>>>>>> There is no description
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan/blob/master/FileMan-Example.pck.st#L2
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thank you in advance
>>>>>>>>>>>>>
>>>>>>>>>>>>> Hannes Hirzel
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On 5/2/14, Masashi UMEZAWA<[hidden email]>       wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi all,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thank you for the kind words. I've just started Cuis on March,
>>>>>>>>>>>>>> and
>>>>>>>>>>>>>> I
>>>>>>>>>>>>>> was impressed with its cleanness, simplicity, etc.
>>>>>>>>>>>>>> So I did a introductory presentation at Tokyo Smalltalkers
>>>>>>>>>>>>>> meeting.
>>>>>>>>>>>>>> It
>>>>>>>>>>>>>> was successful.
>>>>>>>>>>>>>> Now I'm planning to port Folktale (telnet-base object shell),
>>>>>>>>>>>>>> and
>>>>>>>>>>>>>> SIXX
>>>>>>>>>>>>>> to Cuis. My pace maybe slow, but please stay tuned. ;)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Best regards,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 2014-05-02 1:05 GMT+09:00 Germán Arduino<[hidden email]>:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Wow, I was completely unaware of Masashi working in Cuis!
>>>>>>>>>>>>>>> Welcome
>>>>>>>>>>>>>>> aboard!!
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> 2014-05-01 12:19 GMT-03:00 H.
>>>>>>>>>>>>>>> Hirzel<[hidden email]>:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Thank you for the link to  Masashi Umezawa's presentation.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> It is from 2014 and talks about
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> - the number of classes compared to Squeak and Pharo
>>>>>>>>>>>>>>>> - the size of Morphic -- Morph allSelectors size "=>
>>>>>>>>>>>>>>>> 502"
>>>>>>>>>>>>>>>> - something I do not fully get about instance variables
>>>>>>>>>>>>>>>>            'bounds owner submorphs fullBounds color
>>>>>>>>>>>>>>>> extension'
>>>>>>>>>>>>>>>>            versus
>>>>>>>>>>>>>>>>           'owner submorphs location layoutNeeded layoutSpec
>>>>>>>>>>>>>>>> properties'
>>>>>>>>>>>>>>>> - layoutSpec
>>>>>>>>>>>>>>>> - PackageInfo
>>>>>>>>>>>>>>>> - version control with git
>>>>>>>>>>>>>>>> - Feature require: '<PackageName>'.
>>>>>>>>>>>>>>>> - your Unicode package
>>>>>>>>>>>>>>>> https://github.com/KenDickey/Cuis-Smalltalk-Unicode
>>>>>>>>>>>>>>>> -
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-StyledTextEditor
>>>>>>>>>>>>>>>> - How to query for other Cuis-Smalltalk repositories
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> https://github.com/search?q=cuis-smalltalk
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> All things which we will include Cuis documentation effort.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> --Hannes
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On 5/1/14, Ken Dickey<[hidden email]>       wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On Thu, 1 May 2014 07:28:54 +0000
>>>>>>>>>>>>>>>>> "H. Hirzel"<[hidden email]>       wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> A noteworthy effort
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> https://github.com/mumez/Cuis-Smalltalk-FileMan
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Yes.  Masashi Umezawa is the man in Japan!
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> He should introduce himself.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> He gave a talk about Cuis at the 63rd Smalltalkers' meeting
>>>>>>>>>>>>>>>>> in
>>>>>>>>>>>>>>>>> Tokyo:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> http://www.smalltalk-users.jp/Home/gao-zhi/dai63kaismalltalkbenkyoukai/shiryou
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Masashi has ported several packages to CUis.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Because of Unicode interest, I was made aware that recent
>>>>>>>>>>>>>>>>> font
>>>>>>>>>>>>>>>>> tweaks
>>>>>>>>>>>>>>>>> have
>>>>>>>>>>>>>>>>> broken my Unicode package in the latest Cuis versions.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Masashi-san, would you care to tell us about yourself and
>>>>>>>>>>>>>>>>> what
>>>>>>>>>>>>>>>>> people
>>>>>>>>>>>>>>>>> there
>>>>>>>>>>>>>>>>> think about Cuis?
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> -KenD
>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> Cuis mailing list
>>>>>>>>>>>> [hidden email]
>>>>>>>>>>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>>>>>>>>>>>
>>>>>>>>>>>
>>>>
>>
>>
>



--
[:masashi | ^umezawa]

_______________________________________________
Cuis mailing list
[hidden email]
http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
12