Archive for the ‘the tech industry’ Category

America in decline

Monday, February 1st, 2010

I think it is odd that people are nowadays writing about “America In Decline”. The subject was a hot one in the 1970s, and back then I think it was valid. Nowadays I think it is pointless. Yet this kind of thing has become common:

When I was a schoolboy in California in the 1950s and ’60s, the freeways were new and big and smooth—like the new roads being built all across China. Today’s California freeways are cracked and crowded and old. A Chinese student I knew in Shanghai who has recently entered graduate school at UC Berkeley sent me a note saying that the famous San Francisco Bay Area seemed “beautiful, but run down.” I remember a similar reaction on arriving at graduate school in England in the 1970s and seeing the sad physical remnants—dimly lit museums, once-stately homes, public buildings overdue for repair—from a time when the society had bigger dreams and more resources than it could muster in the here and now. A Chinese friend who flew for the first time from Beijing to New York phoned soon after landing to complain about the potholed, traffic-jammed taxi ride from JFK to Manhattan. “When I was growing up, these bridges and roads and dams were a source of real national pride and achievement,” Stephen Flynn, the president of the Center for National Policy in Washington, who was born in 1960, told me. “My daughter was 6 when the World Trade Center towers went down, 8 when lights went off on the East Coast, 10 when a major U.S. city drowned—I saw things built, and she’s seen them fall apart.” America is supposed to be the permanent country of the New, but a lot of it just looks old.

Books like The European Revenge are worth reading for perspective. Published in 1975, it made the case that Europe was passing up America. Soon, it said, European car makers, such as Mercedes and BMW, would be able to make cars every bit as good as those made in America. And of course, that turned out to be true.

I’ve noted before that employment shows a 50 year decline. Worse, permanent unemployment has been on the rise for a very long time, as industry after industry leaves America, starting with textiles back in the 1960s.

Back during the 1980s, when I was a teenager, I was obsessed with the fact that America was in decline. Rising debts, rising deficits, the loss of industrial jobs, rising crime – everything was moving in a bad direction. I recall my dad and I having a lively debate on the issue in 1982, when a cousin of mine bought his first condo. He was only 22. My dad saw the purchase as an example of America’s great affluence, whereas I saw the purchase as an example of American’s addiction to debt. I lacked the right vocabulary, but I also tried to express the idea that a home was a form of consumption, and America had too much consumption and not enough production. It would have been better for the country if my cousin had used the money to create a start-up instead.

America certainly had a rough 50 years, but I’m happier where things are now. At the very least, there is a vibrant startup scene, and more recognition of the need for innovation. The current recession is good in one sense – day by day, there is less sleepiness, less reliance on the status quo. Things are awful, right now, but I’m optimistic that the people are turning in the right direction. “Decline” is the wrong verb for the moment. When you are lying on the floor, knocked out cold, you are not declining, rather, you have already declined. All you can do from that point is wake up and get up.

Forms in Symfony

Friday, September 25th, 2009

For people new to Symfony, this is a good write-up of the new forms framework, introduced a year ago in Symfony 1.1.

Pushing WordPress to the limits of customization

Tuesday, September 8th, 2009

My friend Lark just made live a site she’s been working on for a lot of the summer, the new Stripes Group website. She pushed WordPress to the limit, in terms of customizing it to achieve the kind of CMS that the client wanted. To get this much customization, she was helped by 3 plugins. The first 2 plugins allowed her to customize the backend dashboard:

Adminimize

Capabilities Manager

These allowed her to customize the roles that the employees of the client would have when they log into the dashboard, and it also allowed her to control what they would see. The full WordPress dashboard has become very complex, more than the average employee would want to deal with, so these plugins allowed her to remove some of the unnecessary complexity, as well as specialize some of the roles that the employees will play.

The other plugin she used was More Fields.

I was lucky enough to get a glimpse of the work that Lark was doing on this site, and what she did with More Fields really blew me away. In the past, talented developers like Darren Hoyt have relied on Expression Engine when they’ve needed to create custom listings. But Lark was able to do nearly everything that Expression Engine allowed Darren to do in the past. Personally, this really opened my eyes to how far you can push WordPress. Lark turned it into a full scale CMS, able to handle a complicated site. With More Fields, she gave Stripes Group the ability to control most of the content on the site. For instance, she was able to create a custom type of data for the entries about team members. This gives the client the ability to control the content of the team member pages, update the info, and also control the order of appearance, both in the sidebar, and on the main team page.

