Researching New Web Tools

I’ve been spec’ing out this app idea off and on for a few months. At first I was going to do it on the Mac, but, as time passed, I decided to make it a web app in the newer style instead. Not a “present form, hit submit, view results” kind of thing, but something that is always saving and receiving messages from the server — very dynamic.

I’m actually blessed that there are a number of great web tools, libraries, and frameworks to choose from these days. One great overview I read last night was Rich JavaScript Applications – the Seven Frameworks by Steven Sanderson. It does a great job listing and categorizing some of the more popular choices out there. New to me on the list was Meteor, and I consider its video a must-see.

I’m still getting my head around many of these things. My general battle plan is to continue reading and playing with the example code of my CoffeeScript book (which also has some basic jQuery and NodeJS stuff), and then work through some of the various implementations of TodoMVC to see what tech speaks to me.

TodoMVC

TodoMVC is a project that offers the same Todo application implemented using MV* concepts in most of the popular JavaScript MV* frameworks of today. These frameworks include Backbone, Ember, AngularJS, and Spine, to name a few. TodoMVC offers a great way to see how different stacks approach the same problem.

Other tools that are relevant to my cause and look promising include:

Ace

Ace is a standalone code editor written in JavaScript. Our goal is to create a web-based code editor that matches and extends the features, usability, and performance of existing native editors such as TextMate, Vim, or Eclipse. It can be easily embedded in any web page and JavaScript application. Ace is developed as the primary editor for Cloud9 IDE and the successor of the Mozilla Skywriter (Bespin) Project.

ShareJS

ShareJS is an Operational Transform library for NodeJS & browsers. It lets you easily do live concurrent editing in your app.

While I personally have a lot of Rails experience, I’m not going to shy away from NodeJS and other solutions. I almost welcome the opportunity to try something new these days. I’m also very excited to see that the NodePhilly group has gotten off the ground — I hope to make the next meeting in September.

Focused Testing in Xcode

I’ve set a very informal goal to produce content for this blog on a daily basis. We’re not there yet, but before the night is lost, here is a quick Xcode tip I fell into today.

So I’m using RestKit in a client project. In this project we POST and PUT lots of records. RestKit does not currently have an option to, when serializing a record, include those record attributes which are nil as nulls in the resulting JSON. While there has been an ongoing ticket for this feature, my own release date is approaching and so I dug in this weekend to see what I could do.

As part of adding this code, I wanted to run and make additions to the RestKit test suite, but running the whole suite over and over as you are making very specific changes is a bit of a time waste. Here is my Xcode tip.

When working in an Xcode project that has lots of tests, you can temporarily setup Xcode to only run the tests you are working on by editing the schema. In the schema editor, look for the test action and from there you can expand the test target.

Edit Xcode Schema to Focus Your Testing

You’ll see checkboxes for each test file and they expand further for each test case. Check and uncheck to focus in on the tests you are working around. Hold down the Option key as you click on the checkboxes to turn them all on/off with a single click.

This can seriously speed up your editing cycle. Just make sure to switch them all back on (or do this change on a schema that isn’t shared in the repo) and verify that the full test suite passes before you commit your changes.

As for my feature, I think I have it working, but will let things settle down before I generate a nice pull request for the RestKit development branch.

Core Intuition

Core Intuition Logo

Core Intuition is a podcast about the indie software business. It has a strong focus on Mac and iOS development, including the vibrant community that surrounds it. Hosted by two long-standing Mac developers — Daniel Jalkut and Manton Reece — Core Intuition releases new episodes weekly. Each episode averages about 30 minutes of discussion.

As a old Mac developer myself, I’ve been following both Daniel and Manton for many years now and have been fortunate enough to meet them both at various developer conferences. I’ve always respected their opinions about software development and the Apple ecosystem, so when I heard they started their own podcast, I immediately subscribed.

When they started, Daniel and Manton had phases of regular releases and then periods of inactivity. These days, things at Core Intuition are stronger than ever and weekly releases are the norm. There’s even some sponsorship, which adds extra incentive to hook up the microphones week-to-week.

The team structures the show around popular news threads, yet tends to run off into tangents about personal stories and struggles. Ultimately, these tangents are what I enjoy the most, especially since I get to hear about how these two work through the problems that many self-employed people run into, especially when trying to balance life and shipping code.

For a part-time, two man show, the audio quality is impressive and comparable to many other network podcasts that I hear.

Core Intuition is a great podcast for anyone who works, or is interested in working, in the software development world. The thirty minute episode format makes it easy to squeeze the podcast into the drive home or make it a short diversion during lunch.

Daniel and Manton, thanks for the great content and keep up the good work.

A Change of Scenery

After considering my options over the past few weeks, I made the move this past Sunday. It was another long Sunday night working at IndyHall, and as I finished my work, I proceeded to pack up my iMac and all of its various wires. For the next few weeks I was going to work from home.

To be clear, this move has nothing to do with IndyHall, the workspace, or the community. It’s more of personal problem. I’ve done a poor job balancing my work time, my investment time, and my personal time.

I’ve been working at IndyHall full-time for almost two years. The best times for me mentally were when I had a single project on which to focus. I would work 4 days a week, usually from 11:00 am til 7:00 pm and then spend Friday working from home, throwing in laundry in between Xcode indexing stints.

These days I have two main projects. One is a consulting gig with an ever-approaching release date. The other is Shindig, which is a startup I joined over a year ago. It has similar big ship dates on the horizon. I also have my own company — Clickable Bliss, which has it’s own customer support needs. Plus, I have an ongoing update to my invoicing product, which has been on hold ever since I started working on Shindig.

Over the last three months, I’ve been spending 6 days a week at IndyHall, many until late at night. It’s become very draining and stressful.

This week is my first week back at home. I’ll go into IndyHall on Thursday to pick up my new MacBook Air and to conduct PhillyCocoa Office Hours, but otherwise it’s back to coding in the bedroom. I don’t have any major goals with this change but I do want to see where it takes me. Previously, I would avoid working from home, especially since doing so can lead to easy distractions and longer lunches. These days, however, I think I need a little of that.

For now, I think I’ll close this up and grab my swim trunks for a few laps at the gym — another thing that’s been off my schedule for too long.

A New Beginning

I miss blogging. For a while it was a major way I interacted with the community, shared my thoughts, and met new people.

I vaguely remember shutting down this site down in favor of putting my full attention behind Clickable Bliss and its own blog. For a while this worked fine. I limited my blogging to tech things and was legitimately spending most of my time on Clickable Bliss. These days, I find myself splitting my time between Shindig and consulting. I still play video games and would love to work on a real RPG to call my own someday. I want to blog about these things but find the Clickable Bliss focus limiting or inappropriate.

This is a fresh start. A new beginning.