


Alarming News: I like Morgan Freeberg. A lot.
American Digest: And I like this from "The Blog That Nobody Reads", because it is -- mostly -- about me. What can I say? I'm on an ego trip today. It won't last.
Anti-Idiotarian Rottweiler: We were following a trackback and thinking "hmmm... this is a bloody excellent post!", and then we realized that it was just part III of, well, three...Damn. I wish I'd written those.
Anti-Idiotarian Rottweiler: ...I just remembered that I found a new blog a short while ago, House of Eratosthenes, that I really like. I like his common sense approach and his curiosity when it comes to why people believe what they believe rather than just what they believe.
Brutally Honest: Morgan Freeberg is brilliant.
Dr. Melissa Clouthier: Morgan Freeberg at House of Eratosthenes (pftthats a mouthful) honors big boned women in skimpy clothing. The picture there is priceless--keep scrolling down.
Exile in Portales: Via Gerard: Morgan Freeberg, a guy with a lot to say. And he speaks The Truth...and it's fascinating stuff. Worth a read, or three. Or six.
Just Muttering: Two nice pieces at House of Eratosthenes, one about a perhaps unintended effect of the Enron mess, and one on the Gore-y environ-movie.
Mein Blogovault: Make "the Blog that No One Reads" one of your daily reads.
The Virginian: I know this post will offend some people, but the author makes some good points.
Poetic Justice: Cletus! Ah gots a laiv one fer yew...
186k Per Second
4-Block World
84 Rules
9/11 Families
A Big Victory
Ace of Spades HQ
Adam's Blog
After Grog Blog
Alarming News
Alice the Camel
Althouse
Always Right, Usually Correct
America's North Shore Journal
American Daily
American Digest
American Princess
The Anchoress
Andrew Ian Dodge
Andrew Olmstead
Angelican Samizdat
Ann's Fuse Box
Annoyances and Dislikes
Another Rovian Conspiracy
Another Think
Anti-Idiotarian Rottweiler
Associated Content
The Astute Bloggers
Atlantic Blog
Atlas Shrugs
Atomic Trousers
Azamatterofact
B Movies
Bad Catholicism
Bacon Eating Atheist Jew
Barking Moonbat Early Warning System
The Bastidge
The Belmont Club
Because I Said So
Bernie Quigley
Best of the Web
Between the Coasts
Bidinotto's Blog
Big Lizards
Bill Hobbs
Bill Roggio
The Black Republican
BlameBush!
Blasphemes
Blog Curry
Blogodidact
Blowing Smoke
A Blog For All
The Blog On A Stick
Blogizdat (Just Think About It)
Blogmeister USA
Blogs For Bush
Blogs With A Face
Blue Star Chronicles
Blue Stickies
Bodie Specter
Brilliant! Unsympathetic Common Sense
Booker Rising
Boots and Sabers
Boots On
Bottom Line Up Front
Broken Masterpieces
Brothers Judd
Brutally Honest
Building a Timberframe Home
Bush is Hitler
Busty Superhero Chick
Caerdroia
Caffeinated Thoughts
California Conservative
Cap'n Bob & The Damsel
Can I Borrow Your Life
Captain's Quarters
Carol's Blog!
Cassy Fiano
Cato Institute
CDR Salamander
Ceecee Marie
Cellar Door
Chancy Chatter
Chaos Manor Musings
Chapomatic
Chicago Boyz
Chickenhawk Express
Chief Wiggles
Chika de ManiLA
Christianity, Politics, Sports and Me
Church and State
The Cigar Intelligence Agency
Cindermutha
Classic Liberal Blog
Club Troppo
Coalition of the Swilling
Code Red
Coffey Grinds
Cold Fury
Colorado Right
Common Sense Junction
Common Sense Regained with Kyle-Anne Shiver
Confederate Yankee
Confessions of a Gun Toting Seagull
Conservathink
Conservative Beach Girl
Conservative Blog Therapy
Conservative Boot Camp
Conservative Outpost
Conservative Pup
The Conservative Right
Conservatives for American Values
Conspiracy To Keep You Poor & Stupid
Cox and Forkum
Cranky Professor
Cranky Rants
Crazy But Able
Crazy Rants of Samantha Burns
Create a New Season
Crush Liberalism
Curmudgeonly & Skeptical
D. Challener Roe
Da' Guns Random Thoughts
Dagney's Rant
The Daily Brief
The Daily Dish
Daily Flute
Daily Pundit
The Daley Gator
Daniel J. Summers
Dare2SayIt
Darlene Taylor
Dave's Not Here
David Drake
Day By Day
Dean's World
Decision '08
Debbie Schlussel
Dhimmi Watch
Dipso Chronicles
Dirty Election
Dirty Harry's Place
Dissecting Leftism
The Dissident Frogman
Dogwood Pundit
Don Singleton
Don Surber
Don't Go Into The Light
Dooce
Doug Ross
Down With Absolutes
Drink This
Dumb Ox News
Dummocrats
Dustbury
Dustin M. Wax
Dyspepsia Generation
Ed Driscoll
The Egoist
Eject! Eject! Eject!
Euphoric Reality
Exile in Portales
Everything I Know Is Wrong
Exit Zero
Expanding Introverse
Exposing Feminism
Faith and Theology
FARK
Fatale Abstraction
Feministing
Fetching Jen
Finding Ponies...
Fireflies in the Cloud
Fish or Man
Flagrant Harbour
Flopping Aces
Florida Cracker
For Your Conservative Pleasure
Forgetting Ourselves
Fourth Check Raise
Fred Thompson News
Free Thoughts
The Freedom Dogs
Gadfly
Galley Slaves
Gate City
Gator in the Desert
Gay Patriot
The Gallivantings of Daniel Franklin
Garbanzo Tunes
God, Guts & Sarah Palin
Google News
GOP Vixen
GraniteGrok
The Greatest Jeneration
Green Mountain Daily
Greg and Beth
Greg Mankiw
Gribbit's Word
Guy in Pajamas
Hammer of Truth
The Happy Feminist
Hatless in Hattiesburg
The Heat Is On
Hell in a Handbasket
Hello Iraq
Helmet Hair Blog
Heritage Foundation
Hillary Needs a Vacation
Hillbilly White Trash
The Hoffman's Hearsay
Hog on Ice
HolyCoast
Homeschooling 9/11
Horsefeathers
Huck Upchuck
Hugh Hewitt
I, Infidel
I'll Think of Something Later
IMAO
Imaginary Liberal
In Jennifer's Head
Innocents Abroad
Instapundit
Intellectual Conservative
The Iowa Voice
Is This Life?
Islamic Danger 4u
The Ivory Tower
Ivory Tower Adventures
J. D. Pendry
Jaded Haven
James Lileks
Jane Lake Makes a Mistake
Jarhead's Firing Range
The Jawa Report
Jellyfish Online
Jeremayakovka
Jesus and the Culture Wars
Jesus' General
Jihad Watch
Jim Ryan
Jon Swift
Joseph Grossberg
Julie Cork
Just Because Your Paranoid...
Just One Minute
Karen De Coster
Keep America at Work
KelliPundit
Kender's Musings
Kiko's House
Kini Aloha Guy
KURU Lounge
La Casa de Towanda
Laughter Geneology
Leaning Straight Up
Left Coast Rebel
Let's Think About That
Liberal Utopia
Liberal Whoppers
Liberalism is a Mental Disorder
Liberpolly's Journal
Libertas Immortalis
Life in 3D
Linda SOG
Little Green Fascists
Little Green Footballs
Locomotive Breath
Ludwig von Mises Institute
Lundesigns
Rachel Lucas
The Machinery of Night
The Macho Response
Macsmind
Maggie's Farm
Making Ripples
Management Systems Consulting, Inc.
Marginalized Action Dinosaur
Mark's Programming Ramblings
The Marmot's Hole
Martini Pundit
MB Musings
McBangle's Angle
Media Research Center
The Median Sib
Mein Blogovault
Melissa Clouthier
Men's News Daily
Mending Time
Michael's Soapbox
Michelle Malkin
Mike's Eyes
Millard Filmore's Bathtub
A Million Monkeys Typing
Michael Savage
Minnesota Democrats Exposed
Miss Cellania
Missio Dei
Missouri Minuteman
Modern Tribalist
Moonbattery
Mother, May I Sleep With Treacher?
Move America Forward
Moxie
Ms. Underestimated
My Republican Blog
My Vast Right Wing Conspiracy
Mythusmage Opines
Naked Writing
Nation of Cowards
National Center Blog
Nealz Nuze
NeoCon Blonde
Neo-Neocon
Neptunus Lex
Nerd Family
Network of Enlightened Women (NeW)
News Pundit
Nightmare Hall
No Sheeples Here
NoisyRoom.net
Normblog
The Nose On Your Face
NYC Educator
The Oak Tree
Obama's Gaffes
Obi's Sister
Oh, That Liberal Media!
Old Hippie
One Cosmos
One Man's Kingdom
One More Cup of Coffee
Operation Yellow Elephant
OpiniPundit
Orion Sector
The Other (Robert Stacy) McCain
The Outlaw Republican
Outside The Beltway
Pajamas Media
Palm Tree Pundit
Papa Knows
Part-Time Pundit
Pass The Ammo
Passionate America
Patriotic Mom
Pat's Daily Rant
Patterico's Pontifications
Pencader Days
Perfunction
Perish the Thought
Personal Qwest
Peter Porcupine
Pettifog
Philmon
Philosoblog
Physics Geek
Pigilito Says...
Pillage Idiot
The Pirate's Cove
Pittsburgh Bloggers
Point of a Gun
Political Byline
A Political Glimpse From Ireland
Political Party Pooper
Possumblog
Power Line
PrestoPundit
Professor Mondo
Protein Wisdom
Protest Warrior
Psssst! Over Here!
The Pungeoning
Q and O
Quiet Moments, Busy Lives
Rachel Lucas
Radio Paradise
Rantburg
Real Clear Politics
Real Debate Wisconsin
Reason
Rebecca MacKinnon
RedState.Org PAC
Red, White and Conservative
Reformed Chicks Babbling
The Reign of Reason
The Religion of Peace
Resistance is Futile!
Revenge...
Reverse Vampyr
Rhymes with Cars and Girls
Right Angle
Right Events
Right Mom
Right Thinking from the Left Coast
Right Truth
Right View Wisconsin
Right Wing Rocker
Right Wing News
Rightwingsparkle
Robin Goodfellow
Rocker and Sage
Roger L. Simon
Rogue Thinker
Roissy in DC
Ronalfy
Ron's Musings
Rossputin
Roughstock Journal
The Rude Pundit
The Rule of Reason
Running Roach
The Saloon
The Salty Tusk
Samantha Speaks
Samizdata
Samson Blinded
Say Anything
Say No To P.C.B.S.
Scillicon and Cigarette Burns
Scott's Morning Brew
SCOTUSBlog
Screw Politically Correct B.S.
SCSU Scholars
Seablogger
See Jane Mom
Self-Evident Truths
Sensenbrenner Watch
Sergeant Lori
Seven Inches of Sense
Shakesville
Shark Blog
Sheila Schoonmaker
Shot in the Dark
The Simplest Thing
Simply Left Behind
Sister Toldjah
Sippican Cottage
SISU
Six Meat Buffet
Skeptical Observer
Skirts, Not Pantsuits
Small Dead Animals
Smallest Minority
Solomonia
Soy Como Soy
Spiced Sass
Spleenville
Steeljaw Scribe
Stephen W. Browne
Stilettos In The Sand
Still Muttering to Myself
SoxBlog
Stolen Thunder
Strata-Sphere
Sugar Free But Still Sweet
The Sundries Shack
Susan Hill
Sweet, Familiar Dissonance
Tail Over Tea Kettle
Tale Spin
Talk Arena
Tapscott's Copy Desk
Target of Opportunity
Tasteful Infidelicacies
Tequila and Javalinas
Texas Rainmaker
Texas Scribbler
That's Right
Thirty-Nine And Holding
This Blog Is Full Of Crap
Thought You Should Know
Tom Nelson
Townhall
Toys in the Attic
The Truth
Tim Blair
The TrogloPundit
Truth, Justice and the American Way
The Truth Laid Bear
Two Babes and a Brain
Unclaimed Territory
Urban Grounds
Varifrank
Verum Serum
Victor Davis Hanson
Villanous Company
The Virginian
Vodkapundit
The Volokh Conspiracy
Vox Popular
Vox Veterana
Walls of the City
The Warrior Class
Washington Rebel
Weasel Zippers
Webutante
Weekly Standard
Western Chauvinist
A Western Heart
Wheels Within Wheels
When Angry Democrats Attack!
Whiskey's Place
Wicking's Weblog
Wide Awakes Radio (WAR)
Winds of Change.NET
Word Around the Net
Writing English
Woman Honor Thyself
"A Work in Progress
World According to Carl
WorldNet Daily
WuzzaDem
WyBlog
Yorkshire Soul
Zero Two Mike SoldierI’ve been thinking about the very first job I ever had as a professional software developer. “Project management” was a distant dream, and it showed; there was a big room, with three desks, two salesmen with me sandwiched in between. That was unwise. But I learned a lot from seeing things from an unusual perspective. I remember one of the sales guys took to putting a sign on his desk that said “Nothing happens until the sale is made!” I’ve often wondered if that was some kind of turf-marking exercise. Certainly it is factual; there’s no arguing with it; on the other hand, could the techie guy not come back with something equally factual, like, “You haven’t got anything to sell until someone builds it”?
Here are the two viewpoints, duking it out quietly, under the surface. You have sales & marketing, which are essentially: Convincing people to do things they otherwise would not do. Yeah there’s a lot of stuff about pitches & relating to people & money changing hands, but that is essentially what it is. The other side of it is coding and engineering, designing tests, scientifically evaluating what the tests do & do not prove, managing the requirements and seeing to it that they are met. Making the miracles. Which all comes down to: Convincing not-people-things to do things they otherwise not do.
The subtle slugfest is nothing more complicated than — when you put it all together, what t’heck are we really doing here? Are we convincing the organics to do things they otherwise would not do, so we can get some funding together and use it to convince the non-organics to do things they otherwise would not do? Or, are we convincing the non-organics to do things, so we can put on what they called a “dog and pony show” and convince the organics to do something?
It is a cyclical mission, so both are valid. Since both are valid, that essentially resolves the conundrum…but not really…for we have to settle the matter of, who is the real catalyst. Which specialty, by its very existence, defines the reason everyone is bothering to show up. And which one is subordinate to the other, merely attending to it, bridging the final circuit so it can all go together and the cycles can continue.
It has been my observation that, since these two sides think in fundamentally different ways, once a practitioner becomes experienced in the one, he does not see himself as ever crossing the divide and making a personal success out of the other. And so, people become invested in the idea that their own domain is primary and the other is secondary. The hard evidence indicates only that both viewpoints are valid. It is quiet on which one emerges truly supreme over the other one.
Another observation I’ve been making: I recall in the early years there was a push on among desktop database developers to make their own scripting languages into dominant “real” computer languages, and “train” the software developers like me to use their tools. Their strategy was to get the market flooded with capable coders who were dedicated to their scripted languages, so that customers would feel a push to invest in such an environment so that it would be easier to hire the custom application developers. This, we were told, was to be to our financial advantage: We should envision ourselves as “The Boss,” and does the boss want to hire more or fewer sales people, does he want to hire more or fewer programmers. Well, obviously, the answer would be more to the first and fewer to the second — and if there’s one thing you want to avoid, you want to avoid being the guy that the boss wants whittled down. There’s a certain logic to it, but I’ve never put too much faith in that, and ultimately things didn’t pan out that way at all.
If there’s one thing you don’t want to be, it’s the guy that someone who is not the boss wants in greater abundance. Because if you can work on it for awhile and develop some real skills at it — you can come out on top, having a job the boss wants thinned down. But you cannot count on bringing such skills to the market if you’re crowded out. If you want to build up the kind of skill level that will net you success only if you’re leveraging it in an occupation that is momentarily exploding, but it would be inadequate to keep the paychecks coming in during the lean times, well, you’re not really bringing the kind of gusto you need to succeed anyhow.
I also remember, from that time, the push was toward libraries of reusable code. Stop paying these software developers to write the same code over and over again. Now, I’m not sure what happened to this. It’s given us a lot of technology that is still in active use, even heavy use, but it doesn’t seem to be leveraged toward that particular goal. I was being told by the database guys, over twenty years ago, that my whole livelihood was going to go away because nobody wanted to pay to have the same things built repeatedly. This has been about as successful a prediction as the paperless office. In fact, I would say even less so, given how tough it can be nowadays to find things like staplers, scotch tape, pens, erasers, et al.
This goal has always struck me as a sensible one, driven by an obvious and demonstrable business case. The engineers are not opposed to it at all, contrary to a belief that seems to have been prevalent on the sales side. Who wants to come up with five tests when you can prove the same thing with one? There’s a lot of human error factor involved in coordinating five tests you know. This is what “unit testing” is all about; and then when you make sure all these tested units fit together right, that leads to things like “system testing” and “integration testing.” This part of the effort has indeed matured and become more sophisticated and capable. But I see it isn’t commonplace for these development houses to do what I was told twenty years “The Boss” was going to do, which is, to look at all the first-time-coding projects necessary to make an entire new system really work, and really cut some huge swaths into it by means of leveraging recyclable code. People say “Is there a library we can get that will do something like that?” and they’re referring to something external. The vision, as I originally understood it, was to make the internals into libraries, to de-couple them from their maiden implementations.
You can do both, you know. You can make an internal module whose purpose in life is, “This is how XYZ company handles files” and another one whose purpose is “This is how XYZ company handles strings”. Then you take all these questions about “Doesn’t Boost do something like that?” and settle them within the internal libraries; use all these good things like DLLs and object-oriented design patterns to build breakwaters. Stop the rippling-through-the-entire-system. The ideal situation is, one design question comes up, by the time it is settled only one module has been changed. I say “ideal” because that’s a pretty tough vision to realize, but at the very least, the architectural effort should be going in that direction.
Just like an organizational chart, you know. Here’s a fuck-up…oh…well, that’s Tom’s territory. So here’s an action item for Tom, and Tom I guess has a headache he has to put right before the meeting next week. This is how software development should work. Someone takes on a bug, in order to resolve it has to change three or four things…same thing with the next bug, and the next bug, and the next, and the last one when it got fixed it broke a bunch of other things — that situation is a red flag that the architecture is not a good one. It isn’t sufficiently modular. Well, this is not exactly a thing of the past is it. Customers can pick up on it; they/we see it pretty much everywhere. We see it in our cable teevee subscriptions and our telephone service, and all kinds of other places. This suggests to me that values have changed. The vision is not being aggressively pursued.
I think the vision was thwarted when someone, somewhere, said something about there being no such thing as a bug-free program. In my estimation, this was not a helpful remark. We have “bug-free” equations, do we not? One and one make two; two and two make four. The bugs become an inevitability when the system achieves a certain level of complexity — and the system has become this complex because some module within, has become complex and therefore unmaintainable. Well, modules don’t have to be complex. Wasn’t Lotus 1-2-3 supposed to have been a bug-free, or nearly bug-free, “killer app”? Well, if it can be done one time it can be done anytime, right?
Here we get to a part that has always frustrated me. Software developers, these leaders of technological innovation, very often are pressured to engage in tribal thinking. No, nobody is going to make a case study out of 1-2-3 for good project management and coding practices; if it is a representative symbol of anything at all, it is of dead computer applications, and a whole bunch of user interface conventions that aren’t done that way anymore. So nobody is asking the question “Do I want my project’s pathway of success to look like where this case study went?” the answer to which would be emphatically yes in the case of the Lotus app. They tend to ask the question, “Do I want my project to end up where this case study is right now?” Which leads to everyone coding essentially the same thing.
That is the exact opposite of technology: Everyone laboring to do things more-or-less the same way that some other guy would do it.
President Obama says we can recapture our country’s technology stature by making sure we have more people graduating from college. In the era of American history over which He presides, we seem to be caught in an endless loop of confusing quantity for quality: Clear skies and fair seas are ahead for you, if you’re doing everything the same way the other guy is already doing it. That seems to be the mindset, and I predict it will fail more often than it succeeds.
Leave a Reply
You must be logged in to post a comment.
President Obama says we can recapture our country’s technology stature by making sure we have more people graduating from college.
Heh. Problem is, the types of folks who a) graduate from college, and b) end up being Democratic party stalwarts (which are c, the only people Pharaoh Threeputthotep really cares about), aren’t majoring in STEM. They’re majoring in Protest Studies. Which, I’m here to tell you — and I have near and dear ones in the biz — is the most epic waste of time this side of Farmville. A degree in anything but STEM is five years’ marination in lukewarm leftist cant, periodically interrupted by keggers and football games.
This is because the non-STEM people who end up doing college for a living are, at heart, those salesmen you describe. They’ve turned a junior-high insight about the nature of human interaction into a career — yes, it’s true, pretty much everything social is arbitrary when you come right down to it, and life’s winners win by manipulating those arbitrary conventions to their advantage. All your Art History or Wymyn’s Studies degree teaches you to do is win arguments by calling your opponents racists.
STEM people, on the other hand, have to actually build shit that actually works. Two H’s and an O will make water, no matter how excluded the oxygen feels from its minority status in the stoichiometry and despite the counterhegemonic postcolonial perspective of the hydrogen.
If we graduate more of those people, then yeah, the economy might improve. The horse sense of the average voter certainly will. And the Democratic party would cease to exist.
- Severian | 06/19/2012 @ 08:34The tech world is full of excellent software that failed because of poor marketing departments (Novell comes to mind). It’s a shame in a way, because there’s so much software that is either difficult to use or unreliable (like the password issue in Outlook/Outlook Express caused by corrupt profiles or the many versions of Mac Mail/Windows Live Mail). But then, I really like software. I like new operating systems and I love abandonware. Most folks just want something that works.
- teripittman | 06/19/2012 @ 12:12Morgan, you’ve got to give a BSIROHL to Severian…
Brilliant!
To address the actual post – the way I was taught resuse was more of a DoD-wide thing; they had a software library repository of robust Ada modules that we could use in our programs. Awesome! Didn’t do me much good in my first COBOL assignment, or my second Java one… Apache Commons is what they were trying to do. 🙂
The poorest code in our codebase, in both environments, was that where testing was sacrificed to meet a schedule. Thankfully, we finally got management buy-in for TDD at my current assignment, so we can take a little longer and they know that, even if they don’t like it, when we’re done it will be solid.
Do schedules fall under marketing or development? It could be both. For the developers, it is a goal against which progress can be measured, where previously-unknown issues can result in adjustments and/or redesign. If the marketer presents the schedule as a contract with the user, it becomes a feature. “It does all this BY June 21st!” Then, the schedule loses some of its usefulness, as it is no longer part of the elastic tools at the developer’s disposal.
I have yet to see a project other than my own (and that hasn’t been verified by outside sources, so maybe I’m dorking it up too) that uses component design well. Changes ripple, which Architects completely understand, and Medicators are completely frustrated by. “YOU SAID IT WOULD WORK!” Is it the fault of the Architects, for not foreseeing that their architecture would respond poorly to change? Is it the fault of the Medicators who do not realize that the Architects aren’t perfect? Could be a measure of both.
I’m 100% with you that quantity != (or , ne, or !.equals(), depending on your language of choice) quality. I forget where I heard it, but it was something along the lines of a poor programmer generating 2 days’ worth of finding-and-fixing his bugs for every day of code written. If the goal is busywork (i.e., the façade of work), that’ll fix it. Judging by this administration’s fondness for façades, I’d say he probably thinks he’s right.
- Daniel | 06/19/2012 @ 18:27Daniel,
thanks for the compliment!
I have to agree wholeheartedly with this: If the goal is busywork (i.e., the façade of work), that’ll fix it. Judging by this administration’s fondness for façades, I’d say he probably thinks he’s right.
Come to think of it, the marketing / coding divide in tech is a lot like the politics / economics divide over there on the left side of the aisle. Tech is about the only field in which the molecular-level guys and the marketing guys sit in the same room and are expected to work hand-in-glove. A car salesman isn’t expected to know how to build a car, let alone the chemistry of the internal combustion engine. From what little I know of it, though (and I am definitely one of those non-STEM chumps), lots of tech firms have marketing guys actually trying to dictate innovation to the engineers. “Whaddaya mean that hasn’t been invented yet?! It’s only two months to E3 and I’ve set up sixteen interviews with Nintendo Power magazine!”
Liberals have the same attitude towards the market. The way to solve unemployment is to create jobs, right? “Interstate re-paving guy” is a job, right? So let’s just pay some dudes to lay some new tarmac down on I-95. Problem solved! Or: Healthcare costs are rising, because the cost of medical stuff is going up. Especially prescription drugs. So let’s just pass a law that says a bottle of aspirin shall cost no more than $3, no matter what. Problem solved! It works for Canada, after all!
The people most divorced from the creation of a tangible thing somehow have their greasy, ignorant paws all over the entire creative process, in other words. They might be salesmen or they might be leftists, but either way it’s a dumb idea.
- Severian | 06/20/2012 @ 07:11