2016 Baking Challenge

For fun this year, in addition to continuing to run every day, I am going to bake my way through The Bread Baker’s Apprentice. It was nice having something to focus my attention on over the course of the year. A bonus? I learned a lot.

I already use this book regularly for some things (cinnamon buns & pizza dough), and I have baked a random assortment of things out of it, but I also have avoided some of the recipes out of fear. Not this year; I will only be skipping recipes I have regularly made since I know I can do them with ease.

There are ~30 recipes in the book, so my aim is to bake something every other weekend, once I take out the ones I am allowed skip.

As I write this I have the first recipe, Anadama bread, on its second rise – it looks delicious – I’ll write more about that soon.

Running Challenge – Achieved!

Yup, I made it through the year! I didn’t have to take a day off even. I did need to take some walking days instead of runs but those met the rules 🙂 365 days (and counting) of running.

Some major milestones:
1. I ran over 1000KM.
2. I ran 5 races.
3. I got a PB on my 5K twice, the last one was 00:24:10
4. I got a PB on my half marathon (2:05:28). This is ~10 minutes faster than
5. I ended up running ~30KM/week by the end of 2015
6. Other fun stats at SmashRun

I have learned a lot about myself this year, there were highs and lows. I meant to write about them, but I always found posts getting too long and that was intimidating.

The summary of the highs and lows: a lot of my stuff is mental 🙂 In order to make it through the year I needed a mentor and to get over myself – I played too many mind games with myself over the years that kept adding up. That hump has been overcome.

On to 2016. I will continue running every day – it has becoming a calming part in my life.

 

Sweet & Sour Cherry Bourbon Preserves

Last year we ended up with a lot more fruit than we originally planned to process (by many, many pounds.) We were a little hesitant about big batches of preserves, as we were still working through the epic amount of mediocre strawberry jam we made in 2009, our first year of canning. To use up all this unplanned bounty, we ended up making jams & preserves in small batches. The experiment worked out well, we have been enjoying many of the things we made last year (lamenting we didn’t make more in some cases.) As a result, we have decided to make more small batch preserves out of our fruit this year.

This week, to start the canning season, we came into a large haul of sweet & sour cherries through a Not Far From the Tree pick. The problem is, we don’t regularly make cherry based preserves. Usually we purchase 5L pails of sour cherries and freeze them for pies and tarts. We have also canned whole sour cherries. Given the quantity available, we wanted to come up with several ways to use them.

In times of canning uncertainty we first check for a recipe from Marisa at Food in Jars that comes close to what we want and build from there. We settled on her Sour Cherry Jam that looked great and was simple enough we could modify it to suit what we wanted 🙂 These modifications included the last minute exclusion of pectin and inclusion of Bourbon.

The results were a delicious preserve. We liked it so much we went out and got more cherries from a local grower this week and made another batch!

Most of this recipe (directions and all) are from Food in Jars – we only tweaked minor things.

Recipe:

600g Sour cherries, pitted and mashed
600g Sweet cherries, pitted and mashed
325g white sugar
1/4 cup Bourbon, anything will do, we used Woodford Reserve.

Directions:

  1. Put three half-pint jars or six quarter-pints (or some combination thereof) in your canning pot and bring to a boil.
  2. Combine fruit and sugar in a heavy, non-reactive pot. Bring to a boil and let bubble for a good twenty minutes (our second batch was ~25minutes.) You want to cook it until it looks like boiling sugar – thick and viscous. Add the bourbon and boil for another five minutes.
  3. Kill the heat, fill your jars (leaving 1/2″ head space), wipe rims, apply the lids and rings and process in the hot water bath for 10 minutes. Remove jars from water and let cool on the countertop. When the jars are cool (I typically wait until overnight), remove the rings and test the seal by picking the jar up by the lid. If it stays put, your jars are good to store indefinitely.

For the curious, was also made:

2015 Photo Challenge

To go with my 365 day running challenge, I am also taking a photo a day to go with it. I have picked a spot, every day for 364 days (I missed a day because I didn’t decide until today to do it :|) I’ll be posting them to Instagram, and when I remember, here.

