Category Archives: Writing

Special Announcement: The Metal Programming Guide

Hello all. For the last few weeks I have been hinting that I have a new project that I had not yet announced yet. I wanted to make this announcement at MacTech, which I did yesterday, so I am now publicly announcing this.

I am working on a new book: The Metal Programming Guide. If you are familiar with the OpenGL series of books like the OpenGL Red Book and the OpenGL Blue Book, this is going to be The Red Book for Metal. The publisher for this project will be Pearson/Addison Wesley, so this is not a self-publishing effort on my part. I will have technical editors and people breathing down my neck if I miss deadlines!

Back in 2014, when Metal was announced, it excited me tremendously. I did a series of conference talks on it throughout that year, but a little thing called Swift kind of got in the way of my learning path for Metal.

This year has been something of a disaster for me on a personal level and I didn’t get to accomplish what I had hoped to this year. Being given an opportunity to finally get to master Metal and write a book about it has given me hope for the future. I have always felt like Metal was something I was meant to do, but I wasn’t really ready to tackle it until now.

Right now I am trying to balance doing some short term contract work with attempting to work on the book. I hope to not run out of money before I finish the book, but I also want to avoid doing full time work that would prevent me from making progress on the book. We are very early in the process right now, but I am giving it everything I have to try and get this done in a reasonable amount of time.

I am hoping to be able to make weekly posts on here and my podcast about various aspects of Metal programming that I am not able to include in the book due to lack of time/space/things being out of scope.

Even though I have been a co-author on a number of programming books already, it has always been my dream to do an immersive book on a topic such as Metal. I am excited to learn this amazing framework and share that knowledge with everyone else.

I’m announcing it here on this blog because I have absolute confidence that this project will be successful. I’ve been waiting to do this for a long time. I do not plan to drop the ball on this. Bring it on!

Beware of Publishers Bearing “Free” Gifts

I buy a lot of programming books. Like, a lot a lot. If you’re a publisher and producing any books on OpenGl, VR, robotics, etc… I am probably giving you money.

One place that I buy a lot of programming books is Packt Publishing. They were one of the first publishers to have books out on the Unreal 4 engine. They have a lot of graphics and game programming books and their prices are fairly reasonable.

Back in May they had a deal on a set of five books on game development. Two were books I was planning to buy anyway for the price of the other five, so I bought the set of books. I noticed at the end of my invoice that they gave me a 10-day free trial of their online library of books.

One of these things is not like the other...

One of these things is not like the other…


I am already a Safari Books Online subscriber and have access to the Packt library, so I just ignored this add on to my purchase.

(Yes, I do go out and buy books I am paying to have access to through Safari. I know I could save a lot of money by not buying a bunch of programming books I probably won’t read, especially when I am paying to have access to them. Don’t judge me.)

A week later I got an email from Packt telling me my trial was almost over and they hoped I was enjoying their books. I was kind of miffed. I never initialized the trial. I have gotten free trial offers for Safari that I have never been able to use because I wasn’t a new member, but they always had a code that you needed to use in order to start the trial. I didn’t know that the trial would start automatically.

I had somewhat forgotten about this until I got an email yesterday telling me that Packt had charged me $12.99. I went to check on what the charge was for and guess what? It was for a monthly subscription to their online library.

So, they signed me up for a service I didn’t want, gave it to me without my permission, and because I was unaware that they were doing this they started charging me for something I never authorized.

I was incredibly annoyed. I feel this is a really sleazy way to do business. I cancelled the subscription immediately and wrote an email to complain. Here is the response I got:
email

They basically tell me that if I don’t want their subscription I have to cancel it. I grok that. Already done it.

There is no acknowledgement that what they did was underhanded or sneaky. Their response basically treats me like I am an idiot who didn’t know what I was doing.

