Category Archives: geek

On this page:

Thinking about how to make the most of the new Hacklab

The new Hacklab (1266 Queen Street West) will have wood-working tools, a skylight, and more space to set things up (maybe the sewing machine and serger?). There’s a big fabric store nearby, too. In addition to those new capabilities, all the usual tools will probably be easier to use: the laser cutter, the 3D printer, the CNC mill, the electronics equipment…

With that in mind, what would I like to learn more about so that I can make the most of Hacklab? I’ve mostly been treating Hacklab as a place to meet people, with the vegetarian cooking practice and social link building as bonuses. There’s a lot more I could do with it, though, and it might be good to explore.

I’d love to become proficient in making things that fit our life. I like how Norm made custom workbenches and corner tables from lumber. I like how people 3D-print handles and adapters for various things, and how they laser-cut cases, stencils, and jigs. I’m not entirely sure how I’m going to handle transporting lumber and finished goods (bicycle? cab? asking W- for a ride?), but maybe I can learn how to draw up plans, verify those plans with people who have more experience, and work on things at home (since we have many of the tools anyway). So maybe I won’t be making as much use of the tools, but I can practise asking for help.

Although it would be pretty nice to make a better case for my Samsung Galaxy S3 with the Hyperion extended battery I have…

It might be good to use the skylight to start some plants during the winter, too. I’ll need to order seeds for that one, I think.

I could also work on web or Android stuff while I’m there, since those are the sorts of things that other people work on. I could work on writing too, but that’s a little harder because of the background conversations.

So a weekly or bi-weekly trip to Hacklab could be a commitment device for making regular progress on a physical project (wood, sewing, or electronic), a programming project, and vegan cooking adventures. Would that be worth the ~$6 transit fare (+ about 1.5 hours of travel) to get there in winter? Hmm. Probably. If I pre-commit the transit fare so that I don’t have to make lots of little decisions, carving out a part for it from my budget for the year… It makes sense to push myself to go there, since if I stay home, I’m less likely to work on those kinds of things.

We’ll see how this works out!

My path for learning AngularJS

I’d been meaning to learn AngularJS for a while, and rapidly prototyping a data-binding-heavy Javascript application was the perfect excuse. The phonecat tutorial on the AngularJS site was a little too heavy-weight for me, although it would probably have been useful for learning how to Do Things Right. Simpler, from-scratch tutorials like AngularJS in 30 minutes and ng-newsletter were a little more useful for me. After I got the hang of setting things up and using a controller, I browsed through the AngularJS documentation and looked for different modules as I needed them.

Here’s the rough order I learned things in:

  1. Binding data with {{}}
  2. Retrieving data with $http (since I already had JSON handy from the NodeJS site I created)
  3. Iterating over data with ng-repeat
  4. Adding ng-click events
  5. Using ng-class
  6. Dependency injection
  7. Figuring out routing with ui-router
  8. Dividing things into multiple routers
  9. $interval and $timeout
  10. State change functions
  11. Resources (although I didn’t end up really using these)
  12. Directives

I still have to learn about filters, nested views, testing, proper file organization, and all sorts of other goodness. But yeah, AngularJS feels pretty good for my brain… =) Yay!

Programming and creativity

My client had been bringing me a constant stream of little technical challenges to solve. I pulled together different tools to make things happen: AutoHotkey, NodeJS, shared files, optical mark recognition, and so on. He said it was fun watching me figuring things out. It got me thinking about how programming can involve many different types of creativity. If you can tell the different types apart, you might be able to focus on improving some of those aspects.

2014-09-10 Programming - What does it mean to be creative?

2014-09-10 Programming – What does it mean to be creative?

Here’s a rough first pass:

  • Design: Probably the most obvious form of creativity in development, whether we’re talking about interfaces or architecture.
  • Imagining or anticipating needs: When people don’t even know what they’re missing
  • Imagining practical applications: Starting from the solution or from an available tool
  • Seeing gaps and being curious about possibilities: Maybe related to anticipating needs? More like, “Hmm, what if?”
  • Collecting components/capabilities and combining them: API functions, tools, etc. Like collecting puzzle pieces and then being able to dig up the right combination later on.
  • Making adapters: Smooshing different systems together.
  • Generating variants and other ideas: Coming up with different approaches, or coming up with variations on a theme.
  • Incorporating feedback and iterating effectively: Probably related to generating variants or shaping requirements, but also related to getting beyond vague requirements or too-concrete requirements.
  • Breaking things down and building a plan: Seeing the components and figuring out a good order.
  • Shaping requirements: Translating vague requirements/feedback or seeing past what people think they want.

Hmm…

Back to drawing digitally, thanks to Wacom drivers

I upgraded to Microsoft Windows 8 in January 2013 mainly primarily because I noticed myself resisting the change. For the most part, I adapted easily. I liked using Win-q to launch applications, and I even got the hang of the complicated procedure for shutting down.

