[Pharo-dev] WhatsUp from: 2015-01-05 until: 2015-01-18

2015-01-04 Thread seaside
Hi! We're sending this automatic email twice a month, to give the community an 
opportunity to easily know what's happening and to coordinate efforts.  Just 
answer informally, and feel free to spawn discussions thereafter!

### Here's what I've been up to since the last WhatsUp:

- $HEROIC_ACHIEVEMENTS_OR_DISMAL_FAILURES_OR_SIMPLE_BORING_NECESSARY_TASKS

### What's next, until 2015-01-18 (*):

- $NEXT_STEPS_TOWARDS_WORLD_DOMINATION

(*) we'll be expecting results by then ;)



Re: [Pharo-dev] [Bulk] [Bulk] Can MongoTalk execute plan javascript MongoDB queries?

2015-01-04 Thread Yanni Chiu

On Jan 4, 2015, at 4:38 AM, Norbert Hartl  wrote:

> someCollection select: { 
>   '$or' -> { 
>   { 'name' -> { 
>   '$regex' -> 'test' . 
>   '$options' -> 'i' } asDictionary } asDictionary.
>   { 'description' -> { 
>   '$regex' -> 'test' . 
>   '$options' -> 'i' } asDictionary } asDictionary
>   } 
> } asDictionary

That worked. I was close, but I was using $or: instead of $or, and I was 
missing one level of asDictionary.

Just for the archive, there’s one more query I needed, which was to find an 
object based on it’s object id. I ended up using:

voyageId := Integer readFrom: (request at: #voyageId) base: 16.
someModel := SomeModel selectOne: { '_id' -> (OID value: voyageId) } 
asDictionary.

This is a web app using Teapot and Mustache, so I write the voyageId out using:

self voyageId value printStringHex




Re: [Pharo-dev] Object>>ifNilOrEmpty: aBlock

2015-01-04 Thread Eliot Miranda
On Sun, Jan 4, 2015 at 3:13 PM, Benoit St-Jean  wrote:

> In Object, it should return false, not self!
>

No.  Look at Seb's original implementation:

 Object>>ifNilOrEmpty: aBlock

self ifNil: [ ^ aBlock value ].

(self isCollection and: [
self isEmpty ]) ifTrue: [ ^ aBlock value ].

^ self.

The first statement moves to

UndefinedObject>>ifNilOrEmpty: aBlock ^aBlock value

The second to e.g.

Collection>>ifNilOrEmpty: aBlock
 ^self isEmpty ifTrue: [aBlock value] ifFalse: [self]

leaving just

Object>>ifNilOrEmpty: aBlock
^self

The idea is that in "var := self thing ifNilOrEmpty: [blah]" var gets "self
thing" if not nil or empty.


> -
> Benoit St-Jean
> Yahoo! Messenger: bstjean
> Twitter: @BenLeChialeux
> Pinterest: benoitstjean
> IRC: lamneth
>
> Blogue: endormitoire.wordpress.com
>
> "A standpoint is an intellectual horizon of radius zero".  (A. Einstein)
>
>   --
>  *From:* Sebastian Sastre 
> *To:* Benoit St-Jean ; Pharo Development List <
> pharo-dev@lists.pharo.org>
> *Sent:* Sunday, January 4, 2015 6:06 PM
> *Subject:* Re: [Pharo-dev] Object>>ifNilOrEmpty: aBlock
>
> but not putting it on Object would change the feature since you *do want
> it* returning self on that case.
>
> But from your comment we can take the idea of adding it in Object,
> UndefinedObject and Collection and it will be a faster implementation since
> it will be trivial for the three of them, no?
>
>
>
>
>
> On Jan 4, 2015, at 8:40 PM, Benoit St-Jean  wrote:
>
> A cleaner implementation would be to define this method in UndefinedObject
> and Collection only.  It should not appear in Object, the same way
> #isEmptyOrNil is defined.
>
> -
> Benoit St-Jean
> Yahoo! Messenger: bstjean
> Twitter: @BenLeChialeux
> Pinterest: benoitstjean
> IRC: lamneth
> Blogue: endormitoire.wordpress.com
>
> "A standpoint is an intellectual horizon of radius zero".  (A. Einstein)
>
>   --
>  *From:* Sebastian Sastre 
> *To:* Pharo Development List 
> *Sent:* Sunday, January 4, 2015 5:27 PM
> *Subject:* [Pharo-dev] Object>>ifNilOrEmpty: aBlock
>
> Hi guys,
>
> I’ve started to use this little one:
>
> Object>>ifNilOrEmpty: aBlock
>
> self ifNil: [ ^ aBlock value ].
>
> (self isCollection and: [
> self isEmpty ]) ifTrue: [ ^ aBlock value ].
>
> ^ self.
>
>
> It allows you to do the widely known JavaScript one-liner:
>
> var stuff = this.thing || ‘some default value for when this.thing is
> undefined, null or an empty string’.
>
> but in smalltalk in this way:
>
> stuff := self thing ifNilOrEmpty: [ ‘some default value for when self
> thing is nil or an empty string’ ]
>
> simple thing feels practical and nice :)
>
>
>
>
>
>
>


