I’m always nervous when something unexplained happens. When I couldn’t pinpoint why July’s revenue was way up I braced for the possibility that it might drop just as suddenly. Well, income rose to 1,406.88 in August, and users are up 4.7%. I’m now feeling confident this change may be permanent, and since my numbers tend to go even higher leading into the final quarter, I’m daring to hope $2,000/month may be a possibility by the end of 2018.

This month I continued to focus on user experience.

The Apache server log parsing script ended being so useful at uncovering hidden issues last month that I decided it was finally time to add unit tests and see what issues they could uncover. Unfortunately the current code base wasn’t designed with unit tests in mind. (I don’t fault my prior self, it was important to hit the ground running those initial years and get content fast to start building an audience.) I was able to add a unit test case framework for my PHP and Javascript code, and enough unit cases that I did uncover one issue in a function very rarely called. All things considered, the time spent creating the unit test framework has not paid off yet, but going forward I’ll be sure to code with unit tests cases in mind and that will ultimately lead to less time debugging. It’ll also be useful for the next major code refactoring.

I found a couple of nasty bugs.

The first major bug was an issue in the way I was calculating time, and an example of premature optimization. I was trying to be clever and it bit me. (At least the issue wasn’t in the modal window which I had been working so hard on!) The new approach is not as efficient, but the differences does not appear to be human detectable. Since the time motivation suit is so important, I made sure to have tests cases to catch any further issues.

The second bug was the result of a third party library failing silently on less than perfect input. In my opinion that is unforgivable. Imperfect input is more common than perfect input online, and it’s often easy enough to do basic sanity checking to catch most issues. It also failed for URLs that included non roman characters. Rather than try and patch it, I decided to write my own library (also with unit tests!) with new interface that’s more suited for my use case.

My plan is to avoid third party libraries wherever feasible in the future. I keep running into issues with them. Perhaps it’s an unrealistic fear, but I do worry that the licencing might change on me after I’ve become dependent on one. And then there’s the time the api was completely changed on me

August 30, 2018

Picture Parity

Even before Dana was born I knew I would put a ridiculous amount of pressure on myself to get her photos on the wall quickly. Yes, I said I wouldn’t let differences in the number of photos get to me, and for instagram or facebook it generally doesn’t. The photo collections on the walls, however, are ones we see every day. I wanted parity. Besides, some of the ideas I had for photo collections had very real time constraints.


Back in march I told Domingo I had just one photo left I needed to update to include Dana.

The family portrait over the fireplace? He asked.

Okay, two.

Your phone lock screen?

… Three.

Oh, you mean the-

Point taken.


Anyway, the “one photo” I was thinking of back then was for our entrance way console photo collection. I have one of Alexis’s newborn photos by the tree, as well as Nicole in the window, each in a similar silver frame. What both photos have in common? Both are naked baby photos, both inside, neither against a backdrop, and in both photos my kids aren’t looking at the camera. Coming up with a similar photo concept for Dana was a tall order. I especially struggle with non backdrop backgrounds in formal photography, especially especially in doors.

Since it had to be a baby photo, the clock was ticking.

This afternoon while Dana was napping I looked up from my computer and noticed it was finally overcast outside. That meant nice outdoor photos without harsh sun were a possibility. While these types of days become more common in the fall, they’re often accompanies by cooler weather which would make naked photos impracticable. Here we were, end of August and I hadn’t taken a single nice outdoor photo of Dana yet.

By the time she had woken up from her nap and finished her lunch the sun was drifting in an out of the clouds. I started to assemble my camera, thought better of it, and changed my mind again. True, the lighting wasn’t great, but Dana seemed to be in an amenable mood. What’s the harm in trying?

I’m so happy I did.

The sun stayed mostly at bay, and we ended up with some cute photos. Dana squealed with delight outside. She has never seen this side of the house before, and loved it. Best of all, I now have a possible photo for my collection. Maybe I’ll come up with a better photo idea, one inside the house that better matches the photos of Nicole and Alexis. If not, at least I have this one.


This summer I replaced the picture of the mantel with a new family photo. Between my home screen and lock screen the kids each appear the same number of times on my phone. It’ll tide me over until I get a good portrait oriented photo of all three girls that fits the phones dimensions.

I’ve achieved parity.

Well, with one exception.

August 25, 2018

In Need of Practice Runs

I made a cardinal mistake when photographic my kids with their first day of school signs: no practice run.

