Archive for category Actual Events
Am I Missing Something?
Posted by Andrew Flanagan in Actual Events on February 7, 2008
You’ve seen Ron Paul’s support. Now there’s a fund-raising “money bomb” for the Republican Party (which allows you to donate to McCain, Romney, or Huckabee). It’s at http://www.february7.org/. Here’s the dazzling results as of 6:44am PST:
Are you doing your part…
Posted by Andrew Flanagan in Actual Events on February 1, 2008
VPS Hosting
Posted by Andrew Flanagan in Actual Events on January 30, 2008
So I had been looking for a new VPS host… I’ve used GoDaddy for a while and although it was decent a few years ago because of it’s pointy-clicky Plesk interface, I’ve since found that it’s easier to maintain it myself at the command line. I’m still running Fedora Core 2 and in order to upgrade, it’s really painful. Back in the day, there were packages that I could install but now my only real option is to upgrade the OS entirely (which involves backing up, wiping, and restoring). Seems easier to move to a Gentoo-based VPS, save a few shekels, and get better performance. I also previously only used my server for hosting simple LAMP web sites. I’d like to move towards not only Apache/MySQL/PHP but also Ruby on Rails, Subversion, Trac, and other things.
So, my two main options were VPSLink in Seattle, WA and Slicehost in St. Louis, MO. These were chosen somewhat arbitrarily based off of reviews (mostly “personal” type reviews from blogs).
I purchased a 1GB RAM VPS for a month from VPSLink and a 3 month 512MB RAM VPS from SliceHost. Prices for equivalent products are very close but SliceHost does require a minimum of 3 months.
First off, I noticed that my ping time is obviously pretty good to the Seattle based VPSLink. I get 30-40ms response. I get 50-60ms response from SliceHost. Now, I remote into a server in the D.C. area and try again. Now I get a response time of 90-100ms for VPSLink and 30-40ms for SliceHost. This seems to make sense since SliceHost is more centrally located. Since my website traffic is fairly evenly spread across the U.S. (only rarely overseas) this seems to be a plus for SliceHost.
I like the SliceHost management interface. It’s a “developer” type interface that’s very simple but very fast and gives me a lot of flexibility. I don’t like the VPSLink interface. It’s annoying and (as I just noticed tonight — doesn’t always seem to be exactly running). Most of the features are similar but I do feel like I can really control things better with SliceHost. For starters, the VPSLink is dog-slow compared to SliceHost and also has separate sections for billing, support, management, etc. It’s a pain to deal with. SliceHost is essentially one page with tabs. And it has more features like the rescue mode (mentioned below).
Well, the VPS with VPSLink is FAST. I do an emerge –sync && emerge world and I get the entire Gentoo installation updated quickly. However, now things seem a little odd and it seems like something’s caused a memory leak. Rather than chase it down, I do a reboot instead. Whoops — mistake. Gentoo (configured in a Xen environment) has a known bug which causes some problems. A trivial fix but I need to boot with a Live CD or something similar. And my server is in a data center in Seattle somewhere. Hmmm… I contact tech support — do they offer a Live CD equivalent boot? They do not. SliceHost does. This is a big deal overall. Especially with Gentoo, I have a bad habit of goofing something up and breaking my boot process. Since I’ve always dealt with locally stored boxes, it’s just a minor annoyance to have to connect a monitor and keyboard to the system and resolve the issue. However, the only fix VPSLink offers is “rebuild the box”. So if I break the boot process, I lose ALL data on the box. Ouch.
So, after one month of using SliceHost and not really being excited about rebuilding my VPSLink box AGAIN, I’ve canceled VPSLink and have begun to migrate all websites from my old Fedora Core 2 server to the new SliceHost Gentoo. It seems stable, fast, and reliable and if I do make a mess of things I’m confident I can get it back up and running without too much pain.
Over the last week I’ve spent FAR too much time trying to resolve little things like successfully getting non-Roman characters into the MySQL database (it’s odd the way the Gentoo MySQL USE flags work), getting Apache updated and still having PHP work, resolving a mess of library dependencies (I got to use revdep-rebuild — yay!) and also playing with Jails and getting an SSH account setup that chroot’s it to it’s web page root. All fun stuff but time consuming. I love Gentoo though — it’s not always the cleanest but it seems like you’re never “stuck”. Or at least that’s been my experience.
An Essay on essaying
Posted by Andrew Flanagan in Actual Events, Ranting & Ravings, Somewhat Random on January 30, 2008
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.
Computer Science vs. Programming
Posted by Andrew Flanagan in Actual Events, Geekiness, Ranting & Ravings on January 22, 2008
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.
Indwelling Grace
Posted by Andrew Flanagan in Actual Events, Somewhat Random on January 12, 2008
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.
Happiness is Ruby on Rails
Posted by Andrew Flanagan in Actual Events, Geekiness on January 11, 2008
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.
Solution to our economic woes?
Posted by Andrew Flanagan in Actual Events, Somewhat Random on January 11, 2008
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.
Wiring (update 2)
Posted by Andrew Flanagan in Actual Events, Geekiness on January 8, 2008
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 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.
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.
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.
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).
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.
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.
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…
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.
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.
Fight the law, or let the law win?
Posted by Andrew Flanagan in Actual Events, Ranting & Ravings on January 7, 2008
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!