Archive for the 'programming' Category

The More Things Change…

Thursday, May 3rd, 2007

I don’t how many people even remember the olden days of web development. I’m talking about the time when under construction GIFs were accepted, even if a site had been “under construction” for over a year. It was during this era that what has been known as the “browser wars.” We pretty much all took a side, and our pages advertised quite obviously what side we chose. These ubiquitous banners saying “This Site Designed For…” inhabit some dark and painful corner of our minds. When the wars were over, it stopped mattering if you were a Netscape supporter or a Microsoft supporter. You survived and that was all that mattered.

People talk about the war; they say that Firefox started it up again. I don’t think I believe that. Microsoft and Netscape worked very hard at pushing the differences. These days, all of the major players (even Microsoft) work towards a standard. This makes all of our lives easier. I wake up and realize that one day in the future I won’t have to worry about whether or not my design works in both browsers.

Don’t misunderstand; it already has gotten much better, and we are continuing on that path, even if our progress isn’t always in the direction I would hope. But then I see something like this(theregister.co.uk), and I lose much of that faith. For even a small manufacturer to say that the standards are “too hard” or able to be compromised is a statement of arrogance. For it to come out of one of the major players is unforgivable. As a developer and designer, I want to know that by working with one set of rules I can reach the most people. As I have a number of Mac users in this audience (a member am I), as well as an important minority at my full time gig, I can assure you that any solution for me will address them. That solution has historically been the standards.

Reading this article, I find myself imagining a new series of website badges proliferating. It is this vision that shows that, despite all talk towards progress, we still feel the need to homogenize. Microsoft has made some unique strides as of late, and the corporate dialog is one of working together. They have sat on a broken html renderer for the better part of a decade. If Trident cannot be expected to handle web content correctly, it is past time to replace it. And if there are sites that get broken by this fact, it is time they were made to uphold the standards we have all agreed upon years ago.

Bandying around the term “backwards compatibility” is a disingenuous way to say that you are above the standards the community has set.

You are not.


As Secure As You Are Willing

Thursday, October 26th, 2006

Generally here I speak of web design and development, but I do have other roles that I have played.  Today, I want to speak as a Systems Administrator and talk about security.

Security on a network level is based on a number of different factors, most of which are addressable any sort of systems group.  These include patches, firewalls, open ports, password policies, etc.  Generally the weakest link in network security is the rules.

A sysadmin must walk a fine line between enabling users to work as unencumbered as they wish and to protect the users from themselves.  For this reason, best practices must be put into place.  Hopefully an organization will also codify officially these rules so that everyone knows the playing field.

A major rule that I have always had is one in which remote access is minimized.  In fact, I call this rule “No Remote Access.”  Remote access allows for a user to (surprise) remotely access network resources (shared files on a server, etc.).  This means that I, as sysadmin, lose control of the client machines.  I can no longer verify that they are virus free, that they haven’t been stolen with all the passwords and addresses saved or written down.  In short, the portions of the network that the user has access to are compromised in such a way that I have no idea what is legitimate or not.

By enabling remote access in an organization, you are in fact greatly increasing the chance of downtime due to virus or lost data.  Does that seem smart?


World of Windows or Sigh

Friday, October 20th, 2006

It’s good to see that my website does handle IE7 fine.  Aside from that, I should post a bit of an update.  In the past two months, I got a new job and moved up to Boston.  i will be strating everything back up again soon, in case you are still waiting patiently.  (If so, thanks)

In my new job, I am blessed (HA) with a Windows development box.  This has been awhile for me.  I thinks that it has been five years since I have done web development on a Windows machine.  The world has changed a bit since I left; I’m just trying to figure out how.

For development, I have been working with Dreamweaver (pretty much the same as five years ago, except that I now strictly use code view).  Photoshop is the same throughout. 

In a month, I have lost at least two days of total time to Windows Update and AV updates.  The OS is still slow and feels cludgy (more so than Linux even).  I come home at night and enjoy simple acts of checking mail and surfing the web on the Mac.

Being on the OS does allow me to try out some of the new toys (reviews of which are forth coming).  I am actually writing this on Windows Live Writer and it actually seems to be fairly intuitive.  Here’s to a brave new world.


A New Text Editor

Thursday, August 3rd, 2006

Wow, what an exciting entry I’m writing for you guys today. That’s right; I’ve switched my text editor. I know that some people out there are what I like to call “text sluts,” but I’ve been fairly true to my BBEdit. It has been my standard for years, even with its blemishes.

The difficulty in getting line numbers has constantly made debugging painful, and don’t even get me started on the lack of tabs. I could write an entire entry on how every application needs tabs, but I digress.

Regardless for those complaints, every time I’ve tried a new application, I find myself missing BBEdit. Maybe it comes from my old Emacs days, a desire to cause myself pain, or just fear of change, but nothing has been able to tear me away. Until now.

Smultron has quickly eased any fears I have had from moving away from BBEdit. I couldn’t have found a text editor that just “feels” right any more. If you are a Mac web developer, download it and give it a shot. It’s open source, but only works on Mac OS 10.4.5 or later. If you can run it, you will love it.


Teaching Unix Administration Part 1 - Essentials

Monday, July 31st, 2006

About a year ago, I was left with the unenviable position of having to replace myself. Apparently, college jobs really can’t be held after graduation… Unfortunately for (I think) me, all of the potential replacements had little to no Unix knowledge. This meant that I was forced to train whomever was hired. Seems easy enough, right?

I like many Unix people my age am self taught; I never had any “formal” introduction to the operating system. Without an effective framework that was taught to me, I had no real strong concept of how to teach someone else. What I found was a method that helped force the student to really work to understand underlying concepts.

