Get Your Apps Ready for iPhone X

Yesterday Apple announced the iPhone X. Over at the Big Nerd Ranch blog, I wrote about what we iOS developers need to do to get our apps ready for iPhone X.

Urban Decay Vice Lipstick – now available for iPhone

For the past 6+ months I’ve been working on a new iPhone app. Now I can finally talk about it. ūüôā

It’s an app for Urban Decay Cosmetics¬†(a division of L’Oreal), to help introduce and promote their new Vice Lipstick line.

You can download the app from the App Store here.

(iPhone only, needs iOS 9 or above, and looks best on larger phones like the iPhone 6, 6s, 6 Plus, or 6s Plus; tho it functions on any iPhone, iPad or iPod Touch that runs iOS 9).

What’s really cool about the app is the virtual “try on” feature, where there’s a live camera that superimposes the lip shades on your lips so you can see what they might look like on you! That particular bit of technology comes from Modiface, who themselves have some apps in the App Store and do some pretty neat facial recognition and morphing stuff.¬†Check them out.

I mention this not only because I’m proud of the work (and¬†learned a lot about the cosmetics industry, which I have a newfound respect for), but I’m hoping to get back to writing more now that I’ve been able to come up for air. You may have noticed (or maybe you haven’t) that my¬†writing has been light the past some months — it’s because of the intensity of this¬†app project. But it’s done, and so I hope to get back to writing more regularly.

Anyways, go check the app out and give it 5-stars ūüôā

Swiftly geeky

Been very busy so I’ve been unable to write. Many topics¬†in my head, just need time.

That said,¬†for the geeks here I did just publish¬†an article on “The Joys of Swift ‚Äď Enums” over at¬†my Hsoi Enterprises LLC blog. Tap/click on over and give it a read.


2016 Paul T. Martin Preparedness Conference

Have you registered yet for the 2016 Paul T. Martin Preparedness Conference?

It’s almost here:¬†Saturday, January 9, 2016 at the Cabela’s in Buda, TX.

There’s a¬†Mega door prize ‚Äď a weekend getaway to a beach house in Port Aransas!

Alas, while I’ll be at the Conference, I won’t be qualified to win the door prize. Why? Because¬†I’m one of the Conference presenters!

John Daub of Hsoi Enterprises on Preparing for the Aftermath of a Self Defense Incident. Self-defense incidents involve far more than just the moment of the incident itself; there’s an aftermath of legal, social, and emotional issues. John Daub will be discussing these issues and how to prepare yourself to handle the aftermath of a self-defense incident.

There’s a lot of other great topics being discussed, including the¬†fresh Open Carry laws (that will have been in effect in Texas just 9 days as of the¬†Conference) and one I’m especially interested in:¬†Allen Codding, DVM on Pet Preparedness Strategies.

There’s a lot of great topics on the schedule¬†at this 4th annual conference.

Hope to see you there!

One month down – looking back

So it’s been a month (more or less) since I entered the world of self-employment.

I still don’t know how to officially classify myself. Am I a consultant? A¬†freelancer? ¬†Am I an indie(pendent) software developer? Am I self-employed? Or am¬†I really a full-time employee of Hsoi Enterprises LLC? Sometimes it’s easier to say one thing to people, but then no matter what I say, there’s always explanation. Then when there are forms to fill out, sometimes it feels like saying one thing is more appropriate, then sometimes it’s another. Or like¬†filling out a medical form in the insurance part, I have medical insurance, but I pay for it out of my own pocket (oye!); but the form asks for “employer” assuming the medical plan comes via your employer (which it might, eventually). ¬†But whatever and however I actually classify myself….

The key factor is… was this a wise decision? ūüôā

I still don’t know. Ask me again in a few months. But so far, I’m saying “yes”.

