Sunday, February 14, 2021

Baking

As a keen developer, I'm mostly happy with nonstop coding. But time goes by and there's more to the life, than just that. People, like me, are often encouraged to collect “positive life points” by doing something different, to clean their heads.

As I already mentioned, to help with my looming back aches I started running, around 3 miles every other day or so, listening to podcasts, comedy or my custom playlist I crafted for my running tempo.

Last Christmas I sampled a few vanilla crescents, as I usually like to do, because almost everybody have their own style and recipe for them. My wife nudged me to try her nanna's recipe myself. I was intrigued to sample my own recipe, it was quite easy one, now I had an old tablet with Qip to display it while I'm baking, so I took it as a challenge.

Honesty aside, they were awesome! I was really proud my favorite kind of vanilla crescents is the one I did myself.

Timing and COVID caused we didn't get our traditional New Year's small gingerbread piggy from my aunt, which made me somehow sad, so after my success with the crescents I decided to try them as well. I found a recipe simple enough for me to try, with positive feedback in the comments.

It took much more time than I anticipated, mostly because I had to cut some of them and draw on them by hand, but yet again I succeeded and I even made a batch of meringues from leftover icing. The most important part was it didn't bother me at all – I kinda had fun. So it got me thinking and because I love pastry, I upped the ante. Next level: bread rolls.


Gingerbread stuff, hand drawn by sugar icing.

Side note: In Czechia, lunch is the main meal of the day, often hot. At home we adopted my in-laws' fashion of cold dinners – usually bread with sausages, ham, cheese, spread etc. I eventually phased out processed meats and in Switzerland we discovered multitude of great cheeses, so my usual dinners now are just bread'n'cheese, also with lettuce and cherry tomatoes.

I found very simple recipe for yeast-leavened bread rolls from wheat dough and, as before, I tried various shapes and sizes. I was encouraged by low cost of used ingredients, so if I fail, I would have wasted about a buck.

The first batch wasn't that good, but it wasn't bad either. I used too much yeast and not enough salt, so it tasted yeasty. Apart from that it was OK. I still had fun doing it, even there were some rough edges in the process.

I smoothed them by gearing up our kitchen a bit :-) I found a 20 % store-wide discount at my favorite Czech kitchenware manufacturer, so I ordered a digital kitchen scale, infrared thermometer and new silicon baking mat.


My current masterpiece - vánočka, braided from 9 strands.

I immediately started experimenting, because I was curious what would happen if..., and learning, why it needs to be that way. All batches remained edible so far. Now I make my bread rolls with rye/spelt/wheat flour, sea salt, water, olive oil, and leaven from baker's yeast. I'm also baking sweet pastry for weekend breakfasts, like sweet rolls, cinnamon buns, kolaches or strudel.

I'm gonna need to run even more! :-)

Thursday, February 4, 2021

Importance of a full specification

Because of COVID, restaurants are offering only take-aways. Therefore I was (t)asked to create a module for lunch orders for employees, in which there are 4 meal choices, soup and salad or dessert each workday. Then it will record payments made by employees to a designated person.

The data model was quite straightforward, it's basically a simple e-shop. And even simpler, because I can merge orders with payments. So it all fits into a single database table, with a row per day and employee.


When it was ready for testing, I got two “innocent” follow-ups: It should be possible to define amount for each meal, because some employees order lunches for their family members as well, and payments are not only in cash, but also using meal vouchers (common work benefit here in Czechia).

Because for each row I stored price and not the amount, the change would require either a significant extension of the model, or a complete rework. I could imagine further follow-ups like this, so I opted for the more robust latter choice.

The complete rework rest in adding another dimension, so now every row will be for combination date-employee-type, where type is either food or payment.

I have to admit, I didn't expect the change to be that significant. The amount of code doubled, along with its complexity. When I had hard time to update the current code, I ultimately decided to delete most of it and rewrite it almost from scratch, which helped immensely.

It would save me more then half the time required to complete the task, if I had the whole specification from the day one. I partially blame myself, because I went the easier route without further analysis, where the need for food vouchers would possibly emerge.

Update after two months: Guess what? I got another request, this time to record paid invoices to the meal company, that would calculate leftover cash. This time the change was quick and easy, thanks to the clever choice I made :-)