An Essay on essaying

There’s always so much to do. Every task that is completed falls into the category of “repeating event” that will simply have to be performed again as entropy sets in (cleaning, cooking, personal hygiene — such as it is, etc.) or “nice try” which was simply an imperfect and increasingly simplistic appearing attempt at a solution. To some extent you’re stuck with the repeating events and must simply hurry and do them well enough to at least stay in place like the Red Queen in Alice Through the Looking Glass. For everything else, there’s a sense of struggle to churn out something that’s really superior. You want the best and you constantly strive for it. But you make imperfect relationships, imperfect software applications, imperfect decisions. As time goes by you can review (if you’re depressed) the imperfections that trail behind you. The farther away ones are usually laughable, considering that at one time that was your best shot. The closer ones still seem reasonable but somewhat lacking. But of course as time goes by and they recede into the past as well you’ll start to chuckle at them too.

So are things really getting better? Is the stress of “getting better” actually creating better results? The problem seems to be that the perception of your abilities on a continuum slides backwards at the same rate at which progress occurs.  The more you learn and grow and “better yourself” the more you realize that you had previously overrated your knowledge, experience, and skills.

I don’t think this means that we shouldn’t try. But we should try to keep in mind that perfection is unattainable (here on Terra Firma at least) and if we’re humbled by looking at our mistakes from 1 or 5 or 10 years ago, then consider that 1 or 5 or 10 years from now we’ll likely be just as humbled looking back to what we’re doing or thinking or speaking (or writing in a blog) right now.

I know this isn’t much of an “essay” but it made for a cutesy title. I’m sure I’ll think better of the idea later.

No Comments

Computer Science vs. Programming

There have been a few Slashdot submissions here and here. They’re concerned with an article published by two professors from NYU that assert that Java (and similar high-level languages) are damaging to teach as the “first language” of a Computer Science education. Since I wasn’t a real CS major, I’m perhaps a little outside of this discussion. However, I cut my teeth on C/C++ at school before moving on to the high-level languages (really just .NET and some very high-level languages like Ruby and Python).

I tend to agree with the conclusions. It’s not that there’s no place for Java. It’s just that without the fundamentals of pointers, memory management, and basic understanding of the construction of complex data structures which are just handed to you with Java or .NET, it’s very difficult to fully comprehend what you’re doing

I had a very good professor that taught algorithms and data structures at school and although at the time, the experience was painful, I’m sure it has helped immensely. Despite my affection for things like Ruby on Rails which is extremely high level, I’m annoyed sometimes because of the indeterminacy of functions and the vagueness of the specifications. When you write a language that can do powerful things in one line of code, you’re taking a lot of shortcuts and it can be surprising when a function returns something very unlike what you expected do the complexity of the underlying code. Basically, you ignore things like sorting algorithms entirely in favor of the “built-in” sort routine. How does it work? Well, you can dig it up in the code, but most people will simply use it and assume that it’s the fastest for all of their needs. What happens is that writing code becomes an assembling of pre-built components. It reminds me of “building” Ikea furniture. Granted it takes a certain amount of handiness to put together your new desk but you’re not gaining skills that you can use to build anything yourself without first being handed the pre-built pieces.

I tend to think of myself as primarily a Software Engineer. I’m not just a programmer because I do a lot more than write code. But I’m also not much of a Computer Scientist because I spend very little time actually attempting to improve upon techniques and mechanics of processing information. These definitions are a little vague, but I feel that Software Engineering is more what I do because I apply creativity to the process. I think one can be a Computer Scientist and a Software Engineer but I don’t think my work normally falls into both categories. I’ve always found the role of a traditional Architect to be similar to Software Engineering. It’s an application of creativity (design, color, texture, material, etc.) to a field of science (physics) that results in [hopefully] useful buildings. There are some “cutting edge” Architects that attempt new and innovative projects but most Architects are working with existing ideas and applying them creatively.

