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.








References:
Hugh Macleod
Jessica Hagy
Political humor at About.com
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.

References:
typogenerator
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 Inc.com, 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.

Whoopsie.
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.

Zowie.

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?


References:

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

MMMillington

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.

Owell.

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:

Margret.

Me.

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.'

'Yes.'

'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.

'Now.'

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.


References:

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.

References

Wavish Industries
PeteGraham.co.uk, Wavish's source for this
Maru
More Maru


Thursday, November 27, 2008

The Evolving Web

In the beginning was dirt. Lots of it. Dirt was handy. You could stand on it. You could grow food in it. You could take a stick and scratch it.

Scratch the right things the right way, agree on the meaning, and you and your buddies could communicate. Leave a record of things. This was the first internet.

Didn't work that well.

The first breeze that came along messed it up bad.

Second, you all had to be there, looking at the scratches. Rather than sending the message around you sent the recipients. Awkward. But technologically promising.

Next came tablets. Wax. Clay. Stone. Time marched on. Tromp. Tromp.

Papyrus came and went. Then parchment. Quill pens had their day. Change was the one constant. Things had gotten beyond a few pokes with a stick. No longer could you do your tax return with a twig and a gob of clay.

Then the printing press. Mass communications. Industry. Engineering. Factories. Communication got easier in a way but it needed an infrastructure. Someone had to design type, melt metal, then set type and run presses, which had to be built first, but somehow this worked out. There was a division of labor. Specialization.

At one time only the richest, most privileged in society could read and write. Arithmetic was a university subject. Now they are all learned in grade school, and today it takes more than reading and writing to secure a fat career.

In the mainframe days you needed a Ph.D. to be a computer programmer. No, seriously. You had to plan carefully, and write down a bunch of ones and zeroes and feed them into a reader which programmed the computer, and then you got paid. A lot. Because no one else could do that.

Eventually programming languages were invented, and so on, and things got easier in a way, but not much. If you got inside the system you were set for life, just like in the old days.

Then, desktop computing came along. Revolution.

Back to the wild west. Anyone with time on their hands could do neat things. Not useful things but neat ones. Then they broke down barriers, overwhelmed the world, and made mainframes irrelevant.

Eventually those desktop toys got networked, and multi-tiered client-server systems came along, and remote procedure calls, and methodologies, and object orientation, and GUIs and IDEs and all that, and pretty soon you just about needed a masters degree to get a job again.

And then there was this web thing.

Put in a couple of weeks learning HTML, then start a new business. Couldn't do much, but it looked neat. Kind of a joke, really. The real computer people were not afraid.

First HTML, and then CSS were all you needed.

And then Photoshop: HTML, CSS, Photoshop. Period.

And graphic design.

Digital photography. Typography. Project management, iterative development. JavaScript. Ajax. Flash. Flex, C#, PHP, Ruby on Rails, HTTP, FTP, REST, CVS, SVN, Git, Python, Perl, XML, XHTML, Apache, IIS, Nginx, lighttpd.

And so on. A blizzard of technologies.

The web is mature. No longer a joke. Mainstream now. Desktop stuff folded into the enterprise black hole along with mainframes, and you can't make a living coding up web pages after work any more.

The web is now complicated and many faceted. It has complex interfaces. It is dynamic. It requires real programmers, user interface designers, usability engineers, test driven development, behavior driven development, design driven development, aspect oriented programming, scripting languages, frameworks, graphic artists, graphic designers, and a bunch more, depending on what the point is.

The early days are gone. We're well into the next wave. What it takes now, to get a solid web site built, and to keep it running, is professional help.

Luckily there is more professionalism in the industry these days. People with chops. People dedicated to producing and maintaining great sites. People who are sharp. People who have put in their time. People who will come through no matter what. Capable and committed.

So there's hope.


References:

Bertrand Meyer at ETH
Meyer's Introduction to Programming course and "Touch of Class" textbook
PDF of "Touch of Class" draft from 2004


Wednesday, November 19, 2008

A Message From Batman


While I think of something substantial, like a review of Obie Fernandez's "The Rails Way", here's something I found at "Made in England by Gentlemen", who found it at "Wavish Industries".

And, sad to say for all of us, this is all there is.

References:

Made in England by Gentlemen

Wavish Industries


Wednesday, November 05, 2008

Test Me On The Rails

I have a set of news sites I visit every day. I never know what I'll find, and usually I do.

On checking "RubyFlow" for November 04, 2008, I saw the following
We've stopped using RSpec... say Rails development team ENTP. They're now back to Test::Unit but improved with Jeremy McAnally's context. Others in the comments suggest shoulda. Is it curtains for RSpec?
Go there.

I sort of idly followed up on it, and found that there was a pretty good discussion of Rails testing options there.

I haven't followed up on all of them yet, except to get a list, which is what I'm posting here.

It's pretty sloppy but it might help someone else. I'm about to update a couple of my sites, maybe add a new one, and get back into the swing of testing with Ruby on Rails, so this is a good time for it all.

First, the most general things.


BDD
There is decent article on Behavior Driven Development at Wikipedia. Go there.
Behavior Driven Development (or BDD) is an Agile software development technique that encourages collaboration between developers, QA and non-technical or business participants in a software project. It was originally conceived in 2003 by Dan North as a response to Test Driven Development, and has evolved over the last few years.