-- 
best,
Eliot


[Pharo-dev] CubeHelix integration (issue 14648 in update #40423)

2015-01-04 Thread Torsten Bergmann
What is the reasons for integration of class "CubeHelix" into standard Pharo 
image:
https://pharo.fogbugz.com/f/cases/14648

So far the class is not (yet) referenced. Would'nt it make sense to have 
"Chroma-CubeHelix"
as external loadable package?

Thanks for any clarification!

Bye
T.



Re: [Pharo-dev] The Smalltalk Renaissance Program

2015-01-04 Thread Aaron Rosenzweig
Hi,

The Squeak images tend to be more tuned towards grade-school education. In 
particular, “eToys” sits on top of smalltalk and is perfect for young 
elementary school students to take their first steps in computer programming. 

My children went through the “waveplace” video tutorials. They did the beta one 
which was more in depth and had like 30 videos if I remember correctly. 

Pharo is more “professional.” Not to say there is anything wrong with Squeak, 
it was used for DabbleDB… It’s just that most developers don’t want to see a 
mouse with eyeballs following your cursor when you first launch the image. You 
can remove that from the image, etc. but it’s that first feel. 

Overall Squeak seems like it blends in better in the classroom and Pharo suits 
developers more. I’ll probably be flamed for saying it but realize it’s a high 
level generalization. I know there is more going on underneath and I know that 
Pharo is the primary target for Seaside, etc. Both Squeak and Pharo are nice. 
AARON ROSENZWEIG / Chat 'n Bike
e:  aa...@chatnbike.com  t:  (301) 956-2319 


On Jan 4, 2015, at 5:25 PM, horrido  wrote:

> I am intrigued. Where can I find more info about Smalltalk education in the
> schools? I want to see what I can do in Canada.
> 
> I presume there is a Smalltalk image customized for the classroom and aimed
> at elementary school students. That's what I'm hoping for.
> 
> 
> stepharo wrote
>> ESUG is about the community. Without community then it is terrible.
>> We set up also a program for teachers. Now in the US there is nearly 
>> nobody teaching smalltalk and this is a pity.
> 
> 
> 
> 
> 
> --
> View this message in context: 
> http://forum.world.st/The-Smalltalk-Renaissance-Program-tp4797112p4797760.html
> Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
> 



[Pharo-dev] Charting graphs

2015-01-04 Thread Alexandre Bergel
Hi!

RTGraphBuilder went through major improvements.
- min and max may be specified. 
- plugins to add some decoration (average line, standard deviation 
range, ticks lines, …)

Here are some examples, with some examples, which should illustrate these 
points:

Is obtained with: 
-=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= 
| b ds |
b := RTGrapherBuilder new.

ds := RTDataSet new.
ds points: (0 to: 100 by: 0.1).
ds y: [ :x | (0.1 * x) sin  ].
ds noDot.
ds interaction popupText: 'sinus'.
ds connectColor: Color blue.
b add: ds.

ds := RTDataSet new.
ds points: (0 to: 100 by: 0.1).
ds y: [ :x | (0.2 * x) cos * 2 ].
ds noDot.
ds interaction popupText: 'cosinus'.
ds connectColor: Color red.
b add: ds.

b minY: -4.
b maxY: 4.
b minX: -25.

b build.
-=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= 
 


-=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= 

b := RTGrapherBuilder new.

ds := RTStackedDataSet new.
ds interaction popup.
ds points: #(600 470 170 430 300).
ds barShape width: 20; color: Color lightGreen.
b add: ds.

b axisX noLabel; noTick.
b axisY noDecimals.

b addPlugin: RTMeanDevVarPlugin new.
b build
-=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= 

Another example:

-=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= 
b := RTGrapherBuilder new.
b extent: 300 @ 200.

5 timesRepeat: [ 
ds := RTStackedDataSet new.
ds noDot.
ds points: ((1 to: 500) collect: [ :i | 50 atRandom - 25 ]) cumsum.
ds connectColor: Color green.
b add: ds.
].

b addPlugin: RTMeanDevVarPlugin new.
b build.
-=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= -=-=-=-=-=-= 

The plugin framework exposes to a plugin all the necessary to define a whole 
range of decorations. For example, variable average lines, linear regression 
should be trivial to add...

Happy new year!
Alexandre
-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.





Re: [Pharo-dev] Object>>ifNilOrEmpty: aBlock

2015-01-04 Thread Benoit St-Jean
In Object, it should return false, not self!
 -
Benoit St-Jean
Yahoo! Messenger: bstjean
Twitter: @BenLeChialeux
Pinterest: benoitstjean
IRC: lamneth

Blogue: endormitoire.wordpress.com

"A standpoint is an intellectual horizon of radius zero".  (A. Einstein)
  From: Sebastian Sastre 
 To: Benoit St-Jean ; Pharo Development List 
 
 Sent: Sunday, January 4, 2015 6:06 PM
 Subject: Re: [Pharo-dev] Object>>ifNilOrEmpty: aBlock
   
but not putting it on Object would change the feature since you do want it 
returning self on that case.
But from your comment we can take the idea of adding it in Object, 
UndefinedObject and Collection and it will be a faster implementation since it 
will be trivial for the three of them, no?





On Jan 4, 2015, at 8:40 PM, Benoit St-Jean  wrote:
A cleaner implementation would be to define this method in UndefinedObject and 
Collection only.  It should not appear in Object, the same way #isEmptyOrNil is 
defined.
 -
Benoit St-Jean
Yahoo! Messenger: bstjean
Twitter: @BenLeChialeux
Pinterest: benoitstjean
IRC: lamneth
Blogue: endormitoire.wordpress.com

"A standpoint is an intellectual horizon of radius zero".  (A. Einstein)
  From: Sebastian Sastre 
 To: Pharo Development List  
 Sent: Sunday, January 4, 2015 5:27 PM
 Subject: [Pharo-dev] Object>>ifNilOrEmpty: aBlock
   
Hi guys,

I’ve started to use this little one:

Object>>ifNilOrEmpty: aBlock

    self ifNil: [ ^ aBlock value ].
    
    (self isCollection and: [
    self isEmpty ]) ifTrue: [ ^ aBlock value ].

    ^ self.


It allows you to do the widely known JavaScript one-liner:

var stuff = this.thing || ‘some default value for when this.thing is undefined, 
null or an empty string’.

but in smalltalk in this way:

stuff := self thing ifNilOrEmpty: [ ‘some default value for when self thing is 
nil or an empty string’ ]

simple thing feels practical and nice :)



   



  