The issue this time wasn’t incorrect camera settings, it was all the other things I couldn’t control. I was expecting an overcast sky like last year for a nice soft look, or at least a sun at a favorable angle. Instead I had full sun and harsh light. Lack of solid sleeping combined with over excitement made it difficult for the kids to sit still. The sun wasn’t right, and the mood wasn’t right. As a result, the picture wasn’t right. I do have many funny outtakes, though, including Alexis holding standing in profile with her sign as though it’s a mug shot.

There’s a trade off between the idealized and authentic in photography and I definitely err on the side of idealized.

When I look back at the year’s photos, I’m happier seeing the best ones, than the most authentic ones. It doesn’t bother me if a photo is a staged recreation, or taken a few days early or late. To be honest, I usually don’t remember those details anyway. It does bother me if the photo is technically flawed. It does bother me if, when I see the photo, my first thought is how I should have or wish I had taken it.

What I should have done was taken a few practice photos with our “first day of school” sign the weekend before, when we weren’t under a time constraint. If the lighting was bad that day, or the girls just weren’t in the mood, we’d be no worse off. On the other hand, if we ended up with a great photo I’d have a back-up shot I could potentially use for my highlight reel if need be. True, it wouldn’t be authentic, but it would have taken the pressure off on the actual first day of school.

Rather than practice shots this time, however, I did “retakes” a few days later which ended up much better. It was too late for my highlight reel this time, but at least I have them.

August 13, 2018

Dana at Seven Months

Dear Dana,

I must have blinked. In the span of what feels like just minutes you have become a vastly different baby.

You are very aware of your surroundings these days. You even seemed aware that Mommy was sleeping in the same room with you, though you couldn’t see me from than vantage point of your crib, and that awareness was starting to impact your sleep. There were too many nights when I inadvertently woke up when going to bed myself, or because I rolled over in my sleep. So, at the start of August, we decided to move your crib back into to your own room. As with all transitions, it was harder for me than for you. You woke up one additional time the first night, but that was the extend of any sleep disruptions for you. I, on the other hand, still get a little sad when I walk into my bedroom and you’re crib isn’t there.

I may not have had a chance to put together the nursery quiet like I wanted, but that hasn’t hampered your enjoyment of it any. You love the new toys, and the black out curtains help keep it cooler and darker than mommy and daddy’s room. Now that you’re in your own room, you’re even napping for longer stretches more constantly during the day.

We will be transitioning out of the baby bath in the very near future. You’re almost too long for it, and definitely too mobile. Being the momtographer that I am, I took some “last day in the baby bath” pictures, and put them side by side with your “first day in the baby bath.” It’s incredible how much you’ve grown!

You do love your toes!

You took six onces from a bottle for the first time last week, and you’ve gone from eating half a stage 1 puree, to two stage 2s. You eat a fruit at lunch time and a vegetable at dinner. So far vegetables are the clear favorites. Squash is number one, and you prefer peas and green beans to apples or peaches. You are just not into anything sweet. I hope that lasts! Trust me, you don’t want a sweet tooth like mommy. I plan on adding some yogurt for breakfast into your diet very soon.

Your favorite things these days are your sisters, your toy remote and your jumperoo. You will use any piece of fabric near you to play peek-a-boo: burp cloth, mommy’s shirt, the towel. You’ve gotten quite good at it, and can even play by yourself!

You’re up to the 82nd percentile for height, 60th for weight. That’s incredible given where you started from! You will always be my baby, but you are not not so itty bitty anymore!

Love Always,
Mommy and Daddy

What’s a textbook sign that you’re a classic over-doer? Geeking out to your todo list. Not the list itself, but specifically how you organize it. This here is my third post on the subject. I think I need to check myself in to Todo Lists Anonymous.

I fell behind, again. At one point my weekly task list had nearly 50 items. Once my list gets that long it becomes really hard to see what I need to do at a glance, and I sometimes miss critical details. Most of those tasks were cleaning related and not time sensitive. I wanted a way to mute my cleaning project so I could be sure I didn’t miss anything important while I got myself caught up. My chore app (todoist) doesn’t provide this functionality, so I needed a work around. I also wanted to make sure I knocked off a non trivial number of non-reoccuring tasks each week or I’ll never get on top of things. The solution I came up with works for both.