I’ve heard that Frank Lloyd Wright’s buildings although amazing in appearance and remarkable in their artistic qualities are often problematic in simple ways. Flooding basements, leaking roofs, etc. were the result of a poor implementation of a great and artistic idea. It’s not enough to be artistic and creative; a good system like a good building works and functions as it should in addition to its aesthetic qualities (which make it unique).

I’ve always seen this distinction between implementation-focused approaches and theory-focused approaches. Implementation is desirable for the production of new applications and system but will always be held back by advances in theory. It seems that Computer Science has largely lost its way in North American schools by focusing too much on implementation without teaching theory. Programmers are cheap. It doesn’t take a lot of brains to assembly code from pre-built components and creativity often is the only difference between a good programmer and a mediocre or poor programmer. Without new advances in theory, applications and systems will simply have to stand on their desirability of implementation (i.e. how easy is to use?). New ideas must be infused into the process for real advances to be made.

The use of so-called AJAX seems an interesting example. The ability to use things like the XMLHttpRequest object were available for quite some time before companies like Google began using it to do amazing things. This is entirely focused on implementation. Web 2.0 applications (whose primary distinction seems to be AJAX technology) are an innovation in implementation only. Many “hard-core” programmers find the terribly sloppy and inefficient results that often result less than satisfying. It does cool things but isn’t there a Better Way? I use AJAX quite a bit these days and it’s handy. However, I have only a bare understanding of how it works and what might be a better design. I don’t tend to concern myself with the next evolution of the Internet– I focus on building things that work with the technologies that now exist. But AJAX really isn’t a huge advance — in fact its “magic” often results in massive security holes, odd and unpredictable behavior, and hugely increased server overhead.

At the same time, a Software Engineer who truly understands the science of the code that he writes is likely to make far fewer mistakes and write much more efficient code. Even without much creativity, a programmer who can optimize code is a desirable catch for any software company. I think that everyone should understand the underlying details of code even if some end up focusing on the creative, implementation focused approach or the theoretically, algorithmic approach.

I mentioned security in regards to AJAX and this seems important. It’s well and good to provide applications that do the same things in easier ways but without a strong cadre of Computer Scientists, developing faster, more secure, and more reliable ways of doing business, we end up with applications that are never properly tested (it’s difficult to test code that just does magical things!) and never adequately secured.

A little rambling of a post — hopefully I’ve managed to convey something. Your comments welcome.

, ,

2 Comments

Indwelling Grace

Jonathan Edward (the famous preacher) had a sister that was apparently quite a difficult woman. A potential suitor came calling one day and had apparently not heard of her nature. Edward’s father attempted to talk him out of the idea. The suitor replied that he thought that she had received the grace of God so what difficulty would there be? The father’s reply:

“The grace of God will dwell where you or I cannot!”

I picked this up from Rev. Rayburn’s sermon on January 6, 2008. It’s not in print yet but should be available on www.faithtacoma.org before too long.

,

6 Comments

Happiness is Ruby on Rails

Ruby on Rails is such a beautiful thing… Here’s some view (presentation) code that I slapped together in about 2 minutes:

  <% Category.find(:all).each { |category| %>
    <div id=<%= category.cssid %>>
      <h2><%= category.Name %></h2>
      <ul>
        <% category.items.find(:all).each { |item| %>
        <li><%= item.ShortDescription %></li>
      <% } %>
      </ul>
    </div>
  <% } %>

Basically, it let’s me easily list out categories and then items within those categories on a webpage (with per-category styling supported). It’s interleaved with HTML and produces very slick output. It just feel so natural and that’s what I love about it.

, ,

1 Comment

Solution to our economic woes?

I’m very confused over economist’s handling of our current situation. On the one hand we have inflation and on the other we’re struggling with economic growth.

