Things have been really quiet on this blog lately, but as I think about the reasons why (while I'm typing), I can't really say for sure. I've convinced myself that I've just been too busy, but I can't recall actually accomplishing anything in the downtime since my last blog post. For the most part it has been laziness and procrastination. There have been several times recently that something has happened or I've been involved in a discussion and I tell myself that I should write about it tonight. We've seen where that has gotten me lately, zero posts. Ultimately, it comes down to my ability to discuss something worthwhile compounded by my ability to write well. Sad to say, that scenario comes up very seldom. Unlike some people I know, I don't feel I have the knack to contribute something worthwhile to the world/blogosphere/intartubes on a regular (or daily for some!) basis.
As far as an update goes, it's not much really.
1. In July, I finally attended the Open Source Convention in Portland, Oregon -- it only took 10 years to find a job that would pay for it! OSCON was a truly excellent convention and definitely something I want to make sure I continue to attend.
2. Speaking of conventions, PAX 08 was last weekend. I had fun as expected, but it is growing at such a rate from year to year that it is hard not to worry about the affects said growth will have on the community.
3. I'm quite upset at myself for failing to get much backpacking in this summer. I really have NO excuse other than the afore mentioned busy state. Then again, that is no excuse at all. I'm determined to get in two trips, plus a campout, before the snow starts showing up.
4. I'll be in Arkansas three times before the end of the year. Unfortunately, this year we won't be able to spend as many days visiting as we did last year. With more trips, the saved up vacation time at work runs out quickly. Of note, a visit in October will be for my sister-in-law's wedding!
Finally, I have to figure out what to do with this blog. It's fine, I guess, but as I've stated in earlier blog posts I'm not too keen on keeping my stuff out there in the perverbial "cloud". So, one of the reasons I've been quiet is because I've been getting back into software development on a personal basis and am working on my own site. It should be up shortly. And by shortly, I mean as soon as I can. Within a month or so. If I get around to it. Maybe. Before the end of the year. Until that time, this blog will pretty much be going silent. See everyone then!
Oh, and make sure you vote. Vote your hopes and dreams, NOT your fears!
08 September 2008
12 August 2008
Getting out of Cloud(s).
As a followup to my last post, we can now point to an example of where users are S.O.L. now that their data is gone. Linkup, an online storage service that keeps their user's data in the perverbial cloud, has lost as much as 45% of said user's data.
Unfortunately, there is nothing the affected users can do about it and it doesn't seem that Linkup can (or will?) do anything either.
Unfortunately, there is nothing the affected users can do about it and it doesn't seem that Linkup can (or will?) do anything either.
29 July 2008
For all the (right) reasons
OSCON was a bit of an eye-opener for me. For years, we in the Open Source community have been trying and trying to get companies to open up their code; to shift the paradigm that software and information is and should be free. What I had failed to recognize is that it goes much beyond that. I heard it several times while attending various talks, from different people, but always the same message -- THE DATA MUST BE FREE.
This hit me like a ton of bricks so I had to, of course, delve deeper into this. After all is said and done, what I have come away with is much like we have worked to ensure that software and the code behind it is open and part of a larger community involvement we must also make sure that the hardware, networks, protocols, services and most importantly the data is open and free.
Every day, I use various services as part of my daily routine: Google, Yahoo, Twitter, etc; and all of this sits in giant data centers that I have no access to, over networks that I have no control over, with software that I can't personally audit, and via trusts that I have no way to verify.
The scary thing is that I don't live by all of these social networks and services nearly as much as a lot of people I know. What I have to ask myself, and everyone else for that matter, what would you do if one of the companies that controls the service(s) you use just closed up or went away? For a lot of people, that would be a huge deal. We call keep an enormous amount of our lives out there with very little actual control over the data itself.
Luckily, there are alternatives -- you can get your fix and still have control. It's not everything, but its a start.
Identi.ca -- Just like Twitter, except that it's Free Software, uses the open XMPP protocol for all of it's back end communications, doesn't crash all the time, and supports logins via OpenID It runs the Laconica microblogging software, so if you feel like it you can run your own installation and it will link up with other sites because it IS open. I will be keeping my Twitter account for the time being, but only for keeping up with my friends that haven't switched yet. I'm ryanc on identi.ca.
The second alternative, I was initially kind of sad about. I've been a big fan of Mugshot for a long time, but unfortunately they don't seem interested in opening things up and their updates are really slow. In fact, my last update to show up on my page their is from five days ago. What is disappointing is that Mugshot is run by RedHat, an Open Source company. I've looked around and places like FriendFeed offer great functionality, but they all suffer the unacceptable (to me) problem of not being open. So, I was very happy to come across Whoisi. What is particularly interesting about Whoisi is that you don't log in; anyone can go on the site and type in anyone else's name and then add sites (blogs, photo sites, etc) to their profile and start following them similarly to the way Mugshot does. What is better is that it is a very simple site and doesn't require proprietary plugins such as Flash. In order for you to come back later and see your page and who you are following, you are given a unique URL. This site introduced and interesting bit of trust on the community as anyone can add/remove resources from your profile. Then again, that is a misnomer; the "profile" isn't really yours so much as it is a public timeline of things associated with your name. Give it a try. I'm ryanc on whoisi.com.
My last bit to talk about deals with hardware. I've been using OpenBSD for my server for quite a while now. OpenBSD has the interesting reputation of being zealous towards openness, a reputation that I am happy to be a part of. Long story short, a few releases back, OpenBSD decided that they would completely remove any and all hardware drivers that weren't completely open. What this meant is that any hardware vendor that hadn't been proactive with providing documentation, APIs, etc to the community in order to help develop open drivers would be removed from the official distribution. The side effect was that with this released, the project actually went backwards in total amount of hardware that they supported, but also gained in terms of being truly open and took a hard stance where no other open operating systems have been able to. This alternative of mine was a bit different, because it cost me money. In this case, however, I was glad to do so. I replaced my 3ware 9650SE-2LP RAID card for an Areca ARC-1200 RAID card. I did this because Areca is a big supporter of the Open Source community, whereas 3ware has decided to be luke warm at best and only distribute their drivers in binary only -- very similar to how Nvidia and ATI choose to do. The only thing I gained from this move was a good feeling.
Oh! I almost forgot, apparently my new RAID card is not just a true hardware card, but a Ture hardware RAID card...and it's from the Future!

This hit me like a ton of bricks so I had to, of course, delve deeper into this. After all is said and done, what I have come away with is much like we have worked to ensure that software and the code behind it is open and part of a larger community involvement we must also make sure that the hardware, networks, protocols, services and most importantly the data is open and free.
Every day, I use various services as part of my daily routine: Google, Yahoo, Twitter, etc; and all of this sits in giant data centers that I have no access to, over networks that I have no control over, with software that I can't personally audit, and via trusts that I have no way to verify.
The scary thing is that I don't live by all of these social networks and services nearly as much as a lot of people I know. What I have to ask myself, and everyone else for that matter, what would you do if one of the companies that controls the service(s) you use just closed up or went away? For a lot of people, that would be a huge deal. We call keep an enormous amount of our lives out there with very little actual control over the data itself.
Luckily, there are alternatives -- you can get your fix and still have control. It's not everything, but its a start.
Identi.ca -- Just like Twitter, except that it's Free Software, uses the open XMPP protocol for all of it's back end communications, doesn't crash all the time, and supports logins via OpenID It runs the Laconica microblogging software, so if you feel like it you can run your own installation and it will link up with other sites because it IS open. I will be keeping my Twitter account for the time being, but only for keeping up with my friends that haven't switched yet. I'm ryanc on identi.ca.
The second alternative, I was initially kind of sad about. I've been a big fan of Mugshot for a long time, but unfortunately they don't seem interested in opening things up and their updates are really slow. In fact, my last update to show up on my page their is from five days ago. What is disappointing is that Mugshot is run by RedHat, an Open Source company. I've looked around and places like FriendFeed offer great functionality, but they all suffer the unacceptable (to me) problem of not being open. So, I was very happy to come across Whoisi. What is particularly interesting about Whoisi is that you don't log in; anyone can go on the site and type in anyone else's name and then add sites (blogs, photo sites, etc) to their profile and start following them similarly to the way Mugshot does. What is better is that it is a very simple site and doesn't require proprietary plugins such as Flash. In order for you to come back later and see your page and who you are following, you are given a unique URL. This site introduced and interesting bit of trust on the community as anyone can add/remove resources from your profile. Then again, that is a misnomer; the "profile" isn't really yours so much as it is a public timeline of things associated with your name. Give it a try. I'm ryanc on whoisi.com.
My last bit to talk about deals with hardware. I've been using OpenBSD for my server for quite a while now. OpenBSD has the interesting reputation of being zealous towards openness, a reputation that I am happy to be a part of. Long story short, a few releases back, OpenBSD decided that they would completely remove any and all hardware drivers that weren't completely open. What this meant is that any hardware vendor that hadn't been proactive with providing documentation, APIs, etc to the community in order to help develop open drivers would be removed from the official distribution. The side effect was that with this released, the project actually went backwards in total amount of hardware that they supported, but also gained in terms of being truly open and took a hard stance where no other open operating systems have been able to. This alternative of mine was a bit different, because it cost me money. In this case, however, I was glad to do so. I replaced my 3ware 9650SE-2LP RAID card for an Areca ARC-1200 RAID card. I did this because Areca is a big supporter of the Open Source community, whereas 3ware has decided to be luke warm at best and only distribute their drivers in binary only -- very similar to how Nvidia and ATI choose to do. The only thing I gained from this move was a good feeling.
Oh! I almost forgot, apparently my new RAID card is not just a true hardware card, but a Ture hardware RAID card...and it's from the Future!

01 July 2008
lighttpd + FastCGI + Perl
I'm writing this down for my own future reference, but I'm sure someone else might find it useful.
I'm starting work on a web application that I've been wanting to write for a while now, so last night I started experimenting. I had already made up my mind how I wanted it designed from an architecture point of view, I just needed it to work. I've used lighttpd in leiu of bigger and bloaty-er web servers for a while now and the use of Perl was a no-brainer as it is my goto programming language of choice. I had used FastCGI in a past project with PHP with some success and liked the benefits it provides, so I just had to figure out how to hook it all together.
Needless to say, there seems to be about 1,327 different ways of doing this, but I wanted to keep things clean, flexible, and most importantly simple. Fiddling with it for a while has yielded the following bits:
FastCGI-related parts from lighttpd.conf
I'm starting work on a web application that I've been wanting to write for a while now, so last night I started experimenting. I had already made up my mind how I wanted it designed from an architecture point of view, I just needed it to work. I've used lighttpd in leiu of bigger and bloaty-er web servers for a while now and the use of Perl was a no-brainer as it is my goto programming language of choice. I had used FastCGI in a past project with PHP with some success and liked the benefits it provides, so I just had to figure out how to hook it all together.
Needless to say, there seems to be about 1,327 different ways of doing this, but I wanted to keep things clean, flexible, and most importantly simple. Fiddling with it for a while has yielded the following bits:
FastCGI-related parts from lighttpd.conf
Run the FastCGI spawner provided by lighttpd:fastcgi.server = (
"" => (( "socket" => "/var/run/fcgi_test.socket" ))
)
handler.fcgi (goes in your document root, dispatches requests):$ /usr/bin/spawn-fcgi -f /path_to_your/public_html/handler.fcgi \
-s /var/run/fcgi_test.socket
Finally, your actual code for your web application. In this case, I've called it WebApp.pm (make sure it's in your Perl library search path somewhere):#!/usr/bin/perl
use strict;
use warnings;
use WebApp;
my $app = new WebApp;
$app->run();
This will allow me to code up my web application, keeping all of my code actually outside of the document root of the web server. For my application, I've chosen to use CGI::Application, which is an excellent yet simple framework for "building reusable web-applications in an object-orientated and extensible fashion." I'm pretty happy with it so far, it supports templates, has many available plugins, and seems simpler than many other frameworks available (which I've already stressed before is important to me).#!/usr/bin/perl
package WebApp;
use warnings;
use strict;
use base 'CGI::Application::FastCGI';
sub setup {
my $c = shift;
$c->start_mode('mode1');
$c->run_modes(
'mode1' => 'hello_world',
'AUTOLOAD' => 'error_mode'
);
}
sub hello_world {
my $c = shift;
my $q = $c->query();
my $output = '';
$output .= $q->start_html(-title => 'FastCGI test');
$output .= "hello world.\n";
$output .= $q->end_html;
return $output;
}
sub error_mode {
my $c = shift;
my $q = $c->query();
my $intended_mode = shift;
my $output = '';
$output .= $q->start_html(-title => 'FastCGI test');
$output .= "invalid mode: $intended_mode specified.\n";
$output .= $q->end_html;
return $output;
}
1;
28 June 2008
Small bites
To eat: tomatos marinated in olive oil, red wine vinegar, basil, salt/pepper spooned on ciabatta and covered with proscuitto; fresh mozzerella marinated in olive oil, basil, salt/pepper, lemon juice; artichoke hearts tossed with chives, parsley, garlic, lemon juice, olive oil, salt/pepper.
Sorry for the poor picture folks.
.jpg)
And with that, in addition to an awesome Korean meal I had tonight, I will proceed to reboot my diet. Much like I did three years ago that helped me become much healthier, I need to re-focus on what I put in my body. I'm not saying the above is bad for you...just don't do it all the time :)
Sorry for the poor picture folks.
.jpg)
And with that, in addition to an awesome Korean meal I had tonight, I will proceed to reboot my diet. Much like I did three years ago that helped me become much healthier, I need to re-focus on what I put in my body. I'm not saying the above is bad for you...just don't do it all the time :)
14 June 2008
Attention web developers
I have historically only had three requirements out of people who code for the web, in no particular order they are:
1. Don't make me have to install third-party plugins in order to view the content on your site (this does not apply to attached media such as music and video).
2. Similarly, don't make the navigation on your site dependant on Javascript.
3. Code for standards, not for a specific browser.
Let me quickly elaborate; I'll start with number 2. HTML is meant for content, CSS for styling, and Javascript for additional functionality -- please keep it that way. I don't know you, therefore I don't trust you implicitly and I sure ain't going to just let you execute whatever code you may have embedded in your webpage. So, please don't assume that I have Javascript and other things enabled. An example would be visiting a site and there being zero navigation becasue your fancy-schmancy menu didn't show up due to me having Javascript disabled. As a result, I browse away from your site and never come back. Regarding number 1, it can be seen as similar to number 2 in that requiring users to have something that isn't part of the standard DOM in order to view you site is not only stupid on your part, it's limiting. I'm sure you can see a trend by now, number 3 is essentially the same, just dependant on proprietary and browser-specific functionality.
All this said, I have a new requirement, bringing the total to four:
4. If you set a background color in your CSS for an object (or the entire page) please, for the love of all that is good, also set a text color that contrasts well.
What is my reasoning behind this? In the absense of a specified color, most browsers will use the colors from it's theme when rendering a page. This is all fine for most, but what if the user uses a dark theme (light text on dark background)? You get something like this...

