[Pharo-dev] Auto-documenting your Pharo-projects

2014-05-16 Thread Yuriy Tymchuk
Hi everyone.

Following yesterday’s discussion about WebDoc, I’m pleased to share with you my 
new blog post with a tutorial how to generate documentation on CI: 
http://sleepycoders.blogspot.com/2014/05/auto-documenting-your-pharo-projects.html

Cheers.
Uko


Re: [Pharo-dev] 32 bits and 64 bits VM

2014-05-16 Thread Esteban Lorenzano

On 15 May 2014, at 18:46, Hilaire Fernandes hilaire.fernan...@gmail.com wrote:

 Great.
 
 As we are discussing about build, is it possible to compile CogVM on 64
 bits architecture as it is already the case for the interpreted SqueakVM
 (https://packages.debian.org/sid/squeak-vm)?

I do not understand. To compile a regular vm in a 64bits platform is trivial. 
You just need to have the 32bits library installed.
But to have a 64bits vm that runs on 64bits… that’s another very different 
history:

- you need a 64bits image (so trace, export, etc.)
- you need to be 64bits word size aware (not so complicated, but a lot of 
work). 
- you need 64bits plugins (a lot of them)
- you need 64bits JIT (or no JIT at all)

Some time ago there was an experimental 64bits interpreter vm (not even stack). 
Who worked with a special traced image.
What squeak guys are doing in the link you provide is still building a 32bits 
vm. 

Now. In the agenda for this year is to work on a 64bits spur version. If 
everything is fine and the stars align properly, it will be ready around 
christmas. 

Esteban


 
 Hilaire
 
 Le 15/05/2014 18:24, Esteban Lorenzano a écrit :
 so yes… I integrated the fix, created a pull request, waited until 
 validation… and then I forget to merge :S
 it should be in process to build now. 
 
 -- 
 Dr. Geo http://drgeo.eu
 
 




Re: [Pharo-dev] Auto-documenting your Pharo-projects

2014-05-16 Thread kilon alios
how exactly it works ? it documents class and method comments ? Or you can
add also additional text to it ?


On Fri, May 16, 2014 at 10:49 AM, Yuriy Tymchuk yuriy.tymc...@me.comwrote:

 Hi everyone.

 Following yesterday’s discussion about WebDoc, I’m pleased to share with
 you my new blog post with a tutorial how to generate documentation on CI:
 http://sleepycoders.blogspot.com/2014/05/auto-documenting-your-pharo-projects.html

 Cheers.
 Uko



Re: [Pharo-dev] Auto-documenting your Pharo-projects

2014-05-16 Thread Sven Van Caekenberghe
It is like JavaDoc, based on class and method comments.

On 16 May 2014, at 10:53, kilon alios kilon.al...@gmail.com wrote:

 how exactly it works ? it documents class and method comments ? Or you can 
 add also additional text to it ? 
 
 
 On Fri, May 16, 2014 at 10:49 AM, Yuriy Tymchuk yuriy.tymc...@me.com wrote:
 Hi everyone.
 
 Following yesterday’s discussion about WebDoc, I’m pleased to share with you 
 my new blog post with a tutorial how to generate documentation on CI: 
 http://sleepycoders.blogspot.com/2014/05/auto-documenting-your-pharo-projects.html
 
 Cheers.
 Uko
 




[Pharo-dev] Spotlight

2014-05-16 Thread p...@highoctane.be
Hello,

There are a couple of things that do get on my nerves with Spotlight,
namely that it lists all kinds of symbols that have nothing to do in the
search list,

e.g. Globals (Display), old classes that aren't there anymore etc.

that it is on the top right,making me look away from the code etc.
I want this in the middle of the screen, like in Eclipse for example.

Also, if I type in Display, I'd like to inspect it right away (I know I can
do that with :expr but still as I forget it all the time, I've put a
reminder in the box).

Next, I do not want to search, I want to find, so, ghosttext changed
accordingly.

So, I had a look and changed it to be the way I wanted.

It is much more usable that way as far as I am concerned.

If you want to try this, just file in the attached change set or get
https://gist.github.com/philippeback/f43447ec2bddcd3f9b84

What would also nice it to be able to have the autocompletion list wider.
Any idea on how to do just that? (yes, I have long class names...)

Feedback welcome.

Phil


