Categories
TechBiz

The No-Tech Invite Birthday Celebration

If you had to plan your birthday celebration and used no technology, who would show up? I embarked on this experiment about a week before my birthday on the 13th. I would only invite people if we were face to face. I wouldn’t use email or snail mail… just simple, literal word of mouth.

I ran into 5 people before my birthday. 1 I didn’t want to invite because last year he had an unreasonable personal emergency (I have to be in the City for my girlfriend at 2pm) that forced me to cancel my birthday celebration in the forest. And ya, no cell coverage. 2 couldn’t make it because it wasn’t convenient for them. 2 made it because they’re my friends that I’ve been hanging out with at least on a weekly basis.

On the day of my birthday, I ran into 2 people I knew but hadn’t seen in ages, and they sang, “Happy Birthday” to me from a car while I was walking down the street.

I had an Evite inspired birthday bash two years ago on the roof top of a building on Carl and Cole. Over 40 people showed up.

Technology based birthday: 40 people
Just using physical word of mouth: 2 people

I don’t want to say one is more real than the other… after all what is reality? Out of the 40 people that were at my technology based birthday, only 1 person showed up to my word of mouth birthday.

Categories
TechBiz

#php on irc.he.net harbors a racist coder

16:43 < barce> @niklas` i’m writing a connect4 game, and noticed that when i traverse
diagonals acutely or gravely, the only diff between the functions is their
operators: “>=” or “<=". 16:43 < barce> “++” or “–”
16:44 < barce> so instead of if ($x < $limit) $x++; i want to define an operator before hand. 16:44 < barce> e.g. $op = “++”; if ($x < $limit) $x{$op}; 16:44 <+impl> so you save one line of code?
16:45 <@horros> Now why the hell would you want to do that?
16:45 <@feti> i’m successfully confused
16:45 < barce> ya. why not?
16:45 <+impl> because it’s stupid
16:45 < barce> why is it stupid?
16:45 <+impl> Because you would have to implement runtime operator resolution so that you
don’t have to have an else { } block
16:45 < barce> not being curious is stupid.
16:46 < barce> right.
16:46 < barce> that would be pretty hard to do.
16:46 <@horros> No, being curious is good.
16:46 < barce> so i’m asking if there’s a language like that.
16:46 <+impl> I’m sure you could nigger rig it in ruby

Please, come on down to #php irc.he.net and let this impl dude know what a blight to humanity he is.

Categories
TechBiz WebApps

Algorithms in PHP

I started coding algorithms in PHP in order to beef up my coding knowledge. It’s been an interesting exercise so far because when I coded algorithms in college it was great using C pointers.

Categories
How-To TechBiz WebApps

The Code of Successful Websites

Hypothesis:

Coding is a free market enterprise. Wild-west coding or coding anarchy is more profitable and more likely to encourage progress than following any coding methodology. (I.e. waterfall, agile, extreme, pair coding, etc.)

I. This is shown by the source code of the most successful companies. The only commonality they share is that their most popular product feature was born of a non-methodological hack. It is only after the initial phase of success that a company brings order to the code.

II. The code that brings a company its first success is un-readable and un-maintainble.

III. Coding profitably is a result of breaking the rules and letting the market rather than the development process decide. Web analytics is vital.

IV. The consistency condition that demands coders code according to a design pattern or for the sake of maintainability is unreasonable because it either preserves an unprofitable coding methodology or obscures money making logic in the guise of readable code.

V. There is no coding method or technology however absurd or ancient that cannot be profitable. (My Space running on Cold Fusion w/SQL Servers as a back end.)

VI. There exists no code base that is capable of generating profit that is 100% in harmony with a given coding methodology. Many code bases are constituted by older technologies and older ways of making money; therefore a clash between methodologies is a sign of being wise and sensitive to changing markets.

Categories
TechBiz

Part II of Hegel, Coding and Managers: Your boss and Hegel think it’s life or death but it’s not

DISCLAIMER: This article in no way is based on previous or current employers, and/or clients past or present.

I have great admiration for Joel Spoelsky who runs Fog Creek Software, because frankly, his advice has helped me in my career when I’ve run into tough situations. He has helped me thrive. In his, “Fire and Motion” article, he made it really clear to me what productivity means as a developer.

He’s been seduced by a certain Hegelism that most managers feel deep down to the core, and he expresses it really clearly when he talks about finding great developers.

In the last piece, I talked about how coders work under the false notion that coding will somehow make them better managers. Hegel expressed this in the Phenomenology of Spirit where the slave somehow through her work becomes free. Marx would later exploit this romantic delusion of Hegel’s and we are still cleaning up the mess from this lost cause. Mind you, I am in favor of returning Che Guevara’s stolen rolex to Cuba.

In this piece, there’s a specific prejudice that managers have that you can see in Hegel’s Master-Slave Dialectic. The one who becomes the master does so because she risked all:

[I]t is only through staking one’s life that freedom is won… The individual who has not risked his life may well be recognized as a person, but he has not attained to the truth of this recognition as an independent self-consciousness. (s. 187)

Having risked all, the master is entitled to the enjoyment of the products of the slave and is the measure of the slave’s worth.

This sort of scrutiny and prejudice towards the slave can seen in the coder’s interview process.

Basically, you want a coder who can:
1) Do Smart Things
2) Do those Smart Things to Completion, i.e. Get Stuff Done

I’m not disagreeing with that at all, but let’s take the straw man of an example where Joel tells us not to hire the smart guy who can’t get things done:

‘People who are Smart but don’t Get Things Done often have PhDs and work in big companies where nobody listens to them because they are completely impractical. They would rather mull over something academic about a problem rather than ship on time. These kind of people can be identified because they love to point out the theoretical similarity between two widely divergent concepts. For example, they will say, “Spreadsheets are really just a special case of programming language,” and then go off for a week and write a thrilling, brilliant whitepaper about the theoretical computational linguistic attributes of a spreadsheet as a programming language. Smart, but not useful. The other way to identify these people is that they have a tendency to show up at your office, coffee mug in hand, and try to start a long conversation about the relative merits of Java introspection vs. COM type libraries, on the day you are trying to ship a beta.’

There are two criticisms here against the manager:
1) The manager was pretty dumb in hiring a guy who is an academic. Theory is the work of the academic. In their minds, they have already gotten stuff done.
2) The manager labors under a false sense of urgency, the sort of urgency that makes the master so oppressive to the slave in Hegel’s version of the story.
3) A combination of both.

You might be calling bullshit right now, but I know of a multi-million dollar company that would never call someone out on being too geeky like Joel did or brandish academic like a dirty word. That company is 37signals.

They did a unique experiment with a 4 day work week, and it’s turned out great!

Basically, they argue that urgency is poisonous:

One thing I’ve come to realize is that urgency is overrated. In fact, I’ve come to believe urgency is poisonous. Urgency may get things done a few days sooner, but what does it cost in morale? Few things burn morale like urgency. Urgency is acidic.

Emergency is the only urgency. Almost anything else can wait a few days. It’s OK. There are exceptions (a trade show, a conference), but those are rare.

When a few days extra turns into a few weeks extra then there’s a problem, but what really has to be done by Friday that can’t wait for Monday or Tuesday? If your deliveries are that critical to the hour or day, maybe you’re setting up false priorities and dangerous expectations.

If you’re a just-in-time provider of industry parts then precise deadlines and deliveries may be required, but in the software industry urgency is self-imposed and morale-busting. If stress is a weed, urgency is the seed. Don’t plant it if you can help it.

Categories
TechBiz

Hegel, Coding and Managers

DISCLAIMER: The comments here in no way reflect the work situation of my current employer, Dogster, or current clients, or any of my previous employers or clients.

I’ll share two secrets with you: Coders dislike their managers. Managers dislike their coders.

According to the 2007 Goldman Sachs survey of employee job satisfaction, most workers want out of their jobs, and tech work ranked in the top 5 of jobs with the least satisfaction.

I am concerned with coders and managers who don’t have the work situation I have, and I think that there are certain mythologies that coders and managers have that prevent them from having job satisfaction.

I think Hegel is the instigator of these mythologies.

Hegel

I found these mythologies that coders and managers base their gripes on within what Hegel calls the Master-Slave Dialectic.

I encourage you to read the wikipedia entries.

I will follow up with two posts.

Part I: I talk about how coders use mythologies that prevent them from seeing their work situation for what it is. Although these mythologies originate in Hegel, they pervade media, e.g. Dilbert.

Part II: What do managers say about coders? To get to this information, you have to go behind the scenes. It isn’t at all pretty the sorts of prejudices managers have towards their coders, and if they could free themselves from these, they would enjoy management much more.

Categories
TechBiz

What’s Your Favorite Open Source Project?

I’m a big fan of OAuth, because they’re coding a way of sharing your private data between different websites without having to give any 3rd party your password.

What’s your favorite open source project and why?

Categories
TechBiz

Keeping It Real On Social Networking

I un-friended 50 people today and it feels good.

I applauded Twitter’s decision in July of 2007 to change “friend” to “follow”. It took one more falsehood out of the pile of lies that is the Internet.

I had to look at my Twitter followers and who I was following. I did the same with Facebook. I saw quite a few spammers, posers, users, and those who were a combination of all three.


A pic of how easy it is to fake friendship
figure 1. It’s easy to fake friends.

There was one person, who shall remain nameless, that really used me and hurt me. This person has managed to “friend” the top people in the Web 2.0 industry and has made it appear like s/he was the friend of all these top people thanks to carefully placed comments and strategic friending on Twitter, Facebook, Flickr, and Upcoming.

Imagine my embarrassment when I showed up at a function with this person and my real friends revealed that they didn’t know this person at all.

Anyway, one of my goals is to keep my Twitter and Facebook connections real and I won’t hastily add “friends” anytime soon.

It’s a sad thing that nobody reads Book 8 of Aristotle’s Ethics anymore.

Here are two quotes that serve as a commentary of our age of easy friending:

“Those who quickly show the marks of friendship to each other wish to be friends, but are not friends unless they both are lovable and know the fact; for a wish for friendship may arise quickly, but friendship does not.”

“Those who are friends for the sake of utility part when the advantage is at an end; for they were lovers not of each other but of profit.”

And what am I going to do about it?

I’m planning on making a social network where it’s actually difficult to friend people. The idea is that you can’t be someone’s friend unless you complete a task that shows your friendship for someone and have that verified.

Crazy?

Yes.

Doable?

Definitely.

Let me know if you want to work on this project.

Categories
TechBiz

What’s the Oldest Program You Have That You Wrote?

The oldest piece of code I have that I wrote is a text-based poker program.

Here’s a screenshot:

Picture of a text-based poker game

I wrote it for my first college computer programming class in 1995.

To use the code on a unix machine:
tar zxvf Poker-1.0.tar.gz
cd poker-1.0
make
./poker

What’s the oldest program you have that you wrote?

Categories
TechBiz

Laptop-less Meetings and No Wifi Cafes

It seems that out is the new in.

At Dogster, we have laptop-less meetings.

At the Reverie Coffee Shop, there’s no wi-fi, which is great for having a place where folks still meet, greet and have conversations.

no tech in meetings

Here’s the LA Times article.