Tue Feb 9 12:57:00 2010 | !: 1508 | $: 2619 | 1: 8684 | 2: 12792

4/28/2006

gotta love spam filters

Filed under: — michal @ 10:41 am

I just lost a new client because he didn’t get any of the emails I sent him. He’d email, I’d reply, and then later I’d get another increasingly frustrated email from him saying he never heard from me.

Spam filters are great but if you don’t bother to check them once in a while, they can hurt a lot more than they help. :/

2/3/2006

project stream breakthrough

Filed under: — michal @ 10:17 am

I’ve been listening to Lean Thinking during my cardio workouts lately. It’s about identifying the flow of value in your system and eliminating wasted time and effort. There’s a lot of overlap with the Theory of Constraints concepts, but it reaches the conclusions from a different angle, following the trail left by Taiichi Ono and other smart people at Toyota since the 1960’s.

Anyway, last night I found myself struggling with a dilemma concerning a support request. I currently have a 30 second timeout rule in place for scripts on my servers, and it was killing somebody’s backup script. On the one hand, it would be quick and painless to whitelist that one script, but that doesn’t really solve the problem in the general case, and other people are sure to have the same issue. On the other hand, if I decide to fix it the right way, I’ve either got to do that project right now or I add it to the project list, which was beginning to feel like a black hole into which ideas vanished without a trace.

So I decided to apply some lean thinking to the problem and identify the value stream. Well, I realized I was actually dealing with the intersection of three different streams:

  • the flow of information about his script through the monitoring system
  • the flow of this particular issue through the support system for this one customer
  • the flow of the “permanent fix” through the project queue

Each of these streams (support, system administration/monitoring, and development) produces value for my customers in a different way, delivering the three things I advertise in the speech bubbles in the comic at cornerhost.com:

  • fast, reliable apache web hosting
  • friendly help from actual human beings
  • an ongoing commitment to making it even better

Every time an issue like this came up, I seemed to be pulled in three different directions: solve the problem immediately for the customer, fix the system, or defer the whole thing because there’s so many other things I need to be doing.

This conflict invariably leads me to the quest for a new project tracking system. I don’t know how many issue trackers I’ve tried to adopt or implement over the past few years. Nothing ever did what I want. This past November, I spent pretty much the entire month grappling with this problem and attempting to implement a system from scratch, but I failed.

So last night, after whipping up a “simple” project database in OpenOffice and then hitting the same brick walls yet again, I decided to apply some lean thinking to the project queue and map out the value stream. Generally it either looks like this:

  1. identify- a customer makes request or I spontaneously have an idea
  2. implement- I just do it
  3. announce - I tell everyone about it on a blog or the mailing list

Or this:

  1. identify
  2. wait - I add it to the project list
  3. (the end)

In other words: most of the time I either did things as they came up or I didn’t do them until the next time they came up, hence the black hole symptom.

When I first read Getting Things Done, I “got religion”, but saw it as a software problem. I had so many projects that keeping the project list and next action list up to date was just an overwhelming task. It was too much for paper (and I tried). It was too much for a database or text file. I was certain that I needed a perfect tool to help me filter and sort the list. I needed to go through and add time estimates and priorties and then code all this special logic for the relationship between tasks when I broke a project down. Basically I felt I needed a huge investment in software.

The thing about Lean Thinking and the Theory of Constraints is that you don’t need a huge investment to make them happen. You just learn to think in a different way and you suddenly find ways to get a whole lot more throughput from older, smaller, and less efficient systems. The Lean Thinking authors go so far as to say that if you think you need to invest a whole lot of capital to make a lean transformation, then you simply don’t get it yet.

Well, I didn’t get it.