A little background: the todo list app I’m using is Todoist. It allows me to create sub projects, and sub tasks. I can color code projects, set individual task priority and (when I fall behind) reschedule everything with a single button push. The higher priority a task has, the more immediately it’s rescheduled, but todoist tries not to overload any one day. Let’s say it’s Monday, there’s 10 items due Tuesday, and the rest of the week is mostly unencumbered. Todoist will likely schedule the highest priority over due tasks on Wednesday and the lesser priority tasks later in the week.

Setting the priority flag for every non-cleaning task would be a little ridiculous, not to mention time consuming. Besides, it loses its meaning if everything in a given project is top priority. I needed a different solution.

Since Todoist relies on the priority flag when rescheduling tasks I like to reserve it for things that really shouldn’t be pushed back or could have a negative consequence. Failing to change filters could make appliances less efficient and shorten their life span. Forgetting to clean the washing machine could contribute to mold build up, but it’s less likely. There’s no harm in ignoring dust bunnies. By using the priority flag this way I’m sure I’ll still complete them in a reasonable manor.

Todoist let;s me set a color code for each project. I opted to use the same color – grey – to represent low priority sub projects. I created sub projects “reoccuring” under household, business and personal. Now when I look over my weekly todo list my eye naturally jumps over the less important grey tasks for the non-grey ones. I can also see the ratio of important non-reoccuring tasks to reoccuring tasks in my weekly productivity view.

This way I can be sure I’m making forward progress each week. If my weekly bar is mostly grey, I’m not. My goal is thirty tasks a week (todoist’s default goal setting), and as many non grey tasks as possible. It would be easier if I was better at sticking to my 5 minutes per task rule. Business related tasks like debugging especially usually end up taking a bit longer. Ah well, it’s still forward progress.

As an aside, I also have a weekly re-evaluate and organize my todo list. Definitely over kill. Don’t worry, it’s in a grey less important reoccuring project.

August 3, 2018

Not What I Ordered

It happens sometimes. Humans make mistakes. Even factory run completely by robots are not infallible. When your primary shopping is online ordering, you’re going get a few mishaps.

Lately I’ve been on the hunt for exact duplicates of Nicole’s old binkies. I’m suddenly feeling very sentimental about them, and want a handful for my memory box. I have spent what feels like countless hours scoring eBay, amazon, and google shopping, paying upwards of $30 for something that originally cost me $3 or $4. (As a frugal person by nature, it kills to be spending so much. I try and reassure myself that at least these new binkies are guaranteed cleaned. Used binkies can get a little gross after a while.)

I have been able to find all but one – Nuk trendline BabyTalk. There’s a contemporary aqua/purple design, but I needed the older pink/purple version.

I found them listed on Amazon for $35, shipped. More than I wanted to pay, but the description was exact: Nuk Brand, Trendline Collection, Baby Talk Design, Girl Colors. The design was no longer being manufactured, making the binky effectively a collector’s item. This seller seemed to know that, and was charging the collectors price.
At least I would be sure I was getting the right one.

My heart sank when I opened the box. Inside was a pair of solid color, translucent blue binkies. Not Trendline. Not Baby Talk. Not girl colors. The only similarity the item I received had in common with the product listing I ordered from was that they were both Nuk Brand. I contacted the seller, who informed me that the design was no longer being made so the warehouse sent me the same product, just a different color.

Not the same.

The interesting thing about the exchange was the acknowledgment that the warehouse intentionally sent a different item rather than cancel the order when the order couldn’t be fulfilled. I had suspected that may have happened to me before.

Last November I ordered a new book bag shelf from target. Instead of a two tiered shelf they shipped a three tiered shelf. I tried to setup an exchange, but the two tiered shelf I wanted was out of stock. Some percentage of customers may have been happy with the three tiered shelf and decided to keep it, just like some might have been happy with the blue binkies, which would mean keeping the sale.

Back in September I was shopping for a kids’ white astronaut costume. A number of reviews on amazon stated they received the wrong size, but overall the reviews were positive. The costume was listed with multiple sellers so I assumed if I ordered from one with a good rating I was probably safe. I guessed wrong. The seller claimed they had a mistake in their inventory system, but it seemed odd that the same problem kept occurring over multiple months. A part of me wonders if it’s not intentional. A few of the reviewers mentioned being stuck with the wrong costume. For some customers it isn’t worth the hassle to return it. The seller offered me a partial refund if I would consider keeping it. I would not, but if enough people do, the seller make still be making a small profit.

For someone like me whose usually very deliberate in what she orders, these kinds of situations are incredibly frustrating.