The focus of BDD is the language and interactions used in the process of software development. Behavior-driven developers use their native language in combination with the ubiquitous language of Domain Driven Design to describe the purpose and benefit of their code. This allows the developers to focus on why the code should be created, rather than the technical details, and minimizes translation between the technical language in which the code is written and the domain language spoken by the business, users, stakeholders, project management etc.


Ruby on Rails.org

Ruby on Rails Howtos on Testing has a good list of topics (each item in this list has a URL attached to it):
  • A Guide to Testing the Rails (in depth)
  • A walkthrough of UnitTesting for beginners
  • How to Quickly Test Validation in Unit Tests
  • HowtoFunctionalTestACreateAction
  • HowtoRunOneTest
  • HowtoRakeOneTest
  • HowToUseFixturesWithHABTM
  • HowtoPutSerializedColumnsInYamlFixtures
  • DisableForeignKeyChecksUnderMySql
  • HowtoRunTestsWithCoverage
  • HowToDoTestDrivenDevelopmentInRails
  • HowToWriteYourOwnCustomAssertions
  • HowToUsePreloadedFixtures – save lots of time!
  • HowToTestRailsWithWatir – windows only
  • HowToTestActionMailersAndControllers
  • HowToUseZenTestWithRails?
  • HowToUseRSpecWithRails
  • HowToTestFlash.Now
  • HowToUseFixturesMoreEfficiently
  • HowToLoadFixturesForOneTableIntoDB
  • AgileIntroductionForTestingRails
Non-howto material:
  • Some thoughts on rails testing best practice
  • ZenTest — Automated test scaffolding for Ruby (No info at this site: just "coming soon")
  • Sample CustomAssertions
  • HowToProfileRails
Go there.

On Rails Forum, see "Test/Behavior Driven Development". Go there.

RSpec
RSpec is a Behaviour Driven Development framework for Ruby. It provides two frameworks for writing and executing examples of how your Ruby application should behave: a Scenario Framework for describing behaviour at the application level A Code Example Framework for describing behaviour at the object level.
Go there.
RSpec provides a Domain Specific Language with which you can express executable examples of the expected behaviour of a system." RSpec describes behavior of a system, before it is built, through examples of how it should work after it is built. The examples constitute a test suite.
RSpec tools include:
  • A domain specific language for expressing behavior.
  • A runner to verifying behavior, operating from the command line.
  • Integrated mock objects.
  • A report generator.
  • An intergrated coverage tool, RCov.
  • A coverage verifier to keep coverage up to a minimum level.
  • Integrated diffing.
See also David Chelimsky' blog "on software in process and practice" has "an introduction to RSpec - Part I" (I'm not sure if there is a part II -- at least I couldn't find it). Go there.


Cucumber
Cucumber is a tool that can execute feature documentation written in plain text. Cucumber targets non technical business analysts, interaction designers, domain experts, testers (for the plain text part) and programmers (for the steps, which are written in Ruby).

Cucumber itself is also written in Ruby, but it can be used to "test" code written in Ruby, Java (or web applications written in any language). When IronRuby matures it can be used to "test" .NET code too.

Cucumber only requires minimal use of Ruby programming, so don't be afraid to try it out even if the code you're developing is in a different language. Most programmers should pick up the required Ruby skills and be productive with Cucumber in a few of days.

While Cucumber can be thought of as a "testing" tool, the intent of the tool is to support BDD. This means that the "tests" (plain text feature descriptions with scenarios) are typically written before anything else, and the production code is then written outside-in, to make them pass.
Go there.

Mocha
The Mocha plugin allows mocking and stubbing within tests using a syntax like that of JMock and SchMock.

The big advantage it has over other mocking and stubbing libraries is its ability to mock or stub individual class or instance methods on concrete classes.

Provenance. Mocha has been created by amalgamating a number of techniques developed by James and my Reevoo colleagues Ben, Chris and Paul into a common syntax. It is currently in use on real-world Rails projects.
Go there.

More at "Agile Web Development". Go there.
For the API, see this.

Shoulda
The Shoulda Rails plugin is an eclectic set of additions to the Test::Unit framework that makes writing tests a breeze.

Shoulda: Making Tests Easy on the Fingers and Eyes

The Shoulda gem makes it easy to write elegant, understandable, and maintainable Ruby tests. Shoulda consists of test macros, assertions, and helpers added on to the Test::Unit framework. It's fully compatible with your existing tests, and requires no retooling to use.
  • Helpers – context and should give you rSpec like test blocks. In addition, you get nested contexts and a much more readable syntax.
  • Macros – Generate many ActionController and ActiveRecord tests with helpful error messages. They get you started quickly, and can help you ensure that your application is conforming to best practices.
  • Assertions – Many common Rails testing idioms have been distilled into a set of useful assertions.
See more at Thoughtbot, Inc. Go to their projects page.

Go to the Thoughtbot Shoulda page.

See a post at the Thoughtbot blog titled "Introducing the Shoulda Testing Plugin". Go there.

Kyle Banker has a "Shoulda Testing Cheat Sheet" Go there.

Get the cheat sheet PDF.


Test::Unit


Can't leave this one out. It's where everyone starts, and most stay.