Spotlight.st
Description: application/vnd.sailingtracker.track


[Pharo-dev] Method recategorization - call for help

2014-05-16 Thread Pavel Krivanek
Hi,

if you would like to contribute to better Pharo modularization and you do
not know how, I have a tip for you.

Following methods are extension methods of various packages that extend
classes in Morphic-Core package. We need to move them directly to
Morphic-Core package so we have to place them in different categories.

Example:

Morph organization classify: #handleMouseWheel: under: 'events-processing'.
Morph organization classify: #handlesMouseWheel: under: 'events-processing'

Methods:

Morph organization classify: #layoutChanged under: 'recategorized'.
PasteUpMorph organization classify: #resizeBackgroundMorph under:
'recategorized'.
PasteUpMorph organization classify: #backgroundMorph under:
'recategorized'.
Color organization classify: #fillRectangle:on: under: 'recategorized'.
Morph organization classify: #rejectsEvent: under: 'recategorized'.
Morph organization classify: #privateMoveBy:  under: 'recategorized'.
Morph organization classify: #rejectsEvent: under: 'recategorized'.
Morph organization classify: #changed under: 'recategorized'.
Morph organization classify: #handlesDropShadowInHand under:
'recategorized'.
Morph organization classify: #layoutChanged under: 'recategorized'.
Morph organization classify: #morphicLayerNumberWithin: under:
'recategorized'.
Morph organization classify: #morphicLayerNumberWithin: under:
'recategorized'.
Morph organization classify: #handlesMouseOver: under: 'recategorized'.
Morph organization classify: #privateMoveBy:  under: 'recategorized'.
Morph organization classify: #rejectsEvent: under: 'recategorized'.
Morph organization classify: #changed under: 'recategorized'.
Morph organization classify: #handlesDropShadowInHand under:
'recategorized'.
Morph organization classify: #ayoutChanged under: 'recategorized'.
Morph organization classify: #morphicLayerNumberWithin: under:
'recategorized'.
Morph organization classify: #handlesMouseOver: under: 'recategorized'.
HandMorph organization classify: #fullDrawOn:  under: 'recategorized'.
HandMorph organization classify: #fullDrawOn:  under: 'recategorized'.
PasteUpMorph organization classify: #resizeBackgroundMorph under:
'recategorized'.
PasteUpMorph organization classify: #handlerForMouseDown: under:
'recategorized'.
PasteUpMorph organization classify: #backgroundMorph under:
'recategorized'.
PasteUpMorph organization classify: #resizeBackgroundMorph under:
'recategorized'.
PasteUpMorph organization classify: #handlerForMouseDown: under:
'recategorized'.
PasteUpMorph organization classify: #backgroundMorph under:
'recategorized'.
Color organization classify: #fillRectangle:on: under: 'recategorized'.

That is not all. There is a lot of methods that do not need to be in
Morphic-Core package. Most of them will be moved to Morphic-Base package
but it is not good to place them directly to '*Morphic-Base' category. We
should create categories like  '*Morphic-Base-something' or place this
methods to some more fitting packages.

WorldMorph class organization classify: #installNewWorld under:
'*Morphic-Base'.
BorderStyle class organization classify: #raised under: '*Morphic-Base'.
BorderStyle class organization classify: #complexAltRaised under:
'*Morphic-Base'.
BorderStyle class organization classify: #complexAltFramed under:
'*Morphic-Base'.
BorderStyle class organization classify: #complexAltInset under:
'*Morphic-Base'.
BorderStyle class organization classify: #inset under: '*Morphic-Base'.
BorderStyle class organization classify: #simple under: '*Morphic-Base'.
BorderStyle class organization classify: #complexInset under:
'*Morphic-Base'.
BorderStyle class organization classify: #width:color: under:
'*Morphic-Base'.
BorderStyle class organization classify: #complexRaised under:
'*Morphic-Base'.
BorderStyle class organization classify: #complexFramed under:
'*Morphic-Base'.
BorderedMorph class organization classify: #exampleGradient under:
'*Morphic-Base'.
WorldState class organization classify: #startThenBrowseMessageTally under:
'*Morphic-Base'.
WorldState class organization classify: #startMessageTally under:
'*Morphic-Base'.
WorldState class organization classify: #windowsOn: under: '*Morphic-Base'.
WorldState class organization classify: #systemOn: under: '*Morphic-Base'.
GrafPort organization classify:
#displayScannerFor:foreground:background:ignoreColorChanges: under:
'*Morphic-Base'.
Canvas organization classify: #asAlphaBlendingCanvas: under:
'*Morphic-Base'.
Canvas organization classify: #copyClipRect: under: '*Morphic-Base'.
WorldMorph organization classify: #acceptDroppingMorph:event: under:
'*Morphic-Base'.
WorldMorph organization classify: #install under: '*Morphic-Base'.
WorldMorph organization classify: #installForUIProcessReinstall under:
'*Morphic-Base'.
WorldMorph organization classify: #dispatchKeystroke: under:
'*Morphic-Base'.
BorderedMorph organization classify: #changeBorderWidth: under:
'*Morphic-Base'.
BorderedMorph organization classify: #splitters under: '*Morphic-Base'.
BorderedMorph 