So once I had that value stream mapped out, I realized that the real problem was that nothing about the project list was triggering me to act. I did keep up with the the top few urgent things on the list, but mostly I work from my daily to-do list and use the project list as a storage for the future. But my daily list isn’t based on the tasklist, it’s based on whatever’s urgent, which means a lot of valuable ideas just get buried on the list because they’re not urgent. And when I finally did get caught up and work on something that’s important but not urgent, I’d look at the project list and either run away in fear or decide, once again, to find the perfect system to manage all these projects. Prioritizing the list seemed so daunting that nothing about it ever really motivated me to do any of the projects.

So last night I stopped myself and decided to search for a simple solution. I tried to really explore why I felt I needed something more than a simple outline.

Well, it turns out that one of the main issues is the idea of a split between projects and actions. In Getting Things Done, these are two separate lists. You can’t “do” a project, you can only do the next action for the project, but I always had a tremendous amount of trouble separating the lists. As soon as you do this you have to start making sure that each project has a next action on the list, and then there’s prioritizing the two lists, and (to me) it’s just really hard to get a big picture of what needs to be done once you separate the lists. But the only reason I was separating the lists was because David Allen said to, and I drank the Kool Aid. So I merged the lists. I gave the projects short names so I could still have room on the line for the next action. Then detail information about the project or action goes in the body of the outline.

Then came the whole sorting and priority bit. This seemed really important to me, because I wanted three different views of the data. Depending on my mood and the time available, I either wanted to see what was urgent, what was important, or what was quick and easy. I felt the way to handle that was to assign a set of numerical values to each task or project, and have the database sort them. This lead to all sorts of user interface nightmares because I kept envisioning this cross between a tree and a grid, similar to the interface Microsoft Project provides. I spent a good chunk of November attempting to implement this complicated GUI interface idea in python. Now that was a cool project, and I’d like to finish it, but it isn’t a prerequisite for getting my project list in order.

When I made the decision to find a simple solution, I wound up just breaking the top level outline into several sections:

  • urgent
  • easy
  • pending - tasks/projects I can’t do yet because they’re waiting on something else
  • general - all other projects / actions
  • inbox - new ideas for which I haven’t yet identified a clear next action

Within each section, I put the most important ones at the top.

And that’s it. It’s an emacs outline file, which is just a normal text file with some astersisks to mark the headlines.

Finally, I made separate files for each project-generating role or area:

  • cornerhost
  • versionhost
  • cashflow
  • workshop
  • personal
  • etc…

This means I can plan my week in terms of roles (a la 7 habits), and those roles are driven by next action lists, which will trigger or pull me to act, so there’s a constant flow of value whenever that role is active: I just go to the appropriate list, and work on one thing at a time, one after another until my time for that role is up.

In retrospect, it all seems rather obvious, but I guess sometimes finding the simplest thing takes a lot of hard work.

1/30/2006

new computer

Filed under: — michal @ 11:32 am

I’m the kind of person who would rather make a good decision quickly than the “best” decision after a long period of deliberation.

I needed a new computer for the web stuff I’m doing. For one thing, I want to do some video and audio work for marketing, and I’d also just like to have a computer that can run Studio 8 at a decent speed.

I was considering building a machine but it was just stressing me out. I’ve always been the software guy, and I really don’t like looking under the hood. But after reading a bunch of articles and talking to my friends, I at least settled on a chip family: an AMD Athlon 64 X2… Finally, today, I ordered a gateway gt5034 from Best Buy, and should have it up and running today.

I’m sure I could have found a better deal somewhere else or building it myself, but this way I can drive a few blocks and get it fixed or replaced if something goes wrong. So basically I’ve realized taht I like not having to mess with things. :)

1/20/2006

draft of GPL3

Filed under: — michal @ 8:58 am

The Free Software Foundation has released a draft of GPL3. They have a neat comment interface where you can annotate the text directly. I’ve been looking forward to this for a while, because I was hoping to see something along the lines of the Affero clause, which would prevent someone from making proprietary changes to an open source web app. The loophole with GPL2 is that you have unlimited rights to run the program on your server without distributing your changes. The Affero license (which is just the GPL2 with an added clause) forces you to make your changes available.

