Tag Archive: hardware-software interface

Hope X and Hacker School

Yesterday I went to Hope X, a conference I’ve meant to attend for years. The strange thing is that I lived maybe 10 blocks away from Hope for years. Now that I no longer live there, I made it.

I got hit just above the eye with a nerf dart. True story.

The conference is for makers but also has a journalism focus that appeals to me.

I was not the intended target of the nerf dart.

The week was incredibly productive, but not the way I intended. I was at the beach but never went to the ocean. Instead I did some low-level C work with Zed Shaw’s Learn C the Hard Way and worked through some of the Coursera Hardware-Software Interface course, which is amazing. There’s something about getting down with the bits and the bytes and the bauds that evokes the scrolling text of my very first BASIC program in third grade, and the endless efforts to draw colorful graphs on the screen. VLIN. HLIN. My brain actually enjoys this memory.

I didn’t focus on the flashcard app, due to a weird experience with expected help not materializing. I’ll need to tackle the remaining snags by myself, on my own time, to finish the app. The good thing is, I believe I’m creating a solid infrastructure for flashcard-based learning that can be repurposed for many types of content.

What I did instead is prototype a how-to-program video series for true beginners. As an advanced beginner myself, I can still remember what I didn’t understand — and how I wish it had been explained. I wrote a script last week, so when I saw a call on Monday for Lightning Talk topics at HopeX, I signed up. I had no video series ready. So I got to work, recorded three episodes and published two, and gave my Lightning Talk yesterday.

I’m surprised how nerve-wracking the talk was. I’m used to presenting to high-level executives and managers or to industry groups, but presenting to the community feels different, more raw and exposed. I got good feedback afterward, so I think it went reasonably well, but it was much scarier than expected. I also loved it. I’ll look for more opportunities to get more comfortable with this mode of sharing, since I normally love presenting.

I went to the eye doctor this morning and he said I’m fine. I hope I believe him.

Now I’ve just moved into my Brooklyn apartment. Me and my suitcases are settling in. I love having no stuff, because I don’t have a lot of unpacking to do.

Next step is dinner. With other Hacker Schoolers, because I start Hacker School on Monday. I am so psyched and excited to have gotten into this program. It’s going to be intense, productive, and hopefully unforgettable.


Day 46: I Wrote This on My iPhone and It Was OK

I started writing this post on a smartphone at lunch and finished it in my hotel room. I’m not used to typing on a smartphone, but I got tired of losing the thoughts that slip through my head while walking, eating, and people-watching.

I wonder why each person is here, in Quebec City, as they walk past — who he is, if she is on vacation or on sabbatical, if they work here or study at a university or travel, with one foot in this city and one in the next place.

I love this city. I haven’t been super-productive, choosing instead to enjoy the Summer Music Festival and my family’s company for the few days they also were here. Today was different — I read for five hours and then stepped out for lunch. Later, I’ll read and write for five more.

Low-Level Hardware-Software Interaction

I’m learning about low-level hardware-software interaction — the stuff that happens when mouse clicks and typing are translated into machine instructions that whiz between the central processing unit (CPU) and the memory and back. My vehicle for learning these things is a great Coursera course, The Hardware-Software Interface by University of Washington professors Gaetano Borriello and Luis Ceze, complemented by Zed Shaw’s Learn C the Hard Way and Bill Dudney’s All the C You Need to Know. Even though Objective-C is going away, I think it will still be a good idea to understand it and the C underlying it, so I can make maximum use of Swift alongside those tools (since I think they will coexist for a couple of years at least).

I learned Objective-C as my first programming language (and I love it, despite its to-be-deprecated status), so I’m in a bit of a weird spot. I think it’s a sweet spot: I understand enough about low-level programming to learn the guts and internals of machine language — so I’m taking that opportunity because I think it will make me a better programmer. I also understand enough about high-level programming that I’m able to comprehend Swift fairly well and expect to grasp JavaScript/node.js when I dive into it later this summer.

For now, I’m having lunch on a street in Quebec City, watching people pass by.

Goals and Productivity

On last week’s goals:

  1. I fixed the search functionality in my flashcard app. I also identified ways to improve it.
  2. I implemented swipe-up functionality. The card doesn’t disappear yet after the swipe, but I’m working on fixing that.
  3. I read part of the Swift book, but then got distracted by the Coursera Hardware-Software Interface course.

This week’s goals are:

  1. Fix the swipe-up functionality in my flashcard app so the card disappears after the swipe.
  2. Delve into low-level programming topics and struggle through what I don’t understand, including the C underlying Objective-C.
  3. Finish creating questions for my flashcard app database.