I didn’t get the angle right for day 1, I didn’t realize I would need to be consistent!

day 1:

Day 2:

2015 Running Challenge

I was supposed to be resting until February, no running. I did all kinds of silly things last year to make it through all my runs, I wanted to give my body time to recover.  It has been hard, I truly love running and I have been missing it since November (my last run was the Holly Jolly run!)

I broke down today and went for a run. Peer pressure is strong; I saw a bunch of friends posting about their first run of the year and couldn’t take it any more!

I also saw this tweet from Matt Galloway:

The idea of 365 runs is a fun challenge. So that is what I am going to do, I am going to take it very easy to start and not fall into my usual overtraining trap. My only goal for running this year (so far) is to make 365 runs ( and find a couple runs that come along at the right time to complete.)

Today I started: 1.25KM, took me 10:32 and I did 2 minutes walking 3 minutes running just to be safe. A far cry from my usual 5:45/km but alas I need to get this right.

Canning on the Road

It all started when we realized that pickling cucumbers were going to be in season while we were travelling to Ottawa and Quebec. Sometimes there comes a moment where you realize your vacation is going to put a damper on a canned good you were looking forward to making. What would you do?

We had big plans to make 3 kinds of pickles this year; Icicle, Bread & Butter, and Gherkins. The Bread & Butter could be done in a day, no problem. Our Gherkin recipe takes (12) days, where the first 6 of those they just sit with no attention needed, again no problem. The Icicles, however, need attention every day for 12 days, they are also one of our favourites and the ones that were the most depleted in the pantry; big problem.

Shortly after this revelation, resigning ourselves to the fact that we would have to wait another year, we ran into Joel and Dana of Well Preserved. After hearing of our bind, Joel regaled us with his story of making sauerkraut on the road (in Scotland I think). He suggested that since we were using airbnb for our trip that we bring the supplies with us and do it on the road. This course of action had originally crossed our mind however, we had quickly discounted its as hair-brained.

After hearing Joel’s sauerkraut story we begin to seriously look at what would need to happen to make these pickles. It wasn’t too much: a pot, some ingredients, a colander, spoon, bucket, etc. There was only one night we wouldn’t have access to a kitchen/stove. Having made these in the past we knew it only took ~ 10 min a day to process the cucumbers. We could make this work, right?!

First, we made sure we could get the pickling cucumbers, Haystrom Farm came through with a half bushel for us the week before we left. The only thing we were missing was a large bucket, preferably air tight for when it was in the car. We borrowed a fermenting bucket from a friend which fit the bill perfectly.

The first 7 days are pretty low intensity, we started them a week before we went on the road. They literally sit in a pot fermenting, getting stirred once a day.

In Ottawa they sat in a corner with the lid lightly on, we stirred them when we remembered.

The first day with real action we were at our friends hobby farm in Quebec. Being us, we forgot to take pictures so you’ll have to take our word it happened. We drained the fermenting brine and replaced it with boiling water and alum. Since we were on a hobby farm nothing was wasted in this step, the fermenting brine was added to the pig slop for the next day.

At this point we started having to actively do a couple things every day, draining the bucket, boiling the syrup and replacing it. Pretty simple stuff, but a stove is a must. We also had to time things on our last day in the airbnb so that pickles wouldn’t need attention until we got home the next night. Our host was gracious enough to give us a late checkout (4pm), although we didn’t tell him why we needed it 🙂

The pickles survived the overnight in a sealed bucket in the trunk while we pampered ourselves at a nice hotel.

We ended up adding a day to the process, we were tired when we rolled into town and didn’t want to can that night, we reboiled the syrup and let the pickles sit overnight again.

Sadly I can’t tell you how the pickles taste, they are still doing their thing on our canned goods shelf. They looked and smelled right though.

Overall travelling and fermenting/processing of pickles worked out great. I would happily do it again, although I probably still wouldn’t can in someone elses house. That seems like a little too much work for vacation!

All ready to can
All ready to can

User Password Encryption with Oracle

All I wanted to do was SHA1 some passwords + salts in Oracle and then compare them when a user logs in. Is it really this difficult to do this comparison?