Anyway, it’s worth reading. You can see my comments here:

1/17/2006

espionage, assimilation, and trailblazing the workshop

Filed under: — michal @ 11:57 am

Now that I’m finally caught up from the holidays, I’ve started to turn my attention back to the webAppWorkshop. I’m a long way from where I want to be with that site. To be honest, I’ve been hung up waiting to perfect rantelope before I really got the site up and running. But I realize that hasn’t worked for me, and so I’m taking sort of a different approach.

For one thing, instead of running the site on rantelope, I’m going to install drupal. I haven’t spent a lot of time with drupal, but it seems like a well-thought-out program, and it should have the features I need to build a community site fairly quickly.

I’ve also began trailblazing my existing codebase. The idea of what “trailblazing” is has changed quite a bit in my mind the past few months. For one thing, I now realize that a lot of the implementation order issue goes away if your code is platonic. But what does platonic mean? Well, it turns out that for the most part, it means that it follows the Law of Demeter, or basically minimizes dependencies. In other words, if you have small independent chunks, then the order of implementation is a whole lot more flexible. I’ve found that if you need to modify an object later in the narrative, you can often just extend it through python itself, or go back and leave a hook.

Anyway, the point is that trailblazing doesn’t really have a preprocessor step anymore. It’s just pure python, but with an odd style to it, and special comments that let you treat the code as an outline.

This new style of trailblazing makes it easier to work with existing code. I’m finding that I’m able to put each package into a single file, rather than keeping one class per module as I had before. The outline makes it much easier to organize things in one place.

I’m eager to try out the trailblazer concept with someone else’s code. I’m starting to suspect that if you refactor a piece of code to follow the platonic style, then it should be easy to move the code across frameworks, or even across languages. This opens up two new tactics: espionage and assimilation.

Espionage just means taking someone else’s code apart. Reverse engineering. Of course the idea is to limit this tactic to open source software.

Once you understand the foreign software, then you can refactor it, and this allows you to move parts of it into your own app or framework: assimilation. It seems to me that refactoring and adopting an existing codebase is much easier than building from scratch, even if that means forking someone else’s project.

So, for example, after I install drupal, I’m likely to start digging through the code, and perhaps pulling features out of php and into python for rantelope. I’ve also got a few other blogging tools I’m looking at, and I’ll probably set up a small content site for each just to get some experience.

Worst case, I’ll get some sites up and running and have a better understanding of the tools my customers are using. Best case, I’m able to synthesize the best ideas of many different open source projects and provide a critical mass of inter-compatible applications for people to draw from. That would just be nice. :)

12/21/2005

forming a strategy

Filed under: — michal @ 1:43 am

Sorry for the lack of updates. I’ve been wearing my sysadmin hat lately.

The end of November came, and I didn’t have a novel about getting things done, and I didn’t have the planning software that the novel was meant to produce. I decided at that point to stop both projects.

But it wasn’t a waste of time. I put a lot of thought into my work habits. I’ve gone through and (somewhat) organized my project list.

I was hoping that I’d be able to come up with some sort of priority scheme. It’s nice to think that project so-and-so will increase profits by this many hours per month and take this many hours to complete, but I just don’t have that level of insight.

Many of the projects on my list are more about making things easy for me and my customers, not about increasing profits. That’s okay though, my most important metric isn’t profit, but profit per hour worked. In principle that’s not hard to calculate, but I don’t have the numbers, so it’s more of an abstract direction than a real metric right now.

One minor change I’ve had recently has nothing to do with the business, but with my bookshelf. If I put my unread books in a single stack, I’d need a new ceiling. I was always reading three or four books at once, and I’d lose interest in one or two, and then I’d buy another book or two every time I passed a Barnes and Noble. A big part of the project management philosophy I was working on last month had to do with doing only one thing at a time, and I decided to apply that to my bookshelf.