Re: [Pharo-dev] Object>>ifNilOrEmpty: aBlock

2015-01-04 Thread Sebastian Sastre
but not putting it on Object would change the feature since you do want it 
returning self on that case.

But from your comment we can take the idea of adding it in Object, 
UndefinedObject and Collection and it will be a faster implementation since it 
will be trivial for the three of them, no?



> On Jan 4, 2015, at 8:40 PM, Benoit St-Jean  wrote:
> 
> A cleaner implementation would be to define this method in UndefinedObject 
> and Collection only.  It should not appear in Object, the same way 
> #isEmptyOrNil is defined.
>  
> - 
> Benoit St-Jean 
> Yahoo! Messenger: bstjean 
> Twitter: @BenLeChialeux 
> Pinterest: benoitstjean 
> IRC: lamneth
> Blogue: endormitoire.wordpress.com
> 
> "A standpoint is an intellectual horizon of radius zero".  (A. Einstein)
> 
> From: Sebastian Sastre 
> To: Pharo Development List  
> Sent: Sunday, January 4, 2015 5:27 PM
> Subject: [Pharo-dev] Object>>ifNilOrEmpty: aBlock
> 
> Hi guys,
> 
> I’ve started to use this little one:
> 
> Object>>ifNilOrEmpty: aBlock
> 
> self ifNil: [ ^ aBlock value ].
> 
> (self isCollection and: [
> self isEmpty ]) ifTrue: [ ^ aBlock value ].
> 
> ^ self.
> 
> 
> It allows you to do the widely known JavaScript one-liner:
> 
> var stuff = this.thing || ‘some default value for when this.thing is 
> undefined, null or an empty string’.
> 
> but in smalltalk in this way:
> 
> stuff := self thing ifNilOrEmpty: [ ‘some default value for when self thing 
> is nil or an empty string’ ]
> 
> simple thing feels practical and nice :)
> 
> 
> 



