Paquetes, Categorias, Clases, Tests

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

Paquetes, Categorias, Clases, Tests

Angel Java Lopez
Hola gente!

Estoy leyendo Pharo by Example (1) y jugando con Pharo 2.0

Supongo que si sigo leyendo, alguna de estas preguntas se contestaran
solas, pero me parecio interesante igual plantearlas por aca.

Desde hace algunas decadas, ya conozco nombre de clases y categorias en
Smalltalk, aunque nunca programe. Eso creo que lo tengo mas o menos
entendido.

Pero lo de paquete en Monticello, es nuevo para mi.

La duda es, mejor, vamos a un ejemplo.

Veo aca en la lista de System Browser:
AST-Core
AST-Core-Matching
AST-Core-Nodes
...

el primero esta marcado como paquete de monticello, creo.

Bien, los ejemplos que vi, el nombre del paquete coincidia con el nombre de
la categoria. Hasta donde veo, el System Browser de Pharo 2.0, en el primel
panel de arriba a la izquierda, lista categorias, aunque los llama
paquetes.

Ahora, al fin, viene la duda. Cuando Denker agrego lo que hizo como paquete
de Monticello, supongo que agrego AST-Core. Tuvo que hacer algo mas? O
automaticamente agrega todo lo que es tambien AST-Core-*?

La otra duda es: donde van los tests?

- En una categoria, pero dentro del mismo paquete?
- En una categoria y paquete aparte?

Nos leemos!

Angel "Java" Lopez
@ajlopez
Reply | Threaded
Open this post in threaded view
|

Re: Paquetes, Categorias, Clases, Tests

Edgar De Cleene
> Hola gente!
>
> Estoy leyendo Pharo by Example (1) y jugando con Pharo 2.0
>
> Supongo que si sigo leyendo, alguna de estas preguntas se contestaran solas,
> pero me parecio interesante igual plantearlas por aca.
>
> Desde hace algunas decadas, ya conozco nombre de clases y categorias en
> Smalltalk, aunque nunca programe. Eso creo que lo tengo mas o menos entendido.
>
> Pero lo de paquete en Monticello, es nuevo para mi.
>
> La duda es, mejor, vamos a un ejemplo.
>
> Veo aca en la lista de System Browser:
> AST-Core
> AST-Core-Matching
> AST-Core-Nodes
> ...
>
> el primero esta marcado como paquete de monticello, creo.
>
> Bien, los ejemplos que vi, el nombre del paquete coincidia con el nombre de la
> categoria. Hasta donde veo, el System Browser de Pharo 2.0, en el primel panel
> de arriba a la izquierda, lista categorias, aunque los llama paquetes.
>
> Ahora, al fin, viene la duda. Cuando Denker agrego lo que hizo como paquete de
> Monticello, supongo que agrego AST-Core. Tuvo que hacer algo mas? O
> automaticamente agrega todo lo que es tambien AST-Core-*?
>
> La otra duda es: donde van los tests?
>
> - En una categoria, pero dentro del mismo paquete?
> - En una categoria y paquete aparte?
>
> Nos leemos!
>
> Angel "Java" Lopez
> @ajlopez

En Squeak tenemos PackageInfo dentro de PackageInfo-Base.
De ahi vienen muchisimos males a medio corregir.
De ahi viene denominar a los .mcz como "paquetes"
Si hay Test, deberian ir dentro de la categoria.
Me obligaste a abrir Pharo 2.0 para ver y no hay

AST-Test

Pero si por ejemplo
Announcements-Tests-Core
Dentro de Announcements

O sea la primera palabra define el paquete
Todo lo que empiece con AST va al paquete AST, lo que empiece con
Announcements va al paquete Announcements , etc,

Seguramente los primos Pharopatas te alumbraran mejor.

Como le dije a Luis, estoy mas cerca del volido de la gallina que del vuelo
del Condor.

Los Pharopatas vuelan en esos bichos de "Avatar":=)

Edgar





Reply | Threaded
Open this post in threaded view
|

Re: Paquetes, Categorias, Clases, Tests

Angel Java Lopez
Hola gente!

Edgar, gracias por la info

