Skip to main content

I have been a computer programmer and system administrator for 10 years.  In that time, I have learned how to write very good programs, and some of the principles required to do this are directly translatable to DailyKos, and the progressive movement in general.  I want to share those with you.

1.  Garbage In, Garbage Out.

Basically, this states that if you input false data, you should expect an incorrect result.  That is quite true here.  Which is why you should always double-verify data before posting it to a diary.

2.  Be liberal in what you accept, and conservative in what you send.

This particular piece of advice comes from the need to write networking or client/server software that plays nice.  Basically, you can't trust what the other side will send, so you have to be tolerant of errors and deliberately malformed data (this, by the way, is a primary cause of security holes in Microsoft software).  On the flip side, you should only send out things that you know fit the specification rigidly, so that the program on the other side has half a chance of dealing with it correctly.

This actually fits quite well with this community, as a primary cause of flamewars, ratings wars, etc., seem to be caused by people being conservative in what they accept and liberal in what they send.  It's bad practice in programming, and it's bad practice on DailyKos.  If you don't like what someone has to say, rebut them politely or ignore it - don't go downrating them (if their posts otherwise don't fit the criteria) or responding with incendiary rhetoric.  It doesn't help.

3.  When debugging a program, sometimes you have to examine its internals, and not just look at its inputs and outputs.

This fits pretty well with progressives in general.  If you look at the inputs and outputs to the present administration and its toadies, you'll be confused and you'll resort to patching - basically reacting to problems instead of fixing them.  You have to look at their basic motivations and between the lines, at the things they don't want you to see - only then will you discover the root cause of the problem and be able to fix it.

4.  Sometimes code just needs to be rewritten.

There are times when I look at some code that someone else wrote - or even that I wrote - and decide that it will be much easier and more productive to scrap the code and start over than to try to deal with the mess.  Same applies here - sometimes you just have to get rid of the troublemakers and start over, no matter what kind of "good" things they claim to accomplish for you.

5.  Always have a good specification.

In code, this means that you should design the code before writing it.  In politics, this means that you should have a good platform and a coherent set of beliefs before running for office, and before trying to debate with the person opposite of you on the political spectrum.  Code written without a specification tends to come in over-budget and of low quality.  Political campaigns seem to have the same problem.  Imagine that.

6.  Sometimes it's good to vent.

There are times when I have been fighting with code for a while and I just feel like throwing the computer across the room.  At times like that, I find a nice IRC channel or something and start virtually throwing things.  Sometimes people need to do that, even if it's just typing hard.  Try to be understanding of people who are venting - better that than the alternatlve.  Remember Melvin and his stapler?  But when you're done venting, it's important to shut up and get back to work.  Same applies here.

7.  You can't choose your coworkers.

Nor can you choose your political allies.  You can, however, choose how you deal with them.  Be nice, courteous, and professional, even if some idiot is troll-rating you for no reason.  It speaks volumes for you, and puts his behavior into even starker relief against yours.

8.  Listen to criticism.

When coding, you may know a lot, but someone always knows more than you.  Same with DailyKos and politics.  Listen to them.  You don't have to agree, but even listening can help you see things in a different light.

Hope this helps.  :-)  Maybe it's a stupid diary, but I try to write what I know.  I'm no political maven, but there are different life lessons that can apply to DailyKos and the wider progressive community.  Maybe I'll find some about pianism too...

Originally posted to duskglow on Tue Feb 07, 2006 at 12:15 PM PST.

Your Email has been sent.
You must add at least one tag to this diary before publishing it.

Add keywords that describe this diary. Separate multiple keywords with commas.
Tagging tips - Search For Tags - Browse For Tags


More Tagging tips:

A tag is a way to search for this diary. If someone is searching for "Barack Obama," is this a diary they'd be trying to find?

Use a person's full name, without any title. Senator Obama may become President Obama, and Michelle Obama might run for office.

If your diary covers an election or elected official, use election tags, which are generally the state abbreviation followed by the office. CA-01 is the first district House seat. CA-Sen covers both senate races. NY-GOV covers the New York governor's race.

Tags do not compound: that is, "education reform" is a completely different tag from "education". A tag like "reform" alone is probably not meaningful.

Consider if one or more of these tags fits your diary: Civil Rights, Community, Congress, Culture, Economy, Education, Elections, Energy, Environment, Health Care, International, Labor, Law, Media, Meta, National Security, Science, Transportation, or White House. If your diary is specific to a state, consider adding the state (California, Texas, etc). Keep in mind, though, that there are many wonderful and important diaries that don't fit in any of these tags. Don't worry if yours doesn't.