My system does have a few requirements for the student:

  1. He must have a strong understanding of a basic computing concepts
  2. He must be comfortable with internet resources (Google and such)
  3. He must have a free computer in which to work

If those requirements are met, feel free to use my system to help teach Unix concepts. Also, these exercises should take about a week to complete.

There is only a handful of rules:

  1. The student can use any resource outside of the work environment but none within the work environment.
  2. The student must document in a plain text file exactly how he or she completed the task

Caveat: Please do not exclusively use these exercises to teach. The student must be able to ask questions outside of the scope of the exercise.

Exercise 1
Installing Linux
For my training system, I chose to install Gentoo. I do this so that the student is exposed to the internals for the start of training. Plus, this way, the student can not use X11 at the start. Can you imagine a later project? This should probably take more than one day, but I feel that it is a good start in teaching Linux.

Exercise 2
Turn on SSH and create user accounts
At this point, a normal user account should be created for both the instructor and student. Both users should have the ability to use “su”. Also, ssh should be turned on and work as advertised.

Exercise 3
Create a Message of the Day Without Using a Text Editor
This exercise forces the student to learn basic Linux (and System V) file system organization and basic text file manipulation available within the OS itself.

Exercise 4
Kill a Runaway Process
In order to test this, you need a script or application that has an infinite loop flaw. The instructor needs to run aforementioned script on the students machine and (depending on load), either tell the student look for a program that is taking over the system processes or give the name of the looping program. Below is an example I have made that should bump usage way up (however it will be under sh and not the name of your script; again I leave it to you):

#!/bin/sh
COUNTER=0
while true;
do
let COUNTER++
done

Exercise 5
Fix Problems in User Configurations
This exercise is the most work for the instructor to date, but shows the student how to perform simple administrative tasks and shows how profile information is stored. Change the user profile for the student in two ways:

  1. Change the student’s password.
  2. Change the default shell to something non-existant

Next time, intermediate concepts include software installs and configurations.


Unrealistic CSS Expectations or IE Trickery

Monday, June 5th, 2006

On the project I am currently working on, I have a specific singular instance where I have one page on my CMS that needs to push content into a sidebar. Unfortunately, I am only able to directly affect the main content div, so a dirty solution was needed.

At first, I simply tried to add the content into the sidebar, a beginner mistake I know.  That worked, but left an unwieldy space within the main content div. So, I needed to try something else.

Next, I floated the material to the right. I knew that this plan had some flaws, but I wanted to see if it would work, as the sidebar itself is empty within these pages. That worked pretty much exactly as planned, so I needed to tweak it. I figured out the width of the content I needed within the sidebar and created a negative margin matching that. I tested my solution in Safari and Firefox. Everything worked. I took a break. Changing display to block didn’t make any difference.
I came back and tested in IE. It was as if the material never existed in the first place. Now, I’ve given up on pushing the content outside the main div. So, once again, thank you IE very much for making my life exciting once again.


Everything New is Old or The End of Web 2.0

Sunday, May 21st, 2006

First, there was the browser, and it was good. Then the browser got old, and something more was needed. People came up with a way to create easily, and it was good. Now, many create, yet not many navigate. Web 2.0 has difficulties scaling.

The concept of a portal page is very Web 1.0. A portal points (for the most part) to content that someone else has deemed important. At best, you have given the portal a list of things you like and dislike, and the portal tailors the options based on that. It’s not enough.

The portal personalization solution currently used focuses on metadata. It simplifies what you, the reader, wants down to a simple list. A list that you (generally) actively create. This same option is used in more Web 2.0 applications as well. When you read this, you will notice that I have placed this article in a collection of categories (or tags). I have assigned metadata to this entry for the simple fact that this metadata enables others to more easily reach my data.

I could wax on about metadata for quite some time, but the point has been made. People use it constantly, but they have to make it. Why? If I am writing a blog entry, why should I need to provide an “abstract” of what content exists in the entry? Because, the ways that people find my site are directly based upon that metadata. We live in a metadata age.

Metadata isn’t going anywhere for quite some time. I’m going to be so bold as to say that until metadata isn’t the primary way that people find and use content on the internet, it will still be the age of Web 2.0, regardless of what the actual label used is.

Web 3.0 is going to be immersive, not immersive like a 3-D environment is (that would be, at least at this point, unusable), but like a good conversation witha friend is. Web 3.0 will have the conversations of Web 2.0, but it will approach these conversations differently. Web 3.0 will be focused on data.

The actual content of this entry is important, otherwise I would simply have an entry that said, “I am currently thinking about Web 3.0, data, and metadata.” The comments would be metadata too. So, instead of “You are an idiot,” we would get “personal_comment.” What I am describing is unfair; labeling systems have been around almost as long as the written word. They aren’t going anywhere.

What I am saying is that the metadata should be almost invisible. An outside source should look at this entry (and not realize that it is barely coherent drivel) and determine what the article is about. It should see a reader that spends an inordinate amount of time looking at “big picture” discussions of metadata and data and recommend that the reader look at this entry. The reader shouldn’t have to say tthat he or she has an interest in metadata vs. data.

I suspect that something along the lines of what I am suggesting would not be a web application itself, but a modification of the browser. The browser should “learn” what a user likes (although it must have an “ignore this site” option somewhere) and present other sites that the user would find interesting without any intervention.

One web site ha sthe groundwork fairly done for the true “data” system, Google. If they were ever to come out with a Google Browse (and if they use that name, I want money or a job), I would expect it to work much like I’ve described.