Re: [Pharo-dev] Auto-documenting your Pharo-projects

2014-05-16 Thread kilon alios
ah nice this is very cool :)

are there any other features or thats about it ?


On Fri, May 16, 2014 at 12:00 PM, Sven Van Caekenberghe s...@stfx.euwrote:

 It is like JavaDoc, based on class and method comments.

 On 16 May 2014, at 10:53, kilon alios kilon.al...@gmail.com wrote:

  how exactly it works ? it documents class and method comments ? Or you
 can add also additional text to it ?
 
 
  On Fri, May 16, 2014 at 10:49 AM, Yuriy Tymchuk yuriy.tymc...@me.com
 wrote:
  Hi everyone.
 
  Following yesterday’s discussion about WebDoc, I’m pleased to share with
 you my new blog post with a tutorial how to generate documentation on CI:
 http://sleepycoders.blogspot.com/2014/05/auto-documenting-your-pharo-projects.html
 
  Cheers.
  Uko
 





Re: [Pharo-dev] Spotlight

2014-05-16 Thread Sven Van Caekenberghe
Cool !

I haven't loaded your change set yet, but your ideas are good - I agree with 
all of them.

Maybe it would be better to make the placement a setting (a bit like for the 
growl widget).

What I find annoying is that the shortest match is not always chosen, for 
example when you type String, the String class is not in the top matches, and 
you have to type a space before hitting return.

On 16 May 2014, at 11:02, p...@highoctane.be wrote:

 Hello,
 
 There are a couple of things that do get on my nerves with Spotlight, namely 
 that it lists all kinds of symbols that have nothing to do in the search 
 list, 
 
 e.g. Globals (Display), old classes that aren't there anymore etc.
 
 that it is on the top right,making me look away from the code etc.
 I want this in the middle of the screen, like in Eclipse for example.
 
 Also, if I type in Display, I'd like to inspect it right away (I know I can 
 do that with :expr but still as I forget it all the time, I've put a 
 reminder in the box).
 
 Next, I do not want to search, I want to find, so, ghosttext changed 
 accordingly.
 
 So, I had a look and changed it to be the way I wanted.
 
 It is much more usable that way as far as I am concerned.
 
 If you want to try this, just file in the attached change set or get 
 https://gist.github.com/philippeback/f43447ec2bddcd3f9b84
 
 What would also nice it to be able to have the autocompletion list wider. Any 
 idea on how to do just that? (yes, I have long class names...)
 
 Feedback welcome.
 
 Phil
 
 Screenshot-13.pngSpotlight.st




Re: [Pharo-dev] 32 bits and 64 bits VM

2014-05-16 Thread Andres Valloud

* 64-bit aware hashing functions as the current ones are 32-bit centric.


This issue might not be the most urgent because the 32 bit hash 
functions should be sufficient to deal with at least moderately sized 64 
bit images.  But how much stuff would you have to allocate before seeing 
a problem?


Suppose object headers are 16 bytes and your hash functions are 
producing 28 bits' worth of data.  Clearly hashing 2^28 objects with 
zero instance variables and zero byte data is kind of silly, so we put 
in at least one instance variable making those objects at least 24 
bytes.  Then you also need a hashed collection with a single table large 
enough to hold all those objects (ignoring e.g. hash buckets), the load 
factor of which will be kept at 80%.  So...