Income of course isn’t steady nor what it was when I had that regular¬†semi-monthly paycheck. That’s taken some adjustment and getting used to.¬†There’s a different rhythm now. I used to pay bills at a certain time, and pay certain bills at certain times, dictated by when the paycheck came in. But now? Doesn’t matter… just pay the thing because there’s no juggling. More importantly, don’t FORGET to pay the thing, because the¬†semi-monthly rhythm isn’t there. I am living off savings for now, and it won’t last forever. But work is underway to remedy this… it will just take time.

My mental, physical, and emotional health is improving. No question I’m getting more sleep. I’m still struggling to find a daily groove, but I think something is settling in. For the past 2 years I went to bed around 8pm and woke up around 3am. That wasn’t my choice, that was the evolution. Going to the gym is a morning thing, so I needed to allot time for that. Then there was the hell of¬†commute traffic, which was a key factor to avoid because 1. I hate it, 2. sitting in traffic and commuting is¬†a massive waste of precious time, IMHO. So I structured life to minimize traffic, which meant being out the door by 6:25am (yes, you had to be out before 6:30 because the rest of the world aimed for 6:30; get just 5 minutes ahead of the rest of the world and it makes a big difference — a rule that¬†can be generalized to¬†the rest of life). And so with all of that adding up, it pushed me to a 3am wake up.

I’m still getting up early, because I still like going to the gym early, when it’s empty. Prior to the gym (4+ years ago), I¬†stayed on a fairly natural clock with the sunrise and such. But now? I find myself wanting¬†to sleep in but¬†forcing myself to get up somewhat early, because of my desire to get to the gym when it’s empty. This is something I am undecided on — to¬†try to keep to a semi-strict schedule, or to just ignore it, wake when I do, and then go to the gym regardless of time. But at least, I’m not intentionally waking at 3am, and no more alarm clock for sure. That’s huge.

I nap a lot. That’s been immeasurable in benefit. I knew my plantar¬†fasciitis just needed time and rest to go away; today, I might feel a little stiff when I wake up, but that’s about it. Huzzah!

I am happier. I’m able to focus on¬†my work, not having to struggle to find time here and there for the projects that I enjoy. I released an update to PanemQuotidianum, I’m almost ready to release a long-overdue update to the DR Performance Practice Deck for iOS¬†(and yes, more is planned beyond this update).¬†I’m still doing contract work for¬†Bar-Z Adventures¬†(the prior day job).¬†I’ve got a solid project¬†of a new app on deck (and I’m very excited to start work on it). And¬†I’m talking with¬†various groups about other future projects. So… not bad. Just gotta turn this work into¬†income. ūüėČ

Being home has been wonderful. I can tell you the past month has been good for everyone in the household. Family is vital to me, and this has been wonderful.

Of course, it’s not all good.¬†Not a single day has gone by where I didn’t do some work. Most days are working a lot, tho I break the work day up; maybe there’s a nap after lunch,¬†then I can start work in the afternoon far more refreshed (vs. having to be locked-down for 9 hours straight, that’s hardly productive). I’ll also work in the evening, reading, researching, or testing on the iPad while lying in bed. Work is fairly perpetual. But I’m OK with this. I think I’ve only had 1 day that I might classify as a “day off”, but I was out at the KR Training facility helping Oldest care for the grounds (mowing, painting steel, etc.).¬†It wasn’t a total day off because I did work for Bar-Z a little bit, but I chalk it up as a day off since I did spend a few hours shooting, and the overall majority of the day was spent not doing Hsoi¬†Enterprises work.

And that… is something¬†I have to mind.¬†Every day that I keep going, that I keep slinging code, is a day I get deeper into it. It becomes harder to emerge from it, which can be bad when there are things to do. Chores around the house, bills to pay, Wife to go on a date with. So I have to be mindful. Before I officially started this, I happened to listen to a podcast (ep. 5) about life as an indie developer. The guest spoke about how he tried to keep to a M-F 9-5 work schedule, because it was far too easy to have life become work otherwise. I¬†understand that from my prior 12 years working from home. But yet, it’s totally different when it’s YOUR baby and there’s no guarantee of a paycheck unless you’re slinging¬†code. Plus, when you’re so in love with the work you’re doing, when the ideas and thinking keeps going, you don’t want to stop.¬†Interestingly, I’ve started to look at the clock in terms of “billable hours” and every hour, every¬†15 minutes, start to feel a different sort of value and pressure. Probably not healthy, but¬†a number of my in-laws have run their own businesses and have told me you get over that in time. ūüôā

