Tag Archive: productivity

What I’ve Been Doing

I spent February doing several things that are fun and also a first step toward fulfilling my Phase Two mission: Make useful things. (My Phase One mission was: Travel and learn.)

Programming in Plain English

I’m creating stand-alone software to let you program in plain English. I have a basic plugin version of the software working, which I’ll present at a SXSW TechBreakfast. If the fancier, fuzzier stand-alone software is also working well enough by then, I’ll demo that as well. It’s an iOS app and will also be a Mac app initially. Here’s a beta website for the project: Plain English Programming.

Short and Sweet Courses

I created a Udemy course called “Short and Sweet: Basic Programming Concepts in 2 Hours.” It was fun, frustrating and rewarding to create a two-hour course that presents the essential ideas of programming in real-world language, using pseudocode. The goal is to make it easier for students to learn any programming language after taking the course, and to understand good practices around program structure and refactoring. I’m happy with the end result (for now), I’m loving the ability to communicate instantly with my students and help them get past roadblocks and succeed, and I’ve made my first online revenue, which is exciting. The course is here, if you’re curious, and I’m including a coupon for blog readers: Short and Sweet: Basic Programming Concepts in 2 Hours

I’ve drafted an eBook to pair with the course and am planning my next courses in the Short and Sweet series. Initial feedback is that the concept is good: A Short and Sweet course will be the best, fastest, easiest intro to a topic — no oxymorons! I’ll be testing this premise some more and then launching my own course platform. Now that I have a course recording process down, it shouldn’t take me long to produce content.

Flashcard App Final Phase

I’ve hammered out many of the bugs in my flashcard app, which I plan to tailor as a study aid for each course I release. I’ll also release some stand-alone flashcard apps to help people study for various exams, starting with the NASM personal trainer exam, simply because it was the first test database I created for the app.

I have several other ideas swimming around in my head, mainly around how to help people learn and do more, better, faster. I’m really enjoying this phase of my sabbatical and will send updates. Apologies for the bat-cave moment on this blog, I know it was quiet here for a few weeks. I wasn’t sleeping :-)


Los Angeles, Again

Apologies for my absence from the blog for the past few weeks; I spent the time immersed in Udemy, getting my new course ready for publication. It’s submitted for review now, waiting only for an image before it gets set live. I’m super-excited and will let you know more when it’s released.

I’m spending the winter in Los Angeles.

I promised myself last winter, as I was freezing in my NYC apartment with the heat cranked up to max and my poor tree actually leaning away from the window to escape the polar vortex (who knew trees even DID that?), that if I actually went ahead and pursued this plan to travel and learn and find a new path, I’d spend the winter someplace warm.

I chose L.A. I’ve lived here before, for four-plus years in the early 2000s, and I know where to go, where to avoid, where to relax, where to hike. Most of all, I have friends here who I’m looking forward to spending time with, making the city feel more like a village hamlet or a reunion than a sprawling sprawl.

I’m already feeling the pull of L.A.’s unique rhythm, the blend of seasons into endlessness, the no-hurry mornings and the bright blue perfection, though now I am uniquely qualified to fight it with productivity. I spent the last seven years in New York, where busy-ness is a way of life, even when it’s fabricated.

I remember traveling around L.A. when I was working in journalism, wondering as I passed by cafes in the middle of the day, “Who are all these idle people?”

Now I am one of those people. But I’m not idle. In the past month I’ve doubled down on my (now-working!) Xcode plugin, signed up to present it at a SXSW breakfast, added new capabilities and started planning a standalone software product; created a Udemy course to teach basic programming concepts to would-be programmers, non-technical co-founders, and parents and teachers; and fixed major bugs in my flashcard app that were preventing progress. I’ve spoken with a lawyer about creating a company and am prepared to move forward.

I expect to launch all of these projects by the time I leave in March, along with an organic food finder I prototyped last summer. It’ll be an interesting couple of months.