Can you see the text? I know it's hard. In this case, the site has set a background color for the text input window, but not a text color. Therefore, the browser is using my system's default.
The bottom line is, you have everything you need in the DOM to make simple, scalable, usable, cross-browser compliant, and yes even beautiful web pages and web applications. Javascript, Flash, whatever is for extra functionality, not baseline content and navigational delivery. If you adamantly disagree with the above statements, I take that as you making excuses -- excuses for your inability to develop well. Number 4 is more of just a nitpick, it ususally occurs from developer laziness or just simply being overlooked. That's why you should always validate your code.
As a web developer, you have to ask yourself who your audience is. Is it a very limited and specific set of people that you have predefined requirements with (i.e. a company intranet) or are you making something for the wide world? If it is the latter and you fail to address the above points you are limiting your audience. If you are the type that simply doesn't care and insists that everyone should be running IE in 1024x768 and has their entire site implemented in a Flash app, you've kind of missed the point of the internet. I implore you to rethink your development decisions.
Oh, and before I forget, every web developer worth his or her salt, should have both Firebug and YSlow installed.
1. Don't make me have to install third-party plugins in order to view the content on your site (this does not apply to attached media such as music and video).
2. Similarly, don't make the navigation on your site dependant on Javascript.
3. Code for standards, not for a specific browser.
Let me quickly elaborate; I'll start with number 2. HTML is meant for content, CSS for styling, and Javascript for additional functionality -- please keep it that way. I don't know you, therefore I don't trust you implicitly and I sure ain't going to just let you execute whatever code you may have embedded in your webpage. So, please don't assume that I have Javascript and other things enabled. An example would be visiting a site and there being zero navigation becasue your fancy-schmancy menu didn't show up due to me having Javascript disabled. As a result, I browse away from your site and never come back. Regarding number 1, it can be seen as similar to number 2 in that requiring users to have something that isn't part of the standard DOM in order to view you site is not only stupid on your part, it's limiting. I'm sure you can see a trend by now, number 3 is essentially the same, just dependant on proprietary and browser-specific functionality.
All this said, I have a new requirement, bringing the total to four:
4. If you set a background color in your CSS for an object (or the entire page) please, for the love of all that is good, also set a text color that contrasts well.
What is my reasoning behind this? In the absense of a specified color, most browsers will use the colors from it's theme when rendering a page. This is all fine for most, but what if the user uses a dark theme (light text on dark background)? You get something like this...