24 * 2^28 * 4 // 5 + (2^28 * 8) = about 7gb

So, the current hash functions should be fine for images up to 7gb in 
size, and probably much larger than that because 7gb is the rock bottom 
low estimate.  Probably one might hash strings or other objects with 
more data than 8 bytes.  In that case, the low bound in that case will 
be higher.


Andres.



Re: [Pharo-dev] 32 bits and 64 bits VM

2014-05-16 Thread p...@highoctane.be
On Fri, May 16, 2014 at 12:38 PM, Andres Valloud 
avall...@smalltalk.comcastbiz.net wrote:

 * 64-bit aware hashing functions as the current ones are 32-bit centric.


 This issue might not be the most urgent because the 32 bit hash functions
 should be sufficient to deal with at least moderately sized 64 bit images.
  But how much stuff would you have to allocate before seeing a problem?

 Suppose object headers are 16 bytes and your hash functions are producing
 28 bits' worth of data.  Clearly hashing 2^28 objects with zero instance
 variables and zero byte data is kind of silly, so we put in at least one
 instance variable making those objects at least 24 bytes.  Then you also
 need a hashed collection with a single table large enough to hold all those
 objects (ignoring e.g. hash buckets), the load factor of which will be kept
 at 80%.  So...

 24 * 2^28 * 4 // 5 + (2^28 * 8) = about 7gb

 So, the current hash functions should be fine for images up to 7gb in
 size, and probably much larger than that because 7gb is the rock bottom low
 estimate.  Probably one might hash strings or other objects with more data
 than 8 bytes.  In that case, the low bound in that case will be higher.


Thanks for this, always enlightening.

Phil



 Andres.




[Pharo-dev] R: a Pharo talk from a ruby conference

2014-05-16 Thread Lorenzo Schiavina
+1

Lorenzo Schiavina

-Messaggio originale-
Da: Pharo-dev [mailto:pharo-dev-boun...@lists.pharo.org] Per conto di kmo
Inviato: giovedì 15 maggio 2014 20:03
A: pharo-dev@lists.pharo.org
Oggetto: Re: [Pharo-dev] a Pharo talk from a ruby conference

Looking at the new pharo website (it’s great, by the way), I found I was more 
upset than I thought I would be by the total absence of the s-word.

Perhaps lots of people think smalltalk is a dead language but that’s not the 
only view of smalltalk that people have out there.

I came to pharo looking for a new, better way of developing applications. I 
knew from reading about the history of computing that smalltalk was the purest 
object oriented language. I knew that it had pioneered many advanced ideas in 
program development. I knew that it was so far ahead of its time that other 
languages were still hobbling along behind it trying to catch up.
I knew that java and C# were constantly trying to be more smalltalk-like. So I 
looked for a smalltalk – ideally an open source smalltalk that I could use on 
Linux. And so I came to pharo. If someone had told me that pharo was not 
smalltalk, I would not have been interested, I would have though pharo was just 
a niche product (like Rebol, say) - something that might simply fade away with 
no history behind it. And I’m sure there are other people like me out there who 
also have heard of the smalltalk mystique. This heritage is something to be 
proud of.

So why hide what pharo is? 

It’s not smalltalk’s reputation as /dead/ that I think is likely to put people 
off. It’s more smalltalks’s reputation as an academic’s language, used to 
investigate abstruse computer science problems, but unsuitable for mundane 
day-to-day development. The sort of language that cannot produce a stand-alone 
executable (a myth - but pharo could do with a deployment wizard of some kind). 
The sort of language that can produce incredible data visualisations (Roassal) 
but is unable to put up a decent data entry screen (Spec). (Sorry, that's 
unfair but I could not resist it! )

Rather than hide the smalltalk origins of pharo, I think they should be shouted 
from the rooftops. I would add something like this to the web page.

