PC-BSD: Post-Installation

I installed PC-BSD today. It took about 30 minutes.

It blows my mind.

It probably won’t blow your mind if you’re used to Windows XP and Apple’s OS X. Those are operating systems where things tend to work immediately. They’re also operating systems where you can reasonably expect that when you’re done installing your OS, you’ll actually be able to do something with it.

With Linux and FreeBSD, that’s not always true.

Even with some of the better distributions of Linux, I’ve often found myself configuring X-windows late into the night. FreeBSD has at times not even had X-windows included in the initial distribution. Thus I’d end up:

1. Installing FreeBSD
2. Installing X
3. Installing a Desktop Environment (GNOME or KDE)
4. Modifying things
5. Flailing hopelessly as I tried to make standard amenities like Flash, Java, and sound work.

With PC-BSD, it went like this:
1. Install PC-BSD
2. Download and install the Nvidia display drivers, sound driver, Java, and Flash.

And they all just work.

I’m currently listening to music via Mplayer, something that I’d gotten to work previously, but I’d had massive problems getting the sound to work and no motivation to spend the time (since it working easily on my mac and on XP).

Particularly amusing for me is that I’m actually using Flash 8. I don’t think that I’ve ever before used a current version of Flash on FreeBSD. It’s almost always been Flash from the previous version (at best).

Of course, not everything is perfect. For example, I found that some video and sound get messed up, but still, it’s far better than before.

PC-BSD

Sometime this weekend I intend to install PC-BSD. PC-BSD is essentially FreeBSD with a focus on making things easier for the new user.

From what I’ve read, the installation is remarkably easy. Similarly, it’s also easy to install software thanks to the distribution’s method of packaging them. I don’t really fall into the new user category, but I am married to someone who wants to have sound and video on the Freebsd/Linux box that we happen to have as our second computer.

I’m sure it would be possible to make things work without installing a different version of FreeBSD, but honestly, I don’t feel like figuring out how and I’m hoping that things like that will be easier than usual.

We’ll see.

Anyway, watch this space and you’ll hopefully get to read about how wonderful installing it was. If not, you may get to read about me installing something else to see if I can make that work instead.

Web Programming Frameworks

A fair number of people reading this blog have probably heard of programming frameworks used in web development. The rest of you, of course, could happily live without this knowledge.

This won’t stop me from writing about them.

The idea behind a programming framework is that by following conventions you can let the framework handle certain details. As a result, you’ll presumably develop programs more quickly.

The framework people seem to be most excited about among people I know is Ruby on Rails. Another that people might want to look into is CakePHP. Inspired by Ruby on Rails, CakePHP has one advantage for PHP programmers–you don’t have to learn a new language. Not that learning Ruby is a bad thing, but sometimes you want to use a language that you already understand.

ThinkingPHP is a blog that sometimes includes CakePHP related material.

I’ve been thinking of developing two versions of an application–one in CakePHP and the other in Ruby on Rails. That might allow me to compare the two and decide which I like better. It might also be something of a waste of time. I’m not sure yet.

I’m curious about both frameworks and that might motivate me to learn more about them. On the other hand, I’ve limited amounts of time in my life and I want to do other things too.

We’ll see what happens.

Performancing

Performancing is an extension for Firefox that allows you write a blog entry without even logging into the blog. You can just click on an icon and write your entry straight into a browser frame. The interface seems easier than MoveableType’s as well.

I don’t know if it works on all platforms, but it probably does. It works on FreeBSD at any rate so I’m guessing it’s got to work everywhere.

Web Programming Discussion/Critique Group?

I was thinking yeterday that it would be good if I found a writing group that would allow me to regularly inflict my Novel In Process on others. It would have the welcome side effect of pushing me to write faster as well as pushing me to improve.

Soon after that, it occured to me that it would be cool if something similar existed for programming, particularly web programming. Is anyone interested in something like that?

For the Web Developers in the Audience…

Sometime last year, I replaced the email addresses on a client’s site with an online form. The idea was that the online form would slow the ongoing barrage of spam. I don’t know whether it was successful at this, but I’m sure that at least a few less spambots collected their email addresses.

Amusingly, this form has been my window into how higher visibility sites can attract form misuse, abuse and associated hassle. I wrote last year about discovering the existence of email injection.

Having covered misuse and abuse in that post, I write now about “associated hassle.” Since email injection became better known, the larger hosting providers like Network Solutions have attacked the problem in structural ways. For example, Network Solutions along with other organizations no longer allows email addresses outside of the web site’s domain to be listed in the “from” field.

What this means on a practical level is that if someone hijacks your form and starts sending spam through it, listing an email address that might actually reach them (i.e. not one of yours), that spam will never get through. Unfortunately it also means that if you wanted to put a legitimate form user’s email address in the “from” field, allowing your client to contact them by pressing “reply” to the email they just recieved, well… that won’t work either.

Naturally, larger web hosting organizations cannot be bothered to notify their clients of this sort of change. Thus, late last week we started getting “mail returned” from the form. This was good in that we at least got the mail, but bad in that it wasn’t going the person who needed it. It was going to me.