Can you see the text? I know it's hard. In this case, the site has set a background color for the text input window, but not a text color. Therefore, the browser is using my system's default.
The bottom line is, you have everything you need in the DOM to make simple, scalable, usable, cross-browser compliant, and yes even beautiful web pages and web applications. Javascript, Flash, whatever is for extra functionality, not baseline content and navigational delivery. If you adamantly disagree with the above statements, I take that as you making excuses -- excuses for your inability to develop well. Number 4 is more of just a nitpick, it ususally occurs from developer laziness or just simply being overlooked. That's why you should always validate your code.
As a web developer, you have to ask yourself who your audience is. Is it a very limited and specific set of people that you have predefined requirements with (i.e. a company intranet) or are you making something for the wide world? If it is the latter and you fail to address the above points you are limiting your audience. If you are the type that simply doesn't care and insists that everyone should be running IE in 1024x768 and has their entire site implemented in a Flash app, you've kind of missed the point of the internet. I implore you to rethink your development decisions.
Oh, and before I forget, every web developer worth his or her salt, should have both Firebug and YSlow installed.
09 June 2008
What to do with all these pictures?
I've been taking a lot of pictures lately, but I haven't posted anything in a long time. I figure it has something to do with not knowing exactly how I would like to keep things organized, but I can't procrastinate any longer. So, without any further ado, here is what I'm going to do:
1. Organize all of my photos in F-Spot.
2. Anything worth sharing will head up to my Picasa Web site without any corrections, modifications, etc.
3. Any pictures that I personally really like or that I receive feedback on will get some personal attention (i.e. fixing levels, balance, etc) and sent up to my Flickr site.
This whole Flickr thing is big to me. I've had the account for a long time but I've never, ever used it. For some reason, I feel a bit of trepidation placing my photos up there because I know how critical a lot of Flickr's users can be. Then again, if I'm not ready to receive said criticisms about my photos now, I probably never will be.
In reality, I shouldn't be worrying about it as I'm definitely no professional nor will I probably every be. I'm just going to go forward, happily snapping as I wander along -- and maybe someone, somewhere will get something out of a picture that I had fun taking. The thing to remember (as with most things in life) is that if you are going to do something for your own enjoyment, make sure you are actually doing it for yourself, not to impress someone else.
1. Organize all of my photos in F-Spot.
2. Anything worth sharing will head up to my Picasa Web site without any corrections, modifications, etc.
3. Any pictures that I personally really like or that I receive feedback on will get some personal attention (i.e. fixing levels, balance, etc) and sent up to my Flickr site.
This whole Flickr thing is big to me. I've had the account for a long time but I've never, ever used it. For some reason, I feel a bit of trepidation placing my photos up there because I know how critical a lot of Flickr's users can be. Then again, if I'm not ready to receive said criticisms about my photos now, I probably never will be.
In reality, I shouldn't be worrying about it as I'm definitely no professional nor will I probably every be. I'm just going to go forward, happily snapping as I wander along -- and maybe someone, somewhere will get something out of a picture that I had fun taking. The thing to remember (as with most things in life) is that if you are going to do something for your own enjoyment, make sure you are actually doing it for yourself, not to impress someone else.
27 May 2008
Adventures in Focaccia
After mentioning it so long ago, I finally got around to making my focaccia recipe. Probably the reason it took so long is because making it, in fact, takes so long. Three days -- no really! First you have to make a primer; then the next day do all the mixing followed by 3-4 series of resting and rising; finally getting to the last day where you do some more rising, addition of last minute oil and herbs, and eventually the baking.