Reminds me… my truck needs an oil change, and I think the rear differential gearbox has a small leak. Hopefully that will just require a new gasket.

So yes, I’m still working to find balance. Still working to find my groove.

But overall? Things are good. I do not regret the decision. I feel overall happier and healthier, mentally, physically, and emotionally. I’m excited about the work I’m doing, and the business I’m trying to build. I sometimes wish there were two of me (so the other one could handle the boring stuff, like accounting, sales, marketing, contracts, paperwork, etc.). But¬†it’s one heck of an experience.

For the record, I lean towards “Indie Software¬†Developer”… it sounds¬†cool. ūüôā

PanemQuotidianum 1.0.3 released

Hsoi Enterprises LLC (my day job, now) has released an update to one of our apps, PanemQuotidianum.

Full details of the update here.

If you’re so inclined, please check it out and share it with others.

Thank you.


Time to do my own thing

Today, I step out to be on my own.

I’m leaving the world of W-2 employment to become¬†a full-time independent software¬†developer. I’m making¬†Hsoi Enterprises¬†my full-time gig.

I’m excited, happy, and yes, scared. But very much looking forward to this.

Why am I doing this?

I’ve primarily worked for someone else all my life. But for over 20 years I’ve done side-project work to help scratch my own itches. Four years ago I got more formal with it when I founded¬†Hsoi Enterprises LLC. So I’ve always been semi-indie, and one could say today’s event is just the next step in the evolution. But certainly my primary income came from being a salaried employee in someone else’s company.

There’s multiple reasons why I’m doing this. I’ll share two: one business, one personal.

My Own Road

Every good work of software starts by scratching a developer’s personal itch.
–¬†Eric S. Raymond

I like to create useful, meaningful software that enriches and improves people’s lives. Throughout my¬†career, things I’ve done on my own usually happened because I had an itch to scratch, a need to satisfy. The best software always is the software that¬†the developers themselves use regularly. But often, the direction of¬†a product is pushed by people that don’t use the software, or care more about selling the software than about the¬†use of and users of that software ‚Äď this¬†often¬†leads to less than good software (and the users are left unsatisfied). Long ago I came to terms about¬†the balance between “good” and “good enough”, the need to ship even if it’s not perfect because we need to make money to keep the lights on in our ivory tower so we can keep working towards “good” (thanx, Doug!). So I grant all the realities of business. But by¬†the same token, I firmly believe if one writes excellent software, it pays off greater dividends in the long run. This is not only in the form of revenue, but also in reputation and goodwill. Conversely, if one keeps shipping shoddy software, if users are constantly frustrated and hate your¬†product, that just isn’t a solid business model.

I’m tired of compromising on this front. I¬†know you can¬†make good products, have happy customers, and still make money. Look at¬†Apple, which is probably why I’ve been an Mac and iOS guy all my life but also why I believe you can have gorgeous, user-satisfying products, good reputation, and succeed. Look at¬†Liberty Bottleworks. Look at¬†EliteFTS. No, you cannot please everyone, nor should you try. But you can ensure you please yourself, that you hold yourself to high standards, and work to build a solid reputation with satisfied customers.

I want to make awesome software. I want to make more useful things. I want to make people’s lives better. And I won’t get to where I want to be¬†unless I travel my own road.

My Family ‚Äď Along for the Ride

[I] do not believe in quality time but quantity time. I do thinking creating great memories is important but not as much as “being there”. Because of this I work a lot of strange and odd hours.

–¬†Dave Tate, owner EliteFTS, talking about his kids¬†and who he is