I know that most services like Amazon and Apple Music and whatever offer you a free trial period after which your credit card gets charged. They hope that you forget that you signed up for a free trial period and they can charge you because you forgot to cancel when the trial was over. That’s kind of sneaky, but it’s still something where you are choosing to opt in. You are saying “I want this and I agree to pay money for this if I forget to cancel my subscription.” I have avoided free trials of things for this very reason.

It is not okay to “sell” someone something they didn’t choose and then charge them for something they didn’t opt into.

There is a bit of shady behavior on this site. They recently released a $50 OpenGL book that is so out of date that it does not mention shaders, which have been around since 2004. People have complained and gotten a “We’re sorry, we’ll pass your criticism on to the author.” This book is still available and does nothing to warn the reader about how out of date it is. Good publishers like the Pragmatic Programmers remove out of date books all the time.

Their royalty structure also leaves much to be desired. The 16% royalty is not necessarily bad, but considering how many times a year they sell every book on their site for $5, I find it incomprehensible that anyone working on a book ever outearns their advance.

It’s really too bad. They have a lot of books on rather obscure and esoteric topics that most people don’t cover. They have one of the few books on the OpenGL Shading Language on the market. As far as I know they are the only publisher producing any books on LLVM. I would like to think there are better ways of producing a broad range of interesting content without screwing over both the authors and the customers.

The Value of a Liberal Arts Education

Ten years ago around now, back in 2006, I was beginning to realize I had made a terrible mistake.

I graduated from the University of Wisconsin-Whitewater with a Bachelor’s degree in Journalism with a minor in English composition. I declared this major two years earlier. I attended my first journalism class and the teacher told us to look to our left, then look to our right. He told us that ten years after leaving college only one out of fifty journalism majors were still working in journalism and everyone else had moved on to something else.

I looked around me with a smug expression thinking “Man I feel sorry for the other forty-nine people here who are wasting their time!” Clearly I was not the brightest college student as I should have heard this statement and thought “Run for your life!!”

Here we are, ten years later, and I am one of the forty-nine. I don’t even really know why I chose a journalism major. I knew I wanted to write and I knew I didn’t want to be a high school teacher, so that kind of left journalism and getting a PhD in English and praying that by some miracle I found a tenure position or wrote a best seller. I think the best seller would probably have been the easier goal to achieve.

I kind of wanted to learn a trade, but universities don’t do that. Trades were for people who were too dumb to get into “real” college. I had a Photoshop class with a dude who was forced to retire from his paper because he was so old. He had been a film photographer for forty years so they figured he would be the guy to teach Photoshop. Another student introduced him to the Layers property. There was no hands-on anything. There were plenty of hipsters in skinny jeans gushing about Ayn Rand, however.

I got really good at writing research papers and getting on the bad side of professors who did not like being reminded that they were wasting their lives teaching MacBeth to a bunch of brain dead just barely adults who wanted to drink and didn’t really know what else they were doing with their lives.

Besides the not drinking part, I was also one of those brain dead kids who didn’t know what I was doing with my life. I knew when I was in grade school I was supposed to be learning how to make straight A’s so that when I went to high school I would have a good GPA. I was supposed to do well on the ACT so that I could get into UW-Madison and get an engineering degree, even though I didn’t know what engineers actually did. When that did not pan out, I was supposed to attend another UW system school and get a degree in something, because if I got a degree in something, then there would be a job waiting for me at the end of college.

After I was informed that I had in fact completed all of my course requirements I dutifully went down to the job placement office and asked them what I do now. They said “How are we supposed to know?”

“Um, this is the job placement office. What do you do here?”

“We tell you to put your resume on Monster and connect with the people who you did an internship for, if you did one.”

“I didn’t do an internship. Don’t you have, like, companies that reach out to you to help you place recent graduates with them??”

“Why would you think that?”

I found out later that this stuff existed, but the people I talked to had zero interest in helping me out. I was easily deterred because I didn’t know any better. I also realized I was very screwed.