select USERNAME, USERPASSWORD, SALT
from USERS
where USERNAME = :U_NAME
and upper(PASS_HASH) in (select to_char(to_clob(dbms_crypto.hash(utl_raw.cast_to_raw(concat(:U_PASS, to_clob(SALT))), 3))) from dual)
and ACTIVE = 1

That works but how messed up is that?

For comparison in MySQL I believe it would be:

select USERNAME, USERPASSWORD, SALT
from USERS
where USERNAME = :U_NAME
and PASS_HASH =  sha1(concat(:U_PASS, SALT))
and ACTIVE = 1

Am I just going about this the hard way?

BlackBerry WebWorks Deploy Bash Scripts

Things you should know: I am inherently a lazy coder and forgetful to make things worse.

This means every time I needed to build and deploy an app for debug or submission I have to remember what the heck I needed to do again. On top of that I had to figure out what the last buildID I used was.

That often led to a lot of annoyance on my part. To solve this problem I used my very basic Bash scripting knowledge from my day job to automate building (debug, signing and signing with debug) and versioning.

I hadn’t thought these scripts would be of interest to anyone but me, but it seems as though they might be.

You can modify either of those to do Smartphone builds, I just haven’t updated mine yet with the automatic buildID when signing so I am not including it yet (might add that over the weekend.)

Once you have these scripts just run:

./build_pb.sh <appname> <buildtype>
or
./build_bb10.sh <appname> <buildtype>

<appname> is the directory name where the app src is store
<buildtype> can be debug, sign or sign_debug

What the script does:

  • deletes the current build src
  • deletes current zip file
  • deletes current bar file (make a copy of the versions you want)
  • copies your new src to the build directory
  • strips .DS_store files (you can add other files/folders if you want)
  • creates a zip file
  • compiles with the proper SDK  and flags
  • deploys it to your specified device.

The finer points:
To make these work you need to have a fairly specific directory setup so they script properly does things for you (although you could customize this for yourself)

Source location (in my case: /Users/rory/Sites/<appname>/pb)
The important part here is ‘<appname>/pb’ you can tell the script the first bit, but all your app source needs to be structured like this or the script will fail.