JAJAJA... me mato lo de "Los Pharopatas vuelan en esos bichos de
"Avatar":=)"

Quien es Luis?

Aprovecho a preguntar algo que me quedo de una pregunta de hace unos meses,
y hoy vuelve a aparecer en uno de tus mensajes.

Que diferencia hay entre "Cog y tradicional"? Por que se llama Cog?

Y en ese mensaje tuyo, quien es Juan?

Angel "Java" Lopez
@ajlopez



2013/7/21 Edgar J. De Cleene <[hidden email]>

> **
>
>
> > Hola gente!
> >
> > Estoy leyendo Pharo by Example (1) y jugando con Pharo 2.0
> >
> > Supongo que si sigo leyendo, alguna de estas preguntas se contestaran
> solas,
> > pero me parecio interesante igual plantearlas por aca.
> >
> > Desde hace algunas decadas, ya conozco nombre de clases y categorias en
> > Smalltalk, aunque nunca programe. Eso creo que lo tengo mas o menos
> entendido.
> >
> > Pero lo de paquete en Monticello, es nuevo para mi.
> >
> > La duda es, mejor, vamos a un ejemplo.
> >
> > Veo aca en la lista de System Browser:
> > AST-Core
> > AST-Core-Matching
> > AST-Core-Nodes
> > ...
> >
> > el primero esta marcado como paquete de monticello, creo.
> >
> > Bien, los ejemplos que vi, el nombre del paquete coincidia con el nombre
> de la
> > categoria. Hasta donde veo, el System Browser de Pharo 2.0, en el primel
> panel
> > de arriba a la izquierda, lista categorias, aunque los llama paquetes.
> >
> > Ahora, al fin, viene la duda. Cuando Denker agrego lo que hizo como
> paquete de
> > Monticello, supongo que agrego AST-Core. Tuvo que hacer algo mas? O
> > automaticamente agrega todo lo que es tambien AST-Core-*?
> >
> > La otra duda es: donde van los tests?
> >
> > - En una categoria, pero dentro del mismo paquete?
> > - En una categoria y paquete aparte?
> >
> > Nos leemos!
> >
> > Angel "Java" Lopez
> > @ajlopez
>
> En Squeak tenemos PackageInfo dentro de PackageInfo-Base.
> De ahi vienen muchisimos males a medio corregir.
> De ahi viene denominar a los .mcz como "paquetes"
> Si hay Test, deberian ir dentro de la categoria.
> Me obligaste a abrir Pharo 2.0 para ver y no hay
>
> AST-Test
>
> Pero si por ejemplo
> Announcements-Tests-Core
> Dentro de Announcements
>
> O sea la primera palabra define el paquete
> Todo lo que empiece con AST va al paquete AST, lo que empiece con
> Announcements va al paquete Announcements , etc,
>
> Seguramente los primos Pharopatas te alumbraran mejor.
>
> Como le dije a Luis, estoy mas cerca del volido de la gallina que del vuelo
> del Condor.
>
> Los Pharopatas vuelan en esos bichos de "Avatar":=)
>
> Edgar
>
>  
>
Reply | Threaded
Open this post in threaded view
|

Re: Paquetes, Categorias, Clases, Tests

Edgar De Cleene
> Hola gente!
>
> Edgar, gracias por la info
>
> JAJAJA... me mato lo de "Los Pharopatas vuelan en esos bichos de "Avatar":=)"
>
> Quien es Luis?
>
> Aprovecho a preguntar algo que me quedo de una pregunta de hace unos meses, y
> hoy vuelve a aparecer en uno de tus mensajes.
>
> Que diferencia hay entre "Cog y tradicional"? Por que se llama Cog?
>
> Y en ese mensaje tuyo, quien es Juan?
>
> Angel "Java" Lopez
> @ajlopez

Luis es Luis Felipe Sanchez Bonilla, nuestro ultimo "Parroquiano",
originador de esta tormenta de actividad mi.

Juan Vuletich es el creador de Cuis , Morphic3 y varias cosas mas.
Un talentoso al que copio de vez en vez.

La maquina Cog esta optimizada para los closures y para arquitectura Intel
de procesador.