There is "A Guide to Testing the Rails" and Ruby on Rails. Go there.
Intended Audience: This article is for fellow Rubyists looking for more information on test writing and how that fits into Ruby On Rails. If you're new to test writing or experienced with test writing, but not in Rails, hopefully you'll gain some practical tips and insight on successful testing.

Assumptions: Just so we're all on the same page here, I'm making a few assumptions about you.
  • You've got Ruby installed and know how to run a Ruby script.
  • You've got Rails installed
  • You've created a basic Rails application with 1 controller and 1 model.
If you haven't accomplished all of the above, you might be jumping ahead of yourself. Check out www.rubyonrails.org for some great beginner's tutorials. Go there.

Factory Girl

More from Thoughtbot: "factory_girl provides a framework and domain specific language for defining and using factories – less error-prone, more explicit, and all-around easier to work with than fixtures".

Go to their projects page.
Go to their factory_girl page.
Don't miss the factory_girl RDoc. Go there.
And there is more at GitHub. Go there.


RR

I couldn't find much about this, but it's out there somewhere.
"RR (Double Ruby) is a test double framework that features a rich selection of double techniques and a terse
syntax."

On GitHub. Go there.
And at Ruby Forge. Go there.


object_daddy
Drop Object Daddy into the vendor/plugins directory of your Rails app. Now every model has a .generate() method which will create a new instance object of that model. If the model in question has no constraints which would make Model.new.save fail then you're set. Those models which do have stronger constraints will want "generators" for those attributes which need special care.
See info on blogtastic. Go there.
And at Ogtastic. Go there.
GitHub has a bit. Go there.


Matchy

It's out there somewhere but it seems to be described only on one blog, which seems to be down right now. No doubt there's more, but I didn't have time to search for hours just for a description.


Context

"Context is a Rails plugin that provides an easy way to determine the context of an incoming remote request so that different responses can be sent. Useful for supporting multiple workflows on RESTful actions."

At RubyForge. Go there.

GitHub has some more info:
DESCRIPTION: If you’ve ever wanted contexts in your Test::Unit tests, then context is for you. Your tests will be easier to read and write without all the magic and extra code smell!

FEATURES/PROBLEMS:
  • Add contexts to Test::Unit tests
  • Small DSL for specifying tests that are pretty
  • Ability to chain context lifecycle methods (coming soon)
Go there.


References:
RubyFlow

Wednesday, October 29, 2008

The Little Girl Giant

I'll never see her. Nor any other characters from "The Saga of The Giants".

They do not touch these shores, and I can guess that they never will.

The company producing the shows that Little Girl Giant and her associates appear in has been all over Europe, to Korea, China, Vietnam, Chile and Africa. They spent six months in Africa and three months in China, but they have never been to North America. It is likely that they are not interested in us. There is no telling what might happen here. We may be a too-volatile country for their strangeness to tempt.

Their first four productions were "The giant falls from the sky", "The giant falls from the sky, last voyage", "Return to Africa", "The giraffe hunters", and "The hidden rhinoceros". The latest in this loose series, the one in which Little Girl Giant appears as a traveler, is "The Sultan's Elephant".

Director Jean-Luc Courcoult said of his work, "I am very keen on the element of surprise. I distract the public's attention. I hypnotise them so that nobody, even when it is in the open, understands how an enormous machine could appear so suddenly. I believe that this almost childish desire to please people by surprising them is a deciding factor in my work. I have seen adults crying as the giant leaves. They have obviously lived other things, sometimes difficult, and yet this makes them cry."

The company behind this is is Royal de Luxe, located in Nantes, France, and is little known.

The 3quarksdaily blog has a stellar essay on the London production of "The Sultan's Elephant", which commemorated Jules Verne's hundredth birthday in 2005. From there: "The venue is simply the streets and open spaces of the city -- by the lake, by the harbor and in the city center. Admission is not only free, but accidental, since the show may begin anywhere, even in two places at once, and will overtake its audience bit by bit, for they shall not have known where to assemble and wait for it. Once it begins, it will keep moving, and people will follow it or even try to run a little ahead of it en route to the next corner it seems bound for, where others shall have started to hear things and look up. No member of that audience, not even the most avid, will see the show in its entirety -- like the London event, it will be structured to make that impossible. Courcoult has said only that a special story for Icelanders will be enacted, by Little Girl Giant and other familiar figures, that, on the morning of May 10, 'something unexpected will happen in Rekjavik.'"

Julian Crouch, an artist, told of his experience when the Little Girl Giant was first lifted from the time-traveling space ship found stuck nose down into the pavement of central London. "When they lifted her out of the rocket, the crowd just gasped. I tried to stifle my own gasp, but by the time she blinked and shook out her hair, I was absolutely and completely lost. She was beautiful. But really beautiful. In a deep way. And there was a little voice in my head that said, 'you could never, ever have made this.'"

Later, standing in line with his son, waiting, waiting to see if his boy would get his own short ride on the giant's arm, he was seized by fear that it would not happen, and wept, relieved, finally, when his son did get a turn.

There isn't much a person can say without having been there. I've seen videos on YouTube and elsewhere, and though they're mesmerizing they can't ever come close to spending four days in a dream world alive with giants. It must be like finding that your town has been overtaken silently by Burning Man and thousands of followers between the time you fell asleep and the time you again wakened the next morning.