I wondered how well it would work out. Better than I had hoped, actually -- so well that I didn't get a picture of the whole thing completed. All I got was this dinky picture of about 1/4 of what was left. Thats alright though, I'm just glad it turned out so well, especially after all the time invested.
So, what can you do with all this bread? The simplest thing I can think of is to just serve it with dinner along side some Olive Oil and Balsamic Vinegar (get a fruity one from the Mendona region of Italy). I happen though, to like making sandwiches with them. Try some of these combos: Turkey, English Cheddar, and really spicy mustard; or how about Prosciotto, Arrugola, fresh Mozzarella, and tomato sauce; or my personal favorite, Chicken, Havarti, basil pesto (make it yourself!), and sun-dried tomatoes.

Mmmm-hmmm!


I wondered how well it would work out. Better than I had hoped, actually -- so well that I didn't get a picture of the whole thing completed. All I got was this dinky picture of about 1/4 of what was left. Thats alright though, I'm just glad it turned out so well, especially after all the time invested.
So, what can you do with all this bread? The simplest thing I can think of is to just serve it with dinner along side some Olive Oil and Balsamic Vinegar (get a fruity one from the Mendona region of Italy). I happen though, to like making sandwiches with them. Try some of these combos: Turkey, English Cheddar, and really spicy mustard; or how about Prosciotto, Arrugola, fresh Mozzarella, and tomato sauce; or my personal favorite, Chicken, Havarti, basil pesto (make it yourself!), and sun-dried tomatoes.
Mmmm-hmmm!
24 May 2008
A Beautiful Day
Wow.