I didn’t have a demo reel to show prospective employers. I hadn’t done an internship. I wanted to work for NPR, but NPR’s Madison hub was at UW-Madison and they would only hire interns from UW-Madison and if there were jobs after that they would only hire people who had already worked there.

I realized that not only was I missing a lot of requisite skills, I also was missing a network of people to call on to help me find a job.

I had been raised by my dad to believe that personal connections were completely meaningless. If someone was looking to hire, they would put out an ad in the classifieds. They would impartially look at the resumes of everyone that applied and if you had a better GPA than someone else, you would be picked.

This is complete and total bullshit.

I spent a decent chunk of time being incredibly angry that I did not get picked over less qualified people simply because the company already knew this person because they were referred or had interned there. I realized very quickly that if I wanted to get jobs I had to be that person that people knew rather than getting angry about how “unfair” things were.

I also realized these placed wanted people who actually knew how to do technical stuff that I didn’t know how to do. I hadn’t learned any of this stuff in college and I didn’t know how to learn it, so I held my nose and enrolled at a for-profit technical college specializing in audio and video technology.

I spent two years there getting to touch real sound boards and real cameras. A lot of our classes were working through the Adobe Classroom in a Book for things like Illustrator and After Effects. This is technically something I could have done from home, but I would have had to convince someone to buy copies of these programs for me and I would have had to have had the discipline to just sit my ass down and work through the book without the threat of a failing grade hanging over my head.

This place also exposed me to something I couldn’t get at my first college: Connections.

My mentor at this school was the guy that got Slipknot signed to a record label and engineered their first album. Another guy was a guitarist on a Nine Inch Nails album. Yet another worked with Michael Jackson.

This was the school where I also learned how to learn on my own. Halfway through my time there, there was a massive upgrade to both the Adobe suite and Apple’s Final Cut Pro suite. I didn’t know how to work with the new software and so I asked a teacher for help. He sat down and worked with me and showed me where everything moved.

I looked at him and asked, “How do you know this? Who taught this to you?”

He looked at me kind of confused and said, “Well, nobody. I got a copy of this a few days before class started and I taught it to myself because I had to know it to teach you.”

That was the first time it ever occurred to me that one day I was going to be on my own. That technology changes and you can’t just keep throwing out money every year to keep taking classes to learn all the changes. When you’re a professional, you’re responsible for knowing your own stuff.

After that I quit asking as many questions. I tried to find out the answer for myself before I would ask for help. Slowly over time I stopped needing to ask for help altogether because I could find any answer I needed.

I worked really hard to try and connect with these people, but I ran into a wall that would prove insurmountable: I was a woman.

As much as people bitch about how sexist the programming community is, it’s nothing compared to the music industry. There were companies expressly telling the school not to send them female candidates because they would not hire women. The guys in my class kind of treated me like a talking dog and would never take me seriously. They would all hang out at strip clubs after school and it was very clear that I was never going to be welcome into their ranks.

Well, actually, it’s possible I might have, but I think I would have been raped and drugged and generally abused for a job that pays ten bucks an hour. No thanks.

After doubling down on this bad bet, I had to find yet another thing to do, which was how I got into programming. I learned my lessons from these previous experiences in that it was really stupid to try and break into “prestige” jobs where there are fifty qualified people for every job out there. Even in something like programming, where there is supposedly a lot of demand, you have to know people and they have to know you. You can either do that by dropping close to six figures getting a computer science degree from UW-Madison or you can work your ass off networking with people and making public contributions on places like GitHub (or this blog).

Even though I never got paid a dime as a journalist, the training I received for that has proven invaluable. I learned how to distill down a lot of information into its most important parts. I learned how to ask good questions and figure out what the root of an issue was. I learned how to write very clearly, effectively, and concisely. My experience doing radio helped me tackle conference speaking, which gave me the kind of visibility I needed to break into programming.

I learned to hustle and work my ass off. I did not want to be in a position like I was ten years ago when I assumed the world owed me something just because someone gave me shitty life advice.