Then I’ll see what sticks.

In the meantime, I’ll enjoy being productive in the midst of laid-back L.A. I’m also trying to get back on track with my organic, hack-your-health lifestyle, which I decided a few years ago was non-optional if I wanted to live an optimal life. It’s super-successful for me when I’m on-board with it, so I’m back on board and ready to enjoy my (non)-winter.

73 degrees. I love it. Lots of work to do.

GitHub Fails and Lessons Learned

I messed up my Xcode plugin yesterday. GitHub failed me, or rather, I failed GitHub. Then I fixed it and implemented better practices.

This blog post is an open, transparent attempt to share my mistakes and solutions.

For non-GitHub users, GitHub is sort of like Google Docs for software. It allows multiple software developers around the world to work together on software (relatively) seamlessly. So, if a software developer in Dubai makes a change, and another software developer in France makes a different change, those two changes can be merged into a single version of the software without significant hassle.

One Branch to Rule Them All

My first mistake was that I had only one GitHub branch: master. Initially, this worked well for me, because I used one laptop for development and pushed changes frequently from my local machine’s master branch to GitHub’s remote master branch.

Yesterday, I decided to push changes from a second machine, a test iMac with OS X Yosemite and Xcode 6 GM installed (for stability of the plugin, my laptop is still running Mavericks and Xcode 5/Xcode 6 beta. This turned out to be a good idea, at least until quirks are worked out).

Using the test iMac, I added the UUID (unique identification code) for Xcode 6 GM to my plugin. I did some limited testing (MAJOR MISTAKE) to verify functionality, pushed the code to GitHub’s master branch from the iMac, published a few more minor commits, and then pulled the new master version onto my laptop to make sure it also worked there.

Spoiler Alert!

The plugin did not work on my laptop. Previously functional commands produced no output. One command to create a for loop actually executed the Undo function instead! (If you’re not a software developer, just know that this is a bad kind of bug.) Most of these commands had worked fine on the test iMac.

Baffled, I decided to test every single command on the iMac (maybe I should have done this the first time, hmm?). I quickly discovered that with only one exception (of course, the one I’d tested before) my conditional-statement methods crashed Xcode. Some of the other methods that had produced no output on the laptop worked perfectly on the iMac. And entering slightly non-matching commands, which should produce no action, also crashed Xcode.

Clearly, my program now had crossed wires — and this crossed-wires version was the master branch on GitHub and the working version on my iMac and my laptop.

It was time to revert.

Don’t Cross the Streams

I researched how to revert GitHub commits. I wanted to roll back to a canonical, stable version that had worked with Xcode 5, and then go forward from there in a more measured way.

It turned out there were many ways to do this, many of which seemed complicated. The simplest way, doing a hard reset, was utterly bad practice (see: rewriting history) and I didn’t want to go there.

I found a Stack OverFlow answer that solved my dilemma. A poster there recommended doing this:

git revert –no-commit #######..HEAD (where ####### is the ID of the commit)
git commit -m “Commit message explaining what I just did”

This approach would revert all of the commits at once and re-create the state that had existed after the target commit. But it would not rewrite history by entirely removing old commits. Perfect.

Executing the Plan

First, in case something went wrong, I created a new branch with the old commit that I considered to be stable:

git checkout -b xcodestable #######
git push origin xcodestable

Then, reassured that I had a stable version stored on a separate branch, I switched back to the master branch and rolled it back to the old commit using the “git revert –no-commit” solution from Stack OverFlow:

git checkout master
git revert –no-commit #######..HEAD
git commit -m “Commit message explaining what I just did”
git push -u origin master

This seemed to work beautifully. But when I tried to run the plugin on my laptop, I encountered the same problems as before.

Into the Logs

Stymied in all other ways, I dealt with the situation I had in front of me and started logging messages to the console. I stepped through each process to see where things were going wrong.

