May 30, 2007

CoreGraphics Programming Prototyping with Python

Filed under: General Information — Ryan Wilcox @ 8:33 pm

Every once in a while I have to write some Core Graphics code. (Lately it’s been code to draw custom HIView subclasses, but I digress).

I only do this once in a while, so I always spend some time fighting with primitives and coordinates and just drawing. In C based languages a change in a source file means a whole new compile-link-run cycle, and if your application is big this could mean a minute or two waiting, and a minute getting to the right spot – just to find out that “nope, that doesn’t work”.

There’s a better way: Python. DrawBot and NodeBox.

The drawing API of DrawBot (and NodeBox, which is based off DrawBot code) feels a lot like Core Graphics’ NSGraphicsContext/CGGraphicsContext APIs (thanks to their OS X and Quartz heritage, no doubt). Meaning that you can try CoreGraphics code out (almost) interactively.

Using DrawBot’s thinly veiled CoreGraphics API you can type some code, run your Python code, and the result is displayed in a little pane beside the code browser. No compile cycle, no making a New Project in XCode so you can test your code quickly: just type, run look. Nothing could be simpler.

May 21, 2007

About Ryan

Filed under: Uncategorized — Ryan Wilcox @ 12:24 pm

On a topic that may be interesting to both potential employees, employers, and clients, let me detail my personality (which reflects in my work, goals, and in general how I interact with members of a team).

While there are lots of stupid “What is your personality?” surveys, the Myer-Briggs personality type indicator is often given as a work-place HR tool. So it’s somewhat appropriate here.

Now while I haven’t been professionally typed, and there is (legitimate) reasons why random paper and Internet surveys aren’t a good way to get a concrete idea of your Myer-Briggs type, the shoe seems to fit, so I’ll wear it.

This entire article is based off this (good) analysis of my Myer-Briggs personality type (INTJ):

However, their primary interest is not understanding a concept, but
rather applying that concept in a useful way. Unlike the INTP, they
do not follow an idea as far as they possibly can, seeking only to
understand it fully. INTJs are driven to come to conclusions about
ideas. Their need for closure and organization usually requires
that they take some action

Hmm. That second sentence is… poor. I _think_ an accurate re-
phrasing would be: “Unlike the INTP, who follows an ideal as far as
they possibly can in an effort to understand it fully…”. I believe
this is correct, given this statement later in the article:

Unless their Sensing side is developed, they [INTJs] may have a
tendency to ignore details which are necessary for implementing
their ideas.

It’s also an interesting point to take into account independently.

Next point:

However, the INTJ is driven to translate their ideas into a plan or
system that is usually readily explainable, rather than to do a
direct translation of their thoughts. They usually don’t see the
value of a direct transaction, and will also have difficulty
expressing their ideas, which are non-linear.

Often they have very evolved intuitions, and are convinced that
they are right about things. Unless they complement their intuitive
understanding with a well-developed ability to express their
insights, they may find themselves frequently misunderstood….

I send more than my share of “Hmm, what I meant to say was…” emails, this is true.

… In these cases, INTJs tend to blame misunderstandings on the
limitations of the other party, rather than on their own difficulty
in expressing themselves. This tendency may cause the INTJ to
dismiss others input too quickly, and to become generally arrogant
and elitist.

I consciously tackle the issue I have in expressing myself. Although,
too often, not until later when the other party either has the wrong
idea or just gives me a blank stare.

This next one is interesting, but you’d have to ask people who have
worked “under” me about the truth of this statement:

Indeed, the INTJ is not overly demonstrative of their affections,
and is likely to not give as much praise or positive support as
others may need or desire.

(I’ve been working on this)

> Others may falsely perceive the INTJ as being rigid and set in
> their ways. Nothing could be further from the truth, because the
> INTJ is committed to always finding the objective best strategy to
> implement their ideas. The INTJ is usually quite open to hearing an
> alternative way of doing something.

A pretty important point: although when I’ve figured out what’s the “right way to do something” in my mind, I’m (usually) open to suggestions (but it doesn’t mean I won’t reject the – possibly logical in your mind – solution because of whatever reason).

Also explaining some things (but perhaps you’d have to work with me a bit to appreciate it):

When under a great deal of stress.. may also tend to become
absorbed with minutia and details that they would not normally
consider important to their overall goal

When it comes to their own areas of expertise — and INTJs can have
several — they will be able to tell you almost immediately whether
or not they can help you, and if so, how. INTJs know what they
know, and perhaps still more importantly, they know what they don’t
know.

I don’t know what to think about this next one. It _does_ explain
quite a bit, but I’m also afraid that the word “perfect” means
different things to the different kinds of people. That could be the
point, but if it is I’m not certain about the purposeful decision to
use a vague word here. Then again, with those 2 sentences I could
have just proven the point. The additional “Does It Work?”
characteristic feels very familiar to me: after I point I say “Come
on, who cares, let’s just GO!”. Which I acknowledge may or may not
get me into trouble.

INTJs are perfectionists, with a seemingly endless capacity for
improving upon anything that takes their interest.
What prevents them from becoming chronically bogged down in this
pursuit of perfection is the pragmatism so characteristic of the
type: INTJs apply (often ruthlessly) the criterion “Does it work?”
to everything from their own research efforts to the prevailing
social norms.

This next one is another Right On The Money quote from the article:

Whatever system an INTJ happens to be working on is for them the
equivalent of a moral cause to an INFJ; both perfectionism and
disregard for authority may come into play, as INTJs can be
unsparing of both themselves and the others on the project. …
INTJs have also been known to take it upon themselves to implement
critical decisions without consulting their supervisors or co-workers

If you haven’t seen me in a Group Of My Peers That Maybe I Don’t
Consider Close Close Friends, you may not know this next one. But I
can tell you that it is right on the money too. The “private person”
thing is much more obvious I’m afraid.

… because many INTJs do not readily grasp the social rituals; for
instance, they tend to have little patience and less understanding
of such things as small talk and flirtation (which most types
consider half the fun of a relationship). To complicate matters,
INTJs are usually extremely private people

Probably the strongest INTJ assets in the interpersonal area are
their intuitive abilities and their willingness to “work at” a
relationship…

Hopefully someone finds that useful (and informative)