Re: [Pharo-dev] Object>>ifNilOrEmpty: aBlock

2015-01-04 Thread Benoit St-Jean
A cleaner implementation would be to define this method in UndefinedObject and 
Collection only.  It should not appear in Object, the same way #isEmptyOrNil is 
defined.
 -
Benoit St-Jean
Yahoo! Messenger: bstjean
Twitter: @BenLeChialeux
Pinterest: benoitstjean
IRC: lamneth
Blogue: endormitoire.wordpress.com

"A standpoint is an intellectual horizon of radius zero".  (A. Einstein)
  From: Sebastian Sastre 
 To: Pharo Development List  
 Sent: Sunday, January 4, 2015 5:27 PM
 Subject: [Pharo-dev] Object>>ifNilOrEmpty: aBlock
   
Hi guys,

I’ve started to use this little one:

Object>>ifNilOrEmpty: aBlock

    self ifNil: [ ^ aBlock value ].
    
    (self isCollection and: [
    self isEmpty ]) ifTrue: [ ^ aBlock value ].

    ^ self.


It allows you to do the widely known JavaScript one-liner:

var stuff = this.thing || ‘some default value for when this.thing is undefined, 
null or an empty string’.

but in smalltalk in this way:

stuff := self thing ifNilOrEmpty: [ ‘some default value for when self thing is 
nil or an empty string’ ]

simple thing feels practical and nice :)



  

[Pharo-dev] Object>>ifNilOrEmpty: aBlock

2015-01-04 Thread Sebastian Sastre
Hi guys,

I’ve started to use this little one:

Object>>ifNilOrEmpty: aBlock

self ifNil: [ ^ aBlock value ].

(self isCollection and: [
self isEmpty ]) ifTrue: [ ^ aBlock value ].

^ self.


It allows you to do the widely known JavaScript one-liner:

var stuff = this.thing || ‘some default value for when this.thing is undefined, 
null or an empty string’.

but in smalltalk in this way:

stuff := self thing ifNilOrEmpty: [ ‘some default value for when self thing is 
nil or an empty string’ ]

simple thing feels practical and nice :)




Re: [Pharo-dev] The Smalltalk Renaissance Program

2015-01-04 Thread horrido
I am intrigued. Where can I find more info about Smalltalk education in the
schools? I want to see what I can do in Canada.

I presume there is a Smalltalk image customized for the classroom and aimed
at elementary school students. That's what I'm hoping for.


stepharo wrote
> ESUG is about the community. Without community then it is terrible.
> We set up also a program for teachers. Now in the US there is nearly 
> nobody teaching smalltalk and this is a pity.





--
View this message in context: 
http://forum.world.st/The-Smalltalk-Renaissance-Program-tp4797112p4797760.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



[Pharo-dev] Wrapping RegQueryValueExA in NativeBoost

2015-01-04 Thread Torsten Bergmann
Hi,

Happy new year!

I try to wrap some API methods using NativeBoost to access Win32 Registry and 
broaden the Pharo support
for Windows. Currently I'm already able to 

 - create registry keys (RegCreateKeyA API)
 - open registry keys (RegOpenKeyExA API) 
 - delete registry keys (RegDeleteKeyA API)
 - close registry key handles (RegCloseKey API) 

Now I additionally want to query some keys using the "RegQueryValueExA" API 
(http://msdn.microsoft.com/en-us/library/windows/desktop/ms724911%28v=vs.85%29.aspx).
 

As I tried an example in an elder Smalltalk/MT first (see attached) I know it 
is working from the Win32 API 
side.
 
My NativeBoost definition in Pharo for wrapping the function looks like this 
(similar to MSDN): 

   regQueryValueExA: hKey with: lpValueName with: lpReserved with: lpType with: 
lpData with: lpcbData


^ self nbCall: #(LONG RegQueryValueExA(
 HKEY hKey,
 LPCTSTR lpValueName,
 LPDWORD lpReserved,
 LPDWORD lpType,
 LPBYTE lpData,
 LPDWORD lpcbData)) module: #advapi32

