Travis Ingram     About     Archive     Feed
Beginner => Competent => Proficient

Gaps

I’m actively working to identify gaps in my current understanding of how the development process works, what it’s comprised of, the component parts, and how they fit together. It’s not easy, though, figuring out what it is that you don’t know. My plan was to start with mapping out what I do know and the degree to which I feel I know it, and then move out from there. Eventually getting to the point where I’m barely aware of, in the broadest sense, a specific topic or idea or concept, but know little more that its name, if even that. Once I’m able to do that, find that edge, I can strike off in another direction. If I repeat this process enough, I’ll get to the point where I have a nice list or group of concepts that I know nothing about and can then shift my focus to correcting those deficiencies.

That’s the plan, anyway.

Like I said, it’s not easy trying to figure out what it is that you don’t know. But doing so is the first step. The first of many.

So this, like the post below, is an entry that I hope to update periodically. I’ll add the things that I feel comfortable with and those that I don’t. I might even expand it to include the steps that I’m taking or plan to take to actually fill in some of the gaps. We’ll see. For now, I just wanted to start this post. I hope to spend some time tomorrow and then subsequent days working on this project.

I’m in the process of recording a bunch of screen casts, reviews basically, of exercises that I’ve already gone thorough. I feel like the two are complementary in nature and have no doubt that be working through this material, I’ll come across areas that I’m not terribly comfortable with. Which will be quite obvious, as I stumble and stammer my way through an explanation. It should be entertaining if nothing else.

Collaboration Tools

20140728 - Original Post

Here are some basic collaboration tools that I’ve found can come in handy when needing to work remotely with others. Most are pretty straight forward and friction free in their use. These are primarily geared towards situations where you need some quick feedback or are working through an exercise or project with your peers.

The site Pair Program with Me is another great resource and offers many additional options.

If you have other tools you’ve used and find useful, please don’t hesitate to share them!


Google Hangouts

Google Hangouts offer a convenient way for individuals and groups to meet up and talk. They have been integrated throughout most of Google’s services and can be accessed in Gmail, Google Plus, Voice, or individual apps for iOS and Android. In addition to audio, video, chat, and screen sharing, the platform offers numerous plugins (like Floobits) that expand its basic functionality. The Zapier link below is a great overview of the service and its user interface. It also does a nice job of detailing the numerous ways to go about initiating a call.

To take advantage of Google Hangouts, you’ll need to have a Google account and install the plugin on your browser of choice.

Google Hangouts and the associated GTalk plugin are very resource intensive. Laptop users should be mindful of their battery, chances are it won’t hold up over the course of a two hour session. Anecdotal evidence suggests that Safari is slightly better in this regard than Chrome.

Here are a few basic best practices to keep in mind when interacting with others via Google Hangouts.

  • Always use headphones.
    • The Apple earbuds with inline mic work well, a dedicated headset, even better.
  • Background noise can be distracting and make it difficult to focus on the presentation.
    • Please be mindful of your environment. Maintaining an open mic helps keep the communication flowing but excess noise is a distraction. Use your best judgement when deciding to mute or not.
    • As a general rule, if you’re in a consistently noisy environment, like to fidget, or are prone to snacking, it might be best. =]
    • If you are muted and need to talk, pressing ⌘ + d (ctrl + d for Windows), will activate your mic.
  • If you’re experiencing distorted audio or blocky video, it may be related to your connection. Try reducing the quality via the bandwidth icon or turning off your camera entirely.

Resources

Use case:

  • Anytime you need convenient access to audio AND video AND screen sharing AND collaborative text editing.
    • If video isn’t required, there might be better options, like one of the services listed below.

ScreenHero

ScreenHero has officially launched and is now a paid service. It costs $10/mo. This makes me a little sad as I think that’s a bit prohibitive for folks who just want to pair and aren’t using it as a production tool.

ScreenHero is an application that enables remote collaboration through integrated voice / text chat and (surprise!) screen sharing.

One person acts as the host, sharing their screen with another, remote user. A word of caution, though, the remote user will have full access to the host machine. So when connecting as the remote, be mindful of where you’re clicking. Thankfully, ScreenHero provides each user with their own labeled cursor. Which makes it much easier to keep track of where you’re at and who is moving and typing.