Specifically, the returned emails included the information that our server’s ip address had been put on the CBL. The CBL’s pages include a number of reasons why you might be on their list. Many of them had to do with server configuration. Others had to do with software that we aren’t running. In short, they were little help at all.

Knowing that I couldn’t do anything about the server’s configuration, I called someone who could. Network Solutions generally has good technical support, but somehow I ended up talking to someone who didn’t know what was going on the first time I called. The second time, I was forwarded to someone who explained the situation.

I pass it on to you in the hope that you don’t need to know it, but the suspicion that you might someday.

On Programs and Programmers

Here’s something I’ve been thinking about lately:

Computers are much more about people than seems obvious.

Programs come out of people’s needs. People need to solve a problem. They contact a programmer or sysadmin or whatever to either write or configure a program so that it does what they need. The computer specialist gathers specifications to make it fit the general needs of the people who are going to use it and they regularly bring it over to be inspected.

Similarly, when writing programs one of the big things that people emphasize is that:
1. You should document what you’ve done so that others can change it later.
2. You be organized about the way you write your code so that it’s easy to figure out what parts connect to each other. Thus major advances in programming are more often than not about ways of making programs easier for people to understand. The horrible spaghetti programming that it’s so easy to do with assembly is replaced by functional programming which is replaced by object oriented programming.

The funny thing about this is that while normal people care about computers because they solve problems (in theory), computer specialists (programmers, sysadmins, etc…) care about them because of the activities they they are allowed to engage in while using them (troubleshooting, abstract logical problems, and so on). Thus, those of us working in the field tend to be excited about the small stuff that allows us to do our jobs and aren’t as bothered by things that are a little hard to operate.

It’s not too surprising then that programs tend to be a little harder to use than one might hope. Honestly, I can’t help but wonder if they will ever get better whle they are designed by people who like using computers.

So anyway, that’s what I was thinking about. It’s a little obvious but hey, it’s the first post in almost a week. I’ll try come up with an original thought tomorrow.

Firefox 1.5 Mac Bug

I don’t know if anybody else has this, but when I’m using Firefox 1.5 on my iBook, I’ve got an annoying problem.

Firefox has an auto-complete feature. That is to say that when I’m typing something into a form, a list of stuff that I’ve typed in appears under the form box. I can then move down the list and choose the one I need and save myself the bother of typing all of it.

At least that’s how its supposed to work.

Here’s what actually happens:
1. I begin typing.
2. It creates a list of words with the same letters.
3. I move the mouse pointer over it.
4. The little multi-colored circle appears that indicates that the program is doing something.
5. It stays there.
6. Forever.
7. And doesn’t do anything else.
8. At that point I get annoyed and kill the application.

Interestingly, Firefox does not have this problem either on Windows or FreeBSD. Maybe I should update the version I’m using on the Mac.

New Router

A couple weeks ago, I found that had no internet access. As someone who does computer programming and network/server administration from home, this is disastrous. Fortunately for me, this happened after 5 p.m., meaning that it didn’t interfere with me working at all.

I wasn’t initially bothered because one thing you do learn when working at home is that “always on” DSL does occasionally have its moments of being off. My general experience is that they are few and far between, but they do happen.

After the second hour, however, I called tech support to see if DSL was out in my area for some reason. It wasn’t. After a bit of fooling around, it turned out that DSL worked just fine if my computer connected directly to the modem without including the router.

Upon rebooting the router and looking through it’s configuration, however, I found that somehow all the DSL information had disappeared. I re-entered it and found that things worked. Sort of.

It wasn’t initially obvious, but I found that large files downloaded more slowly than usual. Worse, wireless internet connections seemed to result in time-out errors about half the time.

Finding this unbearable, I bought a new router from Amazon, recieved it Wednesday and finally installed it today. I’m not sure what was wrong with the old router, but things seem very much back to normal with the new one.

Speed is good.

GNOME Not Tested on Five Year Olds

I like to keep some form of GUI on my desktop even in unix. Basically, I want to click and point when I’m working on the inessential stuff–stuff that I don’t want to specifically configure. Thus I’ve set things up so that I can click and type in a password rather than manually start things.

Kind of like in Windows or Macs.

Except… In those operating systems they allow for the possibility of children existing in the house. They probably deliberately test for what random button pushing may do to your computer.

Abby and Rebecca love to push buttons on my computers–even the FreeBSD computer, an operating system more commonly used for servers than childrens’ toys. They like pressing buttons, moving the mouse, and making the menus move.

In particular, they like changing the theme to the logon screen. Some of the themes suck. For example, one of them should be named “Almost Completely Black.” I am not sure who would want to use that one–presumably people who can see finer distinctions of color than I.

GDM (the GNOME Display Manager) makes language preferences available as well. With very little messing around, a person can change the language preferences to Turkish or Estonian.

I don’t speak Estonian. Or read it.

Ditto Turkish.

And Bulgarian.

I’m thinking that fencing in a portion of my basement sounds good right now. Do you suppose there’s a tax deduction for that?