Since then I’ve been reading one book at a time. I’m not trying to sort or prioritize the books. I’m just picking one and working through it. If it’s good, I keep it. If it’s not, I just skim it and then drop it on the pile for the used bookstore. I also somehow managed to stop buying books. Amazingly enough, the pile is starting to shrink.

One of the books I read was >Strategic Navigation, which is a very good left brain business book that takes ideas from military strategy and the theory of constraints and applies them to creating strategies and plans.
I’ve been working on a strategy for the company to use as a focusing tool.

The strategy looks like a bunch of boxes and arrows, and it breaks down into future reality tree which breaks down into a prerequisite tree, and so on.

Anyway, I’ve got the big picture tree in place, but I haven’t mapped out all the individual projects. For practice, I made some detailed trees for vengeance, the script that watches over my servers. It really helped to clarify my thinking, and separate cool ideas I want to implement from actual solutions to my problems. Even with the trees, I’ve had to stop and refocus a few times, but the past few days have been extremely productive. I’ve already completed (and deployed!) several of the planned changes.

The last time I made reality trees was when I was revamping the control panel and preparing to reopen with the lifetime hosting deal. Other than perhaps the pyweek game (which didn’t ship but did produce a lot of value), that was also the last project that really went well for me. So I’m going to be doing a lot more of these.

Besides that, it’s nice to be able to say that I know exactly why I’m doing something, and that it ties into a logical, well-formed plan. I don’t know if I’m on the most important branch, but at least I know I’m in the right tree.

11/3/2005

the flake effect

Filed under: — michal @ 4:20 pm

I’m reading a book called Good to Great (a study of good companies that made the leap to greatness) and two of the principles really jumped out at me:

  • Confront the Brutal Facts: having faith that you’re going to accomplish something great in the end, while at the same time dealing with the cold, hard truth of your current situation
  • The Hedgehog Concept: focusing on a simple idea at the intersection of three sets:
    • what you are deeply passionate about
    • what drives your economic engine
    • what you can be the best in the world at

Well, the brutal fact is I don’t get much done. Even my efforts to recruit help have turned into massive, out of control projects. And I used to be the guy people went to when they wanted things done fast.

[aside: I know I’m going to get 50,000 replies to this telling me to read 7 Habits and Getting Things Done. Thanks! I’ve read both numerous times. Do me a favor and save the advice until I post my solution]

As for the hedgehog concept: web hosting per se is not something I’m particularly passionate about, and my company will probably never be the best in the world at it. It does currently drive my economic engine, but that’s just a historical artifact.

Don’t get me wrong. cornerhost and versionhost aren’t going anywhere. It’s just that they’re only pieces of what I’m really getting at.

Before sabren.com became a fishbowl, there was a simple page here that said online tools for creative minds, with links to my two brands.

That’s what I’m passionate about. Nothing makes me happier than helping creative people get their ideas out into the world: especially if they can make a living at it. Even with that slogan on the site, I never quite realized how that tied everything together.

Example: for the past three years I’ve been cheering for Joe Peacock, who worked with me at one of those mismanaged dotcoms. Joe’s always telling funny stories, and about three years ago he started the book-of-funny-stories project that would become Mentally Incontinent.

In another week, Joe’s leaving his job to focus on his writing. He’ll also be doing some part time work here: helping with the support load, but also working on a super secret project that is all about helping people get their ideas out into the world.

Thinking back over my own experiments the past few years, I see that I’ve launched a whole lot of projects, yet never quite made them happen. These days I’ve been up to my eyeballs in projects and next action lists.

But of course when NaNoWriMo rolled around this year, I couldn’t resist adding a novel-in-a-month as yet another creative project.

At first I was going to write a just-for-fun novel about a con artist. Then I realized I could put my trailblazer (narrative programming) idea to use, and write a fictional narrative about building a blogging tool with the the webAppWorkshop stuff. Then I saw what a huge project it had become in my mind and started feeling overwhelmed. The flake effect strikes again.