Build location (in my case: /Users/rory/Sites/builds/<appname>/pb
Again the important part is ‘<appname>/pb’ you can tell it where to look for this but it will always be built in the same place. This directory needs to exist before the script is run.

That is it.

If you have any questions or feedback on these (or if you make improvements to them) I would love to hear about it. I am still learning the ropes of Bash scripting and would love to improve my skills.

BBM Hackathon – the sequel

Apparently my last entry worked!!!! I am one of the 10 (maybe 20) winners in the contest. I will be jetting off to NYC for 3 days in the middle of August for an intensive couple days of application development and instruction.

Now I must get all my ducks in a row, better map out the flow & feel of the BBM features I can add to my app. I have been doing more reading about the actual capability of BBM6 within an app, it has a lot of potential and really will fill out the more social aspects of my app that I was going to leave until v2. The more I read the more excited I get and the more possibilities that come to mind.

Let the plotting begin…

BBM Apps Hackathon (+why social matters)

This a shameless self-promotion post. Blackberry is running a contest to win a trip to their BBM Apps Hackathon, and this is me throwing my hat in the ring. For the curious, this is the event. That being said, it will also be insightful about me as a developer in some ways.

Where does this story begin?

I have been getting more and more interested in developing apps for Blackberry. I already have one app that does kitchen unit conversion in Blackberry App World (Kitchen Converter). It gets decent reviews, but needs polishing in my eyes. My few reviews don’t mention the things I see that need polishing, and I think that surprises me most.

I think the most important learning I took from that app was that developing a solid base product is the smartest thing you can do. Put something out there that you are proud of, something that works. While developing an app, keep a list of all the features you think it should have and add those in after you get the base released. Nothing is worse than downloading an app (or worse paying for an app) that has all the features you want, but does none of them right. It is hard to recover from bad reviews.

How does social work into all of this? My one app doesn’t even have social, my professional work doesn’t involve social. But that is ok, some apps are perfectly fine without a social aspect to them. But these days, with so many people having smart phones, tablets, and other kinds of mobile devices, adding social to some apps takes them to the next level. No longer do you have to remember the name of the wine you are drinking, or where you put that guys business card. There are apps to do this for you. Those same apps then allow you share things with your friends. Had a great wine last night that you want your friend to try out? Send it to them with your app. Imagine sharing wine notes with your friends, all over the world for remote tastings. So much fun, wish there was an app for that. (Maybe there is?)

Another great use of social apps is networking. How trying can networking be? You know it is. At FITC Toronto 2011 they had a fist-bump type app so you could keep track of people you met. Two (or more) people went to the booth, bumped their tags and it sent them contact details of everyone you bumped with afterwards. (Check it out). While I didn’t participate in it, the idea was amazing! Such a great way to use social to improve a sometimes old school process.

There are so many other innovative ways that sharing/social can be used. I would give more examples, but the two left in my head are for apps I am currently or planning to develop. Nothing else seems to be able to push those ideas out for me to talk about.

But Rory, why should you of all people attend?

I could be glib and tell you that I should attend because I am a rockstar and all that. But here is the honest truth:

I have just started developing apps for BB. I probably don’t have the experience of some seasoned BB developers. And that is precisely why I should attend. Think about what I can get out of this experience. I have so much to learn, but also many years of transferable skills to learn with.

I have tried out Adobe Air development for the Playbook, even developed an app for it. That was a a bit of a learning curve. I wasn’t sure I would be able to keep developing apps if they all took that long. I had so many ideas but they were all out of my comfort zone, each feature required time to research the proper syntax to make it happen. And I made it happen, no matter how frustrating it might have been, I grew a little bit because of it.

Then I discovered the WebWorks platform, which was more my speed. After spending the last 18 years doing HTML, JS, CSS, XML and many other acronyms of development for the web, I felt right at home. I could conceptualize a feature and code it within minutes or hours depending on the complexity (rather than hours or days). WebWorks also makes my code portable. I can push it to many different BB devices. Once those are released, with minor changes it can be made into a web app and used on multiple platforms!! How awesome is that?

I would consider this a great learning experience, and it would allow me to learn as much as I can from the best of the best. I have so many ideas for apps, my only limit for pumping them out is time in the day. Having 2 days of expert help would definitely help me pump at least one of my apps out!

It also helps that I have one app on the go that I had already planned on adding a social aspect to, and I have an idea simmering in the back of my head that would be even better with BBM integration (actually until writing this post I hadn’t actually considered how BBM could fit into it, but now that I have it is being added to the feature list because it would be a kick-butt feature.)

Some other pluses in my corner:  am quick on my feet and I learn by doing. This sort of event is exactly what I need to take my BB development to the next level.

Given this is a BBM based hackathon this entry wouldn’t be complete without telling the world why I love BBM. There are so many reasons, but my top are:

1. It makes it super easy to share things with friends and family. It is built right in, no loading another app, no hoping the person has said app.

2. It allows me to know the status of things. I know right away when it is delivered/read. This is creepy sometimes, but when trying to plan a meet-up with my wife or pass along important information it is nice to have that confirmation.

3. I can write more than I would in a text message. Nothing like checking text message 2 of 2 before 1 of 2. Auto-send on signal in the proper order is also pretty cool!

4. I love that iOS basically stole the BBM idea and made their own, Imitation is the sincerest form of flattery.

5. Last, but certainly not least ,without BBM there would be no hackathon, and with no hackathon I would be stuck in the basement writing my code alone, relying only on myself to learn the right way to do things. I also wouldn’t get to spend a couple days in wonderful NYC!

There you have it my entry, almost feels like a job interview/cover letter.

To make things a little less stuffy, I will leave you with a quote from an over-quoted but long time personal favourite kids book:

“You won’t lag behind, because you’ll have the speed. You’ll pass the whole gang and you’ll soon take the lead. Wherever you fly, you’ll be best of the best. Wherever you go, you will top all the rest. Except when you don’t. Because, sometimes, you won’t”

Dr. Seuss – Oh, the Places You’ll Go!

No matter what happens with my entry, I put myself out there. Thanks for reading, and of course pick me, pick me! 🙂