In a typical session, you might be working on a file in Sublime Text or in the Terminal. In either case, it’s easy to track who’s doing what and follow along. When it’s time for the remote user to type (drive) they will be able to do so, albeit with some input lag. Since there’s no video involved, at least in the traditional sense, the bandwidth required is much lower. Especially when compared to something like Google Hangouts. Still, depending on the connection, there’s usually a brief delay when typing or clicking. It can be a little disorienting at first but shouldn’t take long to get accustomed to.

ScreenHero is currently free to use. It’s in beta, though, so the occasional bug might pop up.

It will move to a paid service in the coming weeks.

Use case:

  • A great tool if you don’t require video and don’t mind hosting or connecting to another user.

Floobits

Floobits is a collaborative text editor and screen sharing solution. It’s primarily intended for folks who need to remotely pair program but has a number of features that make it appealing for small groups as well.

I hope to post a rather extensive overview / tutorial that I wrote a while back. I need to modify some of the screenshots first, redact some personal information. As soon as I finish, I’ll post it at the link below.

Resources

Working with Floobits locally


Stypil

Stypi is a realtime text editor that enables quick collaboration on a shared documents.

It’s a handy alternative to something like ScreenHero or Floobits if you just want to quickly connect and work through an exercise. It also has many of the basic features you’d expect from a text editor. It offers syntax highlighting for a number of programming languages such as Ruby, HTML, CSS, and Javascript. It also allows you to set up the appropriate tab distance and has a few built in themes like Monokai and Solarized. If you register for an account it will store your documents and settings for later sessions.

Resources

Here’s a short tutorial for basic Stypi use.

Use case:

  • Since it doesn’t have integrated voice chat, you’ll need to use another application for that. But it’s a good choice if, for whatever reason, you don’t want to share your own environment or make a direct connection to someone else machine.
  • For those with an account, saving files and being able to continue working on an exercise is pretty convenient.

CloudApp

CloudApp is an application that allows you to quickly upload and share screenshots. It can be quite useful when debugging and you want to share an error message.

Use case:

  • Any situation where you need to quickly share an individual screenshot.
  • If you upgrade your account you can also store and share video files.

Hastebin

Hastebin is a simple site that allows you to quickly save and share code snippets. It even has a gem that, once installed, will allow you to use it from the command line.

Use case:

  • This site makes it easy to share code. It’s a quick way to send off a link for review or feedback. The recipient can review and edit as needed and provide feedback inline.

GitHub Gist

GitHub Gists, much like Hastebin, is a great way to quickly save and share code snippets, full documents, or multiple files. They are also able to be forked and cloned, just like a regular git repository.

Use case:

  • This site makes it easy to share anything ranging from a single snippet to multiple files. It offers a quick way to disseminate information and do so in a private way. Unlike Hastebin, people aren’t able to make inline comments, so Gists are a little less handy in that regard. Overall, still a handy resource.

SizeUp

SizeUp is a utility that allows you to quickly change the position of the currently active window. It’s very useful when screen sharing with someone else.

Use case:

  • This utility makes it easy to quickly move and resize windows, especially during a pairing session.

Projects

Purpose

The life cycle of a given idea is usually pretty short. At least mine are. Primarily because, up until now, the only method I had to capture and save them was a rarely revisited OmniFocus view. Outside of that, I’ve had nothing in place to capture, save, and review them.

I want to change that. I am going to try to use this entry as a way to track ideas, from formulation to execution. I also plan to explore some of the different subject areas that I find interesting and any associated resources that I come across.

For example, I mentioned elsewhere that I write a lot. Which means I have a lot of text files laying around. I’d like to build a command line app to search, parse, and analyze those files. I think it’d be a fun and useful learning experience.

Update 20140724

I have an existing Sinatra based app that I’d like to add some functionality to. Mainly user authentication. That’s the first step, anyway.

I’d like to create a reminder app that will check the status of a service and, given a certain parameter, send off a text or other alert. For example, if I haven’t posted a new entry to 750words by 11:00pm, it would let me know.