Supuestamente rinde 2x la tradicional.
Justamente para Cuis apenas menos, no se porque.

Porque le habran puesto ese nombre no se, adivino Closures Object Generator
?

Edgar




Reply | Threaded
Open this post in threaded view
|

Re: Paquetes, Categorias, Clases, Tests

Angel Java Lopez
In reply to this post by Edgar De Cleene
Hola gente!

Como me lo suponia, la respuesta a mi pregunta sobre paquetes, estaba
respondida en el libro de Pharo. Pero hay que llegar a la seccion 6.3
Monticello (en mi version PBE-2009-10-28) Ahi esta clarificado el asunto.
Creo que no molesta mucho compartir directamente por aca, y ver el
"rationale" de todo esto:

Suppose that you are developing
a framework named to facilitate the use of relational databases from
Pharo. You have decided to call your framework PharoLink, and have created
a series of categories to contain all of the classes that you have written,
e.g., category 'PharoLink-Connections' contains OracleConnection
MySQLConnection
PostgresConnection and category 'PharoLink-Model' contains DBTable DBRow
DBQuery, and so on. However, not all of your code will reside in these
classes.
For example, you may also have a series of methods to convert objects into
an SQL-friendly format:
Object»asSQL
String»asSQL
Date»asSQL
These methods belong in the same package as the classes in the categories
PharoLink-Connections and PharoLink-Model. But clearly the whole of class
Object
does not belong in your package! So you need a way of putting certain
methods in a package, even though the rest of the class is in another
package.
The way that you do this is by placing those methods in a protocol (of
Object, String, Date, and so on) named *PharoLink (note the initial
asterisk). The
combination of the PharoLink-. . . categories and the *PharoLink protocols
form a
package named PharoLink. To be precise, the rules for what goes in a package
are as follows.
A package named Foo contains:
1. all class definitions of classes in the category Foo, or in categories
with
names starting with Foo-, and
2. all methods in any class in protocols named *Foo or *foo4, or whose name
starts with *Foo- or *foo-, and
3. all methods in classes in the category Foo, or in a category whose name
starts with Foo-, except for those methods in protocols whose names start
with *.
A consequence of these rules is that each class definition and each method
belongs to exactly one package. The except in the last rule has to be there
because
those methods must belong to other packages. The reason for ignoring
case in rule 2 is that, by convention, protocol names are typically (but not
necessarily) lower case (and may include spaces), while category names use
CamelCase (and don’t include spaces).

Clarito como huevo de tero ;-)

Nos leemos!

Angel "Java" Lopez
@ajlopez




2013/7/21 Edgar J. De Cleene <[hidden email]>

> **
>
>
> > Hola gente!
> >
> > Estoy leyendo Pharo by Example (1) y jugando con Pharo 2.0
> >
> > Supongo que si sigo leyendo, alguna de estas preguntas se contestaran
> solas,
> > pero me parecio interesante igual plantearlas por aca.
> >
> > Desde hace algunas decadas, ya conozco nombre de clases y categorias en
> > Smalltalk, aunque nunca programe. Eso creo que lo tengo mas o menos
> entendido.
> >
> > Pero lo de paquete en Monticello, es nuevo para mi.
> >
> > La duda es, mejor, vamos a un ejemplo.
> >
> > Veo aca en la lista de System Browser:
> > AST-Core
> > AST-Core-Matching
> > AST-Core-Nodes
> > ...
> >
> > el primero esta marcado como paquete de monticello, creo.
> >
> > Bien, los ejemplos que vi, el nombre del paquete coincidia con el nombre
> de la
> > categoria. Hasta donde veo, el System Browser de Pharo 2.0, en el primel
> panel
> > de arriba a la izquierda, lista categorias, aunque los llama paquetes.
> >
> > Ahora, al fin, viene la duda. Cuando Denker agrego lo que hizo como
> paquete de
> > Monticello, supongo que agrego AST-Core. Tuvo que hacer algo mas? O
> > automaticamente agrega todo lo que es tambien AST-Core-*?
> >
> > La otra duda es: donde van los tests?
> >
> > - En una categoria, pero dentro del mismo paquete?
> > - En una categoria y paquete aparte?
> >
> > Nos leemos!
> >
> > Angel "Java" Lopez
> > @ajlopez
>
> En Squeak tenemos PackageInfo dentro de PackageInfo-Base.
> De ahi vienen muchisimos males a medio corregir.
> De ahi viene denominar a los .mcz como "paquetes"
> Si hay Test, deberian ir dentro de la categoria.
> Me obligaste a abrir Pharo 2.0 para ver y no hay
>
> AST-Test
>
> Pero si por ejemplo
> Announcements-Tests-Core
> Dentro de Announcements
>
> O sea la primera palabra define el paquete
> Todo lo que empiece con AST va al paquete AST, lo que empiece con
> Announcements va al paquete Announcements , etc,
>
> Seguramente los primos Pharopatas te alumbraran mejor.
>
> Como le dije a Luis, estoy mas cerca del volido de la gallina que del vuelo
> del Condor.
>
> Los Pharopatas vuelan en esos bichos de "Avatar":=)
>
> Edgar
>
>  
>
Reply | Threaded
Open this post in threaded view
|