But when I call it I get a "Generic error" thrown by NB and independent how 
hard I try I can not 
get this call to work in NativeBoost. I checked all arguments, checked the type 
definitions (pool WinTypes
which is similar to NBWinTypes), played with options, ... but was not able to 
find out what I'm doing wrong 
in Pharo. Meanwhile after investing several days of my spare time it looks like 
I cant "see the wood because of 
all the trees".

I would really appreciate if someone with enough knowledge of NativeBoost could 
have a second look 
to point my into the right direction. 

To reproduce:
=
  - use a fresh Pharo4.0 Latest update: #40428
  - open World menu -> Configuration Browser and load "OSWindows" project
  - go to class WinRegistry
   - there is the NativeBoost API definition in method 
#regQueryValueExA:with:with:with:with:with:
   - and a method #example2 that calls this in a similar way as in my 
Smalltalk/MT example
 (if you try this example you get the "Generic error")

Many thanks in advance!

Bye
T.


|hkResult dwType lSize|
hkResult := Handle new.   
(WINAPI RegOpenKeyEx: HKEY_LOCAL_MACHINE 
with: 'HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0'
with: NULL  
with: KEY_QUERY_VALUE
with: hkResult basicAddress).
dwType  := LONG new.
lSize := LONG new.  
WINAPI RegQueryValueEx: hkResult
with: 'VendorIdentifier' 
with: NULL
with: dwType basicAddress
with: NULL
with: lSize basicAddress


Re: [Pharo-dev] My New Year present to Pharo

2015-01-04 Thread horrido
I'm also looking for a logo image to represent Smalltalk Renaissance. In
fact, this should be a higher priority. Thanks.


horrido wrote
> If any of you would care to submit artwork to the SRP, I would be most
> appreciative. In particular, I'm looking for a series of full-page
> magazine ads that "sell" the idea of smalltalk, and "sell" the benefits of
> Smalltalk technology to the enterprise. Of course, as public ads, you
> should endeavour to keep the message simple and on point; you only have a
> matter of seconds to attract the attention of readers and if your message
> is too complicated, they will skip it. Thanks.





--
View this message in context: 
http://forum.world.st/My-New-Year-present-to-Pharo-tp4797728p4797754.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



Re: [Pharo-dev] My New Year present to Pharo

2015-01-04 Thread horrido
If any of you would care to submit artwork to the SRP, I would be most
appreciative. In particular, I'm looking for a series of full-page magazine
ads that "sell" the idea of smalltalk, and "sell" the benefits of Smalltalk
technology to the enterprise. Of course, as public ads, you should endeavour
to keep the message simple and on point; you only have a matter of seconds
to attract the attention of readers and if your message is too complicated,
they will skip it. Thanks.



--
View this message in context: 
http://forum.world.st/My-New-Year-present-to-Pharo-tp4797728p4797747.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



Re: [Pharo-dev] 64-bit Pharo

2015-01-04 Thread stepharo

We (eliot and esteban/others) are working on a 64 bits VM and plugins.
I will then be easier to have 64 and 32 bits than only 64 bits.


I understand that Pharo is currently 32-bit. I was wondering whether this was
a significant impediment to Smalltalk adoption, esp. in the enterprise. I'm
always hearing developers wanting 64-bits in their applications.



--
View this message in context: http://forum.world.st/64-bit-Pharo-tp4797744.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.







[Pharo-dev] 64-bit Pharo

2015-01-04 Thread horrido
I understand that Pharo is currently 32-bit. I was wondering whether this was
a significant impediment to Smalltalk adoption, esp. in the enterprise. I'm
always hearing developers wanting 64-bits in their applications.



--
View this message in context: http://forum.world.st/64-bit-Pharo-tp4797744.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



Re: [Pharo-dev] Fuel and multiple bytecode set support

2015-01-04 Thread Max Leske
Thanks Clément. I’ll look into what needs to be done and get back to you.