In order to avoid a recession (negative economic growth) the Fed is considering cutting interest rates now while Bush is planning an “economic stimulus plan”. So… cut rates which will cause more inflation and then print more money which will definitely cause more inflation. The end result seems like it will be out-of-control inflation regardless of real economic growth.

We have all the signs of “stagflation” seen in the 1970’s but this time instead of going through a “disinflationary” period, we’re planning to attempt to not worry about inflation and just worry about growth. But the problem is that while a “disinflationary” period would have certainly hurt and people would have lose their jobs, what we’re doing instead offers no long-term solace — at least none that I can see. Tackling inflation first would give us a solid base on which we could kickstart the economy (if we should kickstart it at all). I guess my rather un-academic feeling is that economic growth is good and necessary for the future but that inflation affects our already saved-up capital. If that’s the case it seems to make sense to control inflation before we worry about ever-increasing economic growth.

Please add your comments — I’m not much of an economist so I’m likely off the mark.

,

2 Comments

Wiring (update 2)

Bill had commented on an older post about wiring and had asked for an update. I had thought I had posted one but couldn’t find any when I just looked.

So, basically, at this point, the following is complete:

  • TV is installed in the main room. Wires are cable tied to the cantilever arm and go through a nice-looking plastic grommet in the wall. My options were to buy grommets at Lowe’s (surprisingly, they were like $6 each) or simply steal some from some of our furniture (the little holes designed to have wires go into for your computer stuff). I went with the stealing.
  • All speaker wiring is done. I have speakers installed everywhere except the sub-woofer (which I installed in the back center. At some point I want a sub-woofer but the high-cost and low utility (hey, the kids are napping whenever we watch anything!) has delayed my purchase.
  • All wiring for Phase 1 is complete. This is a nice, official way of saying that there will be a phase 2 and we’re not there yet. However, for this first phase, we have all audio wiring (to 5.1 speakers) installed, two power outlets (4 plugs) are installed and the cable re-wired and split (in the wall). In addition, all wiring through the wall to the TV is complete. I may change what I have going through the wall to the TV at some later date, but for now, it’s everything we need.
  • No more mess in the main room (just the TV on the wall, speakers on the wall, and two floor speakers). Now we have extra room and I’m considering getting a nice leather chair (in black) that matches our surprisingly well-constructed Ikea couch.

Here are the pictures:

New Shelves
New shelves in closet. The small top shelf is just for wiring and equipment. We’ll likely use the lower shelf for the printers. There’s another shelf below that’s outside of the shot. Notice the nice blue paint. It’s not fun painting in a closet — no room.

Top Computer Shelf
Here’s the rather cluttered high shelf. It’s close to the door and has all the audio/video equipment as well as the phone and two computers. The upper computer is just there temporarily. (I’m not sure exactly what to do with it — need a computer?). It does have some spare room on the shelf for remotes and DVDs and such.

Top Computer Shelf (no flash)
Here’s a shot of the same thing without the flash. This is what it looks like when you open the door. I tied some tube lights into the power plugs on the back of the receiver so that if you’re using it, there’s a strip of light that goes around the edge of the door frame on the inside. I considered a brighter light, but you don’t need to see much and anything too bright is annoying.

New outlets
Here’s a cable-filled shot of the new power outlets, the cable outlet and above (a little hard to see) the 5.1 audio outlet 5 stereo and one mono plugs (for the sub-woofer).

img_6205.JPGSpeaker on the rear, left
Here are two shots of the surround speakers. I found the mounting shelves at Lowe’s for a pretty good price Looks a lot nicer than having those horrible little plastic arms.

Front view of system
Here’s a shot of the front. This shows the TV mounted on the cantilever arm, the center channel (mounted a bit high but tilted appropriately) and the right front speaker (just on the floor). All the equipment is in the closet directly behind the TV. I dislike how I couldn’t mount the TV in the center (but the arm does swing over and it’s very close). The mind is a funny thing — voices (played on the center channel) do sound like they’re coming directly from the TV even though though they’re clearly not.

Binding Posts
Here’s a shot of the binding post. Hey, it looks professional! It might look nice to use banana plugs instead of bare wire, but that’s too fancy…

Sub-woofer binding post
Here’s the unused sub-woofer binding post behind the couch. This is an RCA-type plug so it’s a little easier to connect than the screw-on/banana plugs used for the stereo binding posts.

Behind the TV
Here’s what behind the TV looks like. You can see the plastic grommet in the wall (which is very functional). The arm itself is attached very solidly to a stud and the cable ties may not be pretty but they’re not normally visible, so it’s no problem.

I’m considering as part of Phase 2, the following:

  • CAT5, DVI and USB runs throughout the house. Realistically, probably just to the office and the “kitchen office” nook.
  • An upgrade of our main room TV (the in-laws have a bigger one — it’s time to upgrade! hehe…) and moving the upstairs TV to my office (for use with the computer)
  • Dispose of an old inkjet printer, move the newer inkjet to the closet, and get a laser printer also for the closet.
  • I’m considering (just considering) replacing my Linux machine with a dedicated “always-on” 8-core Mac. The brand new Mac Pros are just so darn cool. I could realistically do a 3-drive, RAID 5, 1TB array with the Mac and still have room on the main drive for “non-critical” stuff. I have a 1.5TB array now on 4 drives but the extra 500MB is somewhat unnecessary for redundancy. Down the road, I could upgrade to a 2TB (3x1TB HDs) setup if I needed to expand. The new machines have max RAM capacity at 32GB — that’s simply amazing (and expensive).

Note to scoffers: This does NOT mean I would give up my Linux server — I would simply virtualize it and run it in all the spare RAM I’d have.

But except for the printers I’m not really thinking this is going to happen anytime really soon. Maybe by the end of the year. Just maybe.

, , , , , , ,

3 Comments

Fight the law, or let the law win?

I’m not a big fan of government (see Ron Paul posts below). I’m also sick and tired of the police state. Today on my way to work I was pulled over for using the HOV lane. Foolishly, instead of letting the officer write the ticket and getting it dismissed (it was before 5:00am and the HOV lane was open to all traffic) I pointed it out. He paused, looked annoyed and told me that I was speeding at 72 miles per hour ALSO. This is a little silly because I always cruise at 68-69. Yes, it’s speeding and still technically ticketable but I’ve found that it’s the speed that everyone cruises on that stretch of road. I’m very consistent with my speed and always use cruise control. If he had given me a ticket for 68 or 69 I would have grumblingly accepted it.

Anyway, I told the officer this but he ignored me and told me to “have a good night”. As I tried to decide whether I should tell him it’s morning or hand him a Ron Paul flyer (I had a bunch on the front seat) I realized that he had already scurried back to his car. A little vexed, I continued to drive to work. I was annoyed but figured I’d live with it.

Upon arriving at work, I realized that the ticket I had received said that I had committed a traffic offense on “N/B I-5 at S. 200th”. This is plain silliness. I never take I-5 to work (I use the Valley Highway and then take I-405 around Seattle). He had neatly signed the area that read “I certify under penalty of perjury under the laws of the state of Washington that I have issued this on the date and at the location above.”. Ironically, the form was automated (actually printed in his car) and I think the only fields that he had to manually enter are the citations themselves and the location. My only conclusion is that the officer was delusional. Everything fits.

I think I’ll take a softer approach at the hearing but since I clearly didn’t speed on I-5 on January 7 at 4:49am I think I have a good case. We’ll see what the courts say.

Update: By the way, because I know I’m “near the edge” on the speeding thing, I think I’m going to make the assumption that the new, super-secret, real speed limit of the Valley Highway and I-405 is 65 instead of 70. I don’t relish more run-ins. These guys have tasers and they’re not afraid to use ’em!

, , ,

4 Comments

Ron Paul – Hope for America

To those who love the idea of liberty, don’t forget…

Donate if you can and especially for those in Iowa — DON’T FORGET TO VOTE!

Hope for America

2 Comments

Happy New Year!

It’s 2008 and about time I say! I have high hopes for this year. Having resolved to not make resolutions I don’t intend to carry through with (keep up with the double negatives there) I simply intend to continue to improve in every way possible this year. If I gained 10 lbs this last year, I bet I can double it this year! Wish me luck!

While it’s fresh in my mind, I would like to mention that the word gift as a verb meaning to give as a gift is irritating. I’m a bit of a stickler for proper English, while realizing that of course languages do evolve. I also don’t mind the use of new words for fun or for poetic/literary purposes. Obviously if the word gift was never used as a verb it could be a rather powerful bit of poetry that chose to use it as such. But what bothers me is the common use (and it really is getting common just in the last few months it seems) of gift as a verb. What irks me is that perfectly good words already exist that mean the same thing. Most often the verb give works well. When it doesn’t, the words endow or bestow seem appropriate (maybe they feel a little too old-fashioned). I find it commonly used in church circles, especially in reference to what I think should be called making a donation, tithing, or giving.

Regifting is commonly used and makes good sense as a new word in my opinion. It has a highly specific meaning and purpose and doesn’t replace an existing verb. Perhaps the recent increase in usage of gift as a verb is as a back-formation of regift.

I think also that one of the reasons I reject this verb so much is that it’s very pretentious. It’s redundant to say that I’m “gifting my son a present for Christmas”. Of course it’s a gift if it’s for Christmas! Well, what if I am “gifting a tool to my neighbor”. If you use the common verb “giving a tool to my neighbor” it means something slightly different. I may simply be handing it to him and expecting him to return it later. So you could argue that the use of gifting in this second example is in fact providing clarification to the verb give by showing clearly that it is a gift. But what’s the real difference? I see it as a weasely way of drawing attention to your act of generosity. It’s similar to give but just different enough that people notice it. For example, saying that “Mr. X gave $10,000 to the church” is not really different than “Mr. X gifted $10,000 to the church” except it really does sound like he was somehow more generous in the second phrase. Of course our fictional Mr. X isn’t going to ask for the money back either way but with the second form it’s rubbing it in.

When I was a kid, I remember using the phrase “for keeps” and tacking it to the end of statements such as “I’ll give you my firetruck” (I was more of a police car guy). I would feel absurd saying, “I’ll gift you my firetruck” and I have the hardest time imagining this ever becoming regular, non-pretentious English speech. As I’m writing this, I’m feeling more and more that this is really about culture, not grammar. If I randomly present someone with something, it’s proper in Western culture to say something like “Here, you can have this angled, cordless DeWalt nail gun. Go ahead and keep it when you’re done with it.” It’s rather immature to say “I’m giving you a gift — this angled, cordless DeWalt nail gun”. You don’t call gifts “gifts” just like you don’t call your own generosity “generosity”. If it’s Christmas or a birthday where a gift is expected, then it’s redundant to gift rather than just give. It creates far too much ambiguity between the phrases “gifting Ted a present for his birthday” and “giving Ted a present for his birthday”. I don’t see a clear difference except now the presence or use of the first phrase creates odd connotations in the second. Maybe Ted has to let me borrow his present now.

So, in summary, it’s bad. I encourage one and all to pretend to be confused whenever you hear this word used as a verb. “Do you mean give?” is a good response.

And if I do get a DeWalt nail gun I’m not gifting it to anyone!

, , ,

5 Comments

Google: Ad me!

I just moved all my archived email going back to 1998 (when I really first started saving emails) into my Gmail account. There are probably two standard ways of responding to this:

1) Cool