To my surprise, the main problem appeared to be that many commands, after detecting the correct start point, were jumping into a method that adds items to an array. That method started with the word “Put “.

I had added case insensitivity to the plugin recently. That meant any text containing “put ” also would trigger the add-items-to-array method. For example, if the word “input” appeared anywhere in the code or comments, that would be a trigger. Whoops. I wasn’t sure why the case-insensitivity feature had worked perfectly when I first implemented and tested it, but it was breaking now.

I cleaned that up by making the command start point more specific (“Put item “) and built the program again. This time everything functioned. I tested every piece of functionality and then pushed it to the master branch:

git add –all
git commit -m “Functioning version”
git push -u origin master

Since everything was working, and the prior “stable” snapshot actually had not functioned correctly, I created a new stable branch from the functioning master branch:

git checkout -b xcode5stable2
git push origin xcode5stable2

Then I deleted the old, non-stable-after-all snapshot branch:

git push origin –delete xcode5stable
git branch -d xcode5stable

On to New Frontiers

At this point, the master branch functioned on my laptop and I had taken a snapshot (branch) of this stable state.

I still wanted to update the plugin for Yosemite and Xcode 6 GM functionality.

Unlike the last time, I decided not to do that on master. I created a new branch for testing new functionality, with the goal of merging it into the master branch once it verifiably worked on Mavericks and Yosemite:

git checkout -b newyosemite

Using the laptop, I opened the plist file as source code and added the Xcode 6 GM UUID. Then I built, re-tested every piece of functionality on the Mavericks laptop, and then pushed to the newyosemite branch.

git add –all
git commit -m “Now compatible with…”
git push -u origin newyosemite

Next Steps

The next step is to test this seemingly functional version on the test iMac with Yosemite. I’ll do that this weekend. I’m not sure if it will work, but I believe I found and fixed the major bug behind the wacky, unpredictable functionality. I also think I figured out what is causing another bug and have several ideas on how to make the code more robust.

My major takeaway is that no matter how small a project, better Git/GitHub practices are worthwhile. Specifically:

  • Preserve stable versions before major changes in a separate branch;
  • Make new changes in a separate branch before merging those changes into master; and, possibly most importantly:
  • Test ALL pieces of functionality before pushing or merging anything to branch master. Don’t just do spot tests.


Sabbatical Phase 2: Coworking and Bootstrapping

As I gear up for Phase Two of my adventures, I feel pulled in different directions. My primary goal is to make things that are helpful, useful improvements to the world. I’m conflicted about how and where to do it, specifically whether to try coworking, and how to bootstrap/fund until those things either succeed or fail.

Dilemma 1: Where to Work

On coworking, I’m an introvert. I enjoy meeting people, but a day in a noisy space leaves me needing to rest and recharge. I do my best work in focused, productive bursts, either alone or with a small team of people. (I’m also good at political wrangling and large meetings, but that skill is less useful for my current activities, at least right now.)

I’m not sure I see the benefit of paying money to sit in a noisy space that saps my concentration and energy.

Fortunately, I have alternatives. On Thursdays and weekends, I can visit the Hacker School space. This space is special: It manages to be quiet and focused for much of the day even while full of people, which astonishes me but also makes me extraordinarily grateful. As a bonus, it’s a great place to find lunch or dinner partners for non-work breaks.

Tomorrow, I’ll be trying free space donated by an incubator for Hacker School alums to continue working on cool projects. I love this idea and look forward to seeing how it goes, especially because it requires one-day-at-a-time sign-up rather than an ongoing five-day-a-week commitment.

About the only thing I don’t gain from these spaces is a permanent “home” for my work. What I would pay for is a service that provides office trappings without actually being an office. Things like a non-P.O.-box mailing address, faxing, copying and printing, supplies like envelopes and a receptionist and phone numbers (which I could forward to my cell phone), with conference rooms rentable by the hour for meetings. But no work desks — I could take care of that part by going to quiet-ish coffeeshops or working from home, wherever home is.