When I was growing up, my Dad wasn’t around much. It was just due to the nature of his job, and his dedication to it.¬†As a kid, I resented this because while¬†it was nice to have money and nice stuff, what I really wanted was my Dad. So of course I did what all kids do regarding their parental shortcomings: swear to do better when I’m a parent! For me, that meant being around for my kids. (BTW,¬†I got over¬†my resentment many many years ago, because¬†I came to understand Dad much better as I got older… but¬†a story for another time).

Early on in my professional software development career, I saw how this was a job that could be worked remotely. This is not a job that requires being on-site; yes there are benefits to being on-site, but it’s not a hard-and-fast requirement. I also saw how due to this fact, you could have a bit of a non-standard life (I’m looking at you,¬†Robin Mair¬†and Greg Dow). This greatly appealed to me, and I set about making full-time remote/telework¬†a hard-requirement for any job I took in the future.

Due to that dedication and focus, I was able to spend 12 years working full-time out of my house. One way I can sum it up is that when Oldest took his first steps, I learned about it via a phone call from Wife. When Daughter took her first steps, I got a phone call. But when Youngest took his first steps, it was right to me because I was home. ūüôā Over those 12 years, I got to be deeply involved with my family on a daily, even hourly, basis. That’s precious to me.

People keep bringing up those death-bed regrets, and no one says they wished they worked more, that they wished they had less time with their family.

See, much of life tends to boil down to two things: time and money. I can always get more money, but I can not get more time. Time is the more precious of the two.

After the 12 years at home, I took a job in an office. I spent 2 years there. It was an educational experience in many regards, and I’m happy I went back for the experience because I learned much from the good and from the bad. But the biggest thing I took from it was that that was not the life for me. The precious time wasted¬†being stuck in traffic every day. The orchestration of life around a time-clock and someone else’s notion of what “productive” meant. It just wasn’t working for me. This isn’t¬†a slight against¬†any¬†employer in specific, it’s¬†regarding that sort of life in general. It is not for me and does not enable me to best satisfy myself and provide for my family that which is most important — me.

Working at home gives me the ability to be around my family all day every day (helped in part because we homeschool). Yes, some people think, as a result of our work/school situation, we live an insular lifestyle. No, we just are a tight family. This work setup, the ability to have a more flexible work schedule, allows me to provide my children what I believe is right and best for them, including mentorship as they embark on their own business ventures. What’s funny to me is I’ve thought about having daily “stand-up meetings”¬†with the family. Yes Dad, your¬†daily asking of “Son, what did you do today that was productive?” has come full circle. ūüôā

Yes I know. The life I’m leaving is the¬†life many of us live with. Understand this is a personal preference for the road I wish to journey down. I have friends who prefer working in an office; it’s just not my preference. I have friends that consider commuting to be a useful endeavor; I don’t.¬†I know what my priorities are in life, what I want out of¬†the¬†life I have left on this Earth, including what I wish to provide for my family, and well… tho I’m scared and have no idea how this will work out, I’m closing my eyes and taking the plunge.

What’s Ahead

For the immediate future,¬†it’s about getting established. I have infrastructure to firm up.

I already have some projects to work on, and I actually will ¬†be contracting back with my (now) former day-job for a time and helping them find a replacement for me and transition to that replacement person. For the record, I am thankful for the support¬†and mentorship I’ve received from Lee and Carrie Little, founders and owners of Bar-Z Adventures.

If you or someone (some company) you know is looking for a solid software developer, drop me a line. ūüôā

Meantime, I forge ahead. I don’t know how this will work out, and honestly while there’s much about this situation that I’ve done before, there’s much that’s new and novel — I don’t know how it will go, or even if it will wind up being the right road for me to travel. But still,¬†I look forward to the challenges, to the new experiences, and the hope for the life I wish for myself and my family. If nothing else, it’ll be an interesting experience, and I’m thankful for the opportunity.

The hard drive saga gets worse….

So that hard drive swap? The story got worse.

After the long weekend of swapping and getting back up to speed, I finally go back to work. Close the lid on the MacBookPro, lift it to put it into my bag… and there’s this buzzing noise coming from the hard drive. It sounded like a lightsaber (best way to describe it).