The Little Girl Giant is 20 feet high, and the elephant who provides her morning shower bath stands 40 feet high and weighs 46 tons. They are attended and operated by a small army of technicians in red livery, seeming refugees from the 18th century.

Little Girl Giant's hair is made from the tails of 50 horses. Her breathing continues day and night, powered by an internal motor. Her eyes blink. She can lick sweets. She squats and pees in the street while her operators discreetly turn their heads. She naps frequently.

Although there have been books written on Royal de Luxe and their productions, and DVDs available, they don't seem to have made it to this country. We're stuck for now with a bunch of miserable-quality videos on the web. But they are still haunting me.



References:

YouTube Videos
A better quality video: Little girl giant plays in the park
The Sultan's Elephant (Has PDF downloads you might like, telling the story.)
Royal de Luxe theatre company
The Little Girl Giant
3quarksdaily Royal de Luxe: the saga of the giants, by Elatia Harris
Images: Royal de Luxe Central
Images: I, for one, welcome the Giant French Rocket Girl and her Elephant of Royal Luxury!
Images: au coin de la rue (Flash, in French)


Wednesday, October 22, 2008

Leg Godt Plays Well With Holes

Found Photography is a good blog. It's what a blog really should be.

One person, one topic, in his own words.

Adrian Hanft, III is the person, photography is the topic, and the words are his. He likes old and odd cameras, and odd photos. "I can think of nothing more boring than a photo that looks exactly like I planned. For me the beauty is in the chaos, not the organization. You point your film in the direction of something interesting and hope for the best."

I guess that's why he took to pinhole photography. And why he decided to use Lego to make a camera. And ended up making three of them.

A quick search didn't turn up any others. Maybe a longer search would. All the hits I could find were either links to his site or ended up referring to him in the end.

So this may be a really small photographic niche, but it's fun.

References:

Found Photography
Adrian3, the personal blog of Adrian Hanft
Be A Design Group, a now closed design blog
Medium Format Pinhole Lego 1
Lego Panoramic Camera
Updated 35mm Lego Camera Design
George Bristol’s Lego variation


Wednesday, October 15, 2008

Opera: Sweeter With Wine

I'm using Kubuntu 8.04 on two computers, and the equivalent version of Linux Mint on another. I like Kubuntu better, sort of, (maybe naively) because it seems to give me more options.

I'm a newb. Deal with it.

I see more menus in Kubuntu and better ways to get to the controls that I want to get to. I'm sure that Ubuntu or Linux Mint has the same facilities available, somewhere, but for my taste, at this stage, Kubuntu is easier to deal with.

I'd say that Linux Mint seems a lot more like Windows. I used Windows 2000 Professional for several years, then finally upgraded to Windows XP Professional. I bought two copies, one to upgrade from my Win 2000 installation, and the other to upgrade from a factory-installed XP Home version.

The process wasn't nice. I was totally surprised that it was not possible to upgrade from Win 2000 to Win XP. Stupid. Unforgivable. But I had no choice.

I don't remember all the details of the other upgrade, but I think it was an upgrade. Nevertheless, each computer was set up a little differently, also unforgivable.

I got by.

Fear of Windows Vista prompted me to re-examine Linux. For about a year and a half in the middle 1990s I had struggled with Linux before giving up in exhaustion. Problems that should have taken minutes took weeks to resolve. The last straw was upgrading a Gnome desktop. Each dependency had another one, and after searching for a couple of weeks for one package, I just wiped it all off and went to Windows 95, or was it 98? Was there a Windows 98? Windows default whatever.

Doesn't matter.

Anyway, things are different today. I've been about 98 per cent Linux since the July fourth weekend and haven't had any real problems. I get frequent system upgrades. All I have to do is click once, enter my administrative password, and the system updates itself.

One computer is dual-boot between Win XP and Linux Mint. My scanner and color printer are connected there. I'm about ready to try them under Linux Mint. Goes well, then goodbye Windows.

Back to the story...

I've been using OpenOffice since it was StarOffice -- long time. I used Scribus on Windows as well. Firefox was well known to me since long before my second try with Linux. As is Emacs, which I picked up over 10 years ago (and every week or two I learn a new trick -- at this rate I'll be an Emacs expert in about 75 years).

One piece of software that is profoundly important to me is my web browser. I use Opera, first, last and forever. It suits me.

Make type bigger? Hit the 0 key. Smaller? Hit the 9 key. Remove styling? Shift+G. Save a page? Use the ".mht" format and have one file, with the original URL embedded in it. Want to save in the HTML plus directory-full-of-supporting-files? OK too, and it also captures the original URL. This is damn handy later when you need to get back to that place. No need to save the URL separately.

Then there's Speed Dial, which I didn't use for about the first year. Open a new tab and you get nine little squares. You can format each one to link to a frequently-used web site. No looking up URLs, no scanning through a list of bookmarks. Just click and go. (Firefox now has a plugin for this.)

Aye, laddie, and the bookmarks too. So easy.

Access them one at a time or choose the "Manage Bookmarks" option. If so, then highlight several using Ctrl+click and open a bunch at once. One thing I hate about Firefox is having to return to a list of bookmarks over and over to open each one separately. (Sure Firefox lets me open all at once, but usually I want only two or three or four from one sub-list, not all.)

Yeah, so I'm happy as a frog in a bag of flies then? Not quite.