Does anyone know of a service like this?

Dilemma 2: How to Bootstrap/Fund

On the bootstrapping/funding side, I could continue without focusing on money at all — and it’s been a blessing to do that for the past six months at Hacker School and while traveling — but I feel like that might be short-sighted. I can extend my options if I earn money by freelancing, consulting, investing, fundraising or seeking fellowships.

One thing I don’t want to do is become too focused on making money at the expense of actually doing things and making things. So I’ll need to find the right balance, and that will be a process of trial and error. Ideally, some of the things I do and make will become sources of income and possibly allow me to raise funds or get fellowships. But I don’t want to force an outcome; I want to experiment, make useful things, and see what sticks.

I suppose I have a sabbatical bucket list. If I do a self-check, I’ve done some interesting things so far (though not all of the things on this list). Travel to places I’ve never been. Attend Hacker School. Make YouTube videos. Write a blog. Write an eBook. Make apps and plugins. Make websites. Make training courses. Be an e-tutor. Speak up on Twitter. Present at conferences and meetups. Attend different types of conferences. Try crowdfunding. Make or contribute to some real-world products.

This list sometimes makes me feel disorganized or scattered. But if I think about my mission statement, it’s pretty clear:

Experiment, make useful things, see what sticks. Keep doing the things that stick. Be myself and see what happens.

Six Months of Airbnb – Traveling in My Own City

Six months ago, I gave up my lease on a Manhattan apartment and embarked on an Airbnb adventure, living in a new place approximately every month.

Before then, I’d lived in a large studio in the east 20s for several years, filling my apartment with stuff and slowly realizing I needed to do something different. I didn’t know what “different” should mean. I’d have a tough day, come home, and buy dresses online to make myself feel better. It was a good feeling that lasted for about 30 seconds after I hit the “Buy” button. Dresses would arrive in boxes, and I’d let them sit in the entryway for weeks.

My parents would bring stuff too — more clothes, knick-knacks, kitchen implements, a form of love that fit my life at the time. I bought feng shui items to try to make my cluttered home feel more open. It worked for a while. But I came home one night last December, walked into my apartment bursting with stuff, and burst into tears.

I felt suffocated. I didn’t know why I was doing this. Why did I need to accumulate more, what was the point, if it held me down and prevented me from trying all the things I wanted to try?

I started to think about getting rid of all my stuff.

Getting Ready for the Leap

I watched videos online of people who’d done it. They had one backpack, and they were roaming the world, doing what they felt like.

That level of minimalism was not for me. I wanted more than one backpack. But I decided to start paring down and see how far I could get.

I gave notice on my apartment at the end of February and called the Salvation Army to set a pickup date. I browsed Airbnb to find promising listings for my new adventure. I wanted roommates, because I’d lived alone for too long. I wanted to shake up my way of life entirely.

One month later, I had three bags of stuff.

Empty Apartment

I walked through my apartment with the super, then closed the door behind me and took a taxi across town to my first Airbnb apartment. There was no moving van and no giant moving fee and no hassle. It was awesome.

Airbnb 1 – April

I chose a loft in Chelsea for the first month, April, living with a fashion photographer. It was directly across from Google and half a block from Chelsea Market. It was also convenient to the subway, which was great because I was still working. I was still weighing whether I needed a change of everything, including my job, or just a change of scenery. I gave myself one month to decide.

The loft was gorgeous, a self-contained space with a living-room area, desk, small mini-kitchen, and loft bed. The walls were covered with artwork, a friendly cat and dog lived in the apartment, and my roommate was the most amazing person I could have hoped for. We talked about life and he cooked delicious breakfasts and we watched Game of Thrones every week. I read programming books in my spare time. I looked out the window and felt life speeding up. At the end of the month, I gave notice at my job.

Airbnb 2 – May

