Concatenative language
Concatenative topics
Concatenative meta
Other languages
Meta
= Mentor = [[Doug Coleman]] = Level = Beginning = Skills required = - Willingness to learn Factor - Interest in calendars and world cultures - Generalizing existing code into a protocol = Existing work = Factor's current calendar library supports the Gregorian calendar and conversion between it and the Julian calendar. = Technical details = Not everyone in the world uses the Gregorian calendar for every facet of their life. In particular, support for Buddhist, Hebrew, Islamic, and Japanese calendars would be a good start in making the calendar library more useful. By implementing a generic calendar protocol, one could convert between the calendars and use dates in other formats than the Western-centric one Factor currently supports. == Calendar protocol == A calendar/localization protocol should support: - converting between days on different calendars - adding durations to calendar dates - localization, such as taking into account if Monday or Sunday is the first day of the week - formatting of various dates as expected by followers of the calendars - displaying the calendar in a format familiar to people who would use it == Additional features == The student can identify use cases for calendars and add code to cover these use cases. For instance, one major use of calendars is to remember holidays. There is currently a library that can calculate American holidays, but the student can figure out a way to generalize this to new calendars and holidays. = Benefit to the student = - Learning about calendars - Implementing protocols and generalizing code in Factor = Benefit to the community = A well-written calendar library would make it easier to write applications based around calendars, such as daily planners, email clients, and web applications. = Resources = [[http://www.amazon.com/Calendrical-Calculations-Nachum-Dershowitz/dp/0521702380/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1236990095&sr=8-1]]
Describe this revision:
Save