Kubuntu suits me better overall, and Linux Mint is great, though not quite so great, for me, but Kubuntu really sucks at one thing. It doesn't run Opera well. Hardly at all.

I open Opera, enter a URL and wait. Then I wait some more. Two or three or four or five or six minutes later I'm still waiting. Then I close Opera and try Firefox. Boom. There. Done.

Opera works on some sites pretty well, almost all the time. Other sites don't work well. Slashdot loads about one quarter of the way and then hangs, at about 30 seconds. After three minutes it's at the same stage.

Linux Today is the same. Usually the sites with the most going on behind the scenes, all the JavaScript and pop-ups, and links to doubleclick this and google-analytics that and so on seem to pull Opera right to the ground and hold it there. Plain and simple sites work most of the time.

Except sometimes.

Sometimes Opera works like a charm. There have been days when I thought that maybe the last batch system upgrade from Canonical has done it, or the latest version of Opera. Once I thought it was the "--nomail" addition to the "opera %u --nomail" start up command. Seemed to work like magic.

Nope. All temporary. I would have a good day now and then, and next time around Opera would dog out again.

Temporarily clearing all iptable settings didn't do it. Uninstalling Opera and redoing it? No. Installing the static version of Opera? Still no. Disabling JavaScript and Java and image animation and so on? No.

Search the web for clues? Hey, talk about asking the clueless for clues. Miscellaneous problems all over, all of which seem to be specific to one setup on one person's desktop was all I found. No systemic problem susceptible to a cure. I was yet another random individual with random individual problems. But these were the same problems on two different computers.

But what the heck. Opera on Linux Mint is stellar. Equal to Opera on Windows. In other words, perfect. Makes me crazy with delight. But on Kubuntu Opera does not work well enough to use.

One last try. I had Wine installed so I could use "Picture Window", my photo editor. I downloaded Opera for Win XP and installed it under Wine.

Bingo.

Works like a charm.

Speed dial doesn't work, and every now and then switching between tabs slows down, but I can fire up half a dozen tabs at once, each accessing a different web site, and it's much faster than Firefox. I'm pretty happy now. I have my Opera back.

Over the years I've gotten used to Opera not working tremendously well with Flash-based sites, and I've tended to use Firefox for transactions like credit card orders. Firefox also seems to handle the odd site that confuses Opera. I think this is because Firefox more gracefully handles sites stupidly designed only for Microsoft Internet Explorer. That's OK.

I use Opera for about 99 per cent of my browsing, and Firefox for the rest: buying things, checking web mail, accessing squirrelly sites. No tool is perfect, but Opera is so much easier for me to use that I want to stay with it, and simply use another tool when I have to.

Real Soon Now I expect that I'll figure out why Kubuntu has a problem with Opera, and be able to run it natively. Until then, I'm OK.

Really. Life is good again.


References:

Firefox
Opera
Opera Watch, an Opera browser blog by Daniel Goldman


Wednesday, October 08, 2008

Drawing From Talent

I don't know where to take this. Maybe at times it's good just to throw a link at the wall and let things be. I stumbled on Drawger somehow. I have no idea how, but it was worth it.

I guess Drawger is sort of a communal blog for illustrators. Not sure yet how to navigate it. Maybe slowly, bumping into things by trial and error. That seems to work for the best things in life.

What? "What: Drawger is a central spot on the web where illustrators are writing about whatever it is they're writing about at the time, and showing stuff as well."

Two artists I like a lot (the first two I found) are Michael Sloan and Zina Saunders. I wish I had talent. I can only scribble. Takes work to write, takes work to read.

Illustration is different. Takes work to create, but is read without effort.

Oh, well. Let's see what tomorrow brings.



So, like five minutes later I find "The Little Girl Giant". This is a good day.


References.

Drawger
Michael Sloan: "Professor Nimbus"
Michael Sloan: "The Zen of Professor Nimbus"
Zina Saunders


Wednesday, October 01, 2008

Qwester Bester Tester

I go to court on Friday, October 3. I don't want this. No telling how long all this will drag on yet.

Qwest Communications has ignored me for six months, charged me for service I did not have, failed to send me equipment they promised (five times, total), and then for some reason, possibly illegally, sent me equipment I did not order, and then charged me for it.

I've tried to act in good faith, paying the charges and repeatedly warning the company that I would take it to court if I had to.

The result: nothing. Total silence. Blank wall.

So.

That went on until I actually filed in small claims court. Suddenly they made an offer. I didn't add up the numbers but they are about right, except for the time I've wasted, which is about two solid weeks so far, with several hours on the phone, many hours writing letters, and a whole buncha time researching how to file a claim, doing xeroxing, sitting in at court to see how it goes, and so on.

About right, except for paragraph five on page two. In which I would sign away all rights ever to speak about this whole mess to anyone.

Moot point.

I've already disseminated the information so I would have been in violation of the agreement as soon as I signed it, and then they could sue me so deep I'd never see daylight again.

Better to go to court and waste another day, and then come to some kind of agreement and have them appeal, and then when they lose again find out that they may not pay anyway, and then start all over again. But the bottom line, as they say, is that I'm wasting more of their money and time than of my own, so at least I get a bit of revenge out of all this.

How pathetic is that?

Pretty pathetic, but amusing, and I'm learning something about the court system from the front row.