Anyway, if you happen to come across the above binkies in your travels you will be my very bestest best friend for life. Don’t buy online. The same experience has happened to me twice, from two different stores. I no longer trust online listings for binkies.

July simultaneously both blew away expectations and disappointed. I earned $1355, over double of last month and well over the $1000 target I initially set for myself when starting self employment, but I also had a 10% reduction in audience size.

My initial fear about the increased revenue was the additional ad clicks was due to misclicks, unintentional clicks on ads. A bug in the new interface could move the ads too close to app buttons, causing accidental clicks. That would drive down user experience and hurt my ultimately bottom line long term. (Not to mention if Google thought ad clicks on my site were low quality they may elect not to advertise with me.) Fortunately, that does not appear to be the case. Revenue has been consistently up since the new launch. It’s up among all devices and across all apps, though Time Until saw a considerably larger increase than the other apps. I have also verified there is still a significant separation between app and ad on all major platforms.

My working hypothesis is it’s a combination of factors. Revenue up across all platforms and apps could indicate an update on Google Adsense: better ads leads to more clicks leads to more revenue. It’s also possible that with the new launch and interface tweak the html changed in a way that made the page more accessible to the google spider allowing it to choose better ads.

The new admin panel is already proving invaluable. One of the new features was a view that groups all apache messages by type – warning, error, etc – in order to make it easier to see what’s going on with the site at a glance. This has lead to the realization that visitors are using the apps in some ways I haven’t anticipated. For example, I was intending the name blender to be used with single names, like Sarah + Emily, but found some visitors were imputing multiple names, eg Emily Elizabeth + Charlotte Rose. I only detected this because the space caused a php warning message. It was technically working, but the blended names were a little wonky. The tool now handles this use case much better.

The new error log binning also helped me uncover a spelling mistake in a URL. Since it was a one character typo and I use automatic spell correcting on my 404 errors, the spelling mistake resulted in a 301 redirect message to the right URL. As a result, a human would never notice it, but it could affect web crawlers and therefore ranking & indexing.

Overall errors are down to 0.003 per user. About 80-90% of the errors are non-linking 404 File Not Found errors. This includes instances that are clearly probing to see how my site is put together, and possibly looking for vulnerabilities. (“/admin”, really? I don’t rely on security through obscurity, but at the same time I’m not going to make it that easy for you.) I’m not seeing any more message from Dreamhost about the server being unstable, but I am seeing some indication in the logs that Datayze is under heavy use and that can cause hiccups. Since I wasn’t monitoring the logs before, I don’t have a frame of reference for what’s expected given a site of this popularity. I plan to continue to monitor the situation. At least now it will be easy to switch servers should the need arise.

Finally, I launched Time Since, a companion app to Time Until.

July 21, 2018

Changing Traditions

I first started Hallmarking the winter of 2009. It was just before New Years. Domingo and I were vacationing in D.C., and killing time before meeting family for dinner when we wondered into a hallmark store. It wasn’t even an ornament from the current year’s collection I first picked up, but the previous year’s “Welcome Friends” the store still had on hand for a steep discount.

Hallmarking combined many of my great loves: shopping, bargain hunting and Christmas. Since I was new to the hobby there were lots of great ornaments that fit my ascetic found cheaply on eBay and Amazon. A few years after I picked up that first “Welcome Friends” ornament, however, I began to exhaust that supply.

It wasn’t long before the only deals to be were after Christmas sales. That worked fine, up until I started have multiple kids, and couldn’t always make time for in person shopping. Last year, at 39 weeks pregnant I opted to just order online from Hallmark.com after the holidays. The ornaments were on sale, but I had to pay shipping. I paid effectively the same price as if I had bought in store at full price before the holiday, and didn’t even get to enjoy the ornament that year. Anticipating not making the after Christmas sale again this year, I purchased online from Hallmark.com, paying both full price and shipping.

The truth is, now that I don’t have time for the bargain hunting aspect, the hobby isn’t nearly as enjoyable. It’s feeling more like an obligation and less like a joy. So for now, I’m likely stopping our hallmark tradition.

Another tradition that’s changing this year is Black Friday in person shopping. The biggest driver for this change is time, and lack there of.

We always intended our Thanksgiving tradition to be putting up the Christmas decorations after the kids go to sleep. There’s something magical about waking up to a fully trimmed tree and festive house. We haven’t met that goal since 2013, and with multiple trees it’s even harder. Nicole is already starting to question the existence of certain mythical entities, so this may be the last year to really embrace that Christmas magic while she still believes.

