Category Archives: geek

On this page:

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! =)

Learning to design Help and Support communities: Apple deep dive

I’m looking at how people design help/Q&A communities to support a wide range of users. After looking at Adobe’s examples, I’d like to focus on another company well-known for design savvy: Apple.

2014-07-02 14_10_47-Official Apple SupportApple uses a two-screen automatically advancing carousel on its front page. I find that curious because the carousel doesn’t pause when you hover over it, although I guess that with only two slides, you can always wait until the icon you want slides back into place. If Apple did that in order to keep the Apple Support Communities and Contact Us links above the fold, I wonder why they didn’t move those links up higher and then keep a static list of icons underneath it instead. Anyway…

2014-07-02 14_15_15-Welcome _ Apple Support Communities

The main overview page has a big, simple Ask a Question widget that dynamically searches as you type. Underneath it, there are icons to the featured communities.

2014-07-02 14_16_48-Welcome _ Apple Support Communities

Clicking on an icon shows icons for subcommunities.

2014-07-02 14_17_21-Community_ Using iPad _ Apple Support Communities

All the communities I’ve checked out seem to follow these lines. Big group icon, group title, ask a question box right underneath the group title. There’s a manual slider with a custom category filter that loads the discussion list using AJAX, avoiding a page refresh.

2014-07-02 14_20_04-Community_ Boot Camp _ Apple Support Communities

Some of the communities have a Top Participants widget along the bottom.

The Apple communities focus exclusively on Q&A – they don’t link to tutorials or other resources to help people get better at using things. IF you click on the Content link, you can find tips, but they’re hidden and tend to fall off the recent content list. The Content link lists content for all the communities, not the particular community you’re interested in – the Apple discussions theme doesn’t include a link to the content for your particular community.

The discussion-focused approach is interesting, but probably a little too severe. Providing links to tutorials and frequently asked questions can help people who are getting started and don’t know what they don’t know. This information is available elsewhere (ex: http://www.apple.com/support/mac/), so that could explain why it’s not duplicated in the support site. Anyway, Apple’s support communities are clean and stripped down to the essentials.

 

Made my first laser cut thing!

I have access to a laser cutter and a 3D printer through Hacklab.to, but I had never actually tried to use either. I’d been mostly treating Hacklab as a way to hang out with interesting people. Still, since the tools are there, why not learn how to use them?

I looked through the supply closet to get a sense of what other people had been doing with the laser cutter, and what materials would be easy to work with. Acrylic and wood were popular. There were lots of whimsical cut-outs (hearts, scalloped edges, etc.), but I’d also heard stories about how useful the laser cutter was in creating boxes, cases, and other parts.

I browsed through photos of all sorts of laser-cut objects online (boxes? stencils? earrings?), but nothing jumped out as something I wanted to copy. I decided to start from scratch by drawing something in Inkscape. We’d been talking about some ways to make it easier for newcomers to figure out what they can do during open houses. They can start with a brief tour of the projects at Hacklab, and then settle in to work on a project or chat with other people. I figured a welcome sign might be handy. I found a stencil-type font that cut the shapes so that the inner spaces would stay attached. I also learned that Inkscape has a Lindenmayer system (L-system) evaluator, which is useful for making certain kinds of fractals. For fun, I decided to make a Koch snowflake as the frame. Eric Boyd helped me convert the design to G-code and run the machine. It was fascinating watching the paper burn in these intricate shapes.

We cut the welcome sign out of paper as a prototype. (We can always cut it out of cardboard or something fancier if we need to.) Here’s what it looked like:

2014-07-04 15.30.07

I’d like to get the hang of designing things for the laser cutter. It’s a little interesting pairing that with our general slant towards decluttering and minimizing stuff. Maybe as I learn more about the possibilities, I’ll find things that make me go “Ooh, that would be nice,” or even come across gaps that nudge me to make stuff up.

What’s next? Maybe a name tag that I can add a magnet to? A scarf buckle? Bookmarks? I don’t really wear earrings or necklaces any more, but a conversation piece might be handy when meeting people – so maybe a brooch. Various containers for things around the house? Hmm… I drew this, and I might be able to turn it into a bookmark after some tweaking:

cat