On May 1 I moved to Brooklyn, to a two-bedroom apartment in Boerum Hill. My roommate was in technology, and with similar interests we had great discussions about technology and politics. It took a few days to adjust to the slower pace of Brooklyn — I’d wanted to try it, but at first it felt suburban, and I wasn’t sure about the low-key vibe. By the end of the month, I felt at home. I became friends not only with my roommate, but with his dog, and enjoyed the fully equipped kitchen and projection screen. Also, for the first time, I felt like part of a new community. I was moving toward something instead of away from something.

At the end of the stay, I decided I still had too much stuff. Moving was a struggle, and my suitcase was too heavy. So I left the suitcase behind for my June travels, and just took a backpack and a shoulder bags with a small purse inside of it.

Airbnb 3 – June

After my last day of work, I went to AltConf in San Francisco, so I didn’t rent a place in New York for June. Instead, I stayed in a Pacific Heights Airbnb for a week, in one of the most ideal rooms I could imagine. The Airbnb listing didn’t have professional photos, and I wasn’t sure what to expect. But the place was a tiny brick house on a hilly street, the apartment was clean and quiet and full of light, and the room in the back had a bed, a futon and a tiny fireplace and desk. I slept so peacefully there that, once again, I felt San Francisco embraced me as a visitor.

Airbnb 4 – June

In between trips to visit my parents and to see friends in upstate New York, I spent a few days in Manhattan in late June. I chose the West Village, since I’d always wanted to live there. It was a great experience but really no better than other neighborhoods, which allowed me to put to rest my inflated expectations. The best part was meeting my host and the other travelers staying with her. This is something I’ve found to be true with Airbnb — there’s almost always another roommate in the picture at some point. I’ve been fortunate to have great experiences, but it is something to be aware of, if you’re thinking of booking a private room instead of an entire apartment.

Airbnb 5 – July

After traveling in Canada (at an official B&B, not an Air), I returned to New York in late July for Hacker School. I chose an Airbnb room on Montague Street in Brooklyn Heights, directly across from a Le Pain Quotidien. I needed more than just a backpack for the next three months, so I bought a tiny carry-on suitcase that was easy to carry up and down stairs. Along with my backpack and shoulder bag, this was all I had and all I needed.

I loved living in Brooklyn Heights. The room was quiet, huge, and beautifully furnished. I could look out my window and see people dining on roof decks and then go downstairs to see people dining on the street. I didn’t see my roommate much, but enjoyed the conversations we had and then enjoyed the peacefulness of the space and the neighborhood.

Airbnb 6 – August/September

My final stay in New York was in Dumbo, where I’m typing this now. I live under a bridge, and the noise of trains is my companion. I love it, for the time and the place and the atmosphere and the industrial/new/old feeling. The apartment is a mid-century furnished loft, my roommate is amazing, and the little dog is incredibly friendly and playful. The water is filtered, there’s a trampoline to jump on for exercise, and I’ve gotten a lot done while living here.

Dumbo loft

I’m also ready to move on to what’s next. My “rent” next month will be in Florence and Tuscany, where I’m traveling for a post-Hacker School change of scenery. My goal is to maintain my pace of learning while seeing new places and having new experiences and considering what’s next.

I’ll be back in mid-November to decide for sure. My period of discovery will need to shift to a period of implementation or form a strange hybrid of the two, which could be even better.

But I still won’t have any stuff. And I’m happy about that. The important things in life are love, experiences and giving back — leaving something good behind. Stuff has no place in that equation, for me. It gets in the way. It’s a placeholder. I’ve learned to admit it, and clearing my life of stuff has done me a great good. It’s allowed me to see what’s important to me, focus on what’s important, and get things done.

Traveling in my own city, with Airbnb, has been an amazing experience.

Day 89: Victory

I cannot begin to describe how happy this makes me:

Terminal output from Xcode voice recognition plugin

And this:

Xcode voice recognition plugin

I went back to the voice recognition plugin. I thought about it differently. And it works.