Very impressive work.

Glimmer, an effects library built onto top of the jQuery library

Tuesday, May 5th, 2009

Haven’t tried it. Could be interesting. Glimmer.

Comparing web browsers: FireFox, Safari, Chrome

Sunday, March 15th, 2009

For much of the last 3 weeks I’ve used Windows laptop running XP (instead of my usual Ubuntu Linux machine) which gave me a chance to try out some of the browsers that have no Linux version.   One of the greatest aspects of the current web development scene is that most of the surviving browser projects are competing on how well they can implement web standards and HTML5 (contrast the current scene with 1996, when Microsoft set out to break the web, with its “embrace, extend and exterminate” strategy).

I’ve already noted that FireFox seems to have surpassed Internet Explorer, in terms of usage. Microsoft will hopefully soon kill Internet Explorer and replace it with something else.

I admire much of what Brendan Eich has done. And for the last several years, FireFox has been my web browser of choice. But FireFox drives me crazy with its demand for resources. Compared to any other browser I’ve tried, it demands more RAM. With just one window open, it will grab 60 to 90 megs of RAM (compared to, say, 14 for Chrome). With several pages open, which is normal for me, FireFox will grab 200 to 250 megs of RAM. Chrome might grab a 3rd of that. (These statements are true for FireFox 2 and 3, and Chrome 1.)

FireFox allows plugins, which is the main reason I use FireFox. The Firebug and Session Manager plugins are essential tools for me. However, FireFox doesn’t police the resource usage of these plugins. They can crash any machine: Macs, Linux, Windows. (Those of you who want to claim “Linux never crashes”, please note that a process can use up most of the memory on the machine, and then the machine becomes unresponsive. For the user, this is the same as a crash, even if in some hair-splitting way it avoids the technical definition of a crash.)

Chrome has the kind of plain, minimalist design that is a signature of most of Google’s products.  I like it a lot, though it has many annoyances. Yahoo Mail normally auto-suggests email addresses as I start to type them, but this doesn’t happen when I use Chrome. Also, when using WordPress, Chrome embeds inline styling, whereas other browsers do not. Also, again with WordPress, Chrome erases all line breaks every time I update a post, so that the text is reduced to one giant paragraph. Basically, most of the Javascript that is out there was not written with Chrome in mind, and Chrome has some kind of conflict with it. Also, surprisingly, I’m not able to log into some of my favorite forums with Chrome.  I get no error message, but I am not treated as logged in, even after giving the correct username and password (I have the same problem in Safari, but not in FireFox).

Scrolling a web page, using the arrow keys on the keyboard, is important to me. I read a great deal online, and for me it seems natural to want to use the arrow keys to move down the page as I read. Here is one area where Chrome is especially good. It scrolls smoothly. FireFox is usually broken in this regard – it tries to move the cursor down the page, but if the HTML is laid out in a way that allows the cursor to skip the main text of the page, then FireFox simply drops to the bottom of the page. This drives me crazy.

Safari 4 seems to be in between Chrome and FireFox in terms of resource use. It is wonderfully standards compliant and leads the way in supporting HTML5. I admire it for that, though until more browsers support HTML5, I can’t imagine using any of the new tags on a commercial web site.

Right now I can see using FireFox when I want to use my favorite plugins, and I can see using Chrome when I want a fast web browser, but I’m not sure what would cause me to use Safari.

I’m comfortable making this prediction: IE will continue to fade, and Microsoft will continue to fade, and FireFox, Safari and Chrome will all have more browser share a year from now than they currently do. So it is time for designer to start checking their designs in all of these browsers.

JournalSpace loses all data in its database and has no backup

Saturday, January 10th, 2009

This is a horrifying failure of risk management and system administration good practice:  JournalSpace loses all data in its database and has no backup:

Blogging platform JournalSpace (which I’d never heard of to date) has ceased to be, following a wipe-out of the main database for which there was no back-up in place. According to the JournalSpace blog, the database was overwritten as a result of a malicious act from a disgruntled ex-employee.

The lack of backups is the fault of management, for they had the authority to make better decisions, and they had the ethical responsibility to protect the data of their users. Nevertheless, they try to shift the blame to one of their employees:

It was the guy handling the IT (and, yes, the same guy who I caught stealing from the company, and who did a slash-and-burn on some servers on his way out) who made the choice to rely on RAID as the only backup mechanism for the SQL server. He had set up automated backups for the HTTP server which contains the PHP code, but, inscrutibly, had no backup system in place for the SQL data. The ironic thing here is that one of his hobbies was telling everybody how smart he was.

The employee might be guilty of criminal actions here, but that doesn’t let management off the hook for having been so unprepared. If it hadn’t been an employee it might have been a tornado or earthquake or some other disaster – and the blame still would have belonged to management. Multiple backups, in different locations, is the precaution that a responsible company must make.

cb sums it up well in the comments:

lol, gotta love an internet company that has ‘a guy handling IT’. As if the IT side of things is an afterthought-which apparently it was in this case.

There is a second part to this story that I find very sad. One of the users of JournalSpace, a woman calling herself tinythoughts, shows up in the comments at TechCrunch and expresses her sadness, whereupon she is immediately attacked for her having ever used JournalSpace. I am puzzled and worried by the attitude that would defend the company and blame the customer.

This is tinythoughts:

i had one of the oldest journals on journalspace. i am really upset about losing about 6 years of writing, and my layouts which i made. it was bad enough when they lost years of comments. this is far worse. i am pretty sure i archived most of everything up til about a year ago on my external hd. i’m actually a lot sadder about this than i thought i would be.

This is the criticism that is then thrown at her:

If you value your work so much, you shouldn’t be using something that’s free and expect not to lose it.

At the end of the day, piss all you want. It’s your damn fault for leeching off a free service and expect it to continue to provide for you.

The day of FREE is over!

And then this was her response:

it wasn’t free. i was a paying customer for most of the time i was on there, until the first big data loss. after that, i did not get a pro account anymore and also began to write less on there.
as for losing my stuff, which i did value, as i said, i did back it up myself after that first data loss. however, i liked it where and how it was, accessible online to me and anyone else. we are talking about almost 6 years of content. that is not some small thing. even if you’re dumb, you should be able to understand that.
btw, i work in this industry myself, and i am pretty sure the days of free are not over. but all the best to you on being rude anonymously to others online.

She also adds:

I don’t believe their story. I think there is more to it. They’ve had problems before and they always lay it out like their users are technically stupid and willing to accept any dumb answer given to them. What happened really was a great loss for many users, who had been there for years, a community of really great people. The greatest loss is all of the time, life, love, and community each of those users put into journalspace, where it was all documented and washed away like sandcastles on the beach. I might be upset for my own loss, but not nearly as sad as I am for many of my friends there. I think journalspace owes them more than a lame excuse and an empty sorry.

The fact that someone is willing to attack the customers in this case, rather than the grossly irresponsible company, actually saddens me more than the already sad fact that a lot of people lost years worth of work. (Though if I lost that much work, I’d cry for days.)

Mixins are bad?

Sunday, January 4th, 2009

Interesting post by Michele Simionato:

The idea of creating classes by composing reusable collections of methods is quite old: for instance Flavors, and old Lisp dialect, featured mixins more that 25 years ago. Nevertheless, there are still people thinking that the idea is new and cool: as a consequence, we see a lot of new code where the idea is misused or abused. Writing a paper showing the downfalls of mixins is in my opinion worth the effort.

Injecting methods into a class namespace is a bad idea for a very simple reason: every time you use a mixin, you are actually polluting your class namespace and loosing track of the origin of your methods. In this sense, using a mixin in a class is just as bad as using from module import * in a module. However, everybody agrees that it is much better to use the full form mymodule.myname instead of importing all the names in the global namespace, but nobody realizes that importing methods into a class via a mixin is potentially just as bad.