I realized that’s basically my core problem. I’m not managing my projects very well. The thing is:

  • I know why I have this problem
  • I know how to fix it
  • I just need to do so

So this month, I’m launching a project to change the way my company does projects. For starters, all the other projects are going to have to wait. I suspect that’s going to frustrate some people who are already waiting on me. Sorry.

For the rest of November, my work priorities are:

  • keep the servers running
  • answer email as quickly as possible
  • trailblaze the project management system
  • testing it out by shipping a few small projects

If you’re just tuning in, trailblazing means writing a story: instead of just describing what a system is or will be, you record the evolution of how it got that way - or how it could have gotten that way, given the benefit of hindsight. Thus you clear all the obstacles out of the way and leave a trail for others to follow.

So, my system is a novel, a how-to book, a software project, and a corporate improvement plan all in one. It’s called The Flake Effect and it will in fact be an online tool for creative minds. Yeah, it’s crazy, but that’s just how I roll.

Maybe, just maybe, this online tools for creative minds thing is something my company could be the best in the world at.

So… I probably won’t post too much else here for the rest of the month. I will be whining quite a bit about the writing process over at my personal blog, and hopefully at some point there will be some content over at the book site: flakeeffect.com.

10/26/2005

new webAppWorkshop site design

Filed under: — michal @ 10:26 pm

Spent most of today working with the new Studio 8 from macromedia. Pretty impressive.

I was working on a new layout for webAppWorkshop.com. (I went ahead and posted it if you want to look.) I have to say I was a lot more productive using dreamweaver than I usually am with emacs. And it came out looking kind of nice, too. Still have a way to go though.

My big concern is usabilty… My main competitors (rails, turbogears, and django) all have nice looking sites, but I’m not sure they really get their messages across.

My goal here is to have the most learnable framework. That’s the whole point of trailblazer - my secret weapon. It’s also why things are going so slow. But that’s okay. I’ve been working on this for more than five years. It can wait a little longer.

10/19/2005

trailblazing the workshop

Filed under: — michal @ 8:06 pm

The new workshop articles are now in stored in xml files rather than raw python. I’m working on generating nice html and python files from the Solution object that trailblazer creates, so that people can finally read this stuff.

I’ve decided readability is key. I started adding scannable headlines to the text. The headlines correspond to features in the app, or goals on the implementation plan.

I also finally wrote out what some of my stuff is. For example, platonic is a component framework. That’s not quite how I was thinking of it before, but this explanation makes more sense. You write your components following the guidelines and then you can use them in your web or GUI apps, or just expose them as a web service. You can even write components in other programming languages (for example, perl or ruby) thanks to xml-rpc and ensemble.

The amoeba article puts it all together: first each individual module is derived and explained in its own trail, either from scratch or by building on a previous trail, and then the amoebe article shows how to use the finished modules to create a real application: a generic amorphous database built on RDF and exposed as a RESTful web service.

Finally, rantelope builds on amoeba to make a blogging tool. Since amoeba does all the data management, there’s really not much to building a basic blogging tool. The rantelope articles will focus instead on things like Atom, trackbacks, OpenID, and even XSLT.

There’s lots and lots of writing left to do, but that’s the big picture of where the workshop is going.

untangling

Filed under: — michal @ 8:06 am

One of my goals for this week is to get a blog up on the workshop site. It’s slow going. The rantelope code is almost entirely unusable now. Everything I do seems to give an error. Plus my mental idea of what makes a good content management system has changed completely since learning about RDF. So I’m basically rewriting the whole dang thing, but with test cases and narrative so that next time around it’ll be easy to change. It’s slow going.

10/13/2005

contractors and employees

Filed under: — michal @ 6:03 pm

Spent the afternoon writing out a contractor agreement for developers. I want to make sure that anyone who signs up is going to be classified by the IRS as a contractor, and not an employee. Training the worker and giving them detailed instructions are both indicators that the worker might be an employee, yet both of these are part of my methodology. So, I’ll be hiring a lawyer to help me work out that conflict and nail the wording down.