It’s not perfect. Far from it. But the key bottleneck is broken. This basically means everything I want to build, from a functionality perspective, I’ll be able to build.

I’ve never actually experienced this in coding before. I always just had someone help me through the hard parts, which was good for productivity but meant I never really learned to work through a tough problem in code. It’s awesome.

Referencing the “Day 89” in the title of this post, it’s Day 89 since leaving my job. Day 31 of Hacker School.

Things Accomplished versus Distance Covered

I’m in week four of Hacker School.

It’s awesome. But I’m struggling with a dilemma: balancing the tough problem and the maximum ground.

I view Hacker School in terms of two metrics: Things Accomplished and Distance Covered.

Of course I want to accomplish some things. I have a whole list of things I want to accomplish, some while at Hacker School and some afterward.

But the whole point of doing Hacker School, for me, is to learn the maximum possible amount in the time given, so that I become a much better programmer for whatever comes next.

This means I also need to keep an eye on the Distance Covered.

It doesn’t mean I will abandon tough problems forever; but it does mean I don’t want to spend the entire 11 weeks on one problem without any guarantee that I’ll solve it in that timeframe.

Asking the Right Question

So I’m forced to balance things. The right question is not, “How long will I spend on a particular project?”

The right question for me is, “Given the rate of progress I am making, the amount of code I am writing, and the amount of learning going on, how long will I spend on a particular project at Hacker School?”

That’s why I’ve decided to set the voice recognition project aside for now and continue forward with my Hacker School plan by turning my attention to Swift for the next two weeks.

But I Love Tough Problems

I wasn’t too happy about this decision, because my experience has been that the projects and problems I delve into tenaciously and refuse to let go until I’ve figured them out always produce my greatest successes and joy. It was true with high-speed trading risk controls at my prior job. It was true with health issues that I defeated.

But those projects take years, not weeks.

I don’t have years at Hacker School. I have time to learn a lot about a lot, meet and enjoy working with great people, and build a base for tackling the really tough problems afterward.

The Nights-and-Weekends Compromise

I discovered that the voice recognition project is 100% doable — it just requires a lot of work. More work than I have time to dedicate to it at Hacker School.

So, my compromise is to make it a nights-and-weekends project, while spending my time in the Hacker School space completing my Hacker School plan.

That means Swift for the next two weeks and then a shift to JavaScript and node.js.

Meanwhile, I’ll be mulling the voice recognition project in my spare time, which is probably the best way to tackle tough problems that are at an impasse. I will figure it out. But I will also accomplish other things and cover the distance.

The Last Days of Drifting

I wrote this during a long layover at Frankfurt Airport, on my way back from Barcelona to the U.S. in February. When I got home, I gave notice to vacate at my Manhattan apartment and gave away all my stuff, and this crazy adventure began.

At this point, I’m unifying my life, slowly merging my various social media profiles, learning and exploring and creating resources to help other people learn and explore. Looking back at where I was, I give thanks that I’m past that period.

Time in the airport spirals. It spirals in a haze of pleasant white light (in the business lounge) or harsh fluorescence (in the walkways) and becomes endless. I read half of a book (Nail It Then Scale It). I jot down ideas for iterating on a project. I get more tea. Then water. Then tea. Back and forth to the counter, aimless, sliding seamlessly on Lufthansa’s predefined paths. 

I’m bored. I thought a seven-hour layover was a good idea. 

I do like long layovers in a strange, undefined way. They are the fuzzy part of a trip. The pit of potential productivity. I could create something great here, in the airport lounge. I could write something, plan a new feature, get a new idea, implement new code, or just do nothing. Tea. More tea. Back and forth. 

Mostly people don’t talk to each other in the business lounge. I find I’m more productive, because I’m not constantly seeking the next conversation. I meet people on planes all the time, because we are stuck there and the proximity favors talking, at least before we fall asleep or tune each other out with headphones.

