Wednesday, December 31, 2008

Let's End This Year, 'K?

In no particular order and for no particular reason, here are some images that sum up things, or not, for the past year, or more.

Depending on how you feel about it all. Or not.

At least I know what I think, sort of.

Hugh Macleod
Jessica Hagy
Political humor at
Zina Saunders

Wednesday, December 24, 2008

ttypo gewnerator (typogenerator)

One of my favorite ways to waste time is a little tool developed by Katharina Nussbaumer during a student project at The Upper Austria University of Applied Sciences in 2004. It's called "typogenerator". You enter some text and it generates a "typo poster", a small poster-like image made of the letters in your text.

It may also grab some random images off the net to use as background. It used to do this anyway. Mostly it seems to prefer a solid color.

What you do is to enter some text and decide whether the format should be portrait or landscape. After your first result returns you can also choose to vary the text style, the text colors, and the background.

If you find an agreeable result you can have it regenerate the same image in a 640 by 480 pixel size, which isn't very big, but is larger than the standard output. You can save this larger image for later.

Sometimes the generator seems to get stuck in a rut, returning image after image in shades of red and orange, or blue and blue-green. Every now and then though you get something that works. Maybe it's the shape or placement of the letters, or the background color, or the text colors.

When that happens you can freeze the elements you like and let the others vary. I usually stumble on a combination of text and background color that works, and vary the text colors.

Sometimes it takes forever until something clicks. Sometimes I can't stop because everything looks good.

Once you have a set of images you can upsize them, layer them, do color negatives, edge enhancement, or anything else that seems interesting.

Or use what you've gotten back as a starting point for some custom work, inspired by the typogenerator results.

Thank you, Katharina. You're also lovely.

SEOBook typographic error generator (stumbled on while researching this)

Wednesday, December 17, 2008

They Overflowed Me

A couple weeks back I stumbled on another of Joel Spolsky's ideas. He's one of the founders of Fog Creek Software. I read his blog every week. It's called "Joel on Software". You find things there that don't show up in other places.

One of these I actually got to via, then backtracked to his blog.

It was about a new site based on one of his ideas. The idea was "I thought that the programming community could do...a Q&A site with voting and editing."

He has a problem: more ideas than time or money to chase after them, but this time he got lucky. Someone he knew decided to pick up the ball and run with it.
In the beginning of August, the beta opened to a small group of just a few hundred developers. The site lit up instantly! People were asking questions and, for the most part, getting answers! And the voting was working too. In most questions, you could see that the best answers were voted up promptly.
Well, hey. I checked it out.

Then I put it on my list of dailies. I fire it up every day to see what I can see. Sometimes I pick up two or three unexpected tips about things. Enough that, with my other finds elsewhere, I don't even have enough time to keep up on my reading now.

So here are the rules for questions, straight from Stack Overflow's FAQ page:
What kind of questions can I ask here?

Programming questions, of course! As long as your question is:
  • detailed and specific
  • written clearly and simply
  • of interest to at least one other programmer somewhere
... it is welcome here. No question is too trivial or too "newbie". Oh yes, and it should be about programming. You know, with a computer.

Eventually I remembered that I had a question too. It's about a tool I use. The tool isn't specific enough that it's used only for programming, not like a debugger, and my question wasn't something like what is the best way to add a 31 bit number and a 32 bit number.

But I've seen a lot of more general questions asked, and this one of mine has been bugging me for over six months. The tool I use is used by all people who develop web sites. Some versions of it are actually directly involved in the programming process. I don't happen to use it that way, but it's still important to me, and because it isn't working properly since I switched from Windows to Linux, I thought that maybe this was the right place to ask.

I was careful too. I thought about what my problem was, and stayed on the straight and narrow. I was specific about the problem and how I knew it wasn't "just me". I gave examples. I did pretty well.

In the past few months I've probably spent at least a full day, maybe two, trying to find an answer. No luck at all anywhere else. Maybe now. So I posted my question and waited. No one else had asked it. I checked that first.

I gave it a day and a half, then went back. There was only one "answer" posted, but my question had received 45 views. The "answer" came from one of the insiders. One of the people who had "rights". What he said was that the question I had asked was not a programming question, and therefore he had "closed" it.

Well, thanks a lot guys.

At first I felt like a total idiot.