That can’t be good.

I contacted Other World Computing about it. It only makes the sound when on… doesn’t have to be going to sleep, could be lid open and in the middle of doing whatever, pick up the machine and tilt it (not even a quick tilt, just gently) and noise. So it’s not say a loose bracket or something. They opt to send me a replacement. I got the replacement just before this past weekend, and just time.

See, all the week while I had the new drive in, I had strange crashes. Some background daemon would crash, or Xcode would crash in a non-normal way (yeah, Xcode 5.0.2 crashes on me, but the crashes seem to be fairly deterministic and reliable — these new crashes were out of character).

Made worse? All day Friday while at home (the great Austin Ice Storm of 2014!) I kernel panicked 3 times. Well, more than that, but after the 3rd one I figured it was time to stop work for the day and investigate. All my crashing and panicking was coming out of processes like mds and backupd, which starts to point to disk i/o. Hrm.

So I swap in the new drive (so we have “original drive”, “replacement drive 1” and now “replacement drive 2”. I put replacement 2 in, and start the process again of restoring things. Hrm. Long story short, first restore attempts fails for some unknown reason. Try again, and it appears to have succeeded but didn’t, because reboot and while booting it panics again (couldn’t find ‘init’. That’s bad). So again I go around and around. Yeah, it starts to panic again.

And I tried tilting the machine. Sure enough, replacement 2 makes the same vibration lightsaber noise.

Well crap.

It’s unlikely to have 2 faulty drives in a row, possible, but unlikely. What gives?

I did a bunch more experimentation. After talking it over with my buddy W, it came down to a simple thing: time vs. money. To try to further diagnose this problem would require a lot of time, perhaps a week or two without the machine. I cannot afford that. If it was just for email and Facebook, whatever. But as a developer, the machine is vital to my daily existence. Time is more critical here.


I am now the proud owner of a MacBookPro11,3 — the 15″ retina model. ūüôā And the big model too, because these machines can’t really be modified or upgraded after the fact, and 16 GB of RAM and 1 TB drive space matters given what I do in a day.

No, I’m not happy to have suddenly dropped 3-grand (and yes, I got AppleCare — always do), but I’m thankful that I could.

So I’ve used Migration Assistant and things seem to be getting back to normal.

As for the other machine….

While doing some of this restore work, I had put their “replacement 1” into an external case (see their DIY upgrade kit). On a whim I tried it… I just tilted the naked drive. Sure enough, it vibrated. I’ve been in communication with OWC’s tech support, and just sent them a follow-up with a little video of the vibration noise. We’ll see what they say.

I was convinced the old MacBookPro was dying a hardware death somewhere, but now I’m not so convinced. Nothing I can do about it now… I guess it just means the kids get a nice MacBookPro for school. But we’ll see how everything shakes out in the end.

The story continues…. but I just hope that I’m nearing the end of it, at least the major headache portions.

PanemQuotidianum 1.0 is now available

December 13, 2013 (Austin, Texas) ‚Äď Hsoi Enterprises LLC announces the release of PanemQuotidianum 1.0 – an iOS (iPhone/iPad) app bringing you Daily Bread for your Daily Life.

PanemQuotidianum is ‚Äúdaily bread‚ÄĚ for your Catholic life.

Every day you can wake up (or go to sleep) with a bite of spiritual bread to nourish your soul. It’s light and simple, but filling and satisfying.

Simply set when you’d like to receive your panem, and you’re done. Each day at your set time, a notification will post. Respond to that notification to view that day’s posting.

PanemQuotidianum represents a labor of love, and the first collaborative effort to grow Hsoi Enterprises LLC as family business. Thank you for supporting our efforts.

PanemQuotidianum is available now in the Apple App Store for $1.99. A portion of the proceeds will be donated to Catholic charities.

PanemQuotidianum ‚Äď Your Daily Bread for your Daily Life.‚ĄĘ