> On 30 Dec 2014, at 12:36, Clément Bera  wrote:
> 
> Hello,
> 
> As some of you may know, Pharo is being enhanced with support for multiple 
> bytecode sets. This will allow to run at the same time compiled methods with 
> 2 different bytecode sets for experimentation and to add easily the new 
> bytecode set described in this ESUG paper 
> .
>  
> 
> The virtual machine knows which bytecode set the compiled method uses for its 
> encoding based on the sign of its header. This means that on the contrary to 
> right now, a compiled method *can* have a negative header.
> 
> The issue is that typically operations such as #bitAnd: or #+ to access bits 
> of the smallinteger does not work the same way on negative integers (2 
> complement's implementation of integers), resulting in incorrect values. I am 
> fixing the problematic cases in Pharo. 
> 
> One case is in Fuel and I can't fix it myself. It's in:
> 
> FLCompiledMethodCluster>>#serializeInstance: aCompiledMethodToSerialize with: 
> anEncoder
> 
> "some code"
> header := aCompiledMethod header.
> "some code"
> anEncoder encodeUint32: header
> "some code"
> 
> This looks problematic because now header is not a uint anymore but a sint.
> In addition, #encodeUint32: uses #bitAnd: which may work differently on 
> negative integers.
> 
> What do you fuel experts think ? Is there anything to fix there ?
> 
> Best,
> 
> Clement



Re: [Pharo-dev] The Smalltalk Renaissance Program

2015-01-04 Thread Sebastian Sastre
Hi Richard,

here is something that might lead to qualified feedback so you can improve any 
design:

Please take a look at this:
http://graphicdesign.stackexchange.com/questions/19927/where-can-i-go-to-recieve-feedback-on-web-design-projects

this site aimed to feedback
http://zurb.com/tavern 

consider this:
http://99designs.com 


And this book is fantastic on design for non-designers:
http://www.amazon.com/Non-Designers-Design-Book-Robin-Williams/dp/0321193857/ref=sr_1_3?ie=UTF8&qid=1420387453&sr=8-3&keywords=graphic+design+non-designers
 






> On Jan 4, 2015, at 1:17 PM, horrido  wrote:
> 
> BTW, it took me *a whole frickin' day* to produce this ad!!! I wasn't
> familiar with the image-editing tools I was using, so I was using trial and
> error. Three or four times, I gave up completely and started from scratch!
> *This is hard work.*
> 
> 
> horrido wrote
>> Proposed full-page ad for placement in IT magazines:
>> My Tumblr page
>> 
>>   
>> 
>> It's a teaser.
>> 
>> It's branding.
> 
> 
> 
> 
> 
> --
> View this message in context: 
> http://forum.world.st/The-Smalltalk-Renaissance-Program-tp4797112p4797726.html
> Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
> 



Re: [Pharo-dev] My New Year present to Pharo

2015-01-04 Thread kilon alios
Thank you , well I consider myself more an artist and then a coder :) This
one took over 100 hours to make in Blender but was a great excuse to learn
Blender as I am newcomer to 3d graphics in general.




On Sun, Jan 4, 2015 at 5:52 PM, horrido  wrote:

> Very nice! I will use it (credited) in the SRP.
>
> You're a better artist than I am. My proposed full-page ad pales by
> comparison.
>
>
>
> --
> View this message in context:
> http://forum.world.st/My-New-Year-present-to-Pharo-tp4797728p4797733.html
> Sent from the Pharo Smalltalk Developers mailing list archive at
> Nabble.com.
>
>


Re: [Pharo-dev] My New Year present to Pharo

2015-01-04 Thread horrido
Very nice! I will use it (credited) in the SRP.

You're a better artist than I am. My proposed full-page ad pales by
comparison.



--
View this message in context: 
http://forum.world.st/My-New-Year-present-to-Pharo-tp4797728p4797733.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



Re: [Pharo-dev] The Smalltalk Renaissance Program

2015-01-04 Thread horrido
BTW, it took me *a whole frickin' day* to produce this ad!!! I wasn't
familiar with the image-editing tools I was using, so I was using trial and
error. Three or four times, I gave up completely and started from scratch!
*This is hard work.*


horrido wrote
> Proposed full-page ad for placement in IT magazines:
> My Tumblr page
> 
>   
> 
> It's a teaser.
> 
> It's branding.





--
View this message in context: 
http://forum.world.st/The-Smalltalk-Renaissance-Program-tp4797112p4797726.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



Re: [Pharo-dev] On Twitter

2015-01-04 Thread horrido
Actually, this Smalltalk Renaissance thing is precisely for you. Without your
*support*, I do not have a campaign, I'm just spinning my wheels.