click to make a little bigger...
This is what I awoke to today (and no picture really does it justice). While you can see it was pretty cloudy over the Olympics, the day was as clear as a bell over the city. This just made me more excited for my backpacking trip next weekend.
I took quite a few pictures while I was out on a near day-long bike ride that I'll try to get up sometime this weekend.

click to make a little bigger...
This is what I awoke to today (and no picture really does it justice). While you can see it was pretty cloudy over the Olympics, the day was as clear as a bell over the city. This just made me more excited for my backpacking trip next weekend.
I took quite a few pictures while I was out on a near day-long bike ride that I'll try to get up sometime this weekend.
15 May 2008
On A Good Grocery Store
I love Whole Foods (or Wild Oats, whatever), who doesn't? I like that I can go in and, for the most part, not have to worry about the source of the food items I buy. I also like completely blowing my entire paycheck, but that's another story (read problem).
However, our local co-op, PCC takes it up a notch. By being local and small, they can make announcements such as, "We are no longer carrying ANY product that contains High Fructose Corn Syrup". See the article here. Pretty awesome if you ask me.
So today, both because I needed some parchment paper and I wanted to take a long-ish ride, I decided to ride up to the nearest PCC, which is located about 4.5 miles away in the neighborhood of Fremont (the Center of the Universe). What was surprising is that it wasn't so bad. The route to and from PCC can almost entirely be done via streets with dedicated bike lanes and to top it all of, the weather was great.
I think that from now on I'll ride over to the PCC in Fremont for my grocery shopping unless I'm just in a humungous hurry. Besides, all the PCC stores are great and have an equally great selection of goods -- this one is just in Fremont, which is an awesome neighborhood to start with.
However, our local co-op, PCC takes it up a notch. By being local and small, they can make announcements such as, "We are no longer carrying ANY product that contains High Fructose Corn Syrup". See the article here. Pretty awesome if you ask me.
So today, both because I needed some parchment paper and I wanted to take a long-ish ride, I decided to ride up to the nearest PCC, which is located about 4.5 miles away in the neighborhood of Fremont (the Center of the Universe). What was surprising is that it wasn't so bad. The route to and from PCC can almost entirely be done via streets with dedicated bike lanes and to top it all of, the weather was great.
I think that from now on I'll ride over to the PCC in Fremont for my grocery shopping unless I'm just in a humungous hurry. Besides, all the PCC stores are great and have an equally great selection of goods -- this one is just in Fremont, which is an awesome neighborhood to start with.
Subscribe to:
Posts (Atom)