Episode: 254
Title: HPR0254: Expressive Programming Ep 5
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr0254/hpr0254.mp3
Transcribed: 2025-10-07 14:54:15

---

.
Welcome to this episode of Expressive Programming, an exploration into programming as an art.
Here I'll focus on programming, design, and development as an art form, especially as a form of self-expression.
We'll look at open-source projects, the projects that I'm working on, the code that others have written,
and focus on how that reflects what we feel, what we intend, and how we impact the world.
Special thanks for all episodes go to Pack-Up of the Radio for helping me get this podcast off the ground, especially in Nigma,
and also special thanks to HotBitchArson.
The band's website can be found at HotBitchArson.com for all their wonderful, inspiring, and moving creative comments,
and projects that they've allowed me to use.
They're the cure for the encounter and call you.
Now onto today's episode of Expressive Programming.
Enjoy!
Welcome to Expressive Programming, episode 5 for December 17, 2008.
I'm drawing and crossing the line.
Coles, plans, ideals, we all have them, it's what life's all about, hopes of what to accomplish,
plans of how to get there, and then of course the unforeseen things are getting away.
This goes with life and this goes with programming.
Do research, try to determine the best language, determine the need, determine the interface, the libraries, etc., etc.
We can plan and plan and plan.
We can get lost in planning.
In fact, there are organizations that are doubly do nothing but plan, such as the W3C.
I don't think anyone there's probably implemented the CSS, but they plan it,
and that gives browser manufacturers standards to start with, except for Microsoft,
and then developers get to actually use CSS to create interfaces that are accessible,
and much more elegant intuitive than they were before.
And don't blame me if you don't get CSS, it's not that hard, it's just a different way of thinking.
And so is the difference between planning something and doing it.
You can plan, work towards perfection, try to pick a library,
read about best practices.
You can get a four-year degree, you can get an eight-year degree, you can end up becoming a research.
Follow in computer science if you want to, you can get lost in planning, and then you never do.
There's an article that I recommend everyone reads.
It's called the second half of artist ship.
It's written by Paul Graham, it's on his website, p-a-u-l-g-r-a-p-h-am.com.
He also writes one of my favorite essays called Hackers and Painters.
His is in response to Guy Kawasaki's, by now, completely famous, artist ship.
And I think he makes some much more poignant points than Guy Kawasaki does.
But they're not the points I'm making here.
The points I'm making here are avoiding getting lost in the planning.
When you start planning a new project, I'm not talking about a small script.
I'm talking about a large scale project, a game, an office suite, a group or project,
a blogging platform, a podcasting platform, audio editing, you name it, anything big.
But when you start thinking about it, it still starts with you and your thoughts.
And it's very easy to get lost in those thoughts.
Get lost in the research, get overwhelmed.
Possibly even depressed and downtrodden and never do.
And that brings into line one of my favorite Buddhist sayings.
Be not afraid of going slowly.
Be only afraid of standing still.
And my point is, it doesn't matter how lofty the goal is for the project,
where you want to take it when you eventually get there.
We all want our projects to do everything we envision, but we have to be rational.
They're not going to do it all on release candidate one.
And to those of us, or to those of you, well, to those of us who are listening who are artists
when it comes to our programs, we want it to do it all the first time out.
We want to show our entire vision, because unless we can show the masterpiece,
we don't want to show any of it.
Unfortunately, when it comes to the art of software development and design,
it's not like a painting.
You can't wait until the canvas is finished before you show the first corner.
You have to show that outline.
You have to show the first draft and the rough drafts and the rough drafts.
You don't get to wait until it's perfect before you release it.
If we did, let's be honest, none of us would ever release anything.
I have been working on numerous projects, and one of them is an online media browser
that is called Alicast.
And anyone who follows me on Twitter knows I've been working on version two for a long time.
But I've also continued tweaking version one.
And I've been tweaking version one for the last year.
And when I started version one, I never even intended on anyone seeing it.
I started out as a little tiny T-C-S-H script.
It turned into a pro script.
It turned into a PHP script.
And it's now becoming either a clutter or a sold-runner application,
which will run on the desktop.
And it's a completely different application.
The only thing that shares in common with the original website
in corresponding scripts is its name.
And I recently had to face that I had to, again, draw a line.
I had to say, I'm done touching version one.
It said it's done. I'm not doing anything more on it.
If I think of a feature one implement, then start working on the code
to make sure that that's in version two.
And we'll be.
If I find a bug, then make sure that bug doesn't show up in version two.
But I'm not allowing myself to add any more code to version one.
And that's incredibly hard to do.
Especially now with the source control and revision control systems
we have available to us.
It's so incredible attempting to create another branch
and work on perfecting this, perfect, perfecting that.
And we can quickly lose ourselves and never really see our visions come true.
So we have to draw a line and stop perfecting the old.
And say, here's where the news starts and force ourselves often
to go forward with that.
Which also brings me to a related topic involving other projects
that I've been working on, actually involving all of the projects
that I've been working on.
There are artists, new program, there are programmers,
program, and there are engineers who program.
I've noticed the engineers tend to follow to the tea.
And I'm just using engineers because I need a category.
But they tend to be one town school.
They call best practices to a tea.
They think very much inside the box.
Make sure to use a module if it's available as opposed to
even a Australian understanding what the module does.
I may not even want to know what the library or module does.
And then there's the hackers or the artists.
Where I don't want to use an engine that does this
because I don't want to know how it's done.
I don't want to wait for the library to get better
to make that feature better.
That's one of the great things about open source.
You can use an open source module or library.
And if you want to make a feature of your program better
than you guys in that library, you can improve the library,
contribute back, and then get back to your major project.
But when it gets down to it, programming is about creating
the vision that you have in your mind.
And that includes how you create it.
Access practices, advice, how to's, books, coding centers,
coding practices, coding rules.
I don't care what arrogant SOB it comes from.
I don't care how intelligent they are or how inferior you
may feel towards them.
Program your project your way.
And if someone has something negative to say about your code,
who cares?
At one point, they wrote code just as ugly.
And just as are, there are areas in development
that they create things just as hard.
I hear programmers all day long spouting off on how this code
isn't object oriented enough or doesn't follow this
or that best practice.
But if I go and look at their CSS, it's a template they grab
from someone because they can't design themselves out of a box.
Am I faulting them for that?
No, but I'm faulting them for attacking other people's code.
If someone programs a website and it looks hacked together,
tossed together, whether it's in PHP, Pearl, Python,
whether it's in buggy C, I don't care.
I'm blissfully happy to see that someone has,
perhaps the passion of programming and started to do it,
has started to make the computer do what they want for themselves.
And PHP, for example, is a community where this happens a lot in.
Because it does give you the power to do things
in a very proper object oriented and even aspect oriented.
Programming approach.
However, it also allows you to write mangled scripts of include HTML
and well, the code's not beautiful.
At least not from a purely pragmatic perspective of program.
From the perspective that someone's created something new,
put something out in the world and shared their code,
attacking it for whatever reason,
it doesn't encourage the programmer,
it doesn't improve the community,
it reflects poorly on PHP.
I see it a lot in the Python community,
and it can quite frankly disgust me.
The only place I don't see it is in the Pearl and Sea communities,
is because it's quite often embraced that there are a million ways
to do anything the right or the wrong way.
And it's seen that doing something one way is beautiful
by a group of people,
but doing it in a completely different way,
is beautiful to a different group of people.
I don't write obfuscated code,
I write very verbose code to some,
and to others, it's overly tight and overly clean,
which was a problem I was having.
When I became disabled due to my neuromuscular disease,
I lost my job as a full-time programmer,
and neededless to say when I did so,
as firing someone for being disabled would have been illegal,
because they did what they had to
to make it appear that it wasn't my disability or firing me for.
Now, I'll be the first to admit my productivity had gone
to the point where I was no longer programming at a productive level,
but it was as a result, a direct result of my disease
and what it was and has continued to do to my body,
and how it limits my abilities.
I'll admit that, yes, I was not able to professionally program
then, and as a full-time professional programmer now,
no, I'm not able to.
I can do freelance projects and open-source programming,
some days being more productive than anyone ever met.
Other days, I'm in too much pain to even write a single
if and if in a C file or a header file.
I have an idea come to mind their days when I can't even write it to do,
to remind myself to do what it is I've just thought of.
But they can't fire you for that.
So, in the process of them finding a way to fire me,
well, things were done that shouldn't have been
and I came away poorly affected.
So when I got back in open-source development,
my core focus has been trying to make sure that my programming
would stand up to anyone's scrutiny.
And that's completely impossible.
It's cliche, but you can't please everyone all the time.
And it's true.
Just with any art, Jackson Pollock,
Da Vinci, Einstein, Sylvia Plath,
there are those that will say that's not art.
The books that Darwin wrote,
which are coming up on their 200th anniversary next year.
Is there art there?
I believe so.
Read Voyager The Beagle and tell me there's not art in those words.
There's not art in what he saw.
Was he an artist?
Yes, he was many other things, but he was an artist.
Did he impress and amaze people?
Yes.
Did he do so to everyone?
No.
God knows.
Did Galileo?
No.
Did Da Vinci know?
Because mine is Torval.
No.
Deserture's thought.
No.
Can you?
Can I?
No.
There's a time when I've had to face and we all have to face.
They have to stop looking at the canvas and planning and preparing.
You have to draw the line.
You have to write the line.
Whether it starts with less than question mark or less than question mark PHP,
an argument.
I would love to hear your comments on.
Whether it starts with int main, whether it starts with int end if,
and checks for header files.
Or whether it starts with a simple hash bane and the line to the interpreter of the script.
There comes a time.
No matter what you're doing, you have to stop getting ready for it.
You have to stop making it better.
You have to stop hoping it will be perfect.
There comes a time to draw the line.
Whatever you're planning on working on.
Whatever you're perfecting and editing.
Whatever you're creating in your mind.
Stop.
Right now.
Stop creating it in your mind.
Make it travel line.
Start creating.
Start releasing.
And do it because you know what it will become, what it can become.
And those that have things to contribute will do so by giving back code.
And that by tying you, you shouldn't have programmed it this way.
You shouldn't have done it this way.
Or your program's rotten.
The code's rotten.
That isn't a feedback worth listening to.
Anyone who can see your vision of what you want your program,
your project, your artwork to be.
They'll contribute the same way you did.
By drawing a line.
This was all inspired by my decision to make very big changes
in my biggest project, my game.
I've been working with an engine called Radium.
It's a very wonderful, easy to use engine.
Use a lot of open source libraries, platform independent.
But there's a lot of stuff it doesn't do.
For example, I spent five days trying to get it character to walk animated.
Not going to happen.
I already know how to do that in STL.
Simple direct media layer.
I can do it using Pearl.
Using C.
Or using Gombus.
And Gombus is the equivalent of visual basic for Linux.
Who knows?
I may write my game using that.
I also know how to do the same using the openGL
and the STL framework for mono.
Yes, mono using C sharp.
I know how to do 3D development.
My game is still being developed using Radium.
Because as I mentioned, I can contribute back to the libraries.
Contribute to Radium itself.
Which is what I'm doing.
But I had to stop planning.
I had to stop preparing for it to be ready.
And I had to start making my game.
And so I have.
I have a menu screen with five menu entries.
The exit and the credit screen both work.
What the other three are.
I'm not going to tell you.
But they don't quite work.
I'm working on a website with a hint at the storyline.
Which is far too complex to explain in this edition of expressive programming.
But I had to draw the line and just start making the game.
And so I have.
I've also had to do the same with expressive programming.
I've been working on trying to make it exactly what I want.
And every time I attempt to, I end up with something that's completely academic, boring, and loses all of its expression.
I will be producing expressive programming with a higher level of frequency.
I will also be releasing a second podcast focused on science and the scientific development.
This will be purely a hacker public radio series.
And again, special thanks to Enigma for your continued support in expressive programming.
And everything that goes on with hacker public radio.
Including the amazing community that's revolved around it.
Special thanks to the wonderful people involved with PHP women.
And to all my friends on Twitter.
Especially the podcasters and authors.
And to all the creatives I've met.
Even the doctors who are creative.
To those whose voices have contributed to this show.
But you haven't even heard them yet.
I've been trying to perfect it.
And I had to draw the line.
It's not going to be perfect.
But episode six.
Well, like I said, I had to draw the line.
I hope all are doing well in the season of snow and ice.
Or sun and shine.
Depending on your hemisphere.
I hope you're healthy, happy.
And I hope this finds you.
Ready to draw the line.
And then step over it and do it.
Make it out of your head into your IDE.
And make it happen.
Until next time.
Happy hacking.
I hope that you've enjoyed this episode of expressive programming.
If you'd like more information about me, my projects, my podcast or anything else.
Please feel free to visit my website at ubersheetgeekcheck.com.
If you have any questions, comments or feedback.
Please feel free to email me at feedback at ubersheetgeekcheck.com.
Warning.
I'm Flaky and I suck at email.
I'm also a member of the phpwomen.org community.
So wonderful place.
Any woman involved in development, please join us there.
Also another wonderful community that I'm involved in is devchicks.com.
All the development principles are welcome.
Please come along.
And lastly, I'm a proud member of both Linux Check.com.
That's check CHIC and Linuxchicks.org.
That's CHIX.
And there you'll find opinions and topics and anything you could want.
So any woman out there, please, you're not alone.
Come join us.
Lastly, I'm on Identica, Twitter and on IRC FreeNote Server.
I add UberChick.
Feel free to hop in, say hi, find me in a room,
PM me and I'm probably blocking.
Other than that, until next time, express yourself.
You're about to be happy, happy, happy, happy time.
You're about to be happy, happy, happy time.
You're about to be happy, happy, happy time.
You're about to be happy, happy, happy time.
You're about to be happy, happy, happy, happy time.
You're about to be happy, happy, happy time.
You're about to be happy, happy, happy time.
You're about to be happy, happy, happy time.
You're about to be happy, happy, happy time.
You're about to be happy, happy, happy time.
You're about to be happy, happy, happy time.
You're about to be happy, happy, happy time.
You're about to be happy, happy time.