Still, the upgrade was a step backwards in terms of drawing on my tablet PC. On Windows 7, I had disabled the touchscreen in order to make stylus use easier; on Windows 8 (and later 8.1), I couldn’t reliably disable the touchscreen. The option had disappeared from the built-in Pen & Touch configuration dialog, and disabling it through the hardware devices list sometimes didn’t work.

This meant that I either had to wear something to insulate my palm from the screen in order to avoid accidental touches (even my thinnest glove was still warm and unwieldy), or I had to occasionally erase stray dots. Both got in the way of drawing on my computer, so I didn’t do much of either.

While upgrading various pieces of software (Autodesk Sketchbook Pro, Dragon Naturally Speaking), I thought to check if Lenovo or Wacom had released new drivers yet. Wacom had! Woohoo. I insntalled the Wacom Feel driver, rebooted my computer, and found the Wacom Pen & Touch dialog had a checkbox for disabling touch.

It’s funny how these little inconveniences can add just enough friction to make something feel annoying, and how smoothening those inconveniences over can make a big difference in how you work and how you feel about it. I’m looking forward to playing around with the new features in Sketchbook Pro now. Glad I checked for updates!

Becoming the sort of person I want to be

There are three major shifts that I’m struggling with:

  • becoming a person who can tolerate more pain in order to achieve certain goals, such as fitness
  • becoming a person who can easily enjoy people’s company and appreciate what’s interesting about them
  • becoming a person who can make longer-term commitments, trusting that things will work out

Sometimes I wonder if it’s worth making these changes. Maybe I should just go with how I bend, building on strengths instead of fiddling with weaknesses. If I follow that principle, I might instead:

  • look for ways to make the most of the things that come easily to me
  • explore the shifting connections around ideas and conversations instead of focusing on specific people
  • maximize freedom, flexibility, and agility

The first set of paths seems harder than the second, but will it work out for me better? Taking the easy way still leads to lots of interesting possibilities and less wasted energy. On the other hand, trying difficult things can expand my confidence and help me challenge artificial limits. Also, I tend to over-estimate how difficult things are, and I tend to be more adaptable than I expect. So if the first set of changes is better for me (based on the reasons given by philosophers and learned from other people’s lives), it might make sense to give those a good try–at least for a number of years.

Let me take a closer look at each of those shifts to see if I can puzzle out what I’m struggling with and how to transform that.

Becoming a person who can tolerate more pain in order to achieve certain goals, such as fitness

I still feel anxious at the prospect of combined pain and stress, like the way I seized up after spraining my ankle in a krav maga class. On the other hand, I feel okay with the slight discomfort of the gentle running program that W- is helping me with and the Hacker’s Diet exercise ladder I’m doing. I’ve dealt with some pain along the way to working on other things. Most things are not supposed to hurt a lot (otherwise you’re doing it wrong), but a little wobbliness is understandable.

Taking the long view helps. I remind myself that pain has so far been temporary and that memory is thankfully fuzzy about stuff like that. Gradually, as my strength and tolerance improves, I should be able to take on more and more.

Becoming a person who can easily enjoy people’s company and appreciate what’s interesting about them

I’m okay with people. I like them as an abstract idea, and I get along with people online and in real life. I probably just have to get out more, ask more questions, share a little more of myself in conversation, and become more comfortable with having people over.

Becoming a person who can make longer-term commitments, trusting that things will work out

Seeing the difficulty that people have in transferring leadership roles and knowing my own inconstancy of interests, I hesitate to take on longer-term commitments or bigger roles. Maybe this is something I can learn, though. I’m surrounded by opportunities and role models, so it’s as good a time as any to pick this up. For some of the bigger decisions, I find it helpful to learn from other people who have dealt with similar things before.

What would be some triggers for switching strategy and following what’s more natural for me? If I’m not making any progress or if I notice myself being consistently unhappy, that might be a good sign that I need to reconsider my plans. In the meantime, I’m making very slow progress, but it does seem to get easier and less scary each time I try this.

Designing Help and Support: Skype

I’ve looked at Adobe and Apple, both of whom run their support communities on Jive. Here’s a look at Skype.

2014-07-02 14_35_54-English - Skype Community

Skype uses a typical forum layout (categories, forums, # of topics, # of replies, latest post) with extra widgets to highlight announcements, contributors, solutions, and blog posts.

2014-07-02 14_39_50-Windows (desktop client) - Skype Community

Forum pages list threads, number of views,  replies, and kudos. Sticky threads are labeled as “floated”. As with Apple, I’d probably link to relevant knowledgebase categories from here, to save people the navigation and to encourage them to explore.

2014-07-02 14_40_58-Welcome to the Skype Community - Skype Community

 

The forums include a link to this welcome post. It includes brief instructions and quick links.

2014-07-02 14_42_55-News and Announcements - Skype Community

The News and Announcements section is a list of blog posts with excerpts. The light blue line that separates each post practically disappears into the page background. I would probably make the author photos consistent-width, post titles more prominent (probably darker, larger, and flush left with the margin) so that they’re easier to scan, include a slightly longer excerpt, and maybe make the kudos icon less prominent. The bright green makes the kudos icon the most salient thing on the page.

By golly, I’m actually starting to develop opinions! =)