Re: Paquetes, Categorias, Clases, Tests

Edgar De Cleene
> Hola gente!
>
> Como me lo suponia, la respuesta a mi pregunta sobre paquetes, estaba
> respondida en el libro de Pharo. Pero hay que llegar a la seccion 6.3
> Monticello (en mi version PBE-2009-10-28) Ahi esta clarificado el asunto. Creo
> que no molesta mucho compartir directamente por aca, y ver el "rationale" de
> todo esto:
>
Si, ahí aclara lo de cuando tenes extensiones a otras clases que no
pertenecen al paquete.

No se estas suscripto a The general-purpose Squeak developers list
<[hidden email]>, ahora se esta discutiendo una serie
de temas , este entre otros.

Yo tengo una modificacion a PackageInfo donde incluyo PackageResources para
que tomando el concepto de los SAR, te permita grabar recursos del package
en un Monticello normal.

De las montones de posibilidades de hacer cosas y documentar, pongo
prioridad a dos.

Reconstruir el SqueakRosCore4dot5 viniendo desde este
http://ftp.squeak.org/Experiments/SqueakCore4.2-10382-alpha.zip

Encontre un problema , bug o cucarachon

Resulta que ciertos "sabios" decidieron que no hace falta tener numero
precediendo el nombre de los Change Sets que se crean al actualizar una
imagen.

Pharo y Cuis usan y yo retome la practica que tenia en 3.10.
Pero al ver las ultimas versiones de SqueakRosCore4dot5  veo que hay cambios
vacios.

"Invente" esto que copio

'From SqueakRosCore4dot5 of 20 May 2013 [latest update: #12529] on 28 July
2013 at 7:12:48 am'!

!ChangeSorter class methodsFor: 'deprecated' stamp: 'edc 7/28/2013 07:06'!
removeAllEmptyChangeSets
    "Remove all change sets that are empty, and which are not nailed down by
belonging to a Project."
    "ChangeSorter removeAllEmptyChangeSets"
    | toGo |
    (toGo := (self allChangeSets)
        select: [:cs | cs isEmpty and: [cs okayToRemoveInforming: false]])
        do: [:cs | self removeChangeSet: cs].
    self inform: toGo size printString, ' change set(s) removed.'! !

Pero ahora voy a tratar de ver porque paso, la logica de carga debe estar
mal y si por algun motivo al seguir el Trunk no se producen cambios, no
deberia crearse ningun change set.

La segunda cosa que pienso hacer y documentar es copiar la idea de
http://www.pearltrees.com

Hoy intente usarlo (estoy jugando mucho con lo social ultimamente, tengo dos
equipos en la facu trabajando sobre esto)
Y veo que no puedo tenerlo como punto de entrada de "la vuelta larga" ya que
me entra a pedir claves, etc.

Mi idea es combinar Squeak,JavaScript y HTML5 para lograr eso

Asi que atentos a twiteer y a los videos

Edgar




Reply | Threaded
Open this post in threaded view
|

Re: Paquetes, Categorias, Clases, Tests