Life doesn’t owe you anything. People will pay you if you can do something for them that is more valuable than what they are paying you. People are more likely to pick whoever is the first candidate that is good enough and if you’re one of the first people they consider you’re more likely for that person to be you.

In spite of all the pearl clutching about how writing as a skill is going in the crapper, there is a lot of opportunity out there for people who can write effectively, especially in highly technical fields. I think it’s easier to learn the tech after the writing because if you learn the tech first, you’ll find someone to pay you enough money to not bother with learning the writing. That is never the case the other way around.

Even though things were pretty bleak ten years ago, failing spectacularly was a wonderful learning experience. I am happy I failed early so that I could have enough time to process that experience and pivot to something else before it was too late. I see people who never struggled with anything suddenly hit road bumps in their thirties and have no fucking clue what they’re supposed to do. I am proud of the person I have become and the life I have built for myself.

That is the value of a liberal arts education.

Soul Searching

January, 2014

I began my programming career in late December 2013. It started something out of necessity. Sometime around October I suffered from a nervous collapse that made it impossible for me to focus on my school work. I had dropped out. I was lying to my husband about dropping out of school because I was gambling on my ability to find a job around the time I was supposed to graduate. I was very lucky and something came through.

My only hope for my first job was that I would find something in iOS. In the Madison area, that was a pretty stiff order. Madison is a lot of enterprise Java, government, and health care.

I managed to find a job at a start-up where I was the oldest person by a decade. I was partially hired because my bosses were not old enough to drink and didn’t know any better about hiring people who have actual experience.

By January, I knew this wasn’t working. I didn’t get along with my programming partner and I knew I was going to be let go. I was okay with that. I knew it was a bad fit.

I did some soul searching at that point. I knew it was bad to lose your first job after two months and I did have some concerns with my long-term ability to be hired. I had a few choices. I could kind of fake it and find another, similar job where I would be equally uncomfortable, but possibly be able to fake it better. Or, I could acknowledge that I was in the weeds and I didn’t know what I was doing.

The people around me didn’t know what they were doing either, but I had enough training and visceral awareness to know that my programming sucked. I knew it could be better and I knew it would never be better if I continued to pretend like I knew what I was doing.

I sat down and started thinking about what I wanted from my career. There was only one thing I absolutely knew I wanted. I wanted to be Brad Larson.

Brad, for those who have not heard my enthusiastic ramblings about him, is the creator of GPUImage. Brad taught the Advanced iOS class at MATC the first year it was offered. The classes were, and are still, available to watch on iTunesU. While I was a student I heard a lot of stories about him. I heard about how Apple engineers told him that something he wanted to do with his Molecules app was physically impossible to do on the current hardware. He figured out a way around the limitation and he made it happen. He was the guy who did impossible things.

I didn’t know if it was possible or how long it would take, but I wanted that. I wanted to understand the language well enough that I could figure out a way around the limitations. I wanted to be a great programmer.

I reached out to Brad and told him that I wanted to do what he does and asked him for advice about how to get started. He was very kind and wrote a nice email back. A few weeks later, a contract opportunity became available to work with him on an extension of his Molecules app. I knew I was on my way out at my current job, so I reached out to him. I told him that I didn’t know anything but that I wanted to. I really wanted to make sure I didn’t misrepresent myself because I wanted to learn and I couldn’t do that if I pretended to know things I didn’t.

After this contract job, I spent time working on a book with Chris Adamson and doing a lot of conference talks. I was trying to get my name out there so that I could find a job. I talked about GPU programming and Metal because they were new things. I didn’t really explain them as well as they should be explained because I didn’t have enough experience with them to fully understand them. I gambled on talking about difficult and obscure technology to try and differentiate myself from all the other new programmers out there.

To my shock and surprise, Brad reached out to me about working for him as my speaking obligations were winding down. I did it. I accomplished the short term goal I made at the beginning of the year to find a programming job with a great programmer so that I could get better and be a great programmer too.