Rule number one is to find out what the rules are. I hadn't done that. I'd seen questions, and answers, and just popped mine in there too. Based on what I've seen on Stack Overflow, my question was perfectly ordinary, but I'd obviously blown it, so I checked the About page and the FAQ.

We don't run Stack Overflow. You do. Stack Overflow is collaboratively built and maintained by your fellow programmers. Once the system learns to trust you, you'll be able to edit anything, much like Wikipedia. With your help, we can build good answers to every imaginable programming question together. No matter what programming language you use, or what operating system you call home -- better programming is our goal.

So, if a question is about programming and at least one other person is interested in it, then it's OK. And "We don't run Stack Overflow. You do."

Yeah, right. That must be the problem. Too many people asking questions? Asking questions some insider didn't feel were worthy? Catching someone on a bad day? What exactly was the deal, and why didn't the guy who pulled the trigger on me let my question get eaten by the wolves if that was the way the game was supposed to run? That would be fine by me.

I just wanted an answer. One is all I need. I still don't have it.

Last night I decided to see what kinds of questions were getting closed by this open and collaborative process run by insiders, and there was a question about questions getting closed. The original version of it had been closed, after someone decided that it was not a programming question, then it was reopened after the questioner contacted someone.

There was a good discussion of the issue. One thing I especially liked was the quoted response of one of the insiders who is not supposed to exist who missed profanity only by a hairsbreadth as he closed someone else's question. This is pretty telling. You know, in fact it was a little scary.

These folks have started a new site so others can collaborate on common issues and now they have decided (or some of them) to be censors. Nasty censors. To revile visitors to their site. To belittle them. To deny them the service that they advertise.


How long do you suppose this is going to keep running?

But I've seen it before.

I had the extreme fortune of doing my first for-pay programming on a mainframe system. One thing about it is a little different from everything since, and that is that there aren't quite so many adolescent smart asses in the office. You mostly get middle-aged to elderly dumb asses in suits, but it's a different problem.

It wasn't until I got into PC programming, client-server work, and web development that I had to put up with a lot of crabby autistic authoritarian screamers, know-it-alls who couldn't stand anything unless it was done their way. These are the people who will work themselves into a foaming carpet chewing shrieking froth over trivialities. Things are either correct or incorrect, and they get to choose.

This sort of personality is all too common among programmer types, and a lot of them have gotten away with it for decades. The world is actually moving toward more collaboration and consensus, to the point that I've recently read the words of respected leaders in the new software world saying they'd rather hire a good programmer who had excellent verbal and interpersonal skills than a brilliant programmer who was at best adequate at communicating and cooperating. None too soon.

Yeah, nevertheless, the guy at Stack Overflow still thinks I'm an idiot, but I don't any more. I did play by the rules, and got shot out of the sky. I'm still going to check in there every day to see what I can learn but hey, do you think I'll ask another question? Do you?

And how many other people are there out here like me?


Fog Creek Software
Joel on Software
Stack Overflow programming Q&A
Info: Stack Overflow Launches
Info: How Hard Could It Be?: The Unproven Path

Wednesday, December 10, 2008


It's a basic rule of life that you can learn from others.

Well, no, not a rule. Exactly.

Rules all are published in books, aren't they? And each and every one of those books is a textbook. Right? And each textbook is one you have had your nosed stuffed into in grade school. Of course.

Otherwise it isn't a rule. Because rules are important. So important that they are voted on by huge committees of sighing adults, whose entire lives are taken up by the process, and who regard their doings with the utmost respect. And so keep doing those doings until they fall over from either age or exhaustion. Or sometimes, perhaps, from lack of food. So important is the process.

And each item output from the committee is printed posthaste, in a list, in a book, and that book, those books, are distributed immediately. Because of the extreme importance.

These are the rules, after all, and need to be out there.

And one of these rules, near the top of the list, is the one that says you can learn from others. Mostly, I believe, if I've got it right, if I remember it right, is that each and every one of us is required to learn almost every single thing from our parents.

You know who they are.

That's the beauty of it. Parents are handy, and they get paid to bring up loads and loads of children. Messy, loud, vagrant children, sprawling every which way and running into things and making them sticky. Parents have to deal with all this because it is a requirement of the job. And to make up for that, and because of the high rate of pay among parents as well, they inculcate us with the rules.

Of course not all of them work well. Parents. Some parents are faulty, or behind the times. Some simply don't care, or have the right tools. This is true, and this is sad, but this is life. We all live it from time to time, life. And those who live learn. The two go together.