For instance, have a look at the hierarchy of the Plone Site class which I report in appendix. Between square backets you can see the number of methods/attributes defined per class, except special attributes. The plot comes from a real Plone application I have in production. The total count is of 38 classes, 88 names overridden, 42 special names and 648 regular names: a monster.To trace the origin of the methods and to keep in mind the hierarchy is practically impossibile. Moreover, both autocompletion and the builtin help facility become unusable, the self-generated class documentation become unreadable since too big.

In other words, a design based on mixins works for small frameworks, but it does not scale at all to large frameworks. Actually, Zope 3 has been entirely rewritten with the goal of avoiding the mixin abuse of Zope 2 and to use composition instead of inheritance (this is basically what the buzzwords Component Architecture really mean).

A consequence of namespace pollution is that it is very easy to have name clashes. Since there are hundreds of methods and it is impossible to know all of them, and since method overriding is silent, this is a real problem: the very first time I subclassed a Plone class I run into this issue: I overrode a pre-defined method inadvertently, by causing hard to investigate problems in an unrelated part of the code.

Her argument against mixins sounds like the arguments against big inheritance trees, and she reminds me why composition is better than inheritance. Mixins, in her telling, are even worse than inheritance because the inheritance is less explicit and comes from so many directions.

Of course, composition can lead to tight coupling, which makes code old and brittle and resistant to change. Composition can be done in a loose way if you use a lot of wrapper classes, insulating the calling class from the class that is called. Lots of wrapper classes can have the problem that they slow the code down, and make it more complex. I went down that road, once, years ago, and then eventually I got angry at my own code, for being too complex.

I eventually came up with a simple manager of dependency (a single object that manages dependency throughout the code).  One of my goals has been to keep my code as easy-to-read as possible for any future programmer who might have to replace me. I worry about the complexity that comes from inversion of control and dependency injection, but that is one viable way of maintaining loose coupling as my code evolves over time. Introducing a dependency manager is one of the few design decisions I’ve made that possibly makes it harder for new programmers to understand my code, but I believe the benefits out weigh the risks.

This computer programmer can work for free

Friday, December 5th, 2008

I’m interested in working with someone whose aim is to set up a profitable, high-traffic online magazine. I’m willing to work without a fixed payment, for a specific kind of client and project, which I’ll describe below. To be clear, for a particular kind of project, I’d be willing to work simply for a percentage of the money you make. If you are willing to listen to my advice, then I am happy to share the risk. If you don’t make any money, then I am working for free.

I’ve spent the last 6 years working with various startups, most of which, at some point, went in the direction of magazine style content sites. I had a few clients who dabbled with the magazine format, while focusing on software development, and I had a few other clients who were mostly focused on content rich magazine style sites. iHanuman.com is an example of a site that has used magazine style writing to develop an audience for its yoga store. I was the lead programmer on that site. The Second Road has also lately seen dramatic growth of traffic on its blog.

I now understand how to launch and grow a content site. I’d like to work with a client who is attempting to set up a blockbuster.

I envision myself putting in 20 to 40 hours a month. I can imagine putting in 6 months like this, which would be plenty of time to get your site up and running. I will offer advice about technologies to use, writers to hire, and how to  pace the writing and payments of writers. I can do whatever programming fits into my limited time, though custom programming can easily demand more than 20 to 40 hours a month.

The subject of your site is not crucial to me. Whether your focus is fashion, sports, television, fishing, yoga, politics, sex, travel, health or more, I’m equally interested.

For the kind of site I’m thinking of, the initial budget should be between $50,000 to $100,000. Here I wrote some about what factors effect the price of websites:

How much do websites cost?

The types of clients I’d like to work with I’ve described here:

Who we would like to work with

I’d be willing to work for free as a consultant and programmer for your project, if you and I felt we were right for each other. Please contact me here, if you are interested:

lkrubner @ geocities.com

434-825-7694

Using cloud services instead of dedicated servers

Friday, November 21st, 2008

In late 2005 I was working at Bluewall and the owner of the company became convinced that some of the sites we were building were about to go super nova, so he got a second server from Rackspace. This was a stupid decision, but it is a a common one. I find clients often get over-excited about their projects. I’m sure some of this excitement is a healthy part of being emotionally invested in the project that you’re trying to bring to life, but that same excitement can lead to needless expense. Dedicated servers from RackSpace are expensive and, as it turned out, Bluewall’s need for extra servers was years in the future. The purchase decision in 2005 represents a lot of wasted money. So why didn’t the second server get shut down? Because once you have even one (low traffic) site on a server, it becomes a pain to shut down that server.

