Just a reminder to make all our future software of all stripes more resilient. We have to make that easier. Microsoft Watch captures a crashed kiddie ride at some store...
"I have a mind like a steel... uh... thingy." Patrick Logan's weblog.
Search This Blog
Wednesday, June 13, 2007
XMPP DevCon 3
XMPP DevCon #3 is in a few weeks, down the street from my office, coincident with OSCON.
"Bonjour, XMPP."
From http://blog.xmpp.org/...
Today we advanced XEP-0174: Link-Local Messaging to Draft in our standards process. This specification defines how to send XMPP messages in a serverless mode via zero-configuration networking (a technology created by Apple Computer, originally called Rendezvous and now called Bonjour).To be clear for us newbies to Bonjour, there are implementations like the one from Apple, but it is also a standard, or maybe more accurately a set of conventions for using some IP standards. So it is not like "using something from Apple" which may be less appealing to some than "using some IP networking standards".
Anyway, that said, this is kind of interesting. We've been looking at various intersections of grid computing and messaging. If you have a number of processes coming and going, not too far from each other, and some of them need to find each other to exchange some information, this might be a way to do that.
Tuesday, June 12, 2007
Common Solutions To Common Problems
Stefan Tilkov and Marc de Graauw debate the advantages to rest.
Here's another aspect to the question: no matter how much caching is used (now or perhaps later) there is a lot more to HTTP, and there is a lot of open and high quality software for HTTP. So why not use common solutions to common problems?
iPhone and Safari SDK
Had Apple chosen to build a ‘real’ SDK (i.e. using Objective C/Cocoa), only Mac developers would have been able to build iPhone applications — this way, and with the accompanying release of Safari for Windows, there are millions of developers who can (and will) build them...Purt near brilliant, really.I fail to see what’s wrong with this, because Safari will allow interaction with the iPhone’s features — you can make calls, access contacts etc. What more could one ask for?
Wish iPhone would support Flex though. :-)
Monday, June 11, 2007
Beavs Return to Omaha!
How'd they do it? Pitching. Defense. (Amazingly the Michigan team batted over .300 through their lineup, top to bottom. Until this super-regional series, where they hit below .200.)
And Small ball. (Read the same summaries below to see how they scored the last two games!)
The Oregon State Beavers are the defending national champions in NCAA baseball. But they lost all but four players from last year. Only two of those four were starters.
This year they went into a three week slump within their Pac-10 schedule, and slid way down those standings. No one really expected too much from them. Their overall record (and perhaps recent history) got them into the regionals as a three-seed.
But just as they clawed and scratched their way last year to the national championship up through the loser's bracket, this year they found their way back to the College World Series in Omaha for a third straight year. (Portland Tribune, ESPN)
Previous year champions often do not return to Omaha. The Beavers are clawers and scratchers.
They won three games in 24 hours to win their regionals. Then in the super-regionals against Michigan they won a *fantastic* game on Sunday 1-0, scoring in the ninth on their only hit, a single to the opposite field.
Today they just clobbered Michigan, 8-2. (Well, sort-of -- the Michigan pitchers gave up some really bad bases on walks, hit pitchers, and balks. And hits.) The College World Series starts on Friday. The Beavers are a long-shot, but last year they were as well.
Go Beavs! Thanks for all the great baseball. And thankfully there is more to come this season. If you want to watch fun baseball, watch the OSU Beavers in the CWS on ESPN.
Flex 3 Deep Linking
The new beta of Flex 3 takes another step or so to resolve webbiness issues. One is becoming more open. Still it's not HTML, but heading in the right direction.
More immediately pragmatic is "deep linking" so the problem of Flash/Flex being a blob of unlinkable bits is significantly less of a problem.
Neet-o. I still think it's better to view a Flex app as kind of like a "browser executable" that reads webs of resources as would any other web client. But doing this *and* being able to deep link to within that "browser executable" is something.
This is most useful when the application is is behaving in ways not easily implemented in Ajax.
Epidemic Algorithms For Replicated Data(base) Maintenance
Fun reading via Werner Vogels via Dan Creswell.
Dinosaurs Online
Also from IEEE... http://dsonline.computer.org/
Is it kind of telling when a publisher puts the phrase "online" in their url? And then the lead article for the June 2007 issue is the best paper from some conference in 2006.
I'm just sayin.
Mac Attack
I need to sms my son before he buys Windows for his new MacBook Pro. He was doing so for certain games, but may not need to after all...
Citing that EA customers were moving to the Mac in droves, EA announced that it would once again begin developing games for the Mac platform with simultaneous releases as their Windows counterparts. Command and Conquer 3, Battlefield 2142, Need For Speed Carbon, and Harry Potter & the Order of the Phoenix are coming in July 2007, with Madden 08 and Tiger Woods 08 to follow.The world keeps nibbling away at the empire. Oh, there's that thing about Safari being released for Windows too.
Microsoft Watch asks if we need another browser on Windows. Yes, if it is from Apple. Maybe IE and Office will whither away due to suckage. Apple moving software to Windows can only help. Maybe Keynote will be next? Competition is *healthy*, remember?
Apollo, Now AIR, On Tour
I just signed up for the July 12 AIR thingy in Portland.
Here's the whole tour page.
All kinds of news about Apollo/AIR, Flex, etc. from Adobe today.
Making The Point
Stu Charlton makes a strong case for why WS-SOAP will never get beyond its current level of development.
The entire fiasco should go down in computing lore as an epic tragedy.
But the most interesting statement from his post is this...
WS-Eventing isn't really implemented or ratified. So there's still a lot of room for MQ, JMS, TIBCO/RV, etc.Apparently some lessons are hard to learn.
We've now all learned no one in their right mind, vendor or customer, should be investing in WS-SOAP. Furthermore, we should all *immediately* begin extrapolating the lessons learned over the last few years.
Why would anyone, vendor or customer, invest in *any* of the above listed messaging technologies?
OK, if I ran a trading floor with a lot of value moving around constantly I would give RV a look. But under no other circumstances.
If I had any of these already in my data center I would already have a plan in place for isolating and ultimately obsoleting them. Any minor investments would fall under the category of "regret".
HTTP, XMPP, maybe AMQP, and very few others would be on the short list.
Sunday, June 10, 2007
Cheaper Than Tibco
Bill de hÓra observes...
it's probably not the kind of message bus you have in mindPlus he's given us the over/under on Scala hitting Google's front page. (It's not on mine yet either.)
From the referenced post by David Pollak...
In many ways, Scala is blend of a lot of these good worlds. I like that I could choose to blend Actors, servlets, and all the other stuff that's part of the Scala world. It means that I have a choice about how I solve a problem. I hope you've enjoyed my solution to the "scaling Twitter problem." I hope you'll enjoy how the Erlang/Erlyweb folks solve it with their chitter project.
It's Too Wii-alistic
Is the combination of "mature" rated games and the Wii's "naturalistic" controller just too much realism? Some think so, as reported in qj.net. One person calles it "a murder training device".
M-rated games coming to the Wii are expected to be criticized and contested. Manhunt 2, in particular, is receiving much word from anti-game lawyers. In an interview by Fox News, Florida Attorney General Bill McCollum talked about the game's Wii version requiring players to slash and stab using the Wiimote...Let's not bring common sense into the equation, shall we? Or maybe we should force the players of "mature" games to use those old fashioned controllers with mini joysticks and all kinds of buttons so they remember *It's Just A Game*!Looks like Super Smash Brothers Brawl will take some heat too, since it encourages kids to beat the crap out of their friends and throw them out the stage. Nintendo is not fazed, stating that games simply have different audiences just like movies, televisions, and books. Don't let the kids touch Manhunt 2, problem solved.
Open (and Linux) Wins The Home Again
I learned about this cool device reading Edd Dumbill's blog.
I've been astounded at the applications people have devised for this little box. Being fairly cheap makes it a great candidate for home automation projects. It's a great example of how limiting resources fosters innovation. Remember how games on 8-bit microcomputers were so much more ingenious than those on their more well-resourced successors?The NSLU2 is another one of those Linux-based devices for the home and small businesses. They always seem to cost about $100 USD which makes them fairly easy to buy for people (at least me) running home networks already. Fry's has this one, which is just down the road a bit from my house.
I don't really *need* another network storage device, but this one has some really useful hacks, which Linksys acknowledges to be OK and not completely out of line.
Open (and Linux) wins again. Companies that find ways to leverage (and contribute to) common, open platforms appeal to me.
Companies that don't, don't. And so I was also pleased recently that my son chose a new MacBook Pro as his high school graduation present. Although he will be spending his own hard earned money to run Windows on Boot Camp for some games. His choice. I sure am envious of that laptop though. Nice choice!
Watching Out For Lolcats
Learning is fun generally. Learning about the APP and the Atom format can be fun specifically. For example, did you know...
valuable formats - ones with media types, and not just the usual blogging suspects - are properly supported in APP. Lolcats won't be a problem.See what I mean? This is good news even for us dog lovers. :-)
Finally a general observation that has nothing to do with cats or dogs, but is worth repeating at every opportunity...
Going custom will up the overall design and engineering dollars spent. Companies, even big ones, are resource bound so each engineering dollar spent on publishing infrastructure is a dollar not spent on a cool feature a user might care about. You want to be sure it's the right thing to do. For those integrating against such a provider you probably want to keep custom formats/protocols at the edge and convert them to open models for that internal use.
Saturday, June 09, 2007
Can iTunes Accomplish What Jini Couldn't?
Frank Sommers reflects on Walter Mossberg's. First Mossberg...
Out of the box, each copy of iTunes looks for other shared iTunes music libraries on your local network. It doesn’t share your library unless you authorize it to do so...And now on to Frank Sommers...If you use Sharing, you’ll see in iTunes’ left-hand panel a list of shared libraries on other iTunes-equipped computers on your local network, whether they reside on Windows or Macintosh computers...
[As] I write this on a Mac laptop in my home office, I am playing a song that resides on a Windows Vista desktop PC in another room. To achieve this feat, I didn’t have to fiddle with the often confusing network settings... I just had to use iTunes on both machines and click a couple of buttons.
In effect, each copy of iTunes, with the user’s permission, broadcasts a sort of beacon that signals its presence to other copies of iTunes on a local network, regardless of the operating system underneath. It makes the operating system irrelevant.
The notion of network services advertising and discovering each other, forming spontaneous, often impromptu, relationships, was at the heart of the Jini vision. While Jini may well experience a resurgence due to Sun recently donating the Jini codebase to the Apache Foundation, Jini itself never gained the wide distribution that Apple's similarly-purposed network technology already enjoys. The Jini community has debated for a long time Sun's role in Jini's general acceptance, or lack thereof. While licensing may have been an issue, in my opinion there have not been compelling enough Jini services to entice users to install and use Jini. By contrast, iTunes users who care only about being able to listen to or purchase music online, have downloaded and installed Bonjour to the tune of several hundred million hosts.Bonjour goes beyond Jini's registration and lookup... Bonjour is zero config. Have you seen the Jini configuration mechanism?In addition to all those PCs, and every Mac, hundreds of different types of devices provide Bonjour-based networking capabilities, and new Bonjour devices come to the market all the time. Perhaps the most anticipated one will be Apple's own iPhone. Given all these devices, including a large number of PC desktops, it seems that a widely available spontaneous networking platform is now available. The question now is what developers will do with this new platform...
Adobe's Creative Suite 3 and Skype, to mention two examples, started to use Bonjour to facilitate local-area collaboration and discovery.
As Bonjour inventor Stuart Cheshire demonstrated in an hour-long Google TechTalk presentation (Flash video), Bonjour can be used to advertise and discover networked services over the WAN as well...
Bonjour simply extends the existing DNS mechanisms, and uses a service's protocol type, defined as a string, in service discovery. There are now several hundred service types described this way, from HTTP and SSL to the MYOB accounting software and the Sybase database server. If a client can talk a certain protocol, it can use Bonjour to discover and invoke services capable of communicating over that same protocol.
Perhaps the next major revision of Jini, should there be one, would use Bonjour at least as an alternative to much of the Jini registration and lookup, and other configuration such as the various HTTP ports, etc. Bonjour uses DNS SRV records to indicate what port to use for what service, and so there is no fighting over port 80, or 8080, etc.
Stuart Cheshire points out in the video linked above, AppleTalk had all this zero configuration for network addressing, naming, and discovery. Bonjour is the result of figuring out that IP has the same capabilities...
And that was the breakthrough: realizing that we can do service discovery using the semantics of DNS queries, and we don't need to invent a new protocol. And then we can run that DNS over the multicast DNS support that we've already created.Bonjour has each service run just a wee bit of DNS and negotiation among peers to avoid having a DNS server and configuration, etc. Amazing. It's probably time to begin incorporating this stuff into our systems.
And the WAN / unicast stuff can work the same way via the DHCP or other static information. Fun. We can accomplish what Jini couldn't, or hasn't yet.
Scala Implicits
I am continuing on my Scala learning curve. Scala continues to feel like a pragmatic sweet spot among programming languages. My most recent find is "implicits".
One of the pleasing aspects of dynamic languages like Common Lisp and Smalltalk (and so Python and Ruby) is the ability to extend objects that the system or some other programmers implemented, as if they were your own.
Languages without this capability force programmers to create "utility" classes. These extensions would have been in Object or String or Whatever, but the language would not allow extensions, so, here, take this StringUtils class or WhateverUtils class and use that with a String argument or a Whatever argument.
Scala is compile-time type checked (with type inference along the lines of ML and Haskell), so getting into the guts of a class and mucking at runtime is not so desirable from a type-safety point of view, and not so easy to make type-safe from an implementor's point of view. (Or maybe it's just not a priority for the language designers.)
Yet Scala does provide extensions of a sort, via a mechanism called "implicits". Extensions are defined in "wrapper" classes and an implicit type conversion is defined such that when an undefined method is encountered on an object, the defined implicit conversions are searched for a definition of that method. The object is essentially "wrapped" in an instance of that other class, and the method is invoked on the instance.
While this is type safe, it is not nearly as powerful as those mechanisms in the popular dynamic languages. (For one small example, it does not allow wrapping or replacing existing methods, as far as I can tell.) Still it does provide a fairly simple extension mechanism and so makes a fairly common situation much more pleasing than for the most popular type-checked languages.
Thursday, June 07, 2007
Scala
As an erlang fan, and a jvm critic, a few people have asked me whether or not I have tried the programming language scala which compiles to the jvm and integrates with java. I had not, and was not motivated in spite of their attempts.
Then fuzzy came across scala and asked me the same question last week or so. I gave him the same reply, and felt no more motivation to do so than ever.
But you see, fuzzy is my boss and (moreover?) one of my co-workers and collaborators. This week I went on one of those web-based hunts for something unspecified that lead here and there. This time, almost out of time, and remembering fuzzy's email about scala, "there" led to http://www.scala-lang.org.
OK, playing with scala for just a couple of hours forces me to take back all the crap I have dished out about the futility of the jvm when it comes to erlang-like programming, which I think we all should be doing. (Note: I said we all should be doing erlang *like* programming, not *erlang* programming per se!)
Someone suggested some time ago I should look at scala's actor library. Now I am deeply sorry so much time has passed since I followed that suggestion. Maybe I should have given some credit to the primary author, Martin Odersky, since years ago (nearly ten???) I used his pizza language extension / compiler for java quite a bit.
I am not a terrific fan of ML-like, Haskell-like type-inferencing, etc. languages. OK, but I never got over the curve enough to feel up to my level of ease with the smalltalk/lisp-like approach. Scala is along the lines of ML and Haskell, but that is not really a turn-off for me, more of a "so what".
Like some implementations of Haskell (at least the one I used the most, hugs), scala comes with a read-eval-print loop. That helps me a *lot*. Also scala supports the conventional unix syntax for writing executable scripts. Well, it is a *little* unconventional.
Scala feels pretty good even without its actors library. But actors...
Scala's actors (and remote actors) implement a pretty good chunk of erlang-like processes, process management, and message passing. And the performance on an unmodified jvm is beyond impressive. I guess it makes sense since event-oriented java library implementations have done the same. Scala takes that somewhat clumsy approach (in java) and wraps it up in a much nicer language and a richer erlang-like library.
Nicely done. Nice mix of objects and modern functional programming with pattern matching, etc. Message passing, pattern matching, and scalable "actors" -- that's a good mix for the future.
Scala is fairly new and mature: hopefully more people will take a look at it without hestiating like I did. The lift web framework is another reason to look, although not what I am after at this point.
Blog Archive
-
▼
2011
(19)
- ► 08/21 - 08/28 (5)
- ► 07/17 - 07/24 (1)
- ► 04/03 - 04/10 (3)
- ► 03/27 - 04/03 (5)
- ► 03/20 - 03/27 (1)
- ► 03/13 - 03/20 (1)
- ► 03/06 - 03/13 (1)
-
►
2010
(2)
- ► 11/07 - 11/14 (2)
-
►
2009
(40)
- ► 06/07 - 06/14 (2)
- ► 05/31 - 06/07 (1)
- ► 05/17 - 05/24 (1)
- ► 04/05 - 04/12 (2)
- ► 03/22 - 03/29 (7)
- ► 03/15 - 03/22 (1)
- ► 03/08 - 03/15 (4)
- ► 03/01 - 03/08 (2)
- ► 02/22 - 03/01 (1)
- ► 02/15 - 02/22 (5)
- ► 02/08 - 02/15 (1)
- ► 02/01 - 02/08 (7)
- ► 01/25 - 02/01 (2)
- ► 01/04 - 01/11 (4)
-
►
2008
(402)
- ► 12/28 - 01/04 (12)
- ► 12/14 - 12/21 (3)
- ► 12/07 - 12/14 (10)
- ► 11/30 - 12/07 (14)
- ► 11/23 - 11/30 (7)
- ► 11/16 - 11/23 (14)
- ► 11/09 - 11/16 (7)
- ► 11/02 - 11/09 (11)
- ► 10/26 - 11/02 (14)
- ► 10/19 - 10/26 (10)
- ► 10/12 - 10/19 (11)
- ► 10/05 - 10/12 (16)
- ► 09/28 - 10/05 (26)
- ► 09/21 - 09/28 (16)
- ► 09/14 - 09/21 (3)
- ► 09/07 - 09/14 (9)
- ► 08/31 - 09/07 (8)
- ► 08/24 - 08/31 (10)
- ► 08/17 - 08/24 (12)
- ► 08/10 - 08/17 (4)
- ► 08/03 - 08/10 (5)
- ► 07/27 - 08/03 (10)
- ► 07/20 - 07/27 (6)
- ► 07/13 - 07/20 (7)
- ► 07/06 - 07/13 (3)
- ► 06/29 - 07/06 (8)
- ► 06/22 - 06/29 (6)
- ► 06/15 - 06/22 (5)
- ► 06/08 - 06/15 (10)
- ► 06/01 - 06/08 (4)
- ► 05/25 - 06/01 (5)
- ► 05/18 - 05/25 (6)
- ► 05/11 - 05/18 (3)
- ► 05/04 - 05/11 (7)
- ► 04/27 - 05/04 (7)
- ► 04/20 - 04/27 (7)
- ► 04/13 - 04/20 (6)
- ► 04/06 - 04/13 (9)
- ► 03/30 - 04/06 (7)
- ► 03/23 - 03/30 (5)
- ► 03/16 - 03/23 (15)
- ► 03/09 - 03/16 (7)
- ► 03/02 - 03/09 (5)
- ► 02/24 - 03/02 (4)
- ► 02/17 - 02/24 (2)
- ► 02/10 - 02/17 (3)
- ► 02/03 - 02/10 (1)
- ► 01/27 - 02/03 (8)
- ► 01/20 - 01/27 (4)
- ► 01/13 - 01/20 (3)
- ► 01/06 - 01/13 (7)
-
►
2007
(388)
- ► 12/30 - 01/06 (11)
- ► 12/16 - 12/23 (5)
- ► 12/09 - 12/16 (3)
- ► 12/02 - 12/09 (5)
- ► 11/25 - 12/02 (5)
- ► 11/18 - 11/25 (4)
- ► 11/11 - 11/18 (4)
- ► 11/04 - 11/11 (11)
- ► 10/28 - 11/04 (11)
- ► 10/21 - 10/28 (3)
- ► 10/14 - 10/21 (6)
- ► 10/07 - 10/14 (5)
- ► 09/30 - 10/07 (18)
- ► 09/23 - 09/30 (13)
- ► 09/16 - 09/23 (9)
- ► 09/09 - 09/16 (12)
- ► 09/02 - 09/09 (15)
- ► 08/26 - 09/02 (2)
- ► 08/19 - 08/26 (8)
- ► 08/12 - 08/19 (25)
- ► 08/05 - 08/12 (7)
- ► 07/29 - 08/05 (8)
- ► 07/22 - 07/29 (2)
- ► 07/15 - 07/22 (4)
- ► 07/08 - 07/15 (11)
- ► 07/01 - 07/08 (3)
- ► 06/24 - 07/01 (8)
- ► 06/17 - 06/24 (4)
- ► 06/10 - 06/17 (17)
- ► 06/03 - 06/10 (6)
- ► 05/27 - 06/03 (12)
- ► 05/20 - 05/27 (5)
- ► 05/13 - 05/20 (15)
- ► 05/06 - 05/13 (10)
- ► 04/29 - 05/06 (14)
- ► 04/22 - 04/29 (5)
- ► 04/15 - 04/22 (6)
- ► 04/08 - 04/15 (16)
- ► 04/01 - 04/08 (8)
- ► 03/25 - 04/01 (5)
- ► 03/18 - 03/25 (3)
- ► 03/11 - 03/18 (3)
- ► 03/04 - 03/11 (5)
- ► 02/25 - 03/04 (1)
- ► 02/18 - 02/25 (4)
- ► 02/04 - 02/11 (10)
- ► 01/28 - 02/04 (11)
- ► 01/21 - 01/28 (2)
- ► 01/14 - 01/21 (1)
- ► 01/07 - 01/14 (7)
-
►
2006
(261)
- ► 12/31 - 01/07 (7)
- ► 12/24 - 12/31 (13)
- ► 12/17 - 12/24 (6)
- ► 12/10 - 12/17 (7)
- ► 12/03 - 12/10 (6)
- ► 11/26 - 12/03 (1)
- ► 11/19 - 11/26 (5)
- ► 11/05 - 11/12 (2)
- ► 10/29 - 11/05 (4)
- ► 10/22 - 10/29 (5)
- ► 10/15 - 10/22 (2)
- ► 10/08 - 10/15 (3)
- ► 10/01 - 10/08 (9)
- ► 09/24 - 10/01 (8)
- ► 09/17 - 09/24 (1)
- ► 09/10 - 09/17 (5)
- ► 09/03 - 09/10 (6)
- ► 08/27 - 09/03 (2)
- ► 08/13 - 08/20 (9)
- ► 08/06 - 08/13 (6)
- ► 07/30 - 08/06 (6)
- ► 07/23 - 07/30 (6)
- ► 07/16 - 07/23 (3)
- ► 07/09 - 07/16 (2)
- ► 07/02 - 07/09 (2)
- ► 06/25 - 07/02 (10)
- ► 06/18 - 06/25 (9)
- ► 06/11 - 06/18 (10)
- ► 06/04 - 06/11 (6)
- ► 05/28 - 06/04 (9)
- ► 05/21 - 05/28 (9)
- ► 05/14 - 05/21 (3)
- ► 05/07 - 05/14 (4)
- ► 04/30 - 05/07 (10)
- ► 04/23 - 04/30 (1)
- ► 04/16 - 04/23 (2)
- ► 04/09 - 04/16 (4)
- ► 04/02 - 04/09 (4)
- ► 03/19 - 03/26 (9)
- ► 03/12 - 03/19 (11)
- ► 03/05 - 03/12 (1)
- ► 02/26 - 03/05 (5)
- ► 02/19 - 02/26 (14)
- ► 02/12 - 02/19 (2)
- ► 02/05 - 02/12 (1)
- ► 01/29 - 02/05 (1)
- ► 01/22 - 01/29 (2)
- ► 01/01 - 01/08 (8)
-
►
2005
(335)
- ► 12/25 - 01/01 (9)
- ► 12/18 - 12/25 (4)
- ► 11/27 - 12/04 (1)
- ► 11/20 - 11/27 (1)
- ► 11/13 - 11/20 (1)
- ► 10/23 - 10/30 (1)
- ► 10/16 - 10/23 (2)
- ► 10/09 - 10/16 (3)
- ► 10/02 - 10/09 (11)
- ► 09/18 - 09/25 (4)
- ► 09/11 - 09/18 (4)
- ► 09/04 - 09/11 (1)
- ► 08/28 - 09/04 (7)
- ► 08/21 - 08/28 (10)
- ► 08/14 - 08/21 (6)
- ► 08/07 - 08/14 (2)
- ► 07/31 - 08/07 (16)
- ► 07/24 - 07/31 (5)
- ► 07/17 - 07/24 (6)
- ► 07/10 - 07/17 (5)
- ► 06/19 - 06/26 (1)
- ► 05/29 - 06/05 (7)
- ► 05/22 - 05/29 (7)
- ► 05/15 - 05/22 (16)
- ► 05/08 - 05/15 (10)
- ► 05/01 - 05/08 (8)
- ► 04/24 - 05/01 (6)
- ► 04/03 - 04/10 (7)
- ► 03/27 - 04/03 (19)
- ► 03/20 - 03/27 (15)
- ► 03/13 - 03/20 (27)
- ► 03/06 - 03/13 (7)
- ► 02/27 - 03/06 (16)
- ► 02/20 - 02/27 (7)
- ► 02/13 - 02/20 (10)
- ► 02/06 - 02/13 (23)
- ► 01/30 - 02/06 (4)
- ► 01/23 - 01/30 (12)
- ► 01/16 - 01/23 (15)
- ► 01/09 - 01/16 (2)
- ► 01/02 - 01/09 (17)
-
►
2004
(534)
- ► 12/26 - 01/02 (18)
- ► 12/19 - 12/26 (5)
- ► 12/12 - 12/19 (5)
- ► 12/05 - 12/12 (25)
- ► 11/28 - 12/05 (8)
- ► 11/21 - 11/28 (3)
- ► 11/14 - 11/21 (4)
- ► 11/07 - 11/14 (7)
- ► 10/31 - 11/07 (13)
- ► 10/24 - 10/31 (7)
- ► 10/17 - 10/24 (10)
- ► 10/10 - 10/17 (15)
- ► 10/03 - 10/10 (1)
- ► 09/19 - 09/26 (9)
- ► 09/12 - 09/19 (4)
- ► 09/05 - 09/12 (4)
- ► 08/29 - 09/05 (9)
- ► 08/08 - 08/15 (11)
- ► 08/01 - 08/08 (4)
- ► 07/11 - 07/18 (12)
- ► 07/04 - 07/11 (19)
- ► 06/27 - 07/04 (12)
- ► 06/20 - 06/27 (7)
- ► 06/13 - 06/20 (5)
- ► 06/06 - 06/13 (1)
- ► 05/30 - 06/06 (8)
- ► 05/23 - 05/30 (27)
- ► 05/16 - 05/23 (16)
- ► 05/09 - 05/16 (36)
- ► 05/02 - 05/09 (31)
- ► 04/25 - 05/02 (13)
- ► 04/18 - 04/25 (25)
- ► 04/11 - 04/18 (15)
- ► 03/28 - 04/04 (9)
- ► 03/21 - 03/28 (12)
- ► 03/14 - 03/21 (9)
- ► 03/07 - 03/14 (7)
- ► 02/29 - 03/07 (16)
- ► 02/22 - 02/29 (11)
- ► 02/15 - 02/22 (6)
- ► 02/08 - 02/15 (8)
- ► 02/01 - 02/08 (9)
- ► 01/25 - 02/01 (18)
- ► 01/18 - 01/25 (12)
- ► 01/11 - 01/18 (14)
- ► 01/04 - 01/11 (14)
-
►
2003
(286)
- ► 12/28 - 01/04 (7)
- ► 12/21 - 12/28 (10)
- ► 12/14 - 12/21 (5)
- ► 11/30 - 12/07 (5)
- ► 11/23 - 11/30 (5)
- ► 11/16 - 11/23 (2)
- ► 11/09 - 11/16 (3)
- ► 10/26 - 11/02 (6)
- ► 10/19 - 10/26 (9)
- ► 10/12 - 10/19 (8)
- ► 10/05 - 10/12 (5)
- ► 09/28 - 10/05 (3)
- ► 09/21 - 09/28 (3)
- ► 09/14 - 09/21 (4)
- ► 09/07 - 09/14 (3)
- ► 08/31 - 09/07 (6)
- ► 08/24 - 08/31 (12)
- ► 08/17 - 08/24 (3)
- ► 08/10 - 08/17 (6)
- ► 08/03 - 08/10 (8)
- ► 07/27 - 08/03 (9)
- ► 07/20 - 07/27 (5)
- ► 07/13 - 07/20 (8)
- ► 07/06 - 07/13 (15)
- ► 06/29 - 07/06 (12)
- ► 06/22 - 06/29 (5)
- ► 06/15 - 06/22 (6)
- ► 06/08 - 06/15 (1)
- ► 06/01 - 06/08 (5)
- ► 05/18 - 05/25 (7)
- ► 05/11 - 05/18 (9)
- ► 05/04 - 05/11 (13)
- ► 04/27 - 05/04 (9)
- ► 04/20 - 04/27 (4)
- ► 04/13 - 04/20 (10)
- ► 04/06 - 04/13 (15)
- ► 03/30 - 04/06 (7)
- ► 03/23 - 03/30 (13)
- ► 03/16 - 03/23 (9)
- ► 03/09 - 03/16 (3)
- ► 03/02 - 03/09 (8)
About Me
- Patrick Logan
- Portland, Oregon, United States
- I'm usually writing from my favorite location on the planet, the pacific northwest of the u.s. I write for myself only and unless otherwise specified my posts here should not be taken as representing an official position of my employer. Contact me at my gee mail account, username patrickdlogan.