2) Oh knows! Google can read all your private emails now!

I happen to be one of those people that actually take private property rights seriously and am concerned about privacy laws and so on. However, in this circumstance to those who hate the idea of storing email on Google’s servers I can only respond by saying that I:

1) …Have nothing that’s too “secret” in my email. It’s mostly boring stuff to others and interesting because it documents aspects of my life which flood me with memories that go way beyond the words and paragraphs of the emails themselves. I’m sure there are things in my emails that would be embarrassing if they were revealed but I should be able to live up to the mistakes I’ve made and the bad things I’ve said and been party to.

2) …Realize that if the Feds want my email, I think they’ll find a way to get it. I don’t appreciate their nosiness but I don’t think that Google is going to let Joe Shmoe into my email account or simply offer my email records to the Feds. I could be wrong, but then again, I could accidentally lose a hard drive that had a copy of the same emails and run into the same problem.

3) …Think that instead of the common response of “don’t let anyone online know anything about you”, that I should attempt to embrace (ahh, the warmth) the future of broad information sharing with the full realization that everything that’s out there including my blog, my resume, my family photos, my emails, my forums entries, etc. are potentially available for exploitation. What does this mean? It means that if you have secrets, stop recording them! If you must record them, encrypt them using a non-trivial encryption method and at some level, protect it with information that is (again) NOT RECORDED anywhere but in your brain.