Wednesday, September 24, 2008

Emacs eMail

Not too long ago I decided to get all my mail via Gmail, and ignore the account I have with my internet service provider (ISP). Partly this is for the sake of simplicity. I don't have to check both accounts any more.

Partly it's also for security. I'm careful, but started getting a small amount of spam at my ISP account, and every now and then one of them would leak through security and into my inbox.

I started by forwarding all my mail from the ISP account to Gmail, and then over time have changed the email address registered with external businesses, so any newsletters or promotional announcements would go straight to Gmail. Google is better at managing spam than the average ISP, so this is a good idea from that standpoint as well.

I also have two accounts at Yahoo!, one of which serves as a primary backup for Gmail (anything coming to Gmail gets copied to Yahoo!), and the other of which I give out when I don't want any stray messages coming to my main mail accounts. Kind of goofy, but it works for me.

For some reason or other...oh, yes, it's coming back now...I have Emacs set up so C-c m will take me to the buffer list...and sometimes I hit C-x m instead, and end up inside an Emacs *mail* buffer.

Ok, anyway, I started thinking about sending mail from Emacs.

I recently configured Mozilla Thunderbird to send mail via my Gmail account, and to automatically download any new messages from Gmail's inbox whenever I fire it up. Working with Thunderbird is a lot nicer than working through a browser, and it lets me have a local copy of everything, just in case Gmail isn't working some day. In that case I could always send mail through Yahoo! or my ISP, and if my Gmail account gets deleted or suspended for some reason known only to Google, which has basically no customer service, I will still have all my email, stored locally, on my own hard drive. And I can delete older messages and confidential ones from Gmail and not worry about privacy.

So last night I decided to see if I could set up Emacs to send mail (send only -- not read -- Thunderbird is for that).

I found a good blog post called "Configuring Emacs for Gmail's SMTP" at "This sentence is false", owned by Denis Bueno. But I couldn't get things working last night.

On another blog called "Arg and gah and ap and pa" I found "Sending mail through gmail Using Emacs", which I ignored until this morning. I tried it and it worked. I also used a tip from the first blog to fancy things up a bit.

The process, in brief:
  1. Install starttls
  2. Modify ~/.emacs
  3. Add ~/.authinfo

I installed starttls on my Kubuntu system via the Synaptic Package Manager. Use whatever is appropriate for you. I am new to Linux so I don't know the best way to do anything.

