6091 comments
2357 subscribers
6237 on Twitter
Subscribe! Feed reader E-mail

On this page:

Things I learned from the GenArtHackParty

I spent Friday evening and all of Saturday at the Generative Art Hack Party that Xavier Snelgrove organized. It was a good excuse to learn paper.js and d3js.

Here’s what I made:

  • Bouncing spline: Reminds me of that old screensaver, with a little bit of randomness thrown in.
  • Flowers: Playing around with opacity
  • Faces: Simple shapes for awesomeness
  • Kapow: I read too many comic books.
  • Pasketti: Because drawing curves like this made me think about spaghetti, but not quite.

I thought Partycles was cool. infinitedaisyworld was nicely done, too. =) Check out the rest of the submissions.

In addition to learning more about HTML5 canvas drawing with Javascript, I learned that:

If I start thinking of things as “art”, I can get stuck waiting for an interesting idea, especially if I’m in that mid-afternoon slump. If I don’t worry about coming up with a vision first and instead read the documentation or play around with functions, I can let curiosity take me to interesting places.

A room full of 20-30 geeks coding away isn’t distracting, although I still haven’t figured out how to interrupt people and ask about stuff.

Add another ~20 people and switch into party mode, and I begin to shut down socially. I don’t particularly feel like engaging in conversation, and I don’t feel like I’m completely there in conversations. It might be a decibel thing, it might be a listening thing. I wish I’d thought of sneaking downstairs for quieter conversations instead.

Xavier Snelgrove, Jen Dodd, and TinEye know how to have a great event with awesome healthy food.

After lots of social interaction, I tend to get wiped out. I slept for twelve hours the following day.

An evening and a full Saturday feels like it was enough to disrupt our home routines, which is not good news in terms of my participation in hackathons. I think I need to be more social in order to make the most of hackathons, anyway.

So, how do I want to follow up on this?

I’d like to add that d3js calendar visualization to QuantifiedAwesome.com. I think it would be interesting to see heatmaps of activities.

HackLab will probably be a good way to practise being around other people when I’m coding, and the open houses on Tuesday would be good desensitization for mingling.

I’d love to learn more about Quantified Self and visualization.

Sometimes, if I start thinking of things as “possibilities,” I get stuck waiting for an interesting idea. What if I set aside one morning each week to do this kind of planning / brainstorming / looking ahead, knowing that the rest of the week can be focused on actually trying things out and making things happen, even if they’re not Super Brilliant things? If I brainstorm a list of things I can explore, then I can keep moving forward even if the creative part of my brain wants to procrastinate. I trust that if I keep exploring, curiosity will lead me to interesting places.

Good experience. Would do it again, especially if I can figure out how to hack the social parts.

Short URL: http://sachachua.com/blog/p/24489

Web app idea: Stamp mix calculator

2013-01-03 11.05.45

I’ve resolved to send more paper letters. I also have an odd mix of stamps that I want to use up: some with Canada Post’s permanent postage, and various denominations throughout the years. There are different rates for domestic, US, and international letter mail. Naturally, I want to optimize my stamp use so that I use the minimum number of stamps and avoid exceeding the required stamp rate.

Some examples for the $1.80 international rate:

  • 2 x $0.89 + 1 x $0.02
  • 2 x permanent postage (currently valued at $0.61 each) + 3 x $0.02 + 1 x $0.52

And lo, someone has actually built a stamp optimizer. Also, only one in Google Search? What do people call these things?

Next question: Has someone built a stamp optimizer that lets you keep track of your stamp inventory, maybe through bookmarkable parameters? It would be neat to be able to not have to enter in your particular mix of stamps each time. That might be overengineering this, though.

Who knows, I may sit down one day and code this just for fun. It totally fits the profile of the programming competitions we used to do in high school and university.

Short URL: http://sachachua.com/blog/p/24340

Test-driven development and happiness

Me: Happiness is a test suite that passes.
@philiph: Do you practice test-driven development for your happiness?
Me: Why, yes, actually, I do. It gives me a tangible sense of accomplishment and minimizes my mouse-clicking. =)

Developers find their own balance of how much project structure works with them. Some people like seat-of-their-pants coding. Others want detailed architecture diagrams. Me, I’m getting the hang of agile development practices, and I really enjoy using them.

