1. 10

We just released a free open source web application to send automatic reminders of national holidays through different services (currently email, Slack and webhooks are supported but more are planned). It’s mainly intended for freelance and remote workers, allowing to customize the country holidays and time zones to send the reminders. We created it because we work with customers of different countries of the world and we kept on forgetting to let them know that we had the day off because it was a national holiday.

This is a very simple app and we have a lot of ideas to improve it (more reminder customizations, supporting vacations, etc.). I am really interested in know what the lobste.rs community thinks about the app or our implementation. We will never try to earn money with this, so please give us some feedback about what we could improve it.

You can check it out here: https://holidayping.lambdaclass.com/

Yesterday I posted how we implemented it: https://lobste.rs/s/mgefw9/holiday_ping_how_we_implemented_our_first



  2. 3

    Pretty slick.

    I wrote a very simple tool to generate a provincial holiday calendar for the next 15-20 years from the government’s description of holidays (“Second Monday in October”). We might eventually need to switch to something like this since time zones are definitely one of the things I didn’t need to consider on the first quick implementation.

    It was a fun project, and I found out that calculating Easter is actually surprisingly complex.

    1. 5

      My goodness, you weren’t kidding about Easter. From Wikipedia:

      Easter and the holidays that are related to it are moveable feasts which do not fall on a fixed date in the Gregorian or Julian calendars which follow only the cycle of the sun; rather, its date is determined on a lunisolar calendar similar to the Hebrew calendar. The First Council of Nicaea (325) established two rules, independence of the Jewish calendar and worldwide uniformity, which were the only rules for Easter explicitly laid down by the council. No details for the computation were specified; these were worked out in practice, a process that took centuries and generated a number of controversies. It has come to be the first Sunday after the ecclesiastical full moon that occurs on or soonest after 21 March, but calculations vary.

      1. 3

        I did this years ago when I was tasked to enter holidays into our homegrown activity tracker.

        Calculating Easter has been a problem for literally thousands of years: the Latin term computus refers to it.

        Luckily this means it’s a “solved problem”, for me the Perl module Date::Calc was the solution with its Easter_Sunday function. From the documentation is uses the Gauss algorithm from 1800.

        Ugly hacky code derived from that work here.

        Edit Swedish public holidays are pretty simple compared to other countries.

        1. There are holidays on fixed dates (Christmas, May day, National day)
        2. There are holidays that depend on Easter
        3. There are holidays that fall on certain date ranges (Midsummer’s day, All Saint’s day)

        There are no compensatory bank holidays if a date-based holiday falls on a weekend.

        1. 1

          The whole “public holidays” problem is an interesting one. I’d love for there to be a public dataset of holidays which could be imported or queried via API. Unfortunately, it seems like quite a difficult problem!


          The closest I’ve come to is using the Google Calendar listings, although I wouldn’t want to use it for anything other than personal use (see stackexchange thread above).

          https://github.com/novafloss/workalendar also looks interesting, albeit incomplete.

          1. 2

            A database like that would be akin to the TZ database, but even harder to maintain.

            Edit I now see that’s essentially what the SO discussion says…

            In the end I believe having an open calendar standard so various people (like, for example, government agencies) can simply craft their own and distribute as they see fit.

      2. 3

        I think the title is missing a “know” between customers and about.

        1. 1

          Thanks, I thought it was correct without the know.

        2. 1

          Can I ask what the business model of lambdaclass is or will be?

          1. 1

            From this blog post:

            LambdaClass, a Buenos Aires-based software consultant founded a while ago by some colleagues and schoolmates. LambdaClass has a special interest in distributed systems, and while it’s not exclusively an Erlang shop, most of its projects are implemented in BEAM languages.

            1. 2

              That doesn’t seem like a business model. It sounds more like an erlang hobby club.

              edit: apologies, I glazed over the word consultant there.

              1. 1

                The difference between a business and a hobby club is profit. We do have fun but we exists because we have clients.

                Developers are expensive and in many cases they don’t have the experience or knowledge needed. In a few particular areas we have experience and knowledge.

                1. 2

                  I was not implying it isn’t a business, just that I didn’t understand it. I missed the part it is a consultancy. Thank you for clarifying. I absolutely see the value in building software stack so you have a pool of tools to draw from. I just don’t really see the benefit in running something indefinitely for free.

                  edit: eh, im just digging myself into a hole. Apologies for a stupid comment caused by poor reading.

                  1. 1

                    You do have a valid point: for the time being we are more like a hobby club, one that sells services. We choose what we do and how over earning more. If we grow bigger we will need to be more similar to other companies. So that you know we are only 5 devs at the moment. I have to write a few lines for our landing (3 years without a landing page is way too much) and your comments made me realize we need to simplify our message. Thanks!

                    1. 1

                      It actually seems like a great place. A lot of what you guys have written resonates well with me.