January 2015

Let’s jump ahead a year.

At the beginning of this year I initiated a divorce with my husband. Things had been difficult for a long time. My goal for a few years had been to find stable employment that would allow me to end the marriage.

I do not want to badmouth my ex-husband. Our divorce was amicable. He was a friend before we were married and he continues to be a friend. We had a lot of trouble and I honestly wish him no ill will.

I am bringing this up simply to establish that the last six months have been very difficult.

I have never taken care of myself.

I lived with my parents until I was 27 years old. I was essentially a perpetual student because I didn’t really understand how to find a job or support myself. I moved from my parent’s house to my husband’s house. The first few years I was working I had my husband manage our money because I was earning minimum wage and I did not want to know what my weekly paycheck was because I was afraid if I knew how little it was, it would be easier for me to mentally justify calling in sick when I didn’t feel like going. I was unemployed from 2012 for most of the rest of our marriage. I have never budgeted my money. I have never paid my own bills. I never lived on my own. I don’t think I filed a tax return until I got married because I earned no income.

The last six months have been difficult. It’s been hard trying to learn things that most people knew when they were 16. It’s been hard being away from my pugs so much every day. My house is still a mess because I am simply too tired and demoralized to clean it. I don’t think I’ve put my laundry away since February. My ex-husband was actually so appalled by my inability to care for myself that he cleaned my kitchen one day when he was here picking up some of this things.

The last six months have been physically and emotionally exhausting. I have had bouts of depression that I have spoken about on this blog before. It’s been rough.

Because things have been rough, I have been letting a lot of things go. One of those things has been my focus on my long-term goal of being a great programmer.

I have barely been getting by.

I have had weeks where I have barely gotten anything done. I have felt a great deal of self-hatred and fear about losing my job and independence.

At a certain point it became easy to rest on my credentials. I wrote a book. I was invited by Saul Mora to interview people for NSBrief. I had lots of people who knew who I was. I was given some cache for being a great developer because I had credentials. I didn’t want to think about how little I actually knew because it was too fucking demoralizing to deal with. So I pretended. I even convinced myself that I was as good as I needed to be. I got careless. I stopped trying because it was just too hard to deal with.

Now

I am not doing this any more.

I am tired of what I have been doing for the last year.

The reason I told my long, rambling story at the beginning of this post is because I feel like I am back there now. I feel like I have two choices about how I can proceed from here.

I can either decide that I learned enough and keep hiding behind my credentials. I can learn fast enough to keep up with things, but I won’t ever become the developer I wanted to be. I will have to keep pretending like I know more than I do.

I don’t want to do this anymore.

I want to be very clear about a few things.

Chris wrote most of the book. My name is on the book and I wrote three chapters from the book. I wrote the Debugging, Testing, and Photos chapters. Two of those chapters didn’t really require me to add much to the code base. When I had to tackle the Photos chapter I had to fly out to CocoaConf Boston to work directly with Chris on that chapter because I was not familiar enough with the code base to write the chapter by myself. I needed help with the Core Image code.

Chris worked on the book for two years before I was brought on. I think my presence played an important role in getting the book done. I contributed to the book. But, I feel that I have received more credit for the book than I am due. I haven’t read the book all the way through. I am not comfortable with most of the concepts in that book.

I am tired of waiting around for someone to figure out that cut to the front of the line. I am going to be proactive and admit that I don’t really know that much. I have never written an app of my own. I have focused on some very obscure and esoteric low level programming. For a developer who has only been working for a year and a half, I am fairly advanced. However, I have a long way to go.

I have realized that I have been squandering my opportunity of working with Brad by being too proud and afraid to ask him for help. I have been ignoring things that I don’t understand. Yesterday I asked Brad about what provisioning was. He could have explained it in a sentence. Instead, he took an hour to show me Instruments and how it could be used to analyze one of his projects. I felt like my world went from 2D to 3D. I realized that there was a whole dimension of being a programmer that I used to be aware of and wanted to explore that I had abandoned because I was tired and demoralized and didn’t want acknowledge how little I know. I felt exhilarated and deeply, deeply ashamed.

