[ANN] Aconcagua

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

[ANN] Aconcagua

Hernan Wilkinson
Hi,
Mercap Software is opening some of the base code we wrote for a
financial application. Aconcagua is the first one and it is a model to
handle measures.
You can download it from SourceForge
(https://sourceforge.net/projects/aconcagua) SqueakSource (for Squeak)
and the VW Public Repository (for VW).
We currently support VA Smalltalk 7, VisualAge 6.0.2 (although we did
not upload that version yet), Squeak, VisualWorks and GemStone.
We uploaded a FAQ in SourceForge and also in SqueakSource.
The model has been developed using TDD, so it has around 600 tests.
With this package there are some extensions we made to SUnit as well.
These extensions are now part of the Squeak SUnit version. (For a
description of these extensions you can go to the project
SUnitExtensions in SqueakSource)
This measure model was presented at OOPSLA 2005 as a practitioner
Report. You can get it from 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 

Here are some Smalltalk code of what you can do with this model:

2 * miles ---> Create the measure 2 miles
(1 * day) + (3 * day) --> Returns the measure 4 * day
(1 * day) + (24 * hour) --> Returns the measure 2 * day or 48 * hour,
they are equal
(10 * dollars) – (5 * dollars) --> Returns 5 * dollar
(1 * day) * (2 * day) --> Returns 2 * (day*day)
(10 * meter) / (1 * second) --> Returns the measure 10 * (meter/second)
(10 * meter) * (200 * centimeter) --> Returns 20 * (meter*meter)
(24 * month) / (1 * year) --> Returns the number 2 because month and
year are units of the same domain. This expression is equal to (2 *
year) / (1 * year), where the year units is reduced and the result of 2
/ 1 is returned.
(1 * day )< (2 * day) --> Returns true
(1 * day) > ( 12 * hour) --> Returns false
(1 * day) to: (10 * day) --> Creates an interval from 1 day to 10 days
every 1 day.
(1 * day) to: (10 * day) by: (2 * day) --> Creates an interval from 1
day to 10 days every 2 day.
(5 * meter) toYourself --> Creates an interval from 5 meters to 5 meters.
Because they are intervals, they provide the same protocol as
Collection. For example:
((1 * day) to: (10 * day)) select: [ :aDayMeasure | aDayMeasure \\ 2 = 0
] --> Returns a collection with 2 days, 4 days, 6 days, 8 days and 10 days.

The model is provided with the MIT license.
I hope you like it and find it useful.

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

--
______________________________
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.
 ---------------------------------------------------------------------