Guillermo Polito wrote
> You should do it if you actually feel/believe
> it, do not look for our approval! This "smalltalk renaissance" thing
> should
> not be for us, but for people from outside the community, isn't it?





--
View this message in context: 
http://forum.world.st/On-Twitter-tp4797177p4797725.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



Re: [Pharo-dev] On Twitter

2015-01-04 Thread horrido
Thank you for your input. It is very helpful.

You're right, retweets can be important, too. I need to put in more effort
to draw in more followers. Alas, I don't know where I'm going to find the
time. I'm so busy managing all the other stuff (eg, Facebook, Google+,
LinkedIn, Amber tutorial, etc.) that I'm starting to get overwhelmed. *This
is hard work!*

Like I said in the OP, I'm new to this Twitter thing and I really didn't
know how to use it.



--
View this message in context: 
http://forum.world.st/On-Twitter-tp4797177p4797724.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.



Re: [Pharo-dev] [story] using the inspector to debug a metacello configuration problem

2015-01-04 Thread Dale Henrichs

Tudor,

Out of curiosity, did you try using the validator? The validator is 
supposed to uncover these types of "potential problems" if this is a 
case that slips through the validator I would like to add a case for it ...


Dale

On 1/4/15 4:01 AM, Tudor Girba wrote:

Hi,

Happy New Year!

The GTInspector reaches its full potential when it is being extended 
to meet custom needs.


I will try to document more scenarios to show how this works in 
practice and how programming changes as a result.


Here is a story that describes a session of debugging a Metacello 
configuration problem:

http://www.humane-assessment.com/blog/identifying-a-configuration-problem-with-gtinspector

Cheers,
Doru

--
www.tudorgirba.com 

"Every thing has its own flow"




Re: [Pharo-dev] On Twitter

2015-01-04 Thread kilon alios
So nicely said Guillermo , I could not agree more with you. Anyone can
create an account with random tweets , but to filter out all the bs of the
internet to something really important takes a lot of skill and a lot of
time.

I have seen some people following thousands while I manage to follow 72. So
the real questions is not if you are popular or not but how many people
actually bother to notice your tweets.

Pharo is already doing a very good job in promoting itself, what matters
the most and this where I agree with you and with the other people
mentioning this , is to contribute and produce code that is worth tweeting.

On Sun, Jan 4, 2015 at 1:29 PM, Guillermo Polito 
wrote:

>
> On Sun, Jan 4, 2015 at 4:47 AM, horrido  wrote:
>
>> You want to know something funny? Most of the Twitter accounts listed here
>> show that most tweets are actually retweets. If you subtract the retweets,
>> the real number of original tweets is quite small, and spread far apart
>> over
>> time.
>>
>> The *Smalltalk Renaissance* Twitter account has had 16 original tweets in
>> *one week*. And no retweets at all.
>>
>> By this measure, my Twitter account is far more active than anybody
>> else's!
>>
>> I'm looking at Marissa Mayer's Twitter account (she's the Yahoo CEO).
>> She's
>> had 17 tweets over the last 3 months, but 12 of them are retweets! Of
>> course, she has over 861,000 followers and I only have 11, but I'm a more
>> active Twit than she is.
>>
>>
> But she has the same impact with a retweet than with an "original" tweet.
> Doesn't she? She touches 861 thousand people...
>
> I don't want to dispute, but I'd like to understand what is it to learn
> from your statement...
>
>  - is a retweet less important than an "original" tweet? I never thought
> so... I follow somebody if his/her tweets (retweets or not) are interesting
> to me.
>
> Also, do not understimate retweets as It means activity in another way.
> You're reading and following other people and selecting/filtering what is
> interesting for your followers. That's a lot of effort and thus activity :).
>
>  - does the amount of followers do not count? I think they do... :/ as
> with them you have an idea of the impact of a tweet.
>
>
> I mean, this email looks like you're trying to justify what you're doing
> with some random facts :)... You should do it if you actually feel/believe
> it, do not look for our approval! This "smalltalk renaissance" thing should
> not be for us, but for people from outside the community, isn't it?
>
> And now I go back to work on my stuff ^^,
> Guille
>
>>
>>
>> --
>> View this message in context:
>> http://forum.world.st/On-Twitter-tp4797177p4797698.html
>> Sent from the Pharo Smalltalk Developers mailing list archive at
>> Nabble.com.
>>
>>
>


[Pharo-dev] [story] using the inspector to debug a metacello configuration problem