If not from our parents then, we must learn from others.

And that brings us to Mil Millington. And Margret. And "Things My Girlfriend and I Have Argued About". The only real guide any man would ever need in life. To be honest about it.

Sorry, parents. But this is done better than you can do.

It is one giant web page. If you define "giant" as being full of words. Ask me, it ain't half long enough. And no longer maintained. He had a mailing list, and though I joined it way late, I still got a couple of updates, but it appears that is over now.


He has books. "A Certain Chemistry" is my only confirmed read so far. But I do have a copy of "Love and Other Near Death Experiences". The local library has been generous and has agreed to loan me the second one, now that I've returned the first. Or they didn't recognize that it was me again.

Doesn't matter as long as I have the book, and a working lock on my front door. It's mine for a couple of weeks and they won't get it back until I'm done.

And I mean that.

Meanwhile, if you can read, and if you can read with little pain and so on, try "Things My Girlfriend and I Have Argued About". There's a link at the end of this page. It will do you good. Your parents should rest easier knowing that you're getting honest instruction, especially if they're still alive. Because at minimum, if you are busy reading, you will have no idea which direction they took while sneaking away.

So, a sample:

What Margret and I have, essentially, is a Mexican stand-off with love instead of guns. OK, yes, sometimes there are guns too. The important thing is the mindset, though. Sure, people can argue about important issues, that's fine, good luck to them I say. But where, I ask you, are those people when you take away the meaningful sources of disagreement? Lost. Utterly lost. Let me illustrate the common mistakes amateurs might make using something that happened the other week. You will need:



A roast chicken.

We're having tea and on the table are the plates, a selection of vegetables and a roast chicken in an incredibly hot metal baking tray. Getting this chicken to the table has been an heroic race that ended only fractions of a second short of a major skin graft. Due to this haste it is, however, not sitting precisely centrally on the coaster. Some kind of weird, hippie, neo-Buddhist couple might have failed even at this point and simply got on with eating the meal. Fortunately, Margret is there to become loudly agitated that radiant heat might creep past the edge of the coaster, through the table cloth, through the protective insulating sheet under the table cloth, and affect the second-hand table itself. She shouts and wails. I nudge the tray into the centre of the coaster, but, in doing so, about half a teaspoon of the gravy spills over the side onto the table cloth. Outside birds fall mute, mid-song. Inside, frozen in time, the camera swings around us sitting at the table, like in The Matrix.

'What the hell did you do that for? Quick, clean it up - quick,' insists Margret (where an amateur would have, say, shrugged).

'No,' I reply (at the moment when another amateur would have been returning from the kitchen with a cloth), 'I'm eating my tea. I'm going to sit here and eat my tea. Then I'll clean it up.'

'No, clean it up now.'



'No. I'm going to eat my tea first.'

'Clean it up now.'

A little knowledge is a dangerous thing, so a couple of semi-pros might have worked this up into a shouting match. But I am not about to stoop to childish name-calling. Instead I lift up the tray and pour some more gravy onto the table.

'OK?' I say, 'Now stop it. I'll clean it up after.'

'Clean it up now.'

I tip a little more gravy onto the table.

'I'm just going to keep doing it every time you say that. I'll clean it up later.'

'Do it now.'

More gravy.


More gravy.

This continues until we run out of gravy.

I must make it clear that my actions here seemed perfectly rational at the time. I've mulled them over since, of course, and am relieved to find that they still hold up to examination: it's pleasing to know I can make good decisions under pressure. Anyway, we eat the meal from a table awash with gravy. I am happy to have argued my point persuasively. Margret has a smile fixed to her face due to the belief (incorrect, yes, but it's only her enjoyment that matters) that I've clearly done something hugely stupid that she can bring up later in any number of arguments - possibly years from now. Everyone wins. We eat, united in contentment. I clean up the table.

Do you see? I want everyone to try this out at home and write me a report for next week.


Things My Girlfriend and I Have Argued About web page.
Love and Other Near-Death Experiences: A Novel by Mil Millington
Things My Girlfriend and I Have Argued About: A Novel by Mil Millington

Wednesday, December 03, 2008

Blogging's True Purpose

This is another placeholder until I get smart. But worth it.

And then there is Maru.


Wavish Industries, Wavish's source for this
More Maru