Here is what I ended up adding to my ~/.emacs file:
;; Sending email via Gmail. Info is from:
;; http://argandgahandapandpa.wordpress.com/2008/04/27/sending-mail-through-gmail-using-emacs/
;; supplemented by
;; http://obfuscatedcode.wordpress.com/2007/04/26/configuring-emacs-for-gmails-smtp/
;;
;; To see output in a buffer named "trace of SMTP...", uncomment the following two lines for debugging.
;;(setq smtpmail-debug-info t)
;;(setq smtpmail-debug-verb t)
;;
;; The following sends email via smtp. If problems, the smtp server may need restarting.
;; Email address and password are held in "~/.authinfo"
;;
(setq send-mail-function 'smtpmail-send-it)
(setq smtpmail-smtp-server "smtp.gmail.com")
(setq smtpmail-smtp-service 25)
(setq smtpmail-auth-credentials (expand-file-name "~/.authinfo"))
(setq smtpmail-starttls-credentials '(("smtp.gmail.com" 25 nil nil)))

Here is what I have in my ~/.authinfo file:
machine smtp.gmail.com login [my-id]@gmail.com password [my-password]

To use, replace "[my-id]" and "[my-password]" with your Gmail user id and password (no quotes or brackets of course).

See the "Configuring Emacs for Gmail's SMTP" post for security issues and why to use the .authinfo file.

I did have one problem when Emacs reported that the SMTP server was not running. I'm not sure about that. I used C-x m to open a new *mail* buffer, typed in a test message, and usec C-c C-c to send, and got the Linux version of the hourglass. After a long while I managed to abort the hung process somehow and got a message in the minibuffer at the bottom of the Emacs window about SMTP not being active.

I uncommented the two SMTP debugging lines in .emacs, opened a new Emacs session and tried again, successfully.

You can find more info by checking the Emacs manual (at the menu bar, go to Help -> Read the Emacs Manual (C-h r) ).

Now why in the hell would I do this? Nothing like getting to the point. The point is that I often want to remember something, to look up later or to add to a list of URLs or a list of interesting sites or programs, and sending a quick note to my Gmail account is a way of saving a thought for later. Saving in a way that I can get access from any of my three computers (Gmail functions as my network).

Might work.

References.

Configuring Emacs for Gmail's SMTP
gnutls (GNU TLS encryption library)
Sending mail through gmail Using Emacs
starttls (Simple wrapper program for STARTTLS protocol)

Wednesday, September 17, 2008

Who, Me?

There seems to be a lack of individual responsibility around these days. Maybe that's just me. Maybe it's always been this way. Probably. Some things I don't notice so good.

I've always been surprised by how lazy and opportunistic people are. Maybe that's just me. Maybe I'm not as bright as I've thought, or maybe I just haven't caught on yet to the true meaning of life. Something like that. I haven't caught on to massive sloth and grabbing what's easy.

I noticed during job interviews, or even worse, while on the job, that I scared people when I told them I stood 100% behind my work. Don't know why. That seems like a good characteristic to me, but it's never flown. People get spooked. Someone once asked me if I carry a gun.

Maybe a lot of them are scared to see someone care. Most of my working life has been in state government, where, when you swing through the trees, you see a lot of sleepy apes. The entire point of a bureaucrat's life is not to do anything. If you do anything you can be blamed, but you can never be blamed for doing nothing. Everyone in that kind of environment understands the idea of making decisions judiciously. Without question. I.e., doing nothing.

That's why it can take a year to get a stapler unless you steal one from a desk that's just been vacated.

That world works that way because there is never a positive incentive. There is no profit sharing. No bonuses. You don't get big stock options if you bet your job and a lot of company resources on a bold gamble. There is none of that, only the opposite.

Negative incentives.

What is, is. The status quo is the highest good. Muck up and the only option is punishment. Do well and you mess up the status quo. The only option is punishment. Keeping up appearances is the highest good.

I've worked with people who were demoted and moved across town into jobs they knew nothing about only because they happened to work for someone else who lost a turf war. I've seen a talented and experienced programmer given a desk and chair and nothing else, expected to sit there until he gave up and quit, only because he once spoke the truth. I know someone who, as a project manager whose project failed, was given a promotion.

No change, no gain. No gain, no pain. A small promotion is about the best you can get, and failure restores xquiet, enduring balance to a bureaucrat's life. A few dollars more a month from a promotion seems like a positive incentive but it's reall more of a threat. You have to work harder to keep up appearances, so maybe it's not a good thing to get. And you still have to show up every day for decades until they finally have to turn you loose. No matter who you are, how good you are, if you play in this system you weather down to the same level as everyone else. You want only to get through today, and live long enough to retire. Nothing more. Trying to actually do something only causes confusion and pain.

I've been a member of two Meetup groups based around web technology. I just learned today that the second one has now also failed. There are 71 members and only nine or 10 have shown up at meetings. The two organizers have been doing the presentations and the rest have been sitting there. People keep joining. And not showing up.

So easy. So clean.

I sort of know a web developer who lost his job when the big bust came a few years back. Henry Shires. In 1999 he hiked the Pacific Crest Trail, using a shelter he made himself. He did it because he wanted to. He didn't sit around waiting for someone to ask, or to give orders. He needed to do the hike for personal reasons, so he did. To help he designed a shelter that was sort of like a tent and sort of like a tarp.

Later he got into web development. I don't know much about this part of his story, but having talked to him a time or two I heard that he lost his job. It was bad all over then. Happened to lots.

Sometime later, after he'd posted his original tarptent plans, then updated them with a new model or two (all free information for the taking), I found that he was in business. Making and selling tarptents.

Now he's one of the big names in the ultralight cottage industry class. Sounds like damning with faint praise but it's really praising with no damns at all. This is tough work, in a small market, and now he has a worldwide clientele and a reputation to go with it.

This is what personal responsibility is about.

First he had a dream, to hike the Pacific Crest Trail. And he did it.

Then he had a job, and then didn't.

Then he created a business and made it work.

This is real web develpment. Henry Shires had a stake in it. He had something to gain. Web development now isn't something for his resume. It is a vehicle for his business. He had a reason to work with that, which was to develop his business, because he liked hiking and liked tarptents. So he took on the responsibility of it all. It gave him a payback. Not like what you get when you decide to become a member of an anonymous group.

Not a big story at all, but nice. Not like clicking a link on a web page and joining a group and never showing up. First Henry showed up at life and the group joined him.

Now if only I could be so smart.


References:

The Olympia Web Design Meetup Group

Tarptent.com

The original Tarptent plans


Wednesday, September 10, 2008

Camera Yeeg.

I'm falling behind. Falling off the wagon. Disappearing in the rear view mirror.

Sony has just announced its new flagship camera, the Sony Alpha DSLR-A900. A 24.6 megapixel 35mm format camera with a full-frame CMOS sensor. Just a few years back you could buy a one megapixel camera from Kodak for $10,000. The Sony will sell for only about $3000.

A few years farther back I was drooling over a new camera system. I liked the Canon EOS 1N. Too expensive though. About $1400. That was serious money. Insanely serious money.

However, things have changed.

My first digital camera was a Kodak point and shoot three megapixel pocket camera that still works fine and cost around $400. That was a stretch. Back then, around 2000, you could buy a perfectly good point and shoot for maybe $85. I didn't use cameras like that. I was into SLRs, but for $350 to $400 you could get a really solid and capable film SLR camera.

The whole scale of the market has changed. Now for anything like a usable camera you are going to pay $500 and up for a point and shoot, or $1000 and up for a good amateur level DSLR, or $5000 and up for a seriously good DSLR. The Sony seems cheap by comparison.

The other part of the equation beyond cost is complexity. Sadly for me I bought a $1500 4X5 view camera about the time I lost interest in film. For it I have three lenses which about double the cost. So be it. The real point is that a 4X5 has about one tenth the number of options and controls that even a point and shoot camera has, let alone a top tier DSLR.

The new Sony has a bunch of stuff, but it's a lot simpler than what it's competing with. For example: Intelligent preview function, 3 user programmable custom memory modes on mode dial, advanced dynamic range optimizer (5 step selectable), direct HDMI output, user interchangeable focusing screens (3 options), AF micro adjustment, auto program exposure mode, program exposure (with shift) mode, aperture priority mode, shutter priority mode, full manual exposure mode, single, auto, continuous and manual focus modes, white balance settings, LCD illumination settings. Drive modes: single frame advance, continuous advance (turn rear dial to swap between L and H modes), self-timer, continuous bracketing, single frame bracketing, white balance bracketing, mirror lockup, DRO bracketing, and remote control. Custom button control for: AF Lock, AF/MF control, D.O.F preview, ISO, white balance, exposure compensation, flash compensation, drive mode, AF Area, image size, quality, creative style (default), D-Range Optimizer (DRO), flash mode, memory. Got that?

I'm getting to like my obsolete Canon S50, other than the fact that the on/off switch is wearing out. It didn't have the best lens and has about half the resolution of new point and shoots, but it's pocketable and if handled right produces great images. I take it backpacking. I love it. It's simple and it works.

Today, right now, I miss the old days. Sort of.

I'm always wondering about what it would be like to shoot 4X10 or 7X11 and do contact prints. Maybe switch over to exclusively pinhole photography. Something timeless. Something dead simple. Just film and light and some surprises. No fuss. No buttons.

References:

Sony A900 Is Officially Announced
Several views of the Sony A900
Sony Alpha DSLR-A900 Preview

Wednesday, August 27, 2008

What I Learned About iptables

I've got a good web host. OCS Solutions by name. Small, but with a good reputation. Quiet. Out of the way. Not flashy, but solid.

I found them through a web site called "Rails Hosting Info". People fill out a form and rate their hosts. Mine, of my old host, has been up for the better part of a year. I gave them the lowest possible rating, which is a "1". Zero was not an option.

They were good to start but sold out to some big company. The hosting service became erratic, and customer service was turned over to monkeys. I bailed with $90 left on my account. And glad I did.

I've bugged OCS a little too much, and they've been tolerant, going out of their way to give me hints about things they didn't need to. The service has been rock solid. Everything was fine.

Until lately. Not their fault. I did it. I switched to Linux.

Again, not Linux's fault, but I've had a few issues. One thing I wanted to be sure of, coming from Windows (XP, gratefully, not having had to go through Vista), was that I had adequate firewall and anti-virus protection. In fact, I had a scare recently, when I clicked on a link after a Google search and came face to face with the "XP Antivirus 2008" malware. It completely took over Firefox and would not allow me to do anything.

Being sort of sure that nothing could happen because I was on Linux and had a firewall set up wasn't enough. It spooked the snot out of me. I panicked. The only way I could think of to get things back under control was to close all applications (except Firefox, which was not responding to me at all) and shut down.

Later in the day I re-enabled NoScript (which I had gotten tired of) and went back to that squirrelly link. Bang. It killed Firefox entirely except for its bogus dialog, which I could not shut. NoScript did not intervene. It got blown out of the water somehow. But this time I reopened a main Firefox window and disabled JavaScript, Java, and "Load images automatically". Then the dialog quit refreshing itself and I was able to close it and then close Firefox normally.

I think I still rebooted the computer to be sure, and then did a search on "*.exe" in case I'd gotten some malware placed on the computer (even though it would not run on Linux -- except that I have Wine installed -- not sure about that). Anyway, it seems like I got through it OK.

So back to OCS.

I have two web sites there, and I need access to cPanel, the standard administration software, and to WHM (Web Host Manager). Couldn't get there under Linux.

When I had a small issue with my server stopping, making my web sites unavailable, OCS was kind enough to remind me of a line in their FAQ that told how to resolve this, and they told me without telling me. They just gave me the info and let me go. I stumbled on the FAQ a few days later. And then of course felt like an idiot for not checking there (though I did review their forums)

Then I followed up with a question about accessing cPanel, and got a response to run "iptables -L" in a console window. I did, and got lots of gibberish. Lots of it. Informative, I'm sure, but meaningless to me.

So I searched and searched and couldn't find anything relevant except how to use iptables to set up a server correctly. I was just trying to connect to my host so I could maintain my web sites. The URL is something like https://foo.ocssolutions:1234/. My browser just went around in circles until it timed out.

Finally I posted a question on the OCS forum, and got a reply from the owner, who had originally suggested the "iptables -L" option. This time he said to try "iptables -F". Some research indicated that this would flush the settings -- I think that means that it would wipe out my firewall settings altogether. Not exactly sure, but I at least wanted to have a clue before running commands at random.

I did find a couple of articles, one of them immensely long.

But I'm too short on experience. Detailed information is great if you already know enough so that it is another step up, and you aren't trying to make a single leap to the stars.

Anyway, I decided to play with Guarddog in a trial and error approach, and under Network I found that leaving "DNS" checked and adding "NIS" did the trick. Finally, eh?

I ran "iptables -L" again and found four new lines. I have no idea what they say, but I can identify them, and can access cPanel at OCS.

Now I have to go back and add to my forum post there so I can share the sources I found.

Just in case. You never know. Someone else may need this info.


References

Anatomy of a malware scam: The evil genius of XP Antivirus 2008
cPanel and WHM
Guarddog
Iptables Tutorial 1.2.2
NoScript
OCS Solutions
Rails Hosting Info
Wine HQ