I imagine being stuck for days or weeks, walking endlessly from terminal A to Z in simulated comfort, buying boxes of Niederegger marzipan because it is the best thing in the airport. Washing it down with Courvoisier. Yuck. Or water, sold with a smile. Guten tag, Hola, Hello, Hallo, it all sounds the same. The food is better in Europe. 

The guy behind me left. That’s good, because I was uncomfortable writing with him there, felt that he was peering over my shoulder even though of course he was not. Airport privacy is transparent, artificial. We are each perfectly alone and completely seen. I am sure there are cameras in the ceiling. 

I wonder who is doing actual productive work here and who is aimlessly browsing the Internet or reading a book for pleasure or just staring into space. Staring into space is actually a good disguise for productive work, happening behind the scenes. 

Right now my life is in fragments. I am not on Facebook. I alternate between relief to have avoided drama, and wishing for a presence so I wouldn’t need to start a blog to post thoughts. I want to unify my social media presence, so my life is seamless and I can share what I want when I want with who I want. I have my LinkedIn persona and a new G+ page, a blog on organic food and general wellness, and a site for organizing MOOCs and online learning resources. I have a dormant site for people who want to move cities. 

I really want to unify my life, not my social media presence.

The airport is buzzing quietly with the noise of suitcase wheels and heels. People coming and going, in between. 

Day 38: Onward and Sort of Upward

I passed the NASM test. It was a comfortable pass, which gives me some confidence in the study method I used. From the flashcard app perspective, my initial user acceptance test of one succeeded.

I added about 250 questions to the flashcard app database — slightly fewer than my goal of 320 but enough to make the app robust and functional. I’ll add more later but wanted to leave some space and time between the exam and that task. Exams change, and my goal is for my app to help people master the material regardless of exam questions — internalize key concepts, understand the overarching principles and connections between concepts, learn this stuff inside and out, upside down and sideways.

I also fixed the app formatting and added a search function, which worked pretty well. Then I broke it. Sigh. I’ll re-implement it this week and try to figure out what went wrong.

That’s the process. Move forward. Achieve. Break. Sigh. Fix. Try again.

Major goals for this week:

  1. Fix search functionality in my flashcard app.
  2. Implement swipe-up functionality.
  3. Swift book (again). 100 pages.

I’ll be on the train for a full day, so all of this should be doable.

One thing I won’t be lugging around is the NASM textbook. I’m leaving all 5 pounds of it at home. Travel light.

Day 30: Check-In

It’s been a month.

I gave notice and then left work on May 23 and it’s been a month.

I went almost immediately to AltConf in San Francisco, a free developer conference, to indulge my hobby of developing iPhone applications. Not only did I have a great time, I drew a clear line of separation between Before and After.

I did it on purpose, to get a clean, clear jump into all the new things I want to try, without wallowing and feeling useless for a couple of weeks.

I spent some quality family time with my dad for Father’s Day, a few more days back in New York socializing with friends and then relaxing at a meditation event.

Amid all of this, I got a lot of work done.

I finished the NASM book last week. I populated the back-end question database for my flashcard app with 80 questions (a good start, but I want to add at least 320 more this week). I read some of the Swift Programming Guide (not 200 pages, but 50).

I had a balanced week. I made progress without obsessing over how much progress. I stayed in the West Village, a neighborhood I always wanted to live in when I lived in New York full-time. I took time for myself, time for friends, and time for work.

I had some great ideas and some not-so-great ones. I wrote blog posts for future dates. I bounced ideas off of people I know to zero in on which ones might be worthwhile. Three get a very consistent positive response, which is heartening.

I know not every week can be like this. But it was a much-needed, pleasant interlude as I prepare to go all-out in the next few months — traveling, learning, improving and finding the right path.

Major goals for this week:

  1. Add 320 more questions to the flashcard app database.
  2. Fix the formatting and add a search function to the flashcard app.
  3. Pass the NASM test.

It’s been a month. But it feels like an epoch.