We’ve been having better luck snagging deals online shopping anyway, and last year’s experience was pretty miserable (though I won’t be pregnant again during any future black Fridays!) So this year we’re committing to online Black Friday shopping only.

As far as traditions go, ones based on shopping are the least worth preserving anyway.

July 15, 2018

Puzzlemania

2018 will forever be remembered as the summer of the jigsaw puzzle in our house.

Jigsaw puzzles were a big part of my childhood. I remember sitting in front of the coffee table with my mom and sister, working on 5,000 piece puzzles together. The one in particular that sticks out in my memory was sheet music of Beethoven’s 5th. Growing up we had a collection a 100 and 250 piece puzzles that, when they became two easy, my sister and I would dump them over backwards and assemble them upside down. I even spent a summer with my best friend on an “impossible” branded puzzle which had no straight edges. Since that wasn’t challenging enough, the backside of the puzzle was stamped with the same image as the front side, just rotated so you could never tell by looking at a single piece if it was upside down or not.

We were always destined to be a puzzle house.

As new parents Domingo and I stocked up on baby puzzles. I remember baby Alexis chewing on the wooden knob of a Melisa and Doug Shapes puzzle, holding it in her mouth like a binky. I probably even have a picture of it somewhere.

When the kids got a little bigger we tried the foam puzzles, and the kind that are meant to be stored assembled where the backing has an outline of each puzzle piece.

The girls never really seemed that interested, and the puzzles stayed mostly in the closet, forgotten. We decided to change that this summer. I wanted to try and bestow my love of jigsaw puzzles onto them, to see if I couldn’t pique their interest.

This summer I purchased a 250 piece puzzle, just to see what the kids were capable of. Nicole, Alexis and I sat down to work on it together. The design ended up being a little more monochromatic (see above), and thus more challenging than I anticipated, but that didn’t stop the girls from getting into it. Even Alexis was able to put some pieces together, and she’s three and a half!

From there we broke out the 48 piece puzzles and when those were two easy, I mixed up the pieces and had Nicole do two puzzles simultaneously. When that proved too easy Domingo found some 100 piece puzzles. In no time the girls were assembling multiple puzzles a night together, though Alexis can do the 48 piece puzzles herself. Alexis told me quite emphatically recently that they did not need my help.

I can’t wait for Dana to get a little bit bigger. We’re going to get a coffee table, and then really see what the kids can do!

July 10, 2018

Dana at Six Months

Dear Dana,

As much as I still want to think of you as a newborn, I now have two pointy white reminders that you are most definitely not. That’s right, someone is cutting her first teeth! A full two months earlier than either of your sisters. You are determined to march to your own drum, and keep this “experienced” mom on her toes, that’s for sure!

We started solids last week, which was super exciting for your sisters who were eager to show you how it’s done. We choose your purees to match the vegetables they were having for dinner so they could show you how to eat the non-mashed kind. It was the best I’ve seen Alexis eat her peas in a long time, so I thank you for that. So far your favorite seems to be squash, but you did equally well with carrots and peas too.

This month we finally were able to break you of the swaddle habit. You seemed unable to settle down and go to sleep without the swaddle, but also uncomfortable when we swaddled you. It was an ongoing battle until I figured out why you like the swaddle so much. I believe the soft muslin fabric reminds you of mommy’s shirt. Every time we nurse, you like to pull Mommy’s shirt over your face. I think the swaddle blanket rubbing against your check reminds you of mommy and that’s why you find comfort in it, even though the act of swaddling is no longer comfortable to you. Once we figured that out I started loosely wrapping you in the blanket and you slept so much better. Of course this means you only get a blanket at nap time when we can keep an eye on you. Once it’s safe for you to sleep with a blanket at night, the muslin swaddle blanket will probably be promoted to blankie.


You love to stick your tongue out to let me know you want to nurse or nap.

Thumb suckings, and finger sucking for that matter, is now passé. I can’t remember the last time I saw your hand in your mouth. Instead you’re all about gnawing on anything that crosses your path, including mommy sometimes! Those teeth will likely fully erupt in short order.

I can’t believe how quickly time is flying, or that we’re already halfway through your first year. It doesn’t matter how big you get, I will always think of you as my itsy bitsy baby.

Love Always,
Mommy & Daddy

Older Posts »