Angel Java Lopez
Ah!

Que interesante Edgar... bien, parece que ese tema no esta asentado todavia.

Bueno, hoy puse mi primer paquete (un simple AjUnit assert: ...)

https://github.com/ajlopez/SmalltalkSamples

como file out, o como repo de FileTree

No pude publicarlo en Squeak Source 3, se queda siempre colgado en algo
(Pharo 2.0 congelado congelado)

Nos leemos!

Angel "Java" Lopez
@ajlopez



2013/7/28 Edgar J. De Cleene <[hidden email]>

> **
>
>
> > Hola gente!
> >
> > Como me lo suponia, la respuesta a mi pregunta sobre paquetes, estaba
> > respondida en el libro de Pharo. Pero hay que llegar a la seccion 6.3
> > Monticello (en mi version PBE-2009-10-28) Ahi esta clarificado el
> asunto. Creo
> > que no molesta mucho compartir directamente por aca, y ver el
> "rationale" de
> > todo esto:
> >
> Si, ahí aclara lo de cuando tenes extensiones a otras clases que no
> pertenecen al paquete.
>
> No se estas suscripto a The general-purpose Squeak developers list
> <[hidden email]>, ahora se esta discutiendo una
> serie
> de temas , este entre otros.
>
> Yo tengo una modificacion a PackageInfo donde incluyo PackageResources para
> que tomando el concepto de los SAR, te permita grabar recursos del package
> en un Monticello normal.
>
> De las montones de posibilidades de hacer cosas y documentar, pongo
> prioridad a dos.
>
> Reconstruir el SqueakRosCore4dot5 viniendo desde este
> http://ftp.squeak.org/Experiments/SqueakCore4.2-10382-alpha.zip
>
> Encontre un problema , bug o cucarachon
>
> Resulta que ciertos "sabios" decidieron que no hace falta tener numero
> precediendo el nombre de los Change Sets que se crean al actualizar una
> imagen.
>
> Pharo y Cuis usan y yo retome la practica que tenia en 3.10.
> Pero al ver las ultimas versiones de SqueakRosCore4dot5 veo que hay cambios
> vacios.
>
> "Invente" esto que copio
>
> 'From SqueakRosCore4dot5 of 20 May 2013 [latest update: #12529] on 28 July
> 2013 at 7:12:48 am'!
>
> !ChangeSorter class methodsFor: 'deprecated' stamp: 'edc 7/28/2013 07:06'!
> removeAllEmptyChangeSets
> "Remove all change sets that are empty, and which are not nailed down by
> belonging to a Project."
> "ChangeSorter removeAllEmptyChangeSets"
> | toGo |
> (toGo := (self allChangeSets)
> select: [:cs | cs isEmpty and: [cs okayToRemoveInforming: false]])
> do: [:cs | self removeChangeSet: cs].
> self inform: toGo size printString, ' change set(s) removed.'! !
>
> Pero ahora voy a tratar de ver porque paso, la logica de carga debe estar
> mal y si por algun motivo al seguir el Trunk no se producen cambios, no
> deberia crearse ningun change set.
>
> La segunda cosa que pienso hacer y documentar es copiar la idea de
> http://www.pearltrees.com
>
> Hoy intente usarlo (estoy jugando mucho con lo social ultimamente, tengo
> dos
> equipos en la facu trabajando sobre esto)
> Y veo que no puedo tenerlo como punto de entrada de "la vuelta larga" ya
> que
> me entra a pedir claves, etc.
>
> Mi idea es combinar Squeak,JavaScript y HTML5 para lograr eso
>
> Asi que atentos a twiteer y a los videos
>
> Edgar
>
>  
>
Reply | Threaded
Open this post in threaded view
|

Re: Paquetes, Categorias, Clases, Tests

Angel Java Lopez
Algo corto nuevo:

Si bien fracase con Squeak Source 3, pude publicar en SmalltalkHub, estoy
como ajlopez
Reply | Threaded
Open this post in threaded view
|

Re: Paquetes, Categorias, Clases, Tests

Edgar De Cleene
> Algo corto nuevo:
>
> Si bien fracase con Squeak Source 3, pude publicar en SmalltalkHub, estoy como
> ajlopez