I don’t want employees is because they’re far more expensive and hard to deal with. I made the mistake of hiring someone out of state as an employee for one month several years ago and I’m still getting paperwork from that. That’s not what I’m looking for at all.

However, I’m perfectly happy adding employees here in Georgia, and in fact it looks like I’ll be doing that sooner rather than later, once Joe comes aboard as the customer support / marketing guy. (And yes, that’s Joe of mentally incontinent fame)

10/12/2005

clearing the roadblocks

Filed under: — michal @ 6:39 pm

Once upon a time I set up this thing to fake access control lists in cvs. Looks like there are a couple tools on the market for this kind of thing now: a patch, plus a couple of external scripts that also do the job.

Anyway, I haven’t looked too closely at those yet. But yesterday I dug out the script I’d written (which messes around with unix groups and users) and refactored it so it can handle the configuration for multiple repositories. One of these days I’ll get a little permission manager into the control panel at versionhost, but the main point is that I can now set up permissions on my own repository.

Basically it means I can give people access to the control panel and billing system code without giving anyone access to more sensitive stuff stuff I keep in cvs (financial records, secure certificates, etc…)

To do this week:

  • write up a contract for developers
  • assign prices to all tasks on the job list
  • come up with a reasonable monthly development budget

With those three things in place I should be pretty much ready to farm out the part time python work to anyone who’s interested… :)

big and small

Filed under: — michal @ 6:26 pm

Someone was having trouble with forwarding their mail to gmail… And I checked the logs and it was obvious the mail was going through to the gmail smtp servers. So I gave the guy a log dump and told him he’d have to check with them.

Then it occurred to me that google’s probably not going to answer him. You offer service to that many people for free and you can’t afford to do tech support. At least they’ve never gotten back to me when I emailed them.

Support is one place where small businesses have an advantage. Rack one up for the little guys. :)

10/10/2005

mad props for mentally incontinent

Filed under: — michal @ 10:14 pm

I know a lot of you are interested in reaching more people through your blogs and sites, so you might be interested in hearing what fellow cornerhoster Joe Peacock has been working on.

What Joe does is tell stories. Great stories. He likes to say they’re funny stories, and they are: his revenge on wal-mart and his encounter with PETA are both hillarious, but he’s also not afraid to take on truly delicate and personal subjects, as in I’m Just Dying to Know You.

Three years ago, Joe came up with the crazy idea of letting his steadily growing audience vote on their favorite stories, with the idea of eventually compiling a book with the winners. This weekend, over a hundred stories and several thousand voters later, I had the opportunity to help edit the final draft of the book, and I was blown away by just how good it is. Joe’s one of my favorite writers to begin with, and that voting idea really did manage to filter out the best of the best.

Anyway, the stories speak for themselves so I’m not going to go on and on about how great they are. But I did want to point out one other thing: now that his first book is on its way to the printers, Joe’s writing up a four
part retrospective
on the project, self publishing, and marketing. Hearing Joe talk about his ideas on getting ideas out there is always a treat, so this is definitely worth checking out.

Oh, and of course I don’t usually plug things like this, but if you’re one of those people with a sense of humor, then you really ought to buy the book! :)

cornerhost software upgrades

Filed under: — michal @ 12:21 am

I will be performing a number of software installations and upgrades over the next few weeks. Thanks to Jeff Pitman, we’ve already got RPMs ready to go for all of these. With one the exception of php, I expect the transition to be fairly smooth here.

sometime this week

  • mod_security: an apache module that can help stop spammers and hack attempts on your site. For an example of what it’s all about, see this article on fighting comment spam with mod_security.
  • pyvault: this is an update service that Jeff created for keeping various python modules up to date. What this really means for you is that python 2.4 will suddenly have a whole lot more modules installed. (Requests welcome!)

