Date classes

stephane ducasse stephane.ducasse at free.fr
Tue Apr 17 20:30:05 UTC 2007


But hernan class comments and method comments are good too.

Stef

On 17 avr. 07, at 18:00, Hernan Wilkinson wrote:

>
>
>
> I loaded Aconcagua-mx.1.6 and Chalten-mx.1.3 in Squeak 3.9. The
> following all give errors:
>
> GregorianDay today + 1 day
> GregorianDateTime now + 1 day
> GregorianDay today next: 5
> GregorianYear current + 1 year
> 5 months
>
>
> I guess I have to thank you. After hearing what a piece of shit
> Seaside is because of its lack of documentation it's relieving to see
> a framework with no class comments at all. A quick browsing through
> same classes showed also no method comments.
>
> jaja, it seems to me that you did not look good enough.... just  
> look at the Test!!! They are all the documentation you need! and  
> more!! real examples, live code! not just documentation.... We  
> defenetly use different development techniques... Also, remember  
> the paper!
> Links:
> http://www.iam.unibe.ch/~ducasse/Teaching/CoursAnnecy/0506-M1-COO/A% 
> 20New%20Object-Oriented%20Model%20of%20the%20Gregorian%20Calendar.pdf
> http://prog2.vub.ac.be/~cderoove/esugtalks/Wilkinson.pdf   (ESUG  
> Presentation)
>
> About the code you tried:
> 1) GregorianDay today + 1 day  -> It will not work becuase a date  
> is not polymorphic with numbers. You have to do: "GregorianDate  
> today next" or "GregorianDate today next: 1 * day" Remember the *,  
> that allows you to create measures easily
>
> 2) GregorianDateTime now + 1 day ---> Same as 1)
>
> 3) GregorianDay today next: 5 --> It will not work because 5 is not  
> a measure of time, it is just a number. Try
> "GregorianDay today next: 5 * day"  5 * day is a measure of time
>
> 4) GregorianYear current + 1 year --> Same as 1) but using a  
> measure expressed in year, for example "2 * year"
> 5) 5 months --> Measure are created in many ways. We decided not to  
> clutter the number protocol with each unit you could have...  
> because measures are arithmetic representations of a number times  
> its unit, the right way to create them is using the arithmetic  
> operator * (See our paper about Aconcagua. Link:
> http://portal.acm.org/citation.cfm? 
> id=1094964&coll=ACM&dl=ACM&CFID=20205775&CFTOKEN=19800555 )
>
> Hope this help.
> Hernan.
>
> Cheers
> Philippe
>
> > > > These objects are
> > > > polymorphic with numbers respect to the arithmetic messages  
> such as +,
> > -, *,
> > > > etc., that means that you can use them in arithmetic formulas
> > >
> > > That's true to a certain extent in Chronos for example you can:
> > > Timepoint now - (CalendarDuration months: 1)
> > > (CalendarDuration months: 1) * 5
> > > but you can't:
> > > 5 * (CalendarDuration months: 1)
> >
> > Ok, but it is not only the functionality what it is important for  
> us... for
> > us it is also important the way you "write" these things... for  
> example,
> > with Chalten/Aconcagua you can write:
> >
> > 5 * month ---> Equivalent to 5 * (CalendarDuration months: 1)
> > 5 * meter / (second * second) --> A measure of acceleration if  
> you create
> > meter as a unit using Aconcagua
> > 1/10 * year --> Represents an interest rate of 10% yearly.
> >
> > As you can see, time measure are not only related only to the  
> time domain
> > but used in other domains... that is way for us it is important  
> to support
> > this type of behavior and in a DSL way...
> >
> > Bye,
> > Hernan.
> >
> > > > 5) And of course, I like Chalten's model more that  
> Chronos :-). For me
> > it is
> > > > easier to use, but this is just a matter of taste...
> > > >
> > > > There is a paper we wrote 2 years ago about the problems that  
> the
> > Smalltalk
> > > > date classes have and the advantages of having a better  
> model. If you
> > are
> > > > interested on having better date and time classes, I  
> recommend you to
> > read
> > > > the paper... you may not like it, but at least you will see  
> other people
> > > > ideas...
> > > > We use that model (Chalten) in a production system and we  
> believe it
> > allowed
> > > > us to avoid many common mistakes related to financial  
> systems.... but
> > hey,
> > > > that's just a feeling, nothing I can prove formally.
> > > >
> > > > I hope you can do something useful.
> > > > Bye,
> > >
> > > Chronos is a bit ugly in Squeak because Squeak does not support
> > > namespaces which means that classes that model the same concept as
> > > Squeak Chronology classes have different names (unless you mess  
> with
> > > shared pools). Also loading it is a bit of a pain with Monticello
> > > (this is the fault of Monticello and not Chronos).
> > >
> > > Cheers
> > > Philippe
> > >
> > > > Hernan.
> > > >
> > > >
> > > > On 4/16/07, J J <azreal1977 at hotmail.com > wrote:
> > > > > I have looked at Cronos but it is really huge, and the  
> classes that
> > come
> > > > > with the image are already very close.  I will have to look at
> > Chalten,
> > > > but
> > > > > what is wrong with a few upgrades to the classes that come  
> with
> > Squeak?
> > > > >
> > > > > >From: "Hernan Wilkinson" < hernan.wilkinson at gmail.com>
> > > > > >Reply-To: The general-purpose Squeak developers
> > > > > >list< squeak-dev at lists.squeakfoundation.org >
> > > > > >To: "The general-purpose Squeak developers
> > > > > >list"< squeak-dev at lists.squeakfoundation.org >
> > > > > >Subject: Re: Date classes
> > > > > >Date: Mon, 16 Apr 2007 14:28:09 -0300
> > > > > >
> > > > > >Before doing something with Date, I recommend you to take  
> a look at
> > > > > >"Chalten" or "Cronos". Chalten is in SqueakSource.... I  
> think Cronos
> > too.
> > > > > >
> > > > > >Hernan.
> > > > > >
> > > > > >On 4/16/07, J J < azreal1977 at hotmail.com> wrote:
> > > > > >>
> > > > > >>Hi all,
> > > > > >>
> > > > > >>I am doing some stuff with dates and I noticed the date  
> classes that
> > > > come
> > > > > >>with the default Squeak image are very nice and very  
> close to having
> > > > > >>everything I would want.  But there are a few  
> inconsistencies here
> > and
> > > > > >>there, and things missing that would make things easier.
> > > > > >>
> > > > > >>So what is the procedure to updating this?  I think it's  
> part of the
> > > > core
> > > > > >>system so I probably can't just do a monicello package  
> update
> > > > > >>somewhere?  Do
> > > > > >>I have to do it through mantis?
> > > > > >>
> > > > > >>Thanks,
> > > > > >>Jason
> > > > > >>
> > > > >
> > > >
> > >>_________________________________________________________________
> > > > > >>Download Messenger. Join the i'm Initiative. Help make a  
> difference
> > > > today.
> > > > >
> > > >
> > >>http://im.live.com/messenger/im/home/?source=TAGHM_APR07
> > > > > >>
> > > > > >>
> > > > > >>
> > > > >
> > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > _________________________________________________________________
> > > > > Get a FREE Web site, company branded e-mail and more from  
> Microsoft
> > Office
> > > > > Live!
> > > >
> > http://clk.atdmt.com/MRT/go/mcrssaub0050001411mrt/direct/01/
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> >
> >
> >
> >
> >
>
>
>




More information about the Squeak-dev mailing list