Ok, yo todavia no pero si tengo un repositorio en SS, cuando pueda pasare
todo lo viejo ahí

Edgar


Reply | Threaded
Open this post in threaded view
|

Re: Paquetes, Categorias, Clases, Tests

Edgar De Cleene
In reply to this post by Angel Java Lopez
> Ah!
>
> Que interesante Edgar... bien, parece que ese tema no esta asentado todavia.
>
> Bueno, hoy puse mi primer paquete (un simple AjUnit assert: ...)
>
> https://github.com/ajlopez/SmalltalkSamples
>
> como file out, o como repo de FileTree
>
> No pude publicarlo en Squeak Source 3, se queda siempre colgado en algo (Pharo
> 2.0 congelado congelado)
>
> Nos leemos!
>
> Angel "Java" Lopez
> @ajlopez


Raro, la ultima vez que use SS3 no tuve problemas.
Si veo algo en la lista de Squeak o hago algo con SS3 te comento.

Nos leemos

Edgar
@morplenauta



Reply | Threaded
Open this post in threaded view
|

Re: Paquetes, Categorias, Clases, Tests

garduino
El otro día hice unos commits de proyectos que tengo ahi en SS3 sin
problemas.....


El 28 de julio de 2013 16:26, Edgar J. De Cleene
<[hidden email]>escribió:

> **
>
>
> > Ah!
> >
> > Que interesante Edgar... bien, parece que ese tema no esta asentado
> todavia.
> >
> > Bueno, hoy puse mi primer paquete (un simple AjUnit assert: ...)
> >
> > https://github.com/ajlopez/SmalltalkSamples
> >
> > como file out, o como repo de FileTree
> >
> > No pude publicarlo en Squeak Source 3, se queda siempre colgado en algo
> (Pharo
> > 2.0 congelado congelado)
> >
> > Nos leemos!
> >
> > Angel "Java" Lopez
> > @ajlopez
>
> Raro, la ultima vez que use SS3 no tuve problemas.
> Si veo algo en la lista de Squeak o hago algo con SS3 te comento.
>
> Nos leemos
>
> Edgar
> @morplenauta
>
>  
>



--
Saludos / Regards,
Germán Arduino
www.arduinosoftware.com
Reply | Threaded
Open this post in threaded view
|

Re: Paquetes, Categorias, Clases, Tests

Angel Java Lopez
Hablando de Cog, aparecio en la lista Smalltalk research

The Cog Smalltalk Virtual Machine
writing a JIT in a high-level dynamic language
http://www.cs.iastate.edu/~design/vmil/2011/papers/p03-miranda.pdf

Otro articulo (a pagar, creo):
Back to the future: the story of Squeak, a practical Smalltalk written in
itself
http://dl.acm.org/citation.cfm?id=263754


2013/7/28 Germán Arduino <[hidden email]>

> **
>
>
> El otro día hice unos commits de proyectos que tengo ahi en SS3 sin
> problemas.....
>
>
> El 28 de julio de 2013 16:26, Edgar J. De Cleene <[hidden email]>escribió:
>
>  **
>>
>>
>> > Ah!
>> >
>> > Que interesante Edgar... bien, parece que ese tema no esta asentado
>> todavia.
>> >
>> > Bueno, hoy puse mi primer paquete (un simple AjUnit assert: ...)
>> >
>> > https://github.com/ajlopez/SmalltalkSamples
>> >
>> > como file out, o como repo de FileTree
>> >
>> > No pude publicarlo en Squeak Source 3, se queda siempre colgado en algo
>> (Pharo
>> > 2.0 congelado congelado)
>> >
>> > Nos leemos!
>> >
>> > Angel "Java" Lopez
>> > @ajlopez
>>
>> Raro, la ultima vez que use SS3 no tuve problemas.
>> Si veo algo en la lista de Squeak o hago algo con SS3 te comento.
>>
>> Nos leemos
>>
>> Edgar
>> @morplenauta
>>
>>
>
>
> --
> Saludos / Regards,
> Germán Arduino
> www.arduinosoftware.com
>
>  
>