The Second Road had a similar experience. They started off with 3 dedicated servers, plus a firewall and load balancer, from Rackspace. The cost was $1,800 a month. When we got involved with the project, we moved the site to a server from Hostway, which costs us $150 a month (and on which we have several other websites, all sharing one server). So far, this has met all of the Second Road’s needs on the web.

Dedicated servers represent a lot of potentially wasted resources, especially for a small startup which may grown quickly, but which also may NOT grow quickly.  And what is growth, when you’re talking about traffic? If you get mentioned on BoingBoing, and suddenly you are getting 200 requests a minute, and your server collapses under the load, is it time to get another server? What if the spike in traffic lasts 2 days and then dies away and never comes back? If you get another server based on that one spike, you’ll regret it. Unless the spike is permanent. In which case you’ll regret not getting that extra server sooner.

These experiences have me interested in the new cloud services, which promise just the right amount of computing power that your site needs, no more no less. The idea of the “cloud” is that you can scale your resource needs up or down in increments finer than a whole server. So for the next big client we get we will try a cloud service. These are 3 we are looking at right now:

Mosso (this was just bought by Rackspace)

Amazon

IronServers

There has been a lot of investment, by a lot of companies, in cloud services and, really, it is hard to keep up. The fact that as good a company as RackSpace was willing to buy Mosso speaks well about Mosso. Since there is no way to evaluate all the contenders now competing in this field, we are forced to look at the best known, and then one of the somewhat unknowns, just as a test.

For the Amazon services, one of the best known users is SmugMug. They’ve mostly written about the S3 service, but also some about the cloud service.

Amazon is also now moving into the Content Distribution Network business. This is an aspect of building websites that we haven’t yet researched much. My feeling is that neither us nor our clients will ever be interested in the nitty gritty details of getting content to every corner of the world. We don’t want to be up late at night wondering “Is the site running fast enough in Malaysia?” So we’re pleased to see Amazon in this space and we hope they do a good job, because certainly we will give them a close look, if we ever work with a client who really needs that kind of scale.

This is from the article on Ajaxian:

With nearly 2.5 million requests per day to the jQuery website, the jQuery project team is constantly on the look out for ways to decrease hosting costs while still managing the growing number of requests for the site’s resources. Originally leveraging Amazon S3 for many of their static pages, the project has now turned to Amazon’s new CloudFront CDN. The change has allowed for jQuery pages to be globally hosted as opposed to being centrally located in Amazon’s Seattle-based S3 hosting center.

In tests, John Resig, team lead for the jQuery project, noticed substantial performance gains based on the switch:

I ran a similar test here in Boston and even managed to see a large improvement. I was seeing latency of anywhere from 50-200ms on Amazon S3, but only a latency of 17-19ms with CloudFront.

What does all of this mean? It means that the jQuery site is going to load even faster than it does now. We already receive some excellent hosting from Media Temple but being able to off-load these static files to the fast-loading servers will only make for a better browsing experience.

In less than 24 hours the project had received almost 2.5 million requests for over 50GB of data. The only drawback is an increase in bandwidth costs but still substantially less than that of a traditional hosting plan. The jQuery project makes use of the Google AJAX API as well and recommends it as choice for linking to the jQuery and jQuery UI libraries.

Should a site be built to scale when you’ve no idea if it will be successful?

Monday, June 2nd, 2008

Nati Shalom writes about the crisis of scaling that hits startups once they become successful. Most startups are unsure if their idea will be successful, so they do not, initially, waste any energy planning to scale up. Instead, they do what is necessary to get to market as fast as possible. If they are then successful, they must then re-engineer their architecture to take scaling into account. Shalom offers some tips on how to do this. He also feels the problem can be avoided from the start:

Are we all doomed to go through this painful process when we are successful?