tentatively scheduled for oct 15

  • mysql 4.1: you asked for it. here you go. If you’re doing MySQL development, you might want to read about the new features for 4.0 and 4.1, as well as the instructions for upgrading to 4.0 and upgrading to 4.1. I will be handling any table conversions that need to take place but if you have your own code running you should double check that it’s compatable with 4.1 as soon as possible.

tentatively scheduled for oct 22

  • php 5: yep, upgrading to version 5. The major difference here is that I’ll also be applying the hardening patch. See below.

what you need to do

First, make sure that you upgrade your cgi and php scripts. This is always good idea in any case, but you should make sure that the versions you’re running work with php 5 and mysql 4.1.

Second, check your php files for <?php include(”http://…”); ?> lines. these will no longer work with the hardening patch installed. You can still fetch remote files from a URL with fopen, but all includes must be local.

Feel free to comment or email if you have questions about all this.

10/9/2005

learn to make web apps!

Filed under: — michal @ 9:41 pm

If you haven’t been reading this blog for a while, you might not know about the webAppWorkshop. The goal of that site is to teach people how to progam applications for the web in python. There are a number of older articles on the site already, and I am in the process of creating a whole new course.

The idea is to lead readers step by step from beginner level scripting to more advanced ideas like templates and object-oriented programming. Later chapters will even cover topics like the semantic web, RESTful web services, and AJAX.

The framework discussed in the articles is same one I use here at cornerhost, and I’m looking to hire some developers to help out around here part time, so if you’re interested in doing some work around here, that’s a good reason to check it out.

I’ll be setting up a blog on that site and releasing the first of the new lessons soon. Meanwhile, if you’re interested you might want to join the discussion list or the lesson-only list.

lifetime hosting wrapup

Filed under: — michal @ 9:25 pm

The lifetime hosting offer was a huge success. Many thanks to everyone who signed up! Besides finally paying off my personal debt from the startup costs and covering some new equipment, the company finally has some working capital, which will mostly go towards hiring help.

A few people asked if I planned to do another lifetime hosting offer. The answer is yes, but I’m not sure when it will be. Not until after the end of the year anyway.

One thing I won’t be doing again is the free T-shirt offer. Even with people ready and waiting to make the actual shirts, this turned out to be way more work than I bargained for. The shirts are still coming, but it’s going to be a while before they’re ready.

europium cancelled

Filed under: — michal @ 9:12 pm

I’ve decided to cancel the “dark server” idea for now. Since we switched to an RPM based system, most system changes take only a few seconds. The only times I’ve ever purposely taken the server down for an extended period were data center moves and major operating system upgrades. I’m not planning to do either of those any time soon, and given the small number of people who actually signed up, it doesn’t make sense to keep a dedicated server around just for this purpose.

I may revisit this idea in the future next time I plan a major upgrade, but in the meantime, I’m laying europium to rest.

word pressure

Filed under: — michal @ 9:00 pm

I’m giving up on the 100 word thing. The point was to keep the articles short, and I think I found a better way to do that. This site is really meant as a way to keep my customers informed, not as a place for me to just to ramble on about anything. I can’t help ranting, but I can move the rants to my personal blog or to the new content sites I’m working on.

Meanwhile, I figure I’ll just post short articles here, and hopefully send out a newsletter once a month with links to the articles so people who don’t read every day can comment. I’ve got some announcements to make tonight anyway, so I guess I’ll go ahead and try this out.

10/4/2005

security

Filed under: — michal @ 1:44 am

It’s too dang late to try and fit this to 100 words. I’m focusing a lot of energy on the security role lately. So many crappy php scripts. What’s worse is trying to police the servers. There’s got to be a better way: some way I can offer up to date versions of a set of programs.

Well, my original idea was to just write my own programs. Sure, I come up with bugs and security issues too, but nothing like your typical php scripts.

Anyway.

powered by wordpress. hosted at cornerhost.