Hola Hernán,
Gracias por la información!
Actualmente no tengo necesidad de usar soluciones
a unidades ni fechas/calendarios,
pero en el pasado me ha ocurrido, más de una vez, el
tener que implementar soportes de unidades; una de
ellas con motivaciones didácticas además de comerciales.
En este último caso, como resultado de la experiencia
(de mediados/fines de 1999) se produjo el framework
de unidades que está en nuestra página de laboratorio
http://www.smalltalking.net/Lab/index.htm
y usé con bastante éxito para el modelo de fábrica
(en la misma página); que luego extendieron y usaron
otras personas de Smalltalking.
No se si lo has visto o si tu gente lo ha estudiado al investigar
opciones preexistentes a vuestra implementación;
si es así me gustaría conocer como se relaciona con
ese trabajo, diferencias, críticas, etc... como así también
me gustaría conocer si Aconcagua conforma a algún
standard sobre unidades (en el caso del framework
de unidades de Smalltalking, conforma la especificación
del NIST - Sistema de Unidades Internacional, aunque
como es de esperar, no están implementadas todas
las alternativas posibles, sino las más comunes).
bueno, nuevamente gracias por el haberte dado tiempo
para compartir localmente tu trabajo y el de tu gente.
hasta pronto,
Ale.
----- Original Message -----
From: "Hernan Wilkinson" <hernan.wilkinson@...>
To: "smalltalking" <smalltalking@...>
Sent: Wednesday, April 19, 2006 5:30 PM
Subject: [objetos] Modelos de Medidas y Fechas
> Que tal gente,
> hace rato que quiero enviar este mail y me olvido.
> Hace un par de semanas atras abrimos unos modelos que hicimos en
> Mercap y de los cuales escribimos unos papers para OOPSLA y ESUG.
> Los modelos son:
> 1) Aconcagua: Para trabajar con medidas
> 2) Chalten: Modelo del calendario Gregoriano
>
> Dicen que uno no es profeta en su tierra y me di cuenta que todo
> esto lo anunciamos en las listas del exterior pero no en las de aca, asi
> que pido disculpas por no haberlo hecho a su debido tiempo. Ademas pido
> disculpas tambien porque no tengo mucho tiempo para volver a escribir
> dichos mails en castellano, asi que les copio a continuacion los mails
> que mandamos a la lista de Squeak en ingles.
> Como resumen les cuento de donde se pueden bajar los paquetes:
> 1) Aconcagua: www.sourceforge.net/aconcagua, www.squeaksource.com,
> public repository de VW.
> 2) Chalten: www.sourceforge.net/chalten, www.squeaksource.com,
> public repository de VW.
> Ambos proyectos tienen un FAQ (en source forge estan como
> documentaicon y en squeak source en el wiki interno)
> Los modelos estan abiertos con licencia MIT, por lo tanto los pueden
> usar, mejorar, tirar a la basura, etc.
> Si encuentran cosas interesantes, criticas, etc, seran bienvenidas.
> Si quieren los papers y no tienen acceso para bajarlos, avisenme que se
> los envio sin problema. Como detalle les comento que ambos modelos
> fueron escritos usando TDD y tienen cada uno alrededor de 600 tests,
> estan en VisualAge, VisualWorks y Squeak (los tenemos funcionando en
> GemStone tambien pero no tuvimos tiempo de subirlos).
> Maxi Taborda hizo las migraciones a cada Smalltalk y va a ampliar
> Chalten para que tenga soporte de time zone, otros calendarios, etc.
> Espero les guste y les sea util.
>
> Un abrazo,
> Hernan
>
> --------------------- MAIL DE ACONCAGUA --------------
> Hi,
> we create a packaged named Aconcagua at SqueakSource.
> This model represents measures as first class objects, that is, an
> object that encapsulates a number with its unit.
> We uploaded a FAQ to its SqueakSource wiki, with some examples. The
> model includes almost 600 tests that can be used as examples also.
> We use this model in many of the financial applications we wrote and
> it is used by the Gregorian Calendar model we are going to upload soon
> (the one presented at ESUG last year).
> The package is going to be available for VisualAge, GemStone,
> VisualWorks and Dolphin. (Right now only on Squeak, VisualAge and
> GemStone).
> There is also a practitioner report we wrote for OOPSLA about this
> model:
>
(http://portal.acm.org/citation.cfm?id=1094964&coll=ACM&dl=ACM&CFID=72196433
&CFTOKEN=8952623
>
<http://portal.acm.org/citation.cfm?id=1094964&coll=ACM&dl=ACM&CFID=72196433
&CFTOKEN=8952623>)
>
>
> We hope you like it.
> Bye, Hernan.
> ------------------------ MAIL DE CHALTEN -----------------
> Hi,
> we uploaded to SqueakSource a new project called "Chalten" that is
> the Squeak implementation of the Gregorian Calendar we presented last
> year at ESUG.
> This model reifyes many concepts of the Gregorian Calendar that
> Smalltalk-80 does not (like day or day of month, etc).
> This model was born one year and a half ago but we just be able to
> open it.
> The main objective of this model is to easily solve problems of the
> Gregorian Calendar that are not so easy to do with the Smalltalk-80
> classes. It provides also some concepts that are useful for financial
> applications like TimeLineFilter and RelativeGregorianDate.
> This model also uses the units models (Aconcagua) we uploaded last
> week. Because it uses the units model, there are some concepts that are
> not useful anymore, like Duration, because a Duration is a Measure of
time.
> Anyway, you can read about the model at the SqueakSource wiki (we
> wrote a faq with some examples), the ESUG presentation from
> http://prog2.vub.ac.be/~cderoove/esugtalks/Wilkinson.pdf
> <http://prog2.vub.ac.be/%7Ecderoove/esugtalks/Wilkinson.pdf> and the
> paper from
>
http://www.iam.unibe.ch/publikationen/techreports/2005/iam-05-001/file/at_downlo\
ad
>
> It comes with almost 600 tests and you can read in the paper how it
> compares to Chronology.
> Here are some examples I hope you will like:
>
> January first, 2006 --> Creates an instance of GregorianDate for
> 01/01/2006
> January first --> Creates an instance of
> GregorianDayOfMonth for 01/01
> January, 2006 --> Creates an instance of
> GregorianMonthOfYear for January 2006
>
> January first, 2006 distanceTo: July first, 2006 --> Returns an
> instance of Measure "181 days"
>
> (GregorianYear number: 2006) months collect: [ :aMonthOfYear |
> aMonthOfYear lastDate ] -->Returns all the last dates of the 2006 months.
> (GregorianYear number: 2006) dates collect: [ :aDate | aDate
> isMonday ] -->Returns all Mondays of 2006
>
> "Let's create a filter for all dates..."
> nonWorkingDays := TimelineFilter universe: (TheBeginningOfTime to:
> TheEndOfTime).
> "Now, we want Saturdays to be on that filter"
> nonWorkingDays addDayRule: Saturday.
> "Now we want Sundays from January 1st of year 1000 to the end of
> time..."
> nonWorkingDays addDayRule: Sunday from: (January first, 1000) to:
> TheEndOfTime.
> "Now we want all July 9th since 1816 because is the Independence Day
> in Argentina".
> nonWorkingDays addDayOfMonthRule: July ninth from: (July ninth,
> 1816) to: TheEndOfTime.
> nonWorkingDays includes: (July ninth, 2005) "Returns true"
> nonWorkingDays includes: (July eighth, 2005) "Returns false"
> nonWorkingDays includes: (July sixteenth, 2005) "Returns true, it is
> Saturday"
>
> "06/01/2005 is a Thursday"
> aTimespan := GregorianTimespan from: (January sixth, 2005) duration:
> 48 hours.
> aSettleDate := RelativeGregorianDate timespan: aTimespan calendar:
> nonWorkingDays negated.
> "Returns false because 10/01/2005, a Monday, is a working day"
> nonWorkingDays includes: (January tenth, 2005).
> "Returns 10/01/2005"
> aSettleDate absoluteDate.
> "Now a new non working day is added to the filter"
> nonWorkingDays addDateRuleFor: (January tenth, 2005).
> "Return true. Now 10/01/2005, is a not working day"
> nonWorkingDays includes: (January tenth, 2005).
> "Now it returns 11/01/2005 because the filter has changed"
> aSettleDate absoluteDate.
>
> Hernan.
>
> --
> ______________________________
> Lic. Hernán A. Wilkinson
> Gerente de Desarrollo y Tecnología
> Mercap S.R.L.
> Tacuari 202 - 7mo Piso - Tel: 54-11-4878-1118
> Buenos Aires - Argentina
> http://www.mercapsoftware.com
> ---------------------------------------------------------------------
> Este mensaje es confidencial. Puede contener informacion amparada
> por el secreto profesional. Si usted ha recibido este e-mail por error,
> por favor comuniquenoslo inmediatamente via e-mail y tenga la
> amabilidad de eliminarlo de su sistema; no debera copiar el mensaje
> ni divulgar su contenido a ninguna persona. Muchas gracias.
>
> This message is confidential. It may also contain information that is
> privileged or otherwise legally exempt from disclosure. If you have
> received it by mistake please let us know by e-mail immediately and
> delete it from your system; you should also not copy the message nor
> disclose its contents to anyone. Thanks.
> ---------------------------------------------------------------------
>
>