Test-driven development, for example. Yes, I could just plunge ahead and write Drupal code, and I could test it by clicking on buttons and typing into forms. I don’t particularly like using the mouse or doing repetitive actions, so I write tests for functionality and occasionally for web interaction. Tests also mean that  I can check small pieces of functionality before I have to build a web interface. And when something breaks – not if, but when – tests help me narrow down the error.

It’s so satisfying to see the tests pass, too.

There are tests that exercise functionality, and tests that set up test data just the way we like it so that we can demonstrate features or try things out using the web interface. One of my team members showed me a wonderful technique for repeatable, well-structured test data by using a spreadsheet to generate PHP code. I’ve been extending the pattern for other things.

Drupal + Simpletest is awesome. It can’t handle everything, but it makes my Drupal life better. Happy developers write happy code!

Short URL: http://sachachua.com/blog/p/21968

Think! Friday

One of the things I like about IBM is the Think! Friday initiative,
which encourages people to use their Friday afternoons to learn about
something new.

My job is to think all the time—ah, the life of a grad student!—and
Think!Friday gives me that additional impetus to go out there and do
something.

A few Think!Fridays ago was Hack Day, an ad-hoc 5-hour hackathon
across IBM. I built a social discovery web application that took a
list of e-mail addresses, names, Lotus Notes mail IDs and even
community IDs. Given a list of people, the tool displayed the latest
three blog headlines and bookmarks for people who used the internal
blogging and bookmarking services. I’d been meaning to build it for a
few weeks, and thanks to the enthusiastic Hack Day vibe, I finally
made the time to hack it all together.

Fast forward to today. IBMers voted on their favorite Hack Day hacks.
Mine won Best Mashup! That made me ridiculously happy. It was a simple
hack—most of the time was spent writing libraries to interact with
IBM’s services and figuring out how to resolve different kinds of
names—but it turned out to be quite useful for finding people.
Throwing it all together in Ruby was a lot of fun, too. Ruby makes my
brain happy.

Hack Day was a terrific way for me to meet a lot of other early
adopters and geeks within IBM. We presented our hacks in two
teleconferences, and that was awesome.

Today, I decided to deal with some of the other little projects I’d
been meaning to do. I set up RSS2Email (Python) and made it easier for
people to have comments on their blog e-mailed to them. Again, a
simple hack (took me a leisurely hour or so)—but I think it will have
a lot of benefit. I also wrote a little Ruby script that summarized my
bookmarks in bloggable form. Happy!

I like days like this a lot. I like sensing the need for a little tool
and writing that tool. I like being in the zone, trying things out,
geeking out, creating something useful…

Happy girl. =)

On Technorati: , , , , , ,

Random Japanese sentence: この鼠は私の猫に殺されました。 This mouse was killed by my cat.

Short URL: http://sachachua.com/blog/p/3685

ACM

I went to Ateneo early this morning, fully intending to just say hi and then go back home to revamp the network. Doc Mana somehow managed to talk me into joining the students for the morning contest, and I’m very glad I did so.

Yes, Eric and I lost. We solved only three problems compared to the four problems Allan, Mark and Miguel solved. Knowing how rusty I am, knowing how uncertain the dynamics were, it was a no-win kind of thing—but I went and joined it anyway, just for kicks.

I think it turned out really well.

I think we all won.

Winning isn’t just a matter of points. It’s not a matter of beating someone or keeping your reputation intact or whatever. It’s nothing like that at all.

So, yes, the next generation beat me. Yes, they had one additional person, but that doesn’t make their achievement any less cool. Heck, if you’re going to go for absolute ranking, Eric solved more problems than I did. I solved one on my own and made a passable attempt at another; he solved two problems completely.

Someone just looking at the numbers will not understand why I enjoyed that contest so much. I loved it, every single moment of it: from scribbling tentative solutions and working through them with a pen, frowning at stubborn bugs… Yes, even until the last few minutes when I was, like, gaaaaaaaaaaaaaaaaaaaaaaaaah.

It was fun.

Short URL: http://sachachua.com/blog/p/2684

Get the highlights as a PDF!

Stories from my Twenties: Highlights from a Decade of Blogging

Free sample!