We seem to take it for granted that dealing with scalability is complex. When we start a new application it’s hard to know whether we’re ever going to be successful to the point where the investment in scalability is worth the effort. At this initial stage the important thing is time-to-market. We want to get our idea out there as quickly as possible. This is a reasonable desire as indeed most projects don’t take off.

Now imagine what would happen if dealing with scalability wasn’t that difficult. That would have change the entire decision making process, and would enable Twitter and many others to start with a scalable architecture from day one, avoiding this painful process.

So the question is what would is required to simplify building a scalable application to the point in which it is as simple as building it for a single machine?

From my experience, most challenges have already been faced by and dealt with others – so the first thing that I did was look at how others (not necessarily in the same industry) addressed this issue.

In this case, storage virtualization is a good example. At first, we used local disks. Local disks tend to get filled-up quite fast. It was very hard to deal with this problem as it required replacing the disk with a bigger one every time full capacity was reached. IT had to go through this process for every user and every application — very painful and costly. The solution came in the form of NAS and SAN, or network-attached storage. Instead of using a local disk, use a virtual disk that resides somewhere on the network. The user and the application don’t need to be aware of it, because they use a local disk driver that virtualizes the network devices to make them look as if they were just another local disk. The application scales but hasn’t changed as a result. We can add and remove devices as we wish with no changes to the application. Later on, if there is a more cost effective solution available, we can easily replace the devices.

We can apply the same concept of virtualization to the middleware stack — namely the data, the messaging and the processing — with the same degree of simplicity. The application interacts with a “proxy” that hides the details of how a message or update operation is routed, how fail-over is handled, how data is partitioned and so on.

With services such as Amazon EC2, and other cloud environments, this can be made even simpler, as we can have a pre-configured image and hardware ready for deployment. All we need to do is just deploy our business logic. (See an EC2 example here).

With today’s frameworks architectures, we don’t have to go through the same painful experience. We can build scalable architectures from the get-go. I would even argue that it takes less time to build applications with this approach than the traditional client-server approach.

I suppose Sam Ruby likes Erlang for these same reasons – automatic concurrency.

I do think that Shalom is under-estimating the degree to which emotions, self-esteem and uncertainty combine to ensure conservative choices that may be painful later on. His example of disk-virtualization is a fine representative – none of the start-ups I’ve worked with have choosen to use Amazon S3, even though they all might benefit from it later on, and it is relatively simple to use. But a lot of people starting a new venture will collect together people they like working with, and the entrepreneur who gets the project going will make use of the skills that his/her team already has, rather than asking them to learn a new skill, like amazon S3.

Almost incoherent, except for the good parts

Sunday, June 1st, 2008

 Zed Shaw has posted a rant about everything he hates in the Ruby community. The rant is so over-the-top that is impossible not to find it entertaining. It is rare to see anyone with 21 years experience post anything like this in public. Most people in his position would be worried about their careers. He, apparently, is beyond the point of caring.

At times, the rant is almost incoherent:

Alright people, time to get a huge grip on reality’s collar and hold on tight.

Ruby on Rails is not a mother fucking industry!

Jesus fucking christ on a goddamned pike you absolute mother fucking donkey dick sucking morons get a fucking grip!

You are not in an industry. You are a bunch of people barely scraping by in a tiny little sector of a moderate sized piece of the economy. Gaming alone makes you all looks like the pathetic little crumbs I brush out of my toaster when it smells bad.

He makes a few good points though:

Where I work the company is willing to blow huge amounts of money on a consulting firm or hardware, but ends up firing people when times get tight. It’s a universal mass hysteria that paying $100 – $200 per hour for a group of consultants is preferable to simply hiring good employees. At the rates companies pay these consultants they could hire 4 full time employees.

Consultancies used to provide a service by managing the entire project so you didn’t have to do much. Now with Agile and Pair Programming the consulting firms can dupe clients into helping them make the sausage, provide little to no services, yet still charge insane rates. What’s impressive is these consulting firms somehow charge rates that are 5 or 6 times what they pay their employees.

Let’s take ThoughtWorks as a classic example of the hysteria. They decided to get into the Ruby on Rails game and went full bore. I was telling people right when Rails came out that doing it for internal projects at big companies would be a huge money maker. Nobody believed me, and now rather than all my smart friends working on cool applications for big money I have ThoughtWorks fucking up my party.