I do not want to be afraid anymore.

I am working on my own personal application. I am going to do my best to write about that process on this blog. I will be talking about concepts that are probably covered in the book that has my name on it. I will talk about things that most people who have been programming for five years already understand.

I want to go back to the spirit this blog was created in. I created it to document my progress as a student to a professional. True to my roots, I am a perpetual student.

I am going to ask more questions. I am going to delve deeper and try to understand better. I made time for what was important for the first half of this year. Now I need to get back on the track I decided a year and a half ago. I need to stop worrying so much about my exposure or my reputation and worry more about my skills. If my reputation suffers because I want to shore up my weak points, then I probably deserve it. It’s painful to admit that you don’t measure up, but if you won’t accept reality then you can’t change it.

I hope that Brad will continue to be patient with my questions and continue to go the extra mile to expose me to things I wouldn’t have thought of otherwise. His commitment to excellence pushes me to be better and even though it is painful sometimes, it is something I asked for that is rare in this day and age.

Janie’s Insanity Log: Saturday, November 8, 2014

Time: 7:45 am
Tea: Adagio 4 Seasons: Autumn
Current Music: Soundtrack to Revolutionary Girl Utena

Hello. Over the last month or so people ask me what I am going to do this weekend and I invariably say that I am trying to finish my book. I always get the same response: “Wait, you’re still working on that thing??”

Yes. I am still working on that thing.

I am tired of working on that thing. I want it out of my life and into the hands of people who will use it for its intended purpose of chaos and destruction.

Problem is that when I try to make myself sit down and write, I want to be anywhere other than in front of my computer. I start crawling the walls and try to gnaw my own arm off to escape.

So, I am going to the super counterintuitive thing of writing my thoughts down to avoid having to write my thoughts down. I am going to periodically write my mental state here over the next 48 hours or so so that I can share my psychological degradation with the rest of the world. Yay!

This will either be entertaining or it will be a disturbing, incoherent rambling mess. Or, if I am lucky, it will be both! Let’s see what happens.

Time: 7:55 am

I have realized that my chapter goals may have been overly ambitious. I have chosen three frameworks that could each justify their own book. This is a poor decision. I have removed one framework altogether and I am now figuring out how to adequately write the rest of the chapter.

I made the somewhat impulsive decision yesterday to go to CoocaConf Boston to spend some time with Chris working on the book. I started a job a few months ago where I can actually talk to another programmer about the issues I am having and it has increased my productivity tremendously.

One reason this has been taking so long is that life has gotten in the way. It’s been hard to say I am going to sit in front of my computer and write about something I am still figuring out when it has been nice and sunny outside and I would rather be doing other things. Having another person there to bounce ideas off of and who knows you are supposed to be working because they are in the same boat is an invaluable thing. We have been limping along this way out of necessity, but I really need to work with Chris in person, so I am sacrificing some of my royalties in order to make sure the project gets done the way I want it to be done.

Time: 8:00 am

Realized I am spending time I should not chatting on Twitter about what a cool idea this post is and all the awesome crap I am going to do with it. Gently directing my attention back to the task I have to do.

Time: 8:05 am

Reconnoitering the task at hand. I am trying to figure out the best way to proceed here. I have an idea about what I want to talk about and what project I want to complete by the end of the chapter. I know that some amount of the chapter is going to be structural stuff and the rest will be what Chris likes to call, “clicky-draggy” stuff of explaining how to set things up and show actual code.

I don’t want to work on coding the project by myself because I want to work with the person who has done a lot of the work on the code, which is why I am going to Boston. However, I don’t think I will get very much done if I don’t at least begin to explain some of the “clicky-draggy” stuff.

