Archive for category Uncategorized

Learning colored pencils

Posted by on Sunday, 8 June, 2014

Having studied and practiced basic drawing & portrait sketching in graphite for the last 8 months, I figured it was time to learn something about color. Paint seems a bit too messy, so I was drawn to colored pencils for their portability (just like graphite). I took another online course in colored pencil techniques, and there are definitely some resemblances to oil paint — the fancy sorts of colored pencils (Prismacolors) are wax based, and can be blended much like oil paints.

The online video course walked me through exercises and techniques — e.g. learning how to create 12 distinct colors from single pencil just by varying hand pressure, mixing with white, mixing with clear wax (a.k.a. “blender” pencils), and even using solvent to melt the wax.

The final assignment was to sketch an apple, then trace the sketch twice onto a piece of thick bristol paper. I was then supposed to color the same apple in two different scenarios: once while sitting on a piece of red construction paper, and then again while sitting on a piece of blue construction paper. The exercise was supposed to demonstrate how the background alters our perception of the apple’s colors. Sure enough, the two apples below aren’t the same colors. (It’s probably made even more interesting by my partial red/green color blindness!) Still, I got to use white-out (er, liquid white mask) to protect highlighted areas, masking tape to make the borders, solvent to melt and blur, and blender wax to mix colors. Definitely a lot of fun! My next challenge is to see if I can apply some color to my graphite portraits…

Apples -- colored pencil on bristol board

My full DeviantArt gallery of portraits can be seen over here.

The Chattering of Humans

Posted by on Thursday, 22 September, 2011

There are a lot of Sussmans out there, and every month I get emails addressed to ‘sussman@gmail.com’ but clearly meant for a different one. I always politely reply with “you’ve got the wrong email address”.

That said, when I search Gmail for such replies, it makes it easy for me to see every wrongly-addressed mail I’ve ever received. The email contents — coupled with the complete lack of context — provide a surreal look on the chatter that goes on between humans. In the spirit of textual surrealism, I picked out individual statements from these emails and composed them into a poem.



I've been thinking about you. How are you? Everything ok?

A partial lifetime has passed since we last said hello. Why does it
feel like only a few hours ago that I was struck by your beauty and
warmth?

My heart is so of joy full I can hardly stop crying, singing and
dancing...

I have come to several dances in Cambridge. It's a wonderful
experience and I am grateful.

But it is tiring to carry so many who will not produce themselves and
then struggle in my own life too.

My intent and prayer in this spiritual autobiography has been to
convey something of the magic, richness, and blessing of the journey.

I LEFT YOU SEVERAL PHONE CALLS AND DID NOT HEAR FROM YOU

Your fabulous face and style....and your quite unique and adorable
personality.

I am very proud of you. Your career choice and you are perfect
together.

May I please have the honor of adding your personally signed, dated,
and inscribed picture to add to my collection?

How to get paid to hike, ski, climb since it only meets two nights,
and what type of wages were you expecting?

Would you like to sit at the front desk for two hours on December 5
from 10-12 noon?

Can you please help with the flooding at the Blue Room?

I would have to wait a few days before picking up the racket again,
for I just twisted my wrist today.

I am very disappointed that I will not get to take the course with you
and Vicky.

DO NOT let anyone operate on you anymore because more spinal fusions
will most likely not give enough relief to risk the possible
complications of more procedures.

I will look for the tray and the ergonomics person--hopefully things
will get better.

Please find the proposed delegation from us.

I would like to cut down on costs and make the trip a 3 nights/4 day trip.

They must be directly tied to the FEMA contract and or company performing the work.

During school hours calls cannot go to classrooms. Messages will be
taken and given to teachers.

The executive chef is flexible in accommodating different dietary
needs and requests.

When should Susana begin to prepare on her own and begin one of the
programs you offer?

She wanted to speak with someone above Jason because she feels you are
doing something fraudulent.

We will however have recording equipment there and will record the
event.

How Google+ Works

Posted by on Saturday, 9 July, 2011

I’m working hard to convert my social media life away from Twitter and Facebook and over to Google+ instead.

Why? Well, I work for Google and want to see Google+ succeed — the best way to do that is to actually become a daily user. Also, I want simplicity. I can’t deal with three separate social networks; I want just one, and Google+ is a superset of the other two.

