April 23, 2014, Merrick, NY - LearnMyChants.com, a website for training Bar/Bat Mitzvah students, launched today. The site allows Rabbis, Cantors and Jewish educators to easily distribute recordings of Torah and Haftorah chants for their students to prepare for their upcoming ceremonies.

Previously, religious educators had to create CDs or email files to students or their parents. CDs were often lost or forgotten, wasting valuable time for both students and instructors. When using LearnMyChants.com, this is all done online, and students and their parents are notified via email automatically whenever there are new files available. Students can play tracks right from the website on any device with an Internet connection, download them for future playback, or load them into iTunesTM.

LearnMyChants.com also allows instructors to view all their students at a glance, or to notify all or individual students about changes. In addition, users can create “standard tracks” that are re-used across students, saving even more time when organizing the recordings for each student.

The website is “user-friendly which is obviously very important,” according to Cantor Daniel Rosenfeld of Temple Beth Am of Merrick and Bellmore. Cantor Rosenfeld was a “beta tester” for LearnMyChants.com, providing valuable feedback while using it for 12 months of Bar/Bat Mitzvah students. “You've revolutionized Beth Am's B'nei Mitzvah training program!” he added.

A limited-time free trial of LearnMyChants.com is available for any interested religious educator; users can upgrade to a paid account to access all features for a full year.

About LearnMyChants.comLearnMyChants.com is a product of Plasstech, LLC, based in Merrick, NY. Founded in 2012, Plasstech, LLC builds websites, web applications and web forms for small businesses and non-profit organizations.

Even before I got my desk, I had the need to keep papers together, and to make notes to myself. See where this is going? I raided the supply closet at home, to see what I could use. I found a veritable treasure trove of office supplies, and I didn't have to spend a dime! Some of the items were brand new, some were gently used, and others were, ... well, they should have been thrown out years ago.

My wife has been saving these things for years -- and for what purpose? There's no need to keep my son's Italian homework from 5 years ago. I respectfully disposed of the contents, and before I knew it had 3 new folders, 3 new notebooks, and a pile of sticky notes that I don't even know if I'm going to use or not.

Total price: Zero!

2. Double (or triple!)-duty

When shopping for my desk, I knew I only had a limited amount of space in the master bedroom for it. I also knew that my night stand was on its way out. I knew I wanted

to put the desk right next to the bed, so my wife had the great idea of finding a desk with built-in shelves.

It took some shopping but eventually I found a desk at Staples that fit the bill. It has a pretty decent sized top surface for typing/writing, a section for my notebooks, and

a little shelf that I can shove my laptop under. This forces me to "clean my desk" every day, if only to hide the laptop light under the shelf.

The best feature of this desk (double-duty!) is that it has four shelves - two are adjustable on the side, facing my bed. This takes the place of my night stand, and easily holds all the doodads (two clocks, my watch/keys/phone, etc.) that I used to have on and in my nightstand.

Even better (triple-duty!) is that the desk has a built-in bulletin board. I tacked up a receipt I needed to remember to use. Now it holds two cheat sheets that I'll be able to reference easily.

3. DIY

There are some things in life which I'm more than content to do myself: putting together furniture is one of them. I was a Lego and Erector Set aficionado as a kid, so when shopping for things (furniture, toys, etc.) I'm not intimidated by a little "adult assembly required." Still, you get what you pay for, but I'm happy to pay 1/4 of the price for the "cheap stuff". YMMV, though.

A website I just registered for had a huge litany of "rules" about picking the password:

"Password must contain at least 3 alphanumeric (letter or number) characters. Password must contain at least 4 characters of different types (lowercase, uppercase, digit or punctuation). Password must contain at least one digit. Password must not match last 8 passwords. Password must be at least 8 characters in length. Password must contain at least 2 letters. Password must contain at least one lowercase character. Password must contain at least one punctuation (not whitespace or an alphanumeric) character. Password must contain at least one uppercase character. Password must not contain the username."

tl;dr.

Instead, why not implement two-factor auth? This usually involves something you know (your password) and something you have (the two-factor authentication device, which generates a pseudo-random number in sync with a server.) If your password is compromised, the bad guys still can't log in without your device. It's much more difficult (nigh impossible) to "guess" what the next number in the sequence will be, so either way you're covered.

I used to write all my (non-work) code either in bed, or in a comfy chair in my bedroom. I felt my productivity was lagging; I was *too* comfy.

So I recently bought a desk, which also replaced my nightstand and bookshelf. Three-in-one combo!

I started with a folding chair, but swapped it for one of my office chairs which we weren't using in the office anyway.

Finally, I bought a mouse for my laptop.

When I started using the desk/chair/mouse combo, I felt my productivity go up by an order of magnitude. I got more done in a few days than I had in a few weeks! Even the smallest and the grungiest tasks seemed effortless with my new setup.

The last post might make it seem that building a printable calendar was easy going. But it wasn't...

As it turns out, the ical format, while well-defined, isn't well supported in the Python world...

In order to properly read the ical file itself, we had to use the icalendar library.

However, this library didn't support recurring events ("RRULE" entries), so we used the dateutil library for that.

Neither of these support timezones, so we used a third library for that. (Worse: the default Python timezone library isn't App Engine compatible, so we needed to monkey-patch it using the GAE variant.)

Between these three libraries, we had pretty much everything we needed to display all the events on the client's calendar, as required.

One of the more interesting projects that we did was a printable calendar for a synagogue.

Originally, the synagogue was using a free calendar system, which injected ads into the calendar. When they printed the calendar for their custodians and office staff, it was difficult to tell what was an ad, and what was an event.

We suggested they use a different free calendar system from a Major Internet Company, which didn't have advertisements. This calendar was shareable with the congregation, and it was easy to grant read/write access to certain other congregants, to keep it up to date.

The problem was that this calendar didn't print well. Luckily there is a "feed" in the ical format. We built a small App Engine app, using Python and Django, that reads the "feed" URL and displays it in a calendar format. Since we controlled the display code, we could control the full look and feel of the calendar and everybody's happy!

In the spirit of Newman's Own and the Paul Newman Foundation, we will donate 1% of all Plasstech, LLC revenue to charity. We see this as a no-brainer way to support the charities that we feel are important in today's world. Thank you for your support!