I found a project very similar to the one I want to explain by the end of the chapter. I am tentatively planning to throw code in the chapter that I will tag to remove when I replace it with the actual code I am creating for the project. This will give me a sense of how long this chapter will be. I will also have to account for screen shots that will be taken later when I get the project working.

I feel bad that I am having trouble doing a remote project by myself. I worked alone out of my house for a year and half while learning programming and I could self motivate for that. To be fair, I never completed a project that was released to the world when working by myself. Also, working with another person on code they primarily wrote is an entirely different skill set than just doing your own thing.

I am an inherently social person. I like talking to people about their code. I am not one of those solitary programmers who lives in the basement staring at a screen. If I don’t have anyone to talk to about things that interest me, I kind of wilt and get depressed. I had hoped to work more directly with Chris on the book, but we both had a lot of curve balls thrown at us and it is understandable why it wasn’t really possible to spend an hour a day chatting on Skype about the book. I am hoping that working on the project together in person will accelerate the process of getting the book done.

Time: 8:15 am

Oh! Student Council elevator song from Utena is playing!

Touga: If it cannot break out of its shell, the chick will die without ever being born.
Miki: We are the chick-
Juri: The world is our egg.
Nanami: If we don’t crack the world’s shell, we will die without ever truly being born.
Saionji: Smash the world’s shell.
All: FOR THE REVOLUTION OF THE WORLD!

Sounds about right. Probably shouldn’t be listening to mind fuck anime soundtracks. What else do I have? Neon Genesis Evangelion, Puella Magi Madoka Magica, and Attack on Titan. This isn’t a promising development…

Time: 8:25 am
On second pot of tea. Already driving Chris insane with my pestering. Will leave the poor guy alone. It must be nice to be an introvert.

Time: 8:30 am

Holy crap! I actually started writing something for the chapter!

Time: 8:45 am

Went looking for sandals. Floor is gritty and covered with various pug debris. Resisting urge to procrastinate by trying to clean my office. I am looking forward to deep cleaning the living crap out of this room when I get done with this thing.

Time: 9:00 am
Current Music: Soundtrack to Puella Magi Madoka Magica

Succumbed to the temptation to clean when I went to refill my tea and saw lots of dirty dishes in the sink with a dishwasher full of clean dishes. Feel slightly better that the kitchen isn’t a complete mess. I should probably eat at some point in the future…

Time: 9:30 am
Current Music: Soundtrack to Attack on Titan

I figured out something I was confused about and didn’t understand about the framework, so I actually got some stuff written. Now I need to determine if this is something Chris explains earlier in the book.

Also ate the other half of my leftover crispy chicken sandwich and french fries from yesterday. I am sad that this is probably going to be the healthiest food I eat this weekend. I am keeping a food log of all the horrible things I am going to put in my body to punish myself for not getting this done sooner.

Time: 9:45 am

Got sidetracked by an argument with a friend of mine online about whether the TV show Scorpion is offensive and stereotypical to smart people. My friend is on the autism spectrum and is thrilled to see people like herself on TV. I am annoyed that it is assumed that if you are a smart person you must be completely socially inept. Wait, I am supposed to be writing now, aren’t I? *grumble*

(But seriously, if one piece of your dialog in the pilot is the main character telling the young white guy with glasses in the back of the room that he is a programmer and the guy asking, gee, how did you know, and the main guy saying lucky guess, guess what?? THAT IS A FUCKING OFFENSIVE STEREOTYPE!!!)

Time: 10:05 am

Having an existential thought about whether or not what I am writing is correct and if it isn’t, would anyone ever know? Wondering how many tech books I have read where the author was completely talking out of their ass and doesn’t know what they are doing only to figure out like years later that something they wrote was completely wrong. I guess it doesn’t matter because anything written about Apple tech is inherently ephemeral.

Time: 10:20 am

Got slightly derailed by a flare-up of my involuntary muscle twitching. Beginning to wonder if it might be an allergic reaction of some kind. This only happens when I am at home. When I travel to conferences or I am at work I rarely have any issues. I hope I am not allergic to my pugs. That would suck to the extreme.

