August 8, 2016

Dress-up Dresser


I’ve been thinking about updating our dress-up corner ever since the girls had a vintage style photo session at their school. (Vintage preschool photos are all the range around here, this is the second daycare we’ve gone to that does them.) I loved the idea of hanging one of their photos in the dressup corner, which had turned into a pile of clothes since the coat hanger really wasn’t enough storage space any more.

For the makeshift dresser I used a cheap, two tiered bookshelf. Cheap was an important criteria as I knew I’d be destroying it in the process and I hate to destroy anything I spend money on. I used the shelves to create a shoe rack, and attached hooks to the side of the bookshelf and a tension rode strung across to hold the clothes.


I had intended to use the privileged holes for the shelves, but they were two high. The second shelf (obscured partially by the clothes) was at the lowest set of predrilled holes. Even that shelf is a bit high for four year old clothes, really. Many of the capes especially hang over the edge of that shelf. To create the holders for the second, lower, shelf I drilled four wood screws into the wood, leaving them to protrude about a quarter inch for the shelf to rest on. The screws worked quite nicely as their heads were about the same width as the pegs the shelves rested on. I didn’t bother doing a very thorough job of the placement of the shelf. I lined it up where I wanted it to go, and used one of Nick’s crayons to mark the shelf grooves before screwing in the screws.

To hold the superhero masks (because every child needs a super hero mask or 10!) I used wall hooks. The screws that came with the wall hooks were far too long for thin bookshelf siding, so I just glued ’em on (E6100, my trusty standby). I used masking tape to help hold the hooks steady while the glue was drying. Not the most elegant solution, but it works well enough.

The picture that started it all. Aside: If you want to take a photo of a picture frame, but your reflection keeps getting in the way, get a longer lens and stand further back. From a distance you can stand slightly to the side of the frame rather than directly in front and have minimal distortions.

I’m very happy with the way this project turned out. It got the dressup clothes off the floor is a nice, organized manner and looks nice. Now if only I could find a simple solution for the rest of my house…

Dresser Material Costs:
2 Foot Wide Black Bookshelf – $17.99
2 Sets of Wall Hooks – $3.99 (x2)
Tension Rode – $2.97
Total: $28.94

Oval Picture Frame ($18)

August 4, 2016

Migration Pain

I lost two days and a half days this week updating from version 3 of the d3 library to the current version 4. What started out as a smooth transition quickly veered off course thanks, in part, to (1) functions being renamed, (2) Functions keeping the same name, but doing something different, (3) the defaults changed, and (4) class names changed.

1.) Functions Renamed

Giving the D3 developers the benefit of the doubt, there are times when it makes sense to change a function name rather then deprecate the old name and keep it along for legacy reasons: the functionality changes. This is especially true when the functionality change is ever so slight. A developer using a library may not think to retest every corner case. Changing the function name creates a compilation error, which will force the developer to re-test their code.

After reading the documentation, and adjusting from names like d3.scale.linear to d3.scaleLinear I noticed something was still not right.

I went from pretty graphs like this with nice subdued gridlines, readable axes and axis legends:


To (in my opinion) rather hideous ones like this:


Of course there were no errors or warnings to help me get started figuring what went wrong.

2.) Functions with the same name and different functionality

The first thing I wanted back was the horizontal grid lines. The problem was subtle, so subtle that I only found
it by carefully analyzing several v4 examples. Where I had been creating the grid by adding additional tick lines using the argument yAxis.ticks() (as in .ticks(yAxis.ticks())) I now had to call yAxis.tickValues() (as in .ticks(yAxis.tickValues())).

I’m not sure whether the functionality of ticks() changed slightly, or it’s returning a slightly different object that can no longer work as an argument. At least it’s now working. In fairness, ticks() is a function call off of the scale object whose name did change, however a warning that the argument could no longer be used to set the tick values would have been greatly appreciated. That is not a change any developer would anticipate needing to make.

3.) The defaults changed

Notice the difference in axis font sizes & fonts? The difference in fonts actually accounts for the difference in size. Previously I hadn’t explicitly set either font size or style, so it defaulted to whatever the page was set to. The only reason I can think of to change the defaults is if you needs some guarantee on size value to keep elements from overlapping. It’s a stretch, but it’s also a minor fix.

4.) The class name changed