A lot of friends have been asking me how Google+ works. “What’s the sharing model?” Here’s my explanation, to the best of my understanding:

  • The basic unit of reading and writing is a circle. You need to spend some upfront time defining these circles, but the UI makes it easy to do and the payback is well worth the effort. (And due to Google’s Data Liberation Front, you can take your circles with you if you decide to leave!)
  • Reading: You only see posts from people in your circles — nobody else. You can either look at all the circles at once (“your stream”), or you can look at posts coming from just a single circle.
  • Writing: Any post you create can be published to 1 or more circles. This provides nuanced sharing — something that’s really hard to do in Facebook. For example, in real life, you wouldn’t necessarily share the same stories with your parents, your co-workers, or your drinking buddies. 🙂 Remember, however, that the people you post to won’t actually see your post unless you happen to exist in at least one of their circles!
  • Being public: Circles can be totally circumvented by publishing to the “public”; in which case, everyone in the world could conceivably see your post when they read “incoming” messages rather than their stream.

This model is nice, since it captures both the Facebook model and the Twitter model.

It captures the Facebook model of sharing via reciprocal friendship, but without explicit friendship requests in either direction. If two people happen to have either other in each other’s circles, then they see each other’s posts. Very simple. No more hurt feelings from unanswered friend requests; no more posts from people you don’t care about.

It also captures the Twitter model. You can do a public post to the world. You can also “follow” the posts any famous person you want (without bothering them) by simply adding them to a “people I wanna follow” circle.

If you haven’t signed up at http://plus.google.com yet, you really should. The Android app is awesome. Any photos I take with my phone are instantly available for posting; no need to explicitly upload them. It’s amazing how big a barrier to entry this used to be!

Quack in a Box

Posted by on Saturday, 1 May, 2010

This is my plug for my friends’ new card game. If you’re not a boardgamer geek, you may want to move on.

We first met Chris and Clare about four years ago, as they were neighbors in our Chicago neighborhood. We were thrilled to discover they were gamer geeks like us, and our two toddlers became great friends too. Clare is an anthropologist, and Chris is an ER doctor. And together they designed a great new card game based on their travels.

This is the story they tell (no doubt retold and twisted a hundred times): for Clare’s PhD field work, they moved to a rural area of the Andes mountains in Bolivia. While Clare did research and interviews, Chris took up a job in a local medicine clinic. One day somebody came into the clinic with a headache, and one of the other doctors sent him away with antibiotics. “Why did you give him antibiotics for a headache?” Chris asked. Answer: “Well, that’s what we had today.” Hmmmmm.

So Chris got inspired. He created a hilarious card game where each player takes on the role of a corrupt doctor. Everyone is dealt a patient with some sort of ailment, along with a hand of completely random “treatment” cards. The object of the game is to play as many treatments on your patient so as to make as much money as possible, but without killing the patient. (It’s tricky, since some treatments help, some harm.) The game is brilliant and hysterically funny, and I’m thrilled they’ve finally announced a professional printing of the game! That’s right, you can order it right here from their site. I’m going to do everything I can to get independent game stores to stock it. 🙂

Flickr widget, hooray.

Posted by on Wednesday, 27 January, 2010

Cool, I’ve now got wordpress plugins installed that not only show my recent tweets in the sidebar, but my recent flickr photos too. Try hovering the mouse over the photo!

Growing Your Own Mushrooms

Posted by on Sunday, 22 November, 2009

On the last farmer’s market day of the year (around Halloween), we bought a Grow-Your-Own-Mushrooms kit from the farmer we usually buy mushrooms from. Great novelty gift, to be sure. We couldn’t resist.

It’s a medium-sized box that’s really heavy, a solid 30lb brick of soil which is pre-seeded with mycelium. In case you missed Mycology 101, mycelium is the white stringy mat of threads which is the real fungus itself. When mycelium threads intersect from different organisms, they combine DNA and produce mushrooms as a ‘fruit’; the mushroom then releases spores from its vents (on the bottom of the cap) to spread new mycelium. In a nutshell.

(For the pictures below, click to get the bigger photo)

From Mushrooms

Opening the box, you can see the mycelium throughout the soil:

From Mushrooms

…just add some peat moss to the top, water the whole thing, then wait 2 weeks.

From Mushrooms

On day 14, things started to get interesting:

From Mushrooms

Day 16:

From Mushrooms

Day 19:

From Mushrooms

Day 21, time to harvest! The cap’s diameter is twice the size of the stem length.

From Mushrooms

Here’s a tiny youtube video of us ripping up the first big one:

Picking the shroom

…which we then ate in an omelette. Yum. Many more mushrooms to come over the next month.

Foundation: the short version

Posted by on Tuesday, 29 September, 2009