Time: 10:45 am

The Husband returned from his outings. He brought me hacker food. He brought pizza, a case of Mountain Dew made with real sugar, and french silk pie. My digestive system is about ready to strike and walk off the job in protest. This will be fun.

Time: 11:45 am
Current Music: Soundtrack to The Rocky Horror Picture Show

Crap. I got pulled into conversations with people on Twitter. Chris seems to have gotten over my annoying him this morning and we are talking about Revolutionary Girl Utena. Also talking to people I need to connect with in Boston while I am there.

I am making progress on the book. I have written quite a lot so far. I have mentally broken thing up and I am putting the pieces together. I had to spend some time doing a little research, but I am able to find the answers I need fairly quickly and not falling down too many rabbit holes. Also not stressing myself out too badly or crawling the walls trying to escape. Plus, it’s almost noon and I haven’t thought about how long it is until I can open a bottle of wine, so yay to that.

Sadly, getting to the part of the book I am going to have to hack somewhat because it involves code I haven’t written yet. I want to write some of the glue code about the process even though I haven’t done it yet. Sigh.

Time: 12:00 pm
Tea: Adagio Raspberry Black Tea

On my third pot of caffeinated tea. I might want to consider switching to something herbal in a little while or else panic attacks will happen. I wonder if I switched to Mountain Dew if that would still result in panic attacks because caffeine is caffeine. Should run experiments on the pugs.

Time: 12:30 pm

As I am writing the chapter, I am realizing I might be approaching the project incorrectly by trying to describe doing it before creating it. I am taking a bunch of notes in the chapter to try to come up with a list of requirements for the project so I can start working on it when I am in town with Chris. Also need to look over the code better to figure out how to integrate this into what we have so far.

Also, figuring out that I am hungry. Grabbed a random pizza from the freezer and preheating the oven. Also took a can of Mountain Dew and threw it in the freezer to get it cold quickly. I am mentioning it so that when I inevitably forget to take it out of the freezer and it explodes there will be foreshadowing of that event.

Time: 1:30 pm

Managed to collaborate on a plan of action with Chris so we can make the most of our limited time in the same physical plane of existence.

I am creating a set of software requirements for my sample code. I am also looking over all of the code we have thus far to strategize about the best way to approach the code and the organization. I might just stub out some space in the book where I describe what is going to happen in each place.

Also made pizza and switched from tea to Mountain Dew (no, I didn’t forget the can in the freezer and we had no explosions.). Haven’t gotten super hyper yet. Give it some time.

Time: 2:15 pm

I am approaching the end of what I can do on this portion of things by myself. I am getting an idea about how I need to approach my project, which is what I will do for the remainder of my day. I am planning to tackle another part of the project tomorrow. Hopefully I will be able to put together a software requirements package that will allow me to just sit down and code my project when I can collaborate with Chris and we can get this stupid thing done and shipped.

Time: 2:30 pm

Bah. Tired. Time for first bath. Normally I would read tech books in the bathtub, but I am trying to avoid contaminating my focus with any of my other hobbies. Will probably just read historical fiction book about Henry II and Eleanor of Aquitaine. Pondering whether I want wine or not…

Time: 4:00 pm

Took my bath. Got really sleepy. Was really hoping that I could take a nap. No such luck. I really miss taking naps. I haven’t been able to have one in a while because when I go to lie down the involuntary twitching comes back and I can’t sleep.

Today has been a fairly productive day. I am trying to spend what energy I have left outlining the things I need to figure out to implement the first part of this project.

Going to navigate away from my desk. My arm and leg are jerking so much that I am afraid of falling off of my ball. I need to go to bed or somewhere that I am not going to fall over and hurt myself.

Tentatively going to call it a day unofficially. Going to get up tomorrow and continue on my odyssey of writing. See you then!