Before you continue this part of the rant ask yourself a question:

How did ThoughtWorks go from 0% Rails business to 60% Rails in just a few short months, but somehow didn’t hire that many top notch Ruby guys? Remember, if 60% of your business is Rails then 60% of your people need Rails training or else you have to hire more people. If they didn’t hire any more people than that means…the people they had were retrained. With two week training courses. Huh? How does that make them experts?

What happens if you do that is you have a group of former C# and Java guys running around writing shitty Ruby code and training on the client’s dime for huge fees.

Some of the post seems to border on libel:

In the two projects I’ve taken from ThoughtWorks I found mountains of horrible, horrible code. They of course try to pull the classic “there’s many ways to do everything in programming” but this time they kind of get caught because Ruby on Rails means stay on the Rails. There is an established best practice way to build web applications with Rails and that’s the entire point of the system. When ThoughtWorks fucked up these projects they did it in such a completely deviated way that it was impossible to defend.

Additionally, the people they placed on these projects were not well trained at all, had no idea about simple Ruby idioms let alone good design, and spent more of their time drinking and having fun than actually getting shit done. At the last project they actually had bottles of Pedialyte in the fridge to help with their hangovers after wild nights partying.

Women have been driven out of tech since 1989. Why?

Saturday, June 9th, 2007

I need to post something to inaugurate this blog, so I will start by reposting some comments I wrote over at Burningbird.

Shelley Powers suggests one of the things that leads to gender disparities in the tech world:

If Tim Bray wants to get a better idea of why there aren’t as many women seemingly interested in Ruby, Rails, or associated technologies such as Ajax, he needs look no further than sites like Ajaxian. In all of the time I’ve been reading the site, it covered women–our contributions, as writers, as techs, in any capacity–a grand total of three times. Which is why I decided to unsubscribe from the site today. It’s not for everyone interesting in Ajax–only the boys interested in Ajax.

Someone in the comments suggested:

I think part of it, at least in the RoR world, is that there’s just so much focus on who the hotshots are, and so so much cronyism.

My thoughts:

I don’t know if it’s useful to look at this issue on the micro level. Questions like “Does the RoR community have enough women?” miss the point. The problem is large scale. The number of women receiving advanced degress in computer science peaked in 1989 and has since been in steady decline. That number is, I think, a useful metric for measuring women’s participation in computer science. Whereas women have made dramatic gains in the legal profession, the medical profession, and in managing large enterprises, they have lost ground in the computer industry.

I’ve yet to hear a great explanation of what’s chased women away from the tech industry. The decline since 1989 is easy to measure, yet most of the explanations that I’ve heard are contradicted by the dramatic gains women have made in the law and medical industries.

Consider a few of the most simplistic explanations:

Women don’t like hard science? Nothing is tougher than organic chemistry, which tens of thousands of women have had to master on their way to becoming doctors or “nurse practitioners” (the highest level of nursing).

Women don’t like long, brutal hours? I’ve a friend who just went through the UVA medical school. During her last year of school her average work week was 90 hours. Sometimes it was longer. 90 was the average.

Women are no good at math? I could repeat my comment, above, about organic chemistry, which involves some tough math, but I’d also like to add that I’ve been doing programming in script languages for 12 years now, and I’ve never needed advanced math. Not all programming involves gyroscope stabalized frictionless vector navigation for NASA space craft.

Women require balanced lives, and are unwilling to spend time away from their families? Relative to law and medicine, the tech industry provides more flex time and more chances to work at home. Also, women do put in long hours in the fields of law, medicine, management and marketing. It’s just tech, in particular, where women have been driven out.

Women are drawn to the more artistic side of things, they don’t like technical stuff? Pure sexism, but even if it was true, it wouldn’t explain why graphic design for the web (the artistic side of web work) has become so male dominated, with stars like Eric Meyer and Dave Shea keynoting every design conference.

It’s clear that women have been chased away from the tech field since 1989. The numbers are clear about that, and match what anecdotal evidence most of us can offer. But why? I’ve yet to have a eureka moment, where someone offers an explanation so clear that I simply jump and go “That’s it! That explains it all!”