I’ve been reading Asimov’s original Foundation trilogy, and have almost finished it. (Yes, I can’t believe I haven’t read it before!) I love the fact that the novels are essentially a series of political dialogues, and all of the action happens completely offstage. Here’s my quick parody, written during a moment of boredom.

The two men faced each other quietly in the metallic room, each pensively smoking their rare cigars. Outside, hundreds of warships screamed in the dead of space, blowing each other to smithereens and ejecting boiling flesh into the void. The fate of all human civilization once again hung the balance.

“It appears yet another Crisis is upon us, as was predicted.”

“Yes, you *would* want me to think that, wouldn’t you?”

“Would I now? Are you sure?”

“Don’t play your mind games with me, I’ve already anticipated your latest move. Did you really think I was so gullible as to allow my ships to attack yours first?”

“Galaxy! Well apparently you just did.”

“You only *think* I did. You see, I’ve been leading you all along, making you think I would, but that’s only because you didn’t know that I already knew of your plan.”

“Precisely, which is exactly why you fell into my trap.”

“Excuse me?”

“Indeed! I knew you wouldn’t actually go where I was hoping you would, and thus I coaxed you into doing exactly what I wanted all along. You’ve been my pawn from the beginning.”

“And that’s exactly what I KNEW you would say, because I WANTED you to think I was your pawn! That’s why I have 50 soldiers outside this door ready to kill you the moment I nod my head. You miscalculated my genius once again, thinking you were in control.”

“Ah, but YOU underestimated ME, don’t you see? This ENTIRE CONVERSATION has already been predicted by Seldon himself, and my top-secret troop of 300 has been sitting here for 20 years waiting for this exact moment, waiting to do nothing but surprise you. I’m afraid they’ve already destroyed your 50 soldiers outside the door and are now waiting to arrest you personally.”

“But isn’t that just too obvious? I knew you’d plan such a silly thing, from my earliest days in service. I made it my personal mission — 20 years ago — to make sure your secretive squad was destroyed before they were even established. Their entire existence has been a decades-long illusion performed only for your personal deception. I’m afraid you’re powerless.”

“Powerless, that is, to withhold the truth from you any more. Your entire LIFE among the Galactic Empire has been one gigantic simulation, something I just implanted via insidious mind probe. The truth is that you’re a lifetime resident of an insane asylum in Bloomsbury, New Jersey. Tea time is over and visitors are now going home. Goodbye, sir.”

“Damn.”

My Solar-Powered Phone

Posted by on Tuesday, 19 May, 2009

Time for geeky gadget reviews! My first review is of the Solio solar charger. My employer (Google) handed some of these out as “Earth Day gifts” to engineers in Chicago, and it’s pretty cool.

The idea is simple: spread the solar panels, put it in bright sun all day long. The sun charges up its internal battery. Then at night, plug in your cellphone or usb device, and it transfers all of the energy into your gadget. This allows you to walk around saying glib things like “yo, my phone is running on pure solar energy.” OK, maybe not literally… but spiritually. 🙂 This thing is conceivably awesome for camping too.

So does it work?

Yes and no. It works for me, but not exactly as promised. The instructions say that 8 hours of direct sun should charge the battery to 100% (at which point it’s ready to charge your gadgets). But over a month of testing, I’ve concluded that this must only hold true if you live in Florida or somewhere near the equator. It takes at least two days of Chicago sunlight to charge it up. For example, today it was 80 degrees and *intensely* sunny — not a cloud in the sky. I had the thing sitting in a part of the garden that gets direct sun from 8am to 5pm. After 9 hours, it’s only 50% charged.

My other setback is that while it charges my Android G1 phone just perfectly, it doesn’t work on my Kindle. The Kindle sorta acts weird when I plug its usb cable into the Solio: instead of a solid charging light, the light goes on for 5 seconds, then off for 2, then on for 5, and so on. After an hour of this, the Kindle’s battery gets *drained* down to nothing!

But heck, I still like saying that at least my phone is running on solar energy… every other day. 🙂

Mercurial on Google Code

Posted by on Friday, 24 April, 2009

You’re not actually surprised are you? 🙂

Read the official blog post for details.

But yes, this is the project I’ve been leading for the last 9 months. I haven’t written any code, but instead it’s been my first chance to really be a ‘tech lead’ (translation: manager) for some truly brilliant programmers on my team. The mercurial-on-bigtable implementation is top-notch.