You can add a private note to this diary when hotlisting it:
Are you sure you want to remove this diary from your hotlist?
Are you sure you want to remove your recommendation? You can only recommend a diary once, so you will not be able to re-recommend it afterwards.
Rescue this diary, and add a note:
Are you sure you want to remove this diary from Rescue?
Choose where to republish this diary. The diary will be added to the queue for that group. Publish it from the queue to make it appear.

You must be a member of a group to use this feature.

Add a quick update to your diary without changing the diary itself:
Are you sure you want to remove this diary?
(The diary will be removed from the site and returned to your drafts for further editing.)
(The diary will be removed.)
Are you sure you want to save these changes to the published diary?

Comment Preferences

  •  Tips, Flames, requests to go to hell... (4.00)
    Go here.  Hope you find this helpful.

    I like it here kos I do. -1.50, -4.77

    by duskglow on Tue Feb 07, 2006 at 12:16:13 PM PST

  •  well observed (none)
    a powerful extended metaphor -- recommended

    Loyalty comes from love of good government, not fear of a bad one. Hugo Black.

    by Pondite on Tue Feb 07, 2006 at 12:22:36 PM PST

  •  Hey (none)
    I'm about to start on a second degree in computer science, anything I should know?

    My current industry (design) is getting the life sucked out of it, computer science at least seems useful no matter where I go around the world.

    (if by "criminalization of politics" you mean politics being taken over by criminals, you are absolutely correct)

    by Drezden on Tue Feb 07, 2006 at 12:38:18 PM PST

  •  Recommended -- I needed this today (none)
    I'm a kinda database geek who was RIF'd, not only because my office lost a huge contract but because TPTB in my office did not value the work I do and today was a bad day in terms of it being amply demostrated. I was the "big picture" person in an office of many co-workers fixated on their own little domains, oblivious to the effects their work had on others.

    It's time for me to let go of "my baby" as it's not mine anymore, well looking back I lost control of it long time ago as changes in management brought in folks who were NOT database saavy. It's their problem now <g>....

    •  Yup, (none)
      sometimes you just gotta let go.  I should have added that as another rule - sometimes people can mess things up so that it's completely unrecognizable, and you have to realize that no matter how much energy you put into it, it's not the same project you worked on.

      I like it here kos I do. -1.50, -4.77

      by duskglow on Tue Feb 07, 2006 at 12:40:33 PM PST

      [ Parent ]

  •  GIGO (none)
    describes our present administration!

    Was a programmer and administrator before going into technical writing. It's a good fit. I'm the flowcharting expert here. We have to translate what engineers, chemists, and technicians tell us into plain English. It's good to be able to "speak geek."

    Same goes for a lot of things. Looking at things logically and cutting through the garbage helps to debug the system. We're stuck with a really buggy system right now. We need to debug it fast before the system crashes!

    One nation, under surveillance, no liberty, nor justice for us

    by SisTwo on Tue Feb 07, 2006 at 12:47:11 PM PST

    •  "Speaking geek" (none)
      It isn't all that hard once you remember that theirs is a very precise language. :-)

      Some people get really confused at that, when you say something and they say almost the same thing and you say "well, yeah, but no..."

      I like it here kos I do. -1.50, -4.77

      by duskglow on Tue Feb 07, 2006 at 12:48:31 PM PST

      [ Parent ]

      •  It's not always precise (none)
        "It can't be done" has a firm meaning, but not a direct and precise one. It means "it shouldn't be done, it offends my sensibilities, and besides, I don't really want to, because it will be a mess".
  •  Thinkgeek (none)
    ThinkGeek for the geek in your life.

    One other point I would add is to get buy-in from stakeholders.  Without buy-in, the stakeholder is going to think what you built was crap, even if it was "what they asked for".   Building that consensus/buy-in/buzz makes for a more successful implementation in the long run.

  •  9. Never trust marketing. (none)
    Flame away :-)
  •  nice... (none)
    but one thing I've noticed is that the programming skills of today's students is far more meager than they once were.

    My guess is that, in the days of old, we had to write our own programs (we used basic) whereas there are lots of packages out there today.

    But getting students to even debug a simple "if then" loop is like pulling teeth.

    Consequences?  Perhaps critical thinking skills and logic aren't tested as much?  Too much "black box" type of thinking?

    When liberals saw 9-11, we wondered how we could make the country safe. When conservatives saw 9-11, they saw an investment opportunity.

    by onanyes on Tue Feb 07, 2006 at 01:17:25 PM PST

Click here for the mobile view of the site