The reason I make point 3 is that so many people I know are totally paranoid about the Internet and the potential for identify theft and other things. However, they don’t live their life day-to-day in the knowledge that much of their information is in fact still leaking out and becoming available (dumpster diving, data theft and loss at financial companies, disgruntled — heck, even gruntled employees stealing information). If it’s leaking anyway and we must (or at least MOST of us must) rely on things like imperfect financial institutions and garbage companies then it’s silly to pretend that you’re protected. Instead, I think the better approach is to be aware that in the “digital age” information is incredibly easy to collect, extract, and decrypt. Put price tags on information (like your bank passwords) and be aware of policies that your bank has with regards to “insuring” you against loss should your account be compromised. Stop thinking it won’t happen but start thinking about ways that it CAN happen and your life can still go on. People put far too much faith in things like SSL (for secure online transactions). Don’t think that it can’t be broken or that the NSA doesn’t have a dedicated real-time SSL decryption method for something like that. Never believe it when people tell you that something is “unhackable”.

I’ve heard people tell me about how posting pictures of your kids on the Internet could result in them being Photoshop’ed by child pornographers. I don’t really know how to respond to this… It just seems a little silly. Of course they could — but why does this matter to me? For that matter, how would I find out…??!? There’s always a risk of having people find your personal information (like your address) but I just don’t understand the obsession about trying to hide it. It’s available! It’s out there already! If you have a secret that no one else knows (at all) then maybe you should keep it “off the grid”. But for things like your name, address, email, phone, etc. live with the realization that it’s not private anymore. If you want it to be private, prepare to not use them for anything.

If you need anonymity, there are certainly some good ways of covering your tracks. However, the difficulty in doing this even one time is high — I think it’s likely impossible to do this routinely and still effectively communicate. If you’re reading this post, you’ve left some trace of your presence. Yes, you might be using a proxy, but you left a trace at the proxy also. If you’ve accessed it via a proxy from a coffee shop,well, you’ve left a trace on the security camera there. It never really provides total anonymity — it just makes it difficult and expensive to find you. Don’t get me wrong, I think it’s excellent that people develop attempts at anonymity on the Internet (like Tor) but it’s not providing TOTAL anonymity any more than a password will ever provide TOTAL security. If all your doing is attempting to stop marketers from bombarding you with ads or targeted marketing, then great. I do the same (often, but not always).

So, that all said, I guess my philosophy could be summed up by saying that I’d rather wait up for trouble, ready to deal with it than fall asleep thinking that I’m safe. If it’s worth securing, realize that you’ll have to fight hard to keep it secure and that trivial things like emails are probably not worth the effort.

, , ,

5 Comments