Note that the feature isn’t finished yet — lots of missing things, lots of bugs to fix still. We’ve not yet fully launched to the public. But you can sign up to be an ‘invited tester’ (if you’re willing to give us feedback), and meanwhile we’ll continue to finish the feature in the public view.

a Mercurial “super client”

Posted by on Tuesday, 14 October, 2008

One of the cool trends I’ve seen is the use of distributed version control systems as “super clients” against Subversion. You suck down the entire history of a Subversion repository into a local, private repository, do all of your commits locally, make branches, experiment all you want, then “push” back up to Subversion again. On the internet, nobody knows you’ve been using DVCS (or that you’re a dog.) What’s particularly cool about these bridging tools is that they allow users to try out DVCS before deciding to officially convert a whole project over. Or, if a project happens to be using Subversion but you still want most of the power of a DVCS for local work, it’s a perfect solution.

For all the blabbing I’ve done about distributed version control systems, I’m still a big fan of Mercurial. Of all the DVCSes, I think it’s the easiest to learn for svn users. It has a small, tight set of commands, and the community which runs the project is polite and sane.

In any case, there have been a collection of Mercurial-Subversion bridges available for the last couple of years, but they’ve all been deficient in various ways: either not capturing svn history entirely, or being unable to push back to svn correctly (or only very awkwardly). So I’ve pretty much stayed away. But today I want to plug a new bridge written by a friend of mine (Augie Fackler) who finally did it Right: he wrote a bridge called hgsubversion which (1) uses the actual Subversion API to pull history down (which is faster, more accurate, and long-term sustainable), and (2) actually knows how to push changes back to Subversion correctly. I want the world to be aware of this tool, because I think it’s the first Mercurial-Subversion bridge which deserves to be promoted into the popular ranks with tools like git-svn.

The tool is still young and not generally installable by the public (i.e. you’re not going to find any magic .rpm, .dpkg, .zip or .dmg for it yet)… but here are my cliff notes if you want to start playing with it.

Requirements

  • The latest (unreleased) Mercurial
  • Local Subversion libraries, at least 1.5, with swig-python bindings built
  • A Subversion server that is 1.4 or later

To get the latest Mercurial:

$ hg clone http://selenic.com/repo/hg hg-latest
$ cd hg-latest
$ make
$ sudo make install

To get the latest Subversion python bindings:

$ # if you don't have a binary package for svn-1.5-python-bindings already,
$ # this is a summary of subversion/bindings/swig/INSTALL instructions:
$ svn checkout http://svn.collab.net/repos/svn/tags/1.5.3 svn
$ cd svn
$ ./autogen.sh && ./configure
$ make
$ sudo make install
$ make swig-py # make sure you have swig 1.3 installed already
$ make check-swig-py
$ sudo make install-swig-py

To get hgsubversion:

$ hg clone http://bitbucket.org/durin42/hgsubversion/ ~/hgsubversion
$ cat >> ~/.hgrc
[extensions]
rebase=
svn=/home/user/hgsubversion
^D

To make sure you’re ready to go, do a final sanity check:


$ python -c "import svn.core; print svn.core.SVN_VER_MINOR"
5
$ # if you get something less than 5, you may have conflicting
$ # versions installed, and may need to set PYTHONPATH

Now you can clone your favorite svn repository, and use it locally:


$ hg svnclone http://svn.example.com/repos hg-repos
converting r1 by joe
A trunk/
committed as 24dfb7b51d606a921333e2b8f19a9a6aa5661a69 on branch default
[...]
converting r100 by jane
M trunk/goo
M trunk/moo
committed as 54dfb7b51d6d6a931333e2b8f19a9a6005661a62 on branch default
$

The tool currently assumes a ‘standard’ svn layout of /trunk, /branches, /tags, and then tries to pull them into sane mercurial equivalents. After you’ve made a bunch of local commits, you can push the changes back to subversion:


$ # First merge the latest public svn changes into your repository:
$ hg svn pull
converting r101 by pinky
A trunk/awesomefile
committed as e85afd44dc83d5df2599157096a95b0868de6955 on branch default
$ hg up -C
3 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ # We now have two hg HEADs, because the public svn changes are
$ # considered a different line of development from my own.
$ # For now, rebasing is preferred to merging:
$ hg up -C 9985f017b3ab
3 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg svn rebase
saving bundle to /home/user/project/.hg/strip-backup/c4b9dfce6b09-temp
adding branch
adding changesets
adding manifests
adding file changes
added 4 changesets with 4 changes to 4 files
rebase completed
$ # At the moment, each changeset is pushed separately;
$ # changeset flattening not yet implemented
$ hg svn push