*/Pharo is an alive-and-kicking, developer-focused, version of smalltalk – the 
most beautiful idea in the history of computing./*

Just my two cents.

By the way, I really don't like the idea of using /agile /as a description of 
pharo. Agile means almost nothing now - it's just a management buzzword for 
nothing in particular.
 

 



--
View this message in context: 
http://forum.world.st/a-Pharo-talk-from-a-ruby-conference-tp4756805p4759204.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.




Re: [Pharo-dev] 32 bits and 64 bits VM

2014-05-16 Thread Hilaire Fernandes
the SqueakVM https://packages.debian.org/sid/amd64/squeak-vm/download
is linked against 64bits libraries, at least as far as I am correct this
is what say:

ldd squeakvm

Next I tested I can run DrGeo (1.4 pharo based, 32 bits image) with this
VM on a 64 bits host (uname -a).

Pharo 2 does not work as this vm is too old.

Where am I wrong?

Hilaire

Le 16/05/2014 10:20, Esteban Lorenzano a écrit :
 I do not understand. To compile a regular vm in a 64bits platform is trivial. 
 You just need to have the 32bits library installed.
 But to have a 64bits vm that runs on 64bits… that’s another very different 
 history:

-- 
Dr. Geo http://drgeo.eu




Re: [Pharo-dev] 32 bits and 64 bits VM

2014-05-16 Thread Chris Cunningham
Right.  Running an image natively in 64 bits doesn't mean you have to have
a 64 bit image as well.
http://timmydosmalltalk.wordpress.com/2014/03/13/howto-build-a-64-native-standardvm-running-32-bit-image-on-slackware-linux-14-1-with-32-bit-compat-libs/
(not my work at all - just sharing).

-cbc


On Fri, May 16, 2014 at 6:33 AM, Hilaire Fernandes 
hilaire.fernan...@gmail.com wrote:

 the SqueakVM https://packages.debian.org/sid/amd64/squeak-vm/download
 is linked against 64bits libraries, at least as far as I am correct this
 is what say:

 ldd squeakvm

 Next I tested I can run DrGeo (1.4 pharo based, 32 bits image) with this
 VM on a 64 bits host (uname -a).

 Pharo 2 does not work as this vm is too old.

 Where am I wrong?

 Hilaire

 Le 16/05/2014 10:20, Esteban Lorenzano a écrit :
  I do not understand. To compile a regular vm in a 64bits platform is
 trivial. You just need to have the 32bits library installed.
  But to have a 64bits vm that runs on 64bits… that’s another very
 different history:

 --
 Dr. Geo http://drgeo.eu





Re: [Pharo-dev] 32 bits and 64 bits VM

2014-05-16 Thread Damien Cassou
On Wed, May 14, 2014 at 9:08 PM, Hilaire Fernandes
hilaire.fernan...@gmail.com wrote:
 Yesterday my boss asked me to see DrGeo on his Ununtu 14.04LTS 64 bits
 machine. I could not get it working

Following these simple instructions would have fixed the problem in 2 minutes:
http://www.pharo-project.org/pharo-download/ubuntu

I run the exact same OS and Pharo works perfectly.

-- 
Damien Cassou
http://damiencassou.seasidehosting.st

Success is the ability to go from one failure to another without
losing enthusiasm.
Winston Churchill



Re: [Pharo-dev] a Pharo talk from a ruby conference

2014-05-16 Thread Sean P. DeNigris
Esteban A. Maringolo wrote
 All the previous dialects were advertised as a new Smalltalk dialect
 ...
 This time we could, at least, try to advertise it differently.

+1. I think that delaying the Smalltalk conversation a bit a la Clojure
might be the sweet spot. A good time to mention it might be in describing
the language, since it's obviously Smalltalk. I'll reiterate that I strongly
feel that the language - which has always been the least interesting thing -
should be introduced /last/, after the environment - which is the real blue
plane idea here - and the libraries, which are of practical importance. 



-
Cheers,
Sean
--
View this message in context: 
http://forum.world.st/a-Pharo-talk-from-a-ruby-conference-tp4756805p4759290.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



Re: [Pharo-dev] a Pharo talk from a ruby conference

2014-05-16 Thread Hilaire Fernandes
Once, when I told an old friend I was doing Smalltalk, he asked me Are
you doing computer archeology? It is difficult to fight this.

Hilaire

Le 15/05/2014 22:09, Sergi Reyner a écrit :
 Pharo is a Smalltalk for the 21st century. - Sergi Reyner.
 
 Cheers,
 Sergi

-- 
Dr. Geo http://drgeo.eu




Re: [Pharo-dev] 32 bits and 64 bits VM

2014-05-16 Thread Hilaire Fernandes
I know for years[1], only solve partially, on some Linux distribution,
not really user friendly, support of this solution may change over
making installation of 32bits libs even more complicated for average user.

Now my question was related to 64bits, and I am really curious about
this 64bits squeakvm compiled for Debian AMD64

Le 16/05/2014 18:17, Damien Cassou a écrit :
 On Wed, May 14, 2014 at 9:08 PM, Hilaire Fernandes
 hilaire.fernan...@gmail.com wrote:
 Yesterday my boss asked me to see DrGeo on his Ununtu 14.04LTS 64 bits
 machine. I could not get it working
 
 Following these simple instructions would have fixed the problem in 2 minutes:
 http://www.pharo-project.org/pharo-download/ubuntu
 
 I run the exact same OS and Pharo works perfectly.
 

[1]
http://www.drgeo.eu/community/faq#TOC-Can-I-run-it-in-my-Linux-64-bits-host-


-- 
Dr. Geo http://drgeo.eu




Re: [Pharo-dev] a Pharo talk from a ruby conference

2014-05-16 Thread p...@highoctane.be
On Fri, May 16, 2014 at 7:23 PM, Hilaire Fernandes 
hilaire.fernan...@gmail.com wrote:

 Once, when I told an old friend I was doing Smalltalk, he asked me Are
 you doing computer archeology? It is difficult to fight this.


Back to the future after 30 years of spinning your wheels
---

Wanting to code at the speed of tought?
Wishing the machine was your friend and not a roadblock?
Want to burn cash as slow as possible while maximizing your output?

If so, get a copy of Pharo! It is not your (grand) daddy's Smalltalk!

;-)

Phil






 Hilaire

 Le 15/05/2014 22:09, Sergi Reyner a écrit :
  Pharo is a Smalltalk for the 21st century. - Sergi Reyner.
 
  Cheers,
  Sergi

 --
 Dr. Geo http://drgeo.eu





Re: [Pharo-dev] 32 bits and 64 bits VM

2014-05-16 Thread David T. Lewis
On Fri, May 16, 2014 at 10:20:47AM +0200, Esteban Lorenzano wrote:
 
 On 15 May 2014, at 18:46, Hilaire Fernandes hilaire.fernan...@gmail.com 
 wrote:
 
  Great.
  
  As we are discussing about build, is it possible to compile CogVM on 64
  bits architecture as it is already the case for the interpreted SqueakVM
  (https://packages.debian.org/sid/squeak-vm)?
 
 I do not understand. To compile a regular vm in a 64bits platform is trivial. 
 You just need to have the 32bits library installed.
 But to have a 64bits vm that runs on 64bits? that?s another very different 
 history:
 
 - you need a 64bits image (so trace, export, etc.)
 - you need to be 64bits word size aware (not so complicated, but a lot of 
 work). 
 - you need 64bits plugins (a lot of them)
 - you need 64bits JIT (or no JIT at all)
 
 Some time ago there was an experimental 64bits interpreter vm (not even 
 stack). Who worked with a special traced image.
 What squeak guys are doing in the link you provide is still building a 32bits 
 vm. 

It's experimental 64 bit image is not really all that experimental any more,
although Ian still labels it as such on squeakvm.org/unix. A compiled VM is
available there. Building it from source is just a matter of specifying 
--image64
in the configure step, then doing a make.

Up to date Squeak trunk images in 64-bit format are traced daily at
http://build.squeak.org/job/Squeak%2064-bit%20image/

Dave




Re: [Pharo-dev] a Pharo talk from a ruby conference

2014-05-16 Thread David Astels
To me, “Smalltalk” is everything. Take anything away (language, tools, image, 
or library) and it’s not nearly as interesting.

On May 16, 2014, at 12:04 PM, Sean P. DeNigris s...@clipperadams.com wrote:

 Esteban A. Maringolo wrote
 All the previous dialects were advertised as a new Smalltalk dialect
 ...
 This time we could, at least, try to advertise it differently.
 
 +1. I think that delaying the Smalltalk conversation a bit a la Clojure
 might be the sweet spot. A good time to mention it might be in describing
 the language, since it's obviously Smalltalk. I'll reiterate that I strongly
 feel that the language - which has always been the least interesting thing -
 should be introduced /last/, after the environment - which is the real blue
 plane idea here - and the libraries, which are of practical importance. 
 
 
 
 -
 Cheers,
 Sean
 --
 View this message in context: 
 http://forum.world.st/a-Pharo-talk-from-a-ruby-conference-tp4756805p4759290.html
 Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
 




[Pharo-dev] Gmail Contact Export and #readStream

2014-05-16 Thread Sean P. DeNigris
Two issues:

1. Exports for Outlook

Gmail seems to have inserted 160 asCharacter in a few places in a gmail
contact csv export, so for example this partial phone number:
  '(914) 469-'
is written to file as:
  #[40 57 49 52 41 160 52 54 57 45]
And then aFile readStream contents signals ZnInvalidUTF8: Invalid utf8
input detected when it encounters the 160

2. Google csv Exports

The file starts with the BOM #[255 254], which generates the same exception

=

Are these problems with gmail or Pharo?
Thanks



-
Cheers,
Sean
--
View this message in context: 
http://forum.world.st/Gmail-Contact-Export-and-readStream-tp4759306.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



Re: [Pharo-dev] Gmail Contact Export and #readStream

2014-05-16 Thread Sven Van Caekenberghe
That is weird indeed, I would say they mixed up Latin1 and UTF8. BTW, if you do

  #[40 57 49 52 41 160 52 54 57 45] inspect.

in Pharo 3, you'll see that it is actually a Latin1 encoded ByteArray, not a 
UTF8 one.

In Latin1 (http://en.wikipedia.org/wiki/Latin1) 160 is NBSP (Non breaking 
space). In UTF8, this would be encoded differently

  ZnUTF8Encoder new encodeString: 160 asCharacter asString. 

  #[194 160]

But if the file starts with the Unicode BOM, that is really confusing  
(http://en.wikipedia.org/wiki/Unicode_Byte-Order_Mark#Usage), since in UTF8 it 
would be different, and from your byte sequence it can't be UTF16 either.

On 16 May 2014, at 22:06, Sean P. DeNigris s...@clipperadams.com wrote:

 Two issues:
 
 1. Exports for Outlook
 
 Gmail seems to have inserted 160 asCharacter in a few places in a gmail
 contact csv export, so for example this partial phone number:
  '(914) 469-'
 is written to file as:
  #[40 57 49 52 41 160 52 54 57 45]
 And then aFile readStream contents signals ZnInvalidUTF8: Invalid utf8
 input detected when it encounters the 160
 
 2. Google csv Exports
 
 The file starts with the BOM #[255 254], which generates the same exception
 
 =
 
 Are these problems with gmail or Pharo?
 Thanks
 
 
 
 -
 Cheers,
 Sean
 --
 View this message in context: 
 http://forum.world.st/Gmail-Contact-Export-and-readStream-tp4759306.html
 Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
 




Re: [Pharo-dev] Gmail Contact Export and #readStream

2014-05-16 Thread Sean P. DeNigris
Sven Van Caekenberghe-2 wrote
 That is weird indeed, I would say they mixed up Latin1 and UTF8

Yes! Changing to Latin1TextConverter did the trick. I assumed UTF8 because
they did not specify and mention UTF8 elsewhere in gmail settings


Sven Van Caekenberghe-2 wrote
 But if the file starts with the Unicode BOM, that is really confusing...
 since in UTF8 it would be different, and from your byte sequence it can't
 be UTF16 either.

It was UTF16. The byte sequence was from a different output format. Changing
to UTF16TextConverter successfully parsed the file.

I wonder... can all this be handled automatically? When I open either file
in OS X, it seems to just do the right thing. I also wonder why gmail
doesn't clearly display the encoding when you're exporting...



-
Cheers,
Sean
--
View this message in context: 
http://forum.world.st/Gmail-Contact-Export-and-readStream-tp4759306p4759320.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



[Pharo-dev] [ANN]: Tiny Gmail Contact Importer

2014-05-16 Thread Sean DeNigris
I wrote a tiny utility to work with Gmail contacts. It is very basic and just 
maps an export file in the Outlook format to GmailContact objects. It doesn't 
support the Google CSV format - the field order and names are different, and 
the file is UTF16-encoded. Enjoy!

Gofer it
smalltalkhubUser: 'SeanDeNigris' project: 'SeansPlayground';
package: 'GmailContact';
load.

#GmailContact asClass importAllFromOutlookExport: ‘/path/to/contacts.csv' 
asFileReference.