2015-01-04 Thread Tudor Girba
Hi,

Happy New Year!

The GTInspector reaches its full potential when it is being extended to
meet custom needs.

I will try to document more scenarios to show how this works in practice
and how programming changes as a result.

Here is a story that describes a session of debugging a Metacello
configuration problem:
http://www.humane-assessment.com/blog/identifying-a-configuration-problem-with-gtinspector

Cheers,
Doru

-- 
www.tudorgirba.com

"Every thing has its own flow"


Re: [Pharo-dev] On Twitter

2015-01-04 Thread Guillermo Polito
On Sun, Jan 4, 2015 at 4:47 AM, horrido  wrote:

> You want to know something funny? Most of the Twitter accounts listed here
> show that most tweets are actually retweets. If you subtract the retweets,
> the real number of original tweets is quite small, and spread far apart
> over
> time.
>
> The *Smalltalk Renaissance* Twitter account has had 16 original tweets in
> *one week*. And no retweets at all.
>
> By this measure, my Twitter account is far more active than anybody else's!
>
> I'm looking at Marissa Mayer's Twitter account (she's the Yahoo CEO). She's
> had 17 tweets over the last 3 months, but 12 of them are retweets! Of
> course, she has over 861,000 followers and I only have 11, but I'm a more
> active Twit than she is.
>
>
But she has the same impact with a retweet than with an "original" tweet.
Doesn't she? She touches 861 thousand people...

I don't want to dispute, but I'd like to understand what is it to learn
from your statement...

 - is a retweet less important than an "original" tweet? I never thought
so... I follow somebody if his/her tweets (retweets or not) are interesting
to me.

Also, do not understimate retweets as It means activity in another way.
You're reading and following other people and selecting/filtering what is
interesting for your followers. That's a lot of effort and thus activity :).

 - does the amount of followers do not count? I think they do... :/ as with
them you have an idea of the impact of a tweet.


I mean, this email looks like you're trying to justify what you're doing
with some random facts :)... You should do it if you actually feel/believe
it, do not look for our approval! This "smalltalk renaissance" thing should
not be for us, but for people from outside the community, isn't it?

And now I go back to work on my stuff ^^,
Guille

>
>
> --
> View this message in context:
> http://forum.world.st/On-Twitter-tp4797177p4797698.html
> Sent from the Pharo Smalltalk Developers mailing list archive at
> Nabble.com.
>
>


Re: [Pharo-dev] [Bulk] Can MongoTalk execute plan javascript MongoDB queries?

2015-01-04 Thread Norbert Hartl

> Am 04.01.2015 um 05:12 schrieb Yanni Chiu :
> 
> 
> On Dec 30, 2014, at 7:14 AM, Norbert Hartl  wrote:
> 
>> 
>> In order to execute a javascript query you would need a javascript 
>> interpreter. As this is not feasible Mongo provides alternative constructs 
>> for the most important things you need. For the regex it would be
>> 
>> aMongoCollection select: { 
>>  'fieldName' -> { '$regex' -> '.*foo' } asDictionary 
>>  } asDictionary
> 
> What would be the equivalent of:
> 
> db.SomeCollection.find( {$or: [ { name: { $regex: /test/i } }, { description: 
> { $regex: /test/i } } ] } )
> 
> In other words, how would a query on multiple fields be done in MongoTalk?
> 
> The case-insensitive match can probably done with "$options:” (just tried it, 
> and it works).
> MyMongoClass selectMany: { 
>   'description' -> { '$regex' -> 'YADA'. '$options' -> 'i' } asDictionary 
>   } asDictionary.
> 
> 
Just as you wrote it. Using $regex and // is not necessary. Slash is the regex 
operator in javascript. As an alternative you use $regex and the search term in 
a string. 

/test/

becomes

{ '$regex' -> 'test' } asDictionary

Every { "key" : "value" } object in javascript you need to convert to { 'key' 
-> 'value' } asDictionary and every Array [ "val", "val" ] into  { 'val' . 
'val' }. And regex modifiers go into $options as you found out already. So the 
complete query would be like.

someCollection select: { 
'$or' -> { 
{ 'name' -> { 
'$regex' -> 'test' . 
'$options' -> 'i' } asDictionary } asDictionary.
{ 'description' -> { 
'$regex' -> 'test' . 
'$options' -> 'i' } asDictionary } asDictionary
} 
} asDictionary

Norbert