This is the most aggravating change because it’s also the least defensible. Notice how my tick lines went from light gray to black? I had specified the light gray in my (cascading style sheets) CSS, a styling markup language. In CSS you specify an element either by it’s id or by a class name. Each element can have a single id, but infinitely many classes. When the class name changed, my css rules were no longer applied. It would have made more sense to simply add a new class name to the object, not remove it.

Avoiding future pain

Not updating is simply not an issue, not for web applications. Bugs will be discovered, vulnerabilities too. I owe it to my users to remain up to date so they can continue to use my apps. Still, there are things I can do to lessen future pain. I moved my graph declarations to their own javascript file, effectively creating an interface layer between my apps and d3. Now at least all the pain will be contained to updating a single file.

In terms of income conformance I would describe the second half of July as an abysmal month punctuated with occasional goodness. Before the switch to Datayze on July 9th, I made $11.52 or $1.44 a day. After the switch I made $17.53 or 79.7 cents a day. A bit more than half the previous daily rate. During the second half of July I had 3 days under 15 cents, and another 6 under 30. Overall it was better than I feared, but the dark cloud hanging over August is that there’s no clear uptick at the end of the July, so I can expect this ~80 cents a day rate to continue this month.

That’s the bad news. The bounce rate is still under 3%, pages per session were 4.43 and time on site is up to 2.45 seconds. The first two numbers are not as good as last month, but within striking distance and not terribly unexpected after a re-branding.

The issues I’ve been facing with Search Engine Optimization (SEO) post the move inspired three new apps.

Site Navigational Analyzer. This one I built when the Google and Bing search engines were slow to index my site. I was curious how interconnected everything actually was on my site, and how varied the anchor text is. The intuition behind varying anchor text is that it can provide different hooks to help a user find where he or she wants to go. Branded links (links with the name like “Site Navigational Analyzer”) are great, but descriptive links also help users who don’t recognize the title, or for where the title is too short to include a site’s full capability or article topics covered. The “switch to Datayze” link above is a good example of a descriptive link.

Site Validator. This is another website Spider app that crawls through a domain and creates a report of errors sorted by how common they are, as well as a report for individual pages. I used this to fix not only errors on Datayze, but on

Finally I created a Thin Content Checker. Thin content is SEO nomenclature for “with little value.” While content value and page length are not the same, they are somewhat linked. The industry standard amount SEO experts is that under 200 words for most applications should be considered thin. I designed my thin content checker to be flexible enough that it can ignore headers, footers, & the like, as well as tell you the unique content per page.

The drawback with spiders is that they are a bit more resource intensive than most of my other apps. The Same Origin Policy prevents me from implementing the spider in Javascript, and moving some of the resource burden to the User’s machine. For now I opted to cap my spider at 400 pages per day, which is larger than most personal websites, but I’m also considering creating a teared user model which would allow some users to have an uncapped rate.

My plan for August is to keep focusing on the numbers and see if I can’t bring them back up.

July 29, 2016


I’ve been a bit discouraged of late. The launch of my new domain not going as well as expected and other personal stressors have been conspiring to keep me emotionally drained as of late. I think that it why Hillary Clinton’s Democratic National Convention speech resonated so strongly with me. I was emotionally primed for that message of hope.

Ignoring party politics, and the individual, it’s a pretty amazing moment for women. There’s something remarkable about seeing someone like you achieve something no one else like you has ever achieved before, especially when there is a systematic bias or prejudice against people like you. To be honest, that prejudice against people like you has been on of the additional stress of late. I thought I had done a good job of avoiding sexism in my life. I thought surely my little social bubble of friends and family, those people I choose to have in my life, wouldn’t have any misogynists. This election has brought out the worst in the voting base of both sides, if you ask me.

So Thursday night, I was so moved watching the first ever woman accept a national party nomination and giving a speech with hope as it’s primary tenet, that I couldn’t help but post on facebook. “I am full of hope <3". That's it, five words and an emoticon shared mere moments after the speech concluded. I expected my left leaning friends to like it and my right leaning friends to ignore it.

Then something remarkable, something that lifted my spirits more than any speech could ever have. Many of my conservative, right leaning friends also liked my status. Sure, a cynic might point out that my status might have been overly vague and those right leaning friends might not have caught the reference to the DNC. And I’m sure that’s true for some of them. Not all. I think this is an example that politics are not and do not have to be so divisive. That we can support each other, even if we don’t share the same views. It’s a reminder that the loud angry voices in the party bases are not the only voices.

I am full of hope <3

July 20, 2016

SEO Initial Steps

Once or twice a week for the past several years I get the same spam email. They usually start out with a bit of flattery “We found that you have excellent services and products and your business has a great potential” before diving into the point “The issue on which I would like to bring your attention to is, the inadequate traffic and visitors on your website which is affecting your ranking and in turn the revenue.” They then list a couple of reasons why my site might not be ranking well in the search engine.

Being a believer in focusing on good content first (if you build it they will come), I’ve never really been on board with the whole search engine optimization concept. To me, Search Engine Optimization (SEO) always felt like a shady short cut. I realize now that that’s a pre-2000s way of thinking about it. Content is still king, but with trillions of pages out there, there’s a lot of good content out there to get lost in. (And really, the importance of SEO should have been obvious to me given my issues with search result descriptions, but I digress.) Here’s what I’ve been working on.


The easy first step was HTML Validation which probably doesn’t matter much, but is a good practice anyway.

To WWW or not to WWW

Some search engine experts recommending choosing to express all your links with the www (e.g. “”) or without (e.g. “”). The theory goes that using both forms of the URL can make a domain appear to have twice as many pages, and consequently, half as many backlinks to any one page. I am not sure how much I buy this argument. While it’s true that “” and “” page contents could be different, it’s standard practice that they are the same, and an easy enough for a search engine to verify. Anything that is common practice really shouldn’t hurt you much when it comes to ranking. Google’s stated goal is to serve you the best content, after all, not the most technically correct sites.

Then again, what do I know? I’m the one with the site not ranking well. It’s a simple fix, and “” looks cleaner and more modern to me.


This one ended up being a non-necessary headache. I expected Google to find the new pages relatively quickly since there was a 1-to-1 correspondence with the pages on the previous domain that google already knew about. When google didn’t index the new pages after a week, I decided a site map couldn’t hurt. Only I forgot about my ‘www’ prefix choice. My site map included the ‘www’ prefix on all URLs, which meant it was including only URLs that were 301 redirecting.

It appears that as google detects a 301 redirects it removed the redirected URLs from its index in favor of the new target URL. On the webmaster portal it showed me the ratio of indexed pages from the site map to the number submitted. As the URLs with the ‘www’ prefix got pulled from the index, that ratio of submitted to indexed pages grew more and more unbalanced. It wasn’t until the sitemap view showed 0 pages indexed that I finally realized the error of my ways, adjusted my sitemap to include the non-www URLs instead and everything returned to normal.

At least This mistake doesn’t appear to have negatively impact my rankings.

As I checking the google index for my domain, I noticed that google had opted to index more than just the pages I had requested. It was also indexing some paramaterized URLs.


The above search results are for the paramatertized Name Uniqueness Analyzer where the name is set to Carolynn and Lydiah. Most likely google discovered those paramatertized URLs through the Name Generator, which, when generating rare names, creates a link to the Name Uniqueness Analyzer. Carolynn and Lydiah were given to 46 and 16 babies respectively.

Google can’t discover a URL it’s never seen. Thus google does not know Carolyn is also a valid parameter to the Name Uniqueness Analyzer, because there is no link to it anywhere on my site.

I updated my sitemap to include common parameters to the more popular apps. Maybe this will generate some more traffic for me.

Next Steps

One of the things I need to work on is a responsive, mobile friendly design. It’s good timing. Along with my viewpoint on SEO, I think my splash page is also looking a bit dated.

July 15, 2016

Loosing Authority

Looks like my optimism in my last post was extremely premature. On Tuesday my stats plummeted. Between now and then I’ve had under 190 users a day, and earned just 30 cents a day. On a weekday! I would have considered those stats bad last year. This year? They’re abysmal.

Near as I can tell the best explanation for the nose dive is the loss of domain authority. I had previously read that by setting up 301 redirects that I would retain 90-99% of the ranking power. This may have been true if I redirected my entire site from to, but I didn’t. I wanted to keep the splash page of, which is serving as my online resume. I may have kept the ranking power of the individual pages that are redirecting, but that doesn’t seem to be helping much. It does not appear that I’ve kept much, if any, of my domain authority I’ve managed to build up over the years.

I’m starting off at a significantly bigger disadvantage than I thought I would. My new domain name is just 11 days old. I set up the redirect just six days ago, which means it probably wasn’t discovered by Google or Bing until six days ago. For all intents and purposes, my domain age is practically zero. In his video Matt Cutts says not to worry too much about domain age since it’s less of a factor at two or three months and it typically takes a few months to go from spalsh page to full website anyway. That’s still 53 days away. Seventy percent of my traffic is (or was) from the search engine. I’m worried if I lose those eyeballs it’ll take a very long time before they start to find me again.

I figured since my old name was in the top 2,000,000 sites per Alexa, both search engine giants would pick up on the change quickly. Neither did. I submitted a site map hoping it would help them get around to indexing my new site faster. Neither has.

I knew I would make missteps when starting my own company, but this one feels like the biggest so far. I should have held off on the launch until the new domain had a chance to be crawled.

At this point I think the best thing to do is keep moving forward. What’s done is done. Before now I’ve always been rather indifferent to search engine optimization. I’ve always held the belief that good content matters more than anything else. Now I’ve been reading about breadcrumbs, structured data, and sitemaps. Hopefully I can bootstrap this process and start getting my numbers back up.

July 11, 2016

Datayze Launched!

Last Friday night I quietly launched under my new name

Unlike the other names I came up with, once I realized Datayze was available I felt like I had found “the” one not just “a” one. I pronounce it as data-yze as in “to data”. It has everything I was looking for: the credibility, the geek factor without being overly geeky, and it works across all my apps. At seven characters long it’s even one of my shorter domain names which is a nice bonus. But my favorite thing about it? When you pronounce it as data-yze it sounds like a call to action.

Even though it was love at first site for me, I polled my friends and family to get additional perspectives. Datayze was clearly a standout for them as well. DataLemma and DataQuod (Quad is latin for “fact”) were also favorites. The former is still up for sale if your interested. I never registered the later. As far as I know it is still available as well.

If there’s one drawback to Datayze it’s that it’s an off-by-one error of Datalyze. was one of the domain names I was initially thinking of, and one I was leaning towards for a while. I must admit I did type “” into the browser a few times when I was initially working on the migration.

Mistypings aside, I don’t view Datayze as a variant spelling. Sure, it’s one character different from both Datalyze, and Datatyze, two other domain names I considered. Unlike Dattaticks, which is one character different from the clearly better DataTicks, there isn’t a clear winner among Datayze, Datalyze or Datatyze. Each works on it’s own and independently of the others. I could see someone starting a company with any one of those names. Those two other names also aren’t being used even though they’ve been registered. is a blank page and is a GoDaddy splash page. This means there’s no other website I could get confused with. It also gives me a chance to get out in front of users first and build my brand so that my domain is the one that gets the name recognition.

So far everything is running smoothly. I’ve set up 301 Redirects so the change should be mostly unnoticeable to my users. All old links and book marks should bring them to the right place. I even earned $2.04 over the weekend, which is higher than normal. It’s still early, but I’m optimistic that 2016 is going to be a very good year for my business. Here’s hoping.

July 10, 2016


Someone is having a good birthday party, day? week? fortnight?!

Four Ta-da!

When each of the girls was born near a major US holiday (Independence day for Nicki, Thanksgiving for Alexis) I was stoked. Having a birthday near a major holiday meant having an extended weekend for the party. Our family is spread out over both costs, so an extra travel day is most definitely an asset. It turns out having a birthday near a major holiday tends to draw out the festivities.

The birthday celebration started off with a school party on the 1st. Grandma and Grandpa were flying in on the 2nd. We like to keep the girls out of school for the week Grandma and Grandpa visit to maximize everyone’s time together. That meant cupcake day at school would have to be the 1st.

Who forgot about the school’s no home good policy? This girl! After making two dozen cupcake ice cream cones, fashioning an ice cream cone holder out of an amazon prime shipping box and some how managing to get them all to school relatively in tact I learned the kids would not be able to eat them. There are a couple kids with food allergies in Nicole’s class and even though the cupcakes didn’t have any nuts, the school didn’t want to take chances. I can understand that, it’s their liability after all. Thankfully there was a shop that sold cupcakes near by. When parents arrived at the end of the day they had the option give their child one of the home made cupcakes, so most of the kids got two different cupcakes.

That’s not the only thing we had double of do to a Mommy Mistake. Who ordered the wrong sized bike? This girl! I ordered Nicole a 12 inch balance bike. I thought it might be a little small, but doable since she’s on the shorter side. No dice, and now that it was put together I couldn’t return it. Domingo and I made a quick trip to Target where the only bike in her size was a frozen bike with optional sleigh doll carrier. Nicole was most definitely not disappointment about that.

On Saturday, when most of her friends had returned from their holiday travels, we had our first ever birthday party with just friends. That’s two sets of cupcakes at school, two bikes (now one for Alexis) and two parties, stretched out over two weeks. Fourpalooza for sure.


Since this was our first year having a birthday party with friends from school we had a few lesson learns:

– Write your own invitations. Computer printing is far more legible than my chicken scratch, and we can easily create the number we need. The invitations we bought came in an 8 pack which was inconvenient given there were 17 kids invited, and didn’t have enough space to write “siblings welcomed.”

– Buy Cupcakes/Cakes. Seriously, when will I learn? Our local grocery store charges the same price for the customized cakes as they do for the generic cakes in the bakery refrigerator, and they’re good, really really good.

– Do not fear Chucky Cheese. I dreaded our friend party. I remembered Chucky cheese as loud, with obnoxious
animations, but it’s really improved since I was a kid. We were assigned a party coordinator who was fantastic. Speaking of which, I need to go call them and let them know what a wonderful job our party coordinator did!

Well that didn’t take too long. After dwelling on it, and dwelling on it, and dwelling on it, I think I’ve finally found the a name and it’s perfect.

Actually I came up with a few. Over the past month whenever I came up with a name I thought would be a possible solution I went ahead and registered it. I didn’t want to get burned like I did when I wanted to purchase my own name as a dotcom. Back in 2004 “” was the only form of my name that wasn’t available. Since I was so used to using my middle initial I decided to go with “”. By the time I realized I wanted “” someone had already registered it. Lesson learned: grab a possible domain name when it’s available!

Now that I’ve picked which name I’m going to go with, it’s time to release the others.

The first name I came up with was My niche right now is all about data, and data munging to get interesting results. “Data Ticks” to me invokes an image of processing and graphing data. It fit well. The name was registered only last November but currently points no where. All things being equal I would have gone with if it were available. Lemma is a mathematical term and linguistics term so it appealed to both my Math Geek and Word Nerd sides. In Math it’s a intermediate theorem or “helping” theorem. The phrase invokes to me the image of mathematical “helping” apps. The only drawback I see to this name is it’s highly geeky and not very approachable for every day users.

Since I’m not currently planning on using those names I decided to put them up on the NameCheap marketplace for $20 and $50 respectively. The price reflects what I think the name is worth. (Hey, it took me a ridiculous number of hours to come up with those! I am saving someone that time.) If by the time you’re reading this the auction is over but you still want the name and it’s still avaliable, message me and I’ll put it back up.

The third name I registered but never intended to make my company name is One of the names I fell in love with was, the combination of Data + Analyze. The DotCom was already registered, as was the Org, Net and the British spelling variants Datalize. The only name available was the .cc. I strongly considered it, but when test marketing it to none technical people they kept hearing “data lies”. I was shocked that DataLies was still available. This is an excellent blog name for disputing pseudo science people! I’m not sure when I’ll have time for another blog, but I couldn’t resist and snapped it up.

As for the name I did go with, that will be revealed soon. It’s probably a safe bet that it has the word “Data” in it though.

This month was an interesting month. Overall my revenue stayed above the $1/day threshold earning a total of $37.78, but my individual numbers were all over the place. I had one 7 day interval where I earned just $5.02 and another where my income was $11.34.

There were no new apps this month. I spent my time improving the existing apps, working on the new Adblocker Workaround, and thinking about new company names. That doesn’t mean I don’t have cool things to report!

My bounce rate on my apps right now is pretty A-maz-ing.


Starting from June 15th through the rest of the month I enjoyed an average bounce rate under 1%, average time on site was 2:33 seconds with 6.96 pages per session. Those are some pretty incredible numbers. Some of my apps do require a page refresh, but none of those refreshes are automatic. That means I have a pretty wicked insane rate of visitors to my apps actually using my apps.

In terms of app use, my Miscarriage Reassure and Miscarriage Statistics Chart are finally starting to do well thanks to getting a few mentions on reddit. Some of those redditers were so positive about the apps it took every ounce of will power I had not to create an account and thank them personally. Joining the conversation would probably not have helped the professional image I’m trying to cultivate. If by any chance any of your daily users made it over here, just now that I’m incredibly happy to have built something you’ve found so useful!

This coming month will probably be another slow month. We have family visiting for Nicole’s upcoming birthday which means I’ll be down a week. My idea well is also a little dry at the moment, so I’ll probably continue to focus my energy on coming up with a new name. The name issue isn’t technically blocking me, but lately it feels as though it’s the main element holding me back.

Older Posts »