"Now along comes Google, carrying two nuclear missiles: Android and
Chrome. Both are immediate problems for Microsoft. Let me be
absolutely clear: Chrome is not a Web browser, it's an application
runtime. Chrome is really Google Gears with a browser facade. Sure,
Chrome is based on Webkit and has browser legacy, but the product's
core capabilities—and Google's objectives for them—is running Web
applications. Chrome is a development platform, but in the cloud
instead of on the PC. Way I see it, Chrome is the Google OS."
"I have a mind like a steel... uh... thingy." Patrick Logan's weblog.
Search This Blog
Sunday, September 07, 2008
Google's Nukes?
Dan Ingalls on Javascript
"One thing is clear: JavaScript *is* the assembly language of the
Internet, at least for a few years now."
http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-September/131243.html
Friday, September 05, 2008
Not Much of a Choice
But the Republicans scare me, especially that they'd continue stocking the courts with wackos; they'd feed the war machine ever more; and they'd continue grabbing power for their "unitary executive" theory.
I'll take someone who means well, and expect a reasonable performance and a supreme court that can hold off the fascists for at least another 10 years.
Jon Stewart Calls Rove, O'Reilly, and Morris to Task
Wednesday night on "The Daily Show," Jon Stewart hit Karl Rove and
Bill O'Reilly with damning evidence of their hypocrisy regarding Vice
Presidential nominee Sarah Palin.
While Rove recently praised Palin's experience as the mayor of
Wasilla, Alaska, Stewart showed video of Rove trashing Virginia
Governor — and former Richmond Mayor — Tim Kaine's executive
experience, listing all the cities that are bigger than Richmond and
calling such a pick "political."
Then, after recent video of O'Reilly describing Bristol Palin's
pregnancy as a family issue, Stewart showed a clip of the Fox News
host blaming Jamie Lynn Spears' parents for her teenage pregnancy.
Finally, after showing video of Dick Morris complaining about the
rampant sexism in the media coverage of Sarah Palin, Stewart unveiled
a clip of Morris saying that Hillary hides behind the sexism defense,
and that anytime "the big boys" pick on Hillary, "she retreats behind
the apron strings."
"In Dick Morris' defense," Stewart said, "he is a lying sack of sh*t."
Reporting
lies of the current presidential campaign...
http://bitworking.org/news/363/pinch-me
PALIN: "I have protected the taxpayers by vetoing wasteful
spending ... and championed reform to end the abuses of earmark
spending by Congress. I told the Congress 'thanks but no thanks' for
that Bridge to Nowhere."
THE FACTS: As mayor of Wasilla, Palin hired a lobbyist and
traveled to Washington annually to support earmarks for the town
totaling $27 million. In her two years as governor, Alaska has
requested nearly $750 million in special federal spending, by far the
largest per-capita request in the nation. While Palin notes she
rejected plans to build a $398 million bridge from Ketchikan to an
island with 50 residents and an airport, that opposition came only
after the plan was ridiculed nationally as a "bridge to nowhere."
RDF, RDFS, and OWL
(resource relationships), and that look usually expands out to RDFS
(schemas for certain constraints relationships) and OWL (how to
express more generally specific constraints among relationships). The
descriptions in parens are my paraphrases.
In the context of the RESTful-JSON group, Bill de hÓra compared the
discussion there on URLs for JSON object attributes to using URLs in
RDF from a subject to either a literal or another resource (URL).
Which led me to reread Bill's piece from a few years ago on attempting
to automate the linkages between HTML forms and form elements and
updating resources designated in a service using RDF...
http://www.dehora.net/journal/2005/08/automated_mapping_between_rdf_and_forms_part_i.html
This aspect of REST, i.e. the client side being more general, and not
one-off for a specific model, is still lacking from what I have seen,
for RDF as well as now for JSON. For JSON the solution seems to be
send down the Javascript that is aware of the model expressed in JSON.
I think the same would be true for RDF, except when you get into the
need to make inferences, and so on, then more processing is required.
For either RDF or for JSON, modelling conventions are needed to be
more generically expressive in the client per se. Otherwise
conventions are needed server side to map from simple forms clients as
discussed by Bill.
So anyway... now I am interested in RDF and going a bit deeper with it
than before. I see the RESTful JSON development leading very quickly
into discussions of conventions of usage - what is a "collection"?
what is a "reference"? and so on. So I picked up a new good book
reviewed not long ago by Danny Ayers...
Danny Ayers...
Which led me to a comment on that review by Rowland Watkins. He commented...
"I am surprised that RDFS is still being used (except for certain
relationships), let alone RDFS-Plus - mixing RDFS and OWL is not a
good idea (this may be stated in the book). Unfortunately, FOAF still
suffers from RDFS/OWL (making it OWL Full). Still takes a bit of
searching to find the OWL DL version…"
Which catches this non-semantic-web-insider by surprise. A web search
did not turn up anything about mixing these not being a good idea. I
see a lot of discussions about subsets of OWL (lite, DL, etc. as well
as semi-custom) and so on, for decidability, performance, etc. But I
am wondering what the state of the semantic web standards and
implementations really are?
Thursday, September 04, 2008
Wednesday, September 03, 2008
RESTful Clients
http://blog.jonudell.net/2008/09/02/activating-the-web-one-programming-language-or-many/
Jon wrote:
"How these capabilities can and should be used in general, and
specifically both in the cloud and on peers — these questions interest
me a lot."
I think this is the key issue, yes. So far there is one reasonable
RESTful client application: the browser, generally. (Well, and email
clients, arguably.)
Some thoughts...
Good RESTful clients should be more secure than the browser, more
"rich" than the browser, and more easily programmed than the browser
(i.e. easier and more expressive than ajax). Good RESTful applications
should not require "one-off" programming on the client side. Nor
should they expect all the client components to be developed in any
single language, or run in a single runtime container.
Tuesday, September 02, 2008
Javascript Application Isolation
From Google's v8 documentation...
In V8, a context is an execution environment that allows separate, unrelated, JavaScript applications to run in a single instance of V8. You must explicitly specify the context in which you want any JavaScript code to be run.Thank you.Why is this necessary? Because JavaScript provides a set of built-in utility functions and objects that can be changed by JavaScript code. For example, if two entirely unrelated JavaScript functions both changed the global object in the same way then unexpected results are fairly likely to happen.
In terms of CPU time and memory, it might seem an expensive operation to create a new execution context given the number of built-in objects that must be built. However, V8's extensive caching ensures that, while the first context you create is somewhat expensive, subsequent contexts are much cheaper....
With the V8 snapshot feature (activated with build option snapshot=yes, which is the default) the time spent creating the first context will be highly optimized as a snapshot includes a serialized heap which contains already compiled code for the built-in JavaScript code. Along with garbage collection, V8's extensive caching is also key to V8's performance, for more information see V8 Design Elements.
When you have created a context you can enter and exit it any number of times. While you are in context A you can also enter a different context, B, which means that you replace A as the current context with B. When you exit B then A is restored as the current context. This is illustrated below:
Note that the built-in utility functions and objects of each context are kept separate. You can optionally set a security token when you create a context. See the Security Model section for more information.
The motivation for using contexts in V8 was so that each window and iframe in a browser can have its own fresh JavaScript environment.
Monday, September 01, 2008
B.B. King: Sitting On Top Of The World
How many artists of any medium have been on the top of their profession for many decades and then produce one of their greatest works?
B.B. King is one. "One Kind Favor" is his latest album, which is not only great, but one of the greatest blues albums ever, and one of the best collections of music of all time. Well, in my opinion.
No surprise that T Bone Burnett is the producer. King is no slacker at age 76, but Burnett was the perfect choice to draw this one out of King.
If you don't run out and get this music, you may as well stop listening to everything altogether. There would be no point in continuing.
Friday, August 29, 2008
Big Picture: Women Are Heroes
From Big Picture, "Women Are Heroes"...
View of the facade of some houses at the "Morro da Providencia" favela, one of the most violent of Rio de Janeiro, Brazil, taken on August 20, 2008. The French photographer identified as JR is launching a project called "Women Are Heroes", through which the photographs of women, relatives of the victims of clashes between the police and drug traffickers, were placed in the facades of the houses. This project already took place in Sudan, Sierra Leone, Kenya and Liberia, and will be taken to India, Cambodia, Laos and Morocco after Brazil...Though Rio is blessed with natural beauty and climate, it still struggles with large disparities between rich and poor, and many of the six million residents reside in hillside slums called favelas.
Thursday, August 28, 2008
Penny Arcade Expo 2008 in Seattle
boy. I enjoy it. It's a trip to Mecca for him. Last year he was at the
Lord of the Rings booth correcting some of their phrases in Tolkien's
elvish dialects.
http://blog.seattlepi.nwsource.com/microsoft/archives/147360.asp?source=rss
"Thanks, But No Thanks"
-Bill Clinton
Wednesday, August 27, 2008
Collaboration Components
"Being able to add collaboration components to your own applications.
That's where CoCoMo is going to come in. You can check out more at the
Collaborative Methods blog. We're exposing almost all of the
functionality from Connect Now into components that you can use inside
of your own Flex applications. Even better, CoCoMo will provide all
the hooks you need to add a real-time collaborative element to your
application. There's a recording available from a meeting with the
CoCoMo team if you're interested in more info."
http://blog.digitalbackcountry.com/?p=1611
There will be hands on development events at the MAX conference...
"The first session is going to be more of an overview, really
highlighting the scope of functionality offered by Cocomo, along with
a few simple sample apps to get the audience started. For the second
session, we're choosing one big sample AIR app that ties a bunch of
functionality together, and using it as a framing device for diving
into some slightly more advanced topics. Both should be a lot of fun -
multi-user apps are so much more interesting to build than single-user
apps, "cloud computing" is a pretty hot topic these days, and you'll
likely walk out of either session with something.. actually working."
http://blogs.adobe.com/collabmethods/2008/07/cocomo_max.html
It's about time the collaborative software landscape started shaping up again.
Tuesday, August 26, 2008
The Devil and Obama
We can't afford four more years of McSame...
Obama could have chosen the devil himself as a running mate and I'd vote for them over four more years of this crap.
Monday, August 25, 2008
"I'm not dead yet!" - the one-off data center
Dion Hinchcliffe writes...
The announcement this week of the launch of Amazon’s Elastic Block Store (EBS) has added another vital piece to the overall cloud computing picture. The EBS announcement is particularly significant since it takes the gloves off when it comes to meeting the demanding needs of enterprise class computing requirements. The Elastic Block Store finally makes it practical, cost effective, and relatively easy to put traditional storage and processing of very large amounts of data in the cloud from a credible vendor.
[clang]
Bring out your dead!
[clang]
Bring out...
[rewr!]
...your dead!
[rewr!]
[clang]
Bring out your dead!
CUSTOMER:
Here's one.
CART MASTER:
Ninepence.
DEAD PERSON:
I'm not dead!
CART MASTER:
What?
CUSTOMER:
Nothing. Here's your ninepence.
DEAD PERSON:
I'm not dead!
CART MASTER:
'Ere. He says he's not dead!
CUSTOMER:
Yes, he is.
DEAD PERSON:
I'm not!
CART MASTER:
He isn't?
CUSTOMER:
Well, he will be soon. He's very ill.
DEAD PERSON:
I'm getting better!
CUSTOMER:
No, you're not. You'll be stone dead in a moment.
CART MASTER:
Oh, I can't take him like that. It's against regulations.
DEAD PERSON:
I don't want to go on the cart!
CUSTOMER:
Oh, don't be such a baby.
CART MASTER:
I can't take him.
DEAD PERSON:
I feel fine!
CUSTOMER:
Well, do us a favour.
CART MASTER:
I can't.
CUSTOMER:
Well, can you hang around a couple of minutes? He won't be long.
Sunday, August 24, 2008
Portland Confidential
See: "Did a city ‘hit team’ lower the boom on Cindy’s?"
He turned a collection of his Portland Confidential columns into an entertaining book, whether you are from Portland or just enjoy reading about the real underbellies of society that many folks would just assume you ignore.
What happens when all of Old Town becomes New? Currently it appears the underbelly is headed about 80 blocks east of downtown and beyond. Is that any better? I guess for the real estate developers downtown, it's out of sight and far away for a while. Does a healthy city need something of an underbelly?
I remember moving to Portland 20 years ago and all that is hip in the Pearl District and what's fast becoming hip in Old Town was really very rundown. Still in spite of all the improvements every block displaces more people living on the edge with few options. It's easy to say getting rid of this one adult bookstore is an improvement, but most likely, as Stanford lays it out, the builders and real estate developers are the low-lying movers and shakers in city politics, and they are on a mission that considers little more than how to keep their gravy train flowing. Another former "house of prostitution" closer to Powells' City of Books, if you know where that is, is about to become a McMenamin's hotel. Well, that could provide an entertaining motif.
One group of folks my family, friends, and I have helped with every now and then for the last 15 years or so is Potluck In The Park. David Utzinger works his butt off every week making sure everyone who can get downtown can get a good meal; every Sunday. No one knows the last time he took a week off, looking back well over a decade. Plus they throw a party every Christmas day, and a huge barbecue every summer. There's no better group I know of that's just bare-bones, keep people fed and give them a place to socialize every week of the year. Most people in this kind of need aren't homeless, but if Portland continues revitalizing its Old Town, and similar blocks, there will most likely be more people on the street who currently at least have a roof.
Oh yeah, the small O'Bryant Square, the original "Paranoid Park", they've barely been able to hold on to for their Sunday dinners is also up for "revitalization" and PLitP has been trying to maintain some visibility in the "visioning" process. PLitP had already been moved out of the nicer park blocks several years ago. There were no problems, it's just such a large, weekly gathering of so many people in need, is just a bit "unseemly" for many people.
Friday, August 22, 2008
TriSano
An even better idea...
TriSano.orgThis is Mike "Fuzzy" Herrick's thing. Good deal.Tri is a prefix meaning three. Tri represents the collaboration between local, state and federal entities. It depicts the primary disciplines of public health: epidemiology, biostatistics and health services. Tri also refers to the epidemiological triad of host, agent, environment.
Sano is an adjective meaning promoting good health. Our goal for the application and the community is to help protect the health of people throughout the world.
The TriSano™ Eye represents a zooming (micro/macro) view on disease detection and prevention.
OK, I was good until being told this is an eye. That's kind of creepy. Isn't it a leaf?
Mike fills in the details about the logo. I really like the logo, graphically. I just need some time to adjust to it being an eye, not a leaf. Oh.
Open Quote
An interesting idea...
OpenQuote is an open source, web based, insurance quotation solution which allows quotes to be produced, and products maintained, over the web. Any number of products can be configured to support any line of business via externalised product definitions and rules.
Thursday, August 21, 2008
Groovy;
The same three of us have been programming in groovy in ernest for the first time. We've each dinked around a bit at one time or another previously.
Overall I like it. Especially closures and the syntax for block closures when the receiver's last argument is a closure. The spectrum from programming nearly all-like-java on one end of groovy style, and programming nearly all-like-lisp-and-smalltalk at the other end of groovy style flows more smoothly than I initially gave groovy's designers credit for a few years ago.
One quirk - bit me for a dozen minutes or so, the oddity/convenience that groovy wants the keys of a map to be strings. What bit me was the expression...
where foo and bar are variables.
{ foo: bar}
The "convenience" groovy provides is the interpretation of foo as a string, i.e. "foo". The value for the pair is still the result of evaluating bar. So you end up with the pair (if bar is the integer 1)... "foo" : 1
If foo has the value 3 and you'd like the pair to be... 3 : 1 then you have to put foo in parentheses to force evaluation...
That's the closest thing to a true quirk I've encountered. But for parameter lists, etc. the convenience does pay off in neatness. The result is a very smalltalk-ish keyword message send, and combined with the block closure syntax, is a pleasant and familiar style for smalltalk-lovers. (e.g. coding a seaside-ish web framework using paul-graham-ish closures rather than continuations would be very fitting in groovy.)
{ (foo): bar}
Meanwhile the other affect groovy has had is that now when I edit java code, I'm forever not using semicolons at the end of statements.
Oh, and the tools still really suck.
git out
Three of us have been using git with a shared (git) repository on a server. We've been pushing and pulling to/from the shared repository as opposed to peer-to-peer just as a matter of convenience and familiarity.
I have to say I like the concept of distibuted version control, or more to the point: versioning locally, pushing, and pulling. This is the first I've used such a tool. Mostly I've been using svn for the last few years. We've not tried the svn/git combo pack, just because we did not need or want to use svn in this case.
I also have to say after a couple two three weeks of using git, I am not crazy about git per se. Aside from just the learning adjustment that this is not svn and this is distributed version control, the adjustment and learning about what I would call the "quirks" of git have been somewhat discouraging.
I'd compare some of the cryptic language of git to some of the cryptic error messages a programmer new to erlang sees, or haskell / complexly type inferred languages. Combined with a vocabulary only a kernel linux hacker could appreciate, I suppose. I don't think this language is due to the concepts of distributed version control per se, rather to git's implementation and implementors.
And whatknot.
So git seems to be winning. I've not tried mercurial or other distributed repositories. Is git so good? Or just the one that's winning for reasons other than usability? And stuff.
My "Handling" Fantastic Contraption
I just love the trial and error that goes into making these contraptions.
My latest... "Stand Tall" is a solution for the "Handling" scenario.
Wednesday, August 20, 2008
"The most amazingly lifelike CGI"
Via Shawn Levey, movie critic for The Oregonian...
"The most amazingly lifelike CGI"
Yeah, seems kinda good.
Tuesday, August 19, 2008
Concurrent Programming with Erlang / OTP
Manning has a draft PDF available of a new Erlang book, with an emphasis on OTP, the platform/framework/library/what-cha-ma-call-it that helps in the development of robust, concurrent, distributed systems. I bought it, yes, I did. Co-authored by Martin Logan - no relation that I know of, and no damn discount on the book either!! (Well, I didn't ask. :-)
There are only a couple of draft chapters currently in the draft. But this should be a good addition to the growing supply of help getting going with Erlang.
I think the Seaside folks have made this "the year of Smalltalk" but there's an argument to be made for this being "the year of Erlang" as well.
Awash
Here's my resulting design for Awash I am pleased with, and fascinated by...
http://FantasticContraption.com/?designId=633065
This scenario was fun to evolve -- I settled on the approach fairly quickly, it wasn't a really difficult configuration, but getting the angles and positions just right took a few iterations. The to see the creation finally make it to the target - it is alive!
This would be a good scenario to see which design takes the least time. Every time I run mine there are a couple seconds when I lose all hope of success.
Monday, August 18, 2008
Between You and the Cloud
"Cloud computing is great. Right up until you lose your connection, then what?"
http://damienkatz.net/2008/08/quick-blog-entry.html
Then you wish your software was a little more aware of the difference
between you and your cloud.
As programmers, a lot of us toss around the
http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Computing but
then expect the network to always be there anyway.
I absolutely believe most people and businesses should be using cloud
computing for nearly everything... soon. But most of the software has
to catch up to cloud style, and cloud style has to evolve toward more
awareness of the sometimes-impassable distance between the cloud and
the cloud user.
http://www.thefreedictionary.com/impassable
That condition will not change anytime soon, so software has to become
more aware of the issue.
Silverspoon
Silverspoon running on Linux?
http://blogs.zdnet.com/perlow/?p=9214&tag=nl.e539
The article begs for sympathy...
"Now, one could get all huffy and puffy and blame Microsoft on this
state of affairs, but in this case, I have to lay this problem
strictly at the feet of the Open Source community. I know for a fact
that De Icaza and Microsoft have pretty much a completely open
relationship, they give him free flowing access to all the .NET API
documentation and their developers, he spends a good amount of time on
the Microsoft campus in Redmond, and Novell and Microsoft are
committed to both making .NET run on Linux. However, Novell and
Microsoft can only do so much to have the community contribute efforts
to keep .NET development at pace on Linux with Windows."
Yeah, right. The most successful software company on the planet could
fund the work if they wanted to. Maybe Linux is not a priority
Microsoft, I can understand that. Maybe Novell has enough troubles of
their own to get Microsoft's software running on Linux. I can
understand that.
Adobe has Flash / Flex / AIR running just fine on Linux. This is not a
technical problem. It's an organizational / business problem.
Maybe Linux does not need Silverspoon. Isn't open source a meritocracy
for software?
Sunday, August 17, 2008
Fantastic Contraption
games since the Pinball Construction Set on the Apple II and the Mac
512...
http://www.onflex.org/ted/2008/08/fantasticcontraptioncom.php
After several levels I became stuck on a theme of using a lot of wheels, multiple vehicles, and not attaching the goal object. This one is my current favorite...
Free for basic play. $10 to save and share, building scenarios, etc.
There are some amazing contraptions built by others. I'll link to some of them later, like the "thrower" - just great.
Someone built this "Orbital Launch" contraption which is just out of nowhere... first the goal object gets stuck in this pocket and you wonder will it ever get out. Then after a few revolutions the object and a chain attached to it are launched... but apparently *away* from the target. The object flies out of view for what seems like forever... only to drop down from above.
The gods must be crazy. It makes no sense.
Saturday, August 16, 2008
Thursday, August 14, 2008
Go Gay
This will be just the second presidential election since 1984 that Oregon will have _no_ anti-gay ballot measure. The 9th circuit turned down the anti-gay petitions for lack of sufficient signatures and lack of evidence the counting method was improper.
I've proudly voted pro-gay against each measure since moving to Oregon 20 years ago. Mostly these have lost, more narrowly than I can believe in this day and age. The last, worst one to pass was 2004's anti-marriage measure. The state legislature took some steps toward civil liberties since then. These current petitions were aimed at shutting down those modest gains.
Sigh. The road away from ignorance is a long hard one. So to speak.
Here's to all my gay male and female friends who've made my life better over the years. I hope we can do much more for you sooner rather than later and get far beyond fear and hate.
Feeling Tweety
(I'm not on the Twitter. But needed to get that out of my system.)
Tuesday, August 12, 2008
Go See Big Picture
always fascinating, well, big pictures. Not always beautiful, but
always big and interesting.
http://www.boston.com/bigpicture/2008/08/war_in_south_ossetia.html
Friday, August 08, 2008
Clearwire WiMAX
most demanding user, but it seems to work fine for him using
"pre-WiMAX". I'd be really happy to pick up WiMAX anywhere in the
city, inside or outside, at that price.
"Clearwire goes on to say that it's in a "great position" to launch in
Portland by year's end, and that Clearwire is using the nascent
Portland network to try out new mobile WiMAX technologies on a variety
of laptop brands.
Portland, and its suburbs, are slated to be among the first regions to
get Clearwire's "true" WiMAX service -- which employs approved WiMAX
standards.The company already serves other parts of the West with a
wireless technology loosely called "pre-WiMAX."
Clearwire hopes to make WiMAX an alternative to DSL and cable, as well
as an affordable option to connect on the go. Rates currently start
around $38 a month (though Clearwire offers introductory specials) for
downloads of approximately 1.5 megabits per second.
Oregon cities that Clearwire now serves include Bend, Medford,
Roseburg and Eugene."
http://blog.oregonlive.com/siliconforest/2008/08/clearwire_inching_closer_to_po.html
Slowing the Net to the Speed of Print
via James Robertson...
"we'll make the decision to press the button on the online packages
only when readers are able to pick up The Inquirer on their doorstep
or on the newsstand"
It reads like a parody.
Thursday, August 07, 2008
Here and Mao
"When Beijing was awarded the games seven years ago, the theory was
that international scrutiny would force China's government to grant
more rights and freedom to its people. Instead, the Olympics have
opened up a backdoor for the regime to massively upgrade its systems
of population control and repression."
http://www.huffingtonpost.com/naomi-klein/the-olympics-unveiling-po_b_117403.html
Whatever Happened to Patterns?
patterns" and what those might be for erlang. In the midst of this
thread the following statement popped up...
"The OTP is a collection of GoF-style patterns for Erlang."
And I had a reaction to the current state of patterns, generally.
I think this list, as well as the software community as a whole, has
lost sight of the original intent of the "patterns movement".
The original intent of a "pattern" is the format of the information,
more than the information per se.
The format should be written in (one of several) pattern styles. The
overall presentation of some set of patterns should form a "patterns
language".
So to say the "OTP is a collection of patterns" is true only in the
worst definition of "pattern".
A really useful pattern language for OTP would guide the programmer
from some initial kind of problem through the application of some
patterns that address that problem and associated forces that would
direct the programmer through a set of choices and partial solutions,
toward an overall solution.
And stuff.
Really good patterns take a lot of effort. This alone explains the
current state of patterns, generally.
Tuesday, August 05, 2008
Science Please
one of my favorite actresses...
"So yeah Garr is cool, MS sucks-lets hope our next President likes
science and curing diseases"
http://www.avclub.com/content/feature/random_roles_teri_garr/2
Friday, August 01, 2008
Linux Plumbers Conference
Linux Plumbers Conference
Portland, Oregon
September 17-19
On the Portland State University campus, downtown.
Portland is typically as beautiful in September as it is now in
August. Just a couple two three degrees cooler and equally sunny.
Actually it's cold and cloudy today. That'll be gone in a day or two.
Oh, and there Linux as well.
Thursday, July 31, 2008
Drive-Ins
was still *the* place to be on a Saturday night. Friday nights were
for the pizza parlor after the football or basketball game. Many of my
memories of movies in the 70s are also memories of what was happening
at the drive-in that night. Sitting on top of the car. Standing behind
the food stand for an entire movie.
My kids have never been to a drive-in. Although I've driven past the
one in Newberg a hundred times at least, I think my kids are now too
old for me to drag them along. It wouldn't be the same. Going to the
drive-in with my parents as a kid in the mid-60s meant watching the
first movie then climbing in "the way, way back" (which is what we
called the back of the station wagon) and falling asleep.
More things about movies my kids know nothing about: the cartoon
before the show; the _intermission_ in the middle of the movie; the
_second_ movie (and third, at least at drive-in shows).
One of not many drive-ins left, in Newberg, Oregon, near my home in Portland...
The Dixie Drive-In I attended as a kid in the 1960s in Dayton, Ohio...
Here's where I saw Star Wars Episode 3 A New Hope the first week out in, what, 1976? In Wilmington, Ohio... obviously it's not a drive-in. I think it came out in May?
More Wii Sports
supposed to arrive with more sports games, called "Sports Resort".
Including throwing Frisbees, erm, "discs". I know.
http://www.nintendoworldreport.com/newsArt.cfm?artid=16410
James Robertson's report on wii sales raking in all kinds of money on
numbers of units that far exceed the others. Meanwhile the others
still sell their hardware at a loss.
Symbols
language does not yet even have a convenient notation for symbols.
(Note: enums are not convenient.)
Eh, Commerce?
Google. Who's gearing up to compete with Amazon, again?
<<Amazon has officially unveiled its answer to PayPal.
Yesterday, the etail giant quietly launched Checkout by Amazon - not
to be confused with Google Checkout, Google's answer to PayPal.
With this new payment service, you can buy stuff from third-party net
merchants using your existing Amazon account, already populated with
your credit card number and shipping details. Of course, third party
net merchants must first agree to use the service. But you can be sure
more than a few will jump at the prospect of pitching Amazon's 81
million registered customers.
What's more, Amazon is offering up other pieces of its oh-so-familiar
online store. Third-party partners can add Amazon-style "1-Click"
ordering buttons, for instance, or even up-sell you just like Amazon
does.
So, the world's largest online retailer is hoping to clone itself -
over and over again. "Customers will be coming through an experience
that is really similar to Amazon's," vice president of Amazon Payments
Mark Stabingas told The New York Times. "People will like the
familiarity and the comfort associated with that.">>
Erlang Zeitgeist
at OSCON last week. Picking it up to solve some problems in a new or
revised system seems to be almost common place now.
"Delicious, in its former state, was a huge Perl application on top of
Apache and MySQL. Since then, its been completely recreated in a
tiered system with quite a bit of PHP and c++ with Erlang sprinkled
around in various places."
http://blog.socklabs.com/2008/07/delicious_is_gone_long_live_de/
Tuesday, July 29, 2008
Michael Nygard on the recent Amazon S3 outage
software development, applied at the largest scales. Bugs will creep
in.
In fact, I'd expect to find more cases of odd emergent behavior at large scale.
Second, the back of my envelope still shows S3 at 99.94% availability
for the year. That's better than most data center providers. It's
certainly better than most corporate IT departments do."
http://www.michaelnygard.com/blog/2008/07/s3_outage_report_and_perspecti.html
Bush League
extension of the White House's political machine. Under the regime of
George W. Bush, political foes have been scrubbed from the department;
accomplished, independent civil servants were fired and incompetent,
servile GOP functionaries replaced them. It was comic corruption, as
when Monica Goodling, senior liaison to the White House, asked DOJ job
applicants, "What is it about George W. Bush that makes you want to
serve him?" and "Why are you a Republican?" When one applicant
expressed admiration of the Secretary of State, Goodling frowned: "But
she's pro-choice." Goodling even committed crimes, as when she sacked
Assistant U.S. Attorney Leslie A. Hagen because of a rumor Hagen was
gay.
...In America, such deep corruption should create a huge wave of
outrage. Instead, it's not even getting much covered. A Google News
search yields just 637 results on the name "Monica Goodling." Do a
search on "gas prices" and you get 80,000. Not a fair comparison?
How about the name of Tim Donaghy, the corrupt NBA ref who was
sentenced to prison yesterday--he gets 2,500, four times as many as
Goodling. Corruption in the DOJ is just not much of a story...
Ted Stevens, long-serving Republican Senator from Alaska, was indicted
on seven charges of corruption this morning. Shrugs all around?
...Based on the early internet reaction, the Stevens news is getting a
lot of play. But Stevens' corruption *is* usual, ironically.
Throughout American history, there have always been pols on the take."
Monday, July 28, 2008
Use Cases and User Stories
http://www.infoq.com/news/2008/07/use-case-or-user-story
My position is why either/or?
Use Cases, in all their variety, tend to be larger descriptions of
existing or desired features. Within this larger context, the team
(developers, users, etc.) should try to break down features in many,
smaller units of work. This is usually what's meant by User Stories.
So, yeah, you need a larger context in which to understand desires, in
which to determine what the next best small units of work to focus on.
Sunday, July 27, 2008
Calling Names
I'd not heard of this before, but apparently some people don't like Erlang's "single assignment" semantics. What this means is a "variable" actually isn't. A variable becomes "bound" to a value via pattern matching. Once bound to a value, that same variable in that same lexical scope cannot be re-bound to some other value. Within that scope that variable must subsequently match successfully against the value it currently has.
What appears to be an "assignment" in Erlang is really just the simplest kind of pattern match. Below X10 is matched against foo(X) and since X10 is not yet bound, it becomes bound to the value of the function.
f(X) ->
X10 = foo(X),
X15 = fab(X10),
X20 = bar(X15),
baz(X20).
Some people are concerned this could lead to uncomfortably renumbering variables, say, when the function fab should be added in the function above.
I dunno. This seems contrived, or at least rare, or maybe machine-generated. If you just have to "re-number" a few variables, no big deal. If you have to renumber too many variables then you'd be better served by decomposing an overly long function that also suffers from inexpressive variable names.
The author of the post is apparently writing a ruby-ish language for the Erlang runtime. More power to you.
But there is a lot to be said for a simple, mostly functional language that wants you to keep functions short. When I am writing in an imperative, even object-oriented, language, I want my procedures to be short. And I want one variable to have one value. The code is more "tractable" when short, and variables don't vary.
Then the name becomes essentially a mnemonic for the value.
The overwhelming majority of programmers have only used languages with multiple assignment.The overwhelming majority of programmers over my 25+ years of programming experience write procedures that are much too long, even when they are otherwise well-written. That's the first bad habit people seem to adopt, or never learned to avoid. I've worked with long, run-on procedures in every language I've encountered.
Lisp? Yes. Smalltalk? Yes. Pascal? Yes. Even these languages with their gifts for brevity cannot overpower the usual programmer's inaesthetics.
Understanding what many, small procedures do is always better than understanding what one or a few long, run-on procedures do. The payoff is there because you learn what you can put aside, and what you should pay attention to. On the other hand, long, run-on, convoluted noise is always with you. You never can put any of it aside - you have to revisit, remember, and ultimately revolt and/or refactor.
In an imperative language a variable should take multiple values only as part of an iterative statement. In the statement "for i = ..." the variable i should only be updated by this statement. Or in "while someCondition ..." the variable someCondition should be assigned an initial value before the while and it should be updated immediately before the while re-evaluates its decision to iterate again.
Write short functions. Use the shortest name that yet conveys the meaning or purpose of its value. Assign them once even if your language is imperative. Generally this will keep your stress level low, as well as the levels of those who pick up your code later.
Thursday, July 24, 2008
Best application for education
Ok, I don't know why that would be the winner of this award, but the even more ironic aspect of this (at the sourceforge awards tonight) was that Microsoft was the presenter of the award up on stage.
I'd had a couple beers at that point, but not enough to question the reality of the experience. And on the screen it read, I kid you not, "openoffice.org sponsored by microsoft".
Dang - and no camera with me.
Wednesday, July 23, 2008
BBC's Robin Hood
I'd not heard of it previously, just happened on it in itunes.
Pronounced "JAY-son"
everyone is doing it.
From wikipedia which is inerrant...
JSON (pronounced /ˈdʒeɪsɒn/, i.e., "Jason")
Question about Aquamacs
How do people use Aquamacs? i.e. there is no command line invocation?
e.g. byte compiling a number of .el files in batch is done how? From
what I can see the most reasonable solution seems to be to maintain a
standard gnu emacs version compatible with Aquamacs to use as a batch
tool.
Really?
Thanks
Signed -- somewhat amazed at the state of emacs on macosx even windows
is almost better than
Tuesday, July 22, 2008
Maybe We Should Just Say "Good Tools"
"One of the points that I've been trying to make since I've gotten
back in to the languages space is that a lot of what is happening in
languages now is unpausing the nuclear winter that Java imposed on the
programming language space. If you haven't been following this space
for a while, you'd believe that all this dynamic language stuff was
invented in the last 5 or 10 years or so."
"Maybe we should just say "good tools" instead of IDE, since a number
of people that I've talked to seem to think that in order to be an
IDE, the tool has to be huge, written in Java, and include feature for
generating reams of boiler plate code..."
http://www.sauria.com/blog/2008/07/20/ides-and-dynamic-languages/
Monday, July 21, 2008
XMPP Summit Indicator
year is ~40 (and maybe growing? the room is nearly overflowing).
Maybe this is an indicator that XMPP is reaching the next level of
awareness? There's a good mix of experienced folks and the curious.
Friday, July 18, 2008
From the What's That Smell Dept.
"Researchers from Radboud University in Nijmegen revealed two weeks
ago they had cracked and cloned London's Oyster travelcard and the
Dutch public transportation travelcard, which is based on the same
RFID chip. Attackers can scan a card reading unit, collect the
cryptographic key that protects security and upload it to a laptop.
Details are then transferred to a blank card, which can be used for
free travel.
Around one billion of these cards have been sold worldwide. The card
is also widely used to gain access to government departments, schools
and hospitals around Britain."
http://www.theregister.co.uk/2008/07/18/university_can_publish_oyster_research/
Thursday, July 17, 2008
You're Welcome and You're Not
But you're not welcome to shout them at the top of your lungs in an otherwise peacefully quiet town square. That's disturbing the peace. You've disturbed mine twice recently.
It's not like I haven't encountered the same message hundreds of times a year, nearly each year of my life. I wonder what's at stake for you to feel compelled to choose this means?
I appreciate you are passionate about your ideas. Maybe you would respect a similar passion for my ideas. I cannot presume it is my place to express that passion so intrusively, no matter what my ideas, no matter how passionate I may be.
And believe me: I am a Smug Lisp Weenie. I can be passionate.
Tuesday, July 15, 2008
Report cards are due
"Unless just about every technology company going has an "iPod
moment," then we're looking at a grim scenario where layoff reports
will become rather common. That's especially painful news for people
already being worked over by rising gas prices and painful mortgages.
We'll know just how bad these are for the technology sector, starting
today when Intel reports second quarter financial figures. Intel's
report will kick off three weeks of earnings reports - a journey
that's starting to look like a dive into the heart of darkness...
Worst of all, people are starting to try and understand Google's
business. Just wait and see what happens when Google really misses a
quarter, and everyone figures out that they have no idea how Google's
money machine works. That'll go over well."
There Goes The Neighborhood
blockbuster "Grand Theft Auto" game franchise for the Nintendo DS
handheld game system. The hard-core game is atypical for a system that
has been built on more casual titles as "Nintendogs" and "Brain Age."
Dubbed "Grand Theft Auto: Chinatown Wars," the game will be available
this winter, the company says."
http://blog.seattlepi.nwsource.com/microsoft/archives/143556.asp?source=rss
Monday, July 14, 2008
PB & J
Most people probably do not need anachronistic protocols or even
binary data formats over the wire.
On the other hand, few of us need XML either.
Nintendo's early E3 surprise: Wii MotionPlus
"Nintendo this morning gave a sneak preview of one the announcements
it's expected to make at its briefing here Tuesday: The company says
the new accessory, called the Wii MotionPlus, attaches to the Wiimote,
"more quickly and accurately reflecting motions in a 3-D space."
Here's the news release. No word on pricing or availability. The
company is promising more details at its briefing."
http://blog.seattlepi.nwsource.com/microsoft/archives/143393.asp?source=rss
The game industry focused on graphics the way Intel focused on
instruction speed. Nintendo snuck up on the industry with controllers
as the significant innovation the way AMD snuck up on Intel with lower
power and multiple cores a few years ago.
Friday, July 11, 2008
Hard Where
Joe Gregorio wonders about hardware support for functional languages...
I've been thinking about this in the context of the Professionalization of Scripting Languages, does anyone know if any of the processor manufacturers are working on adding silicon support for activation records?I know first-hand Intel has been searching for ways to spend transistors for at least a decade. There's been some looking at objects including closures, generally, and some consideration of Smalltalk, Lisp, etc. But I am not aware of specifically looking at stack vs. heap allocation of activation records.
On the other hand I have witnessed decades of considerations of hardware support for functional languages. In each case the problems seem to have been solved at least as well with general-purpose hardware combined with clever software at compile-time and run-time. Looking back at the history of hardware support for Lisp and Smalltalk, and OOP and functional programming generally, will turn up many research and production efforts that have not panned out in the long-run. However the economics may have changed assuming scripting languages will become as "professional" (!) as Joe predicts.
I've been paid well from time-to-time over 25 years to program with sophisticated dynamic languages. That today we're just now thought to be entering a "professional" stage is an indicator that the profession is missing some of it's own literature. So please consider the following. From my historical viewpoint as a veteran dynamic language applications programmer, and dynamic language implementation aficionado, I believe activation record solutions you seek have a rich history of solutions to continue from (so to speak), and they are almost all in software.
Scripting languages are direct descendants of what I would consider long-time "professional" languages such as Smalltalk, Common Lisp, and Scheme. Until recently I suppose there's been little motivation for Ruby/Python/Javascript language implementers to dive into the literature of _implementing_ their predecessors. I would recommend anyone serious about it to begin with "the original lambda papers". Not that these were the first on efficient dynamic languages, but they start from first principles and are easy to read.
From there I would recommend moving on to work published by Appel, et al. for Standard ML/New Jersey (SML/NJ). A starting point is the text book "Modern Compiler Implementation". But this should also include all the research done around compiling ML.
Along the same lines are all the years of work around compilers and run-times for Scheme. SML/NJ and Scheme have particularly interesting activation/closure needs because they are mostly functional, but do have side-effects, and they also have first-class continuations. Look up various work by Kranz, et al. at Yale (in particular for the Orbit compiler for "T", a dialect of Scheme); Dybvig, et al. at Indiana U.; Feeley at U. Montreal; and Clinger, et al. at U. Oregon and Northeastern.
And then include the publications about Smalltalk, Self, etc. implementations by Peter Deutsch, David Unger, Craig Chambers (U. of Washington), and Eliot Miranda among others. Generally reading through the years of OOPSLA proceedings, especially the earlier years, and the proceedings of the ACM Lisp and Functional Programing Conference will keep you busy for a while.
Efficient implementation of first-class activation records revolves around a few decisions. One is whether or not to use the hardware stack at all. Some efficient implementations use the stack and copy to/from the heap as needed. Others use the heap solely. Efficiency also becomes intertwined with interoperability with "C" and so-called "native code".
These choices have more to do with first-class continuations and languages like Smalltalk that promote activation records as first-class objects. If you go back and look at MIT Scheme and work by Guillermo Rozas, they paid a lot of attention to providing features like continuations and first-class top-level environments without _always_ paying the price.
The more common problem of allocating heap for first-class lexical environments is probably even less conducive to hardware-based solutions. A naive compiler (the most naive compiler is a simple interpreter) will allocate a lot of heap and generate a lot of garbage. So part of the solution is how efficiently short-lived heap allocations can be collected. The more complicated compiler problem is analyzing the code to determine how to reduce the amount or frequency of allocated heap. Based on determining which closures are "upward", what lexical state must be captured, and which closures share some or all of that lexical state, a compiler can very smartly move state capture up or down the lexical scope.
For example if closure C1 captures variables V1, V2, and V3, and in the same scope closure C2 captures just V2, then C1 and C2 need to refer to the same "instance" of V2. But maybe V2 is bound several scopes "up" from V1 and V3. The compiler may choose to heap allocate space for V1, V2, and V3 at the point where V2 becomes bound. The C2's code is generated to reference V2 at some offset from the start of this allocation. C1 references all three slots.
And that's the simplest case I could write about. There are other problems that I've not thought about for at least 15 years. My main point is that none of this "professionalism" is new. Many problems new implementers will encounter have a long history of solutions that are likely to be sufficient and, minimally, good starting points. All of the software solutions could show up within a year, where hardware solutions would not show up for five if ever.
The hardware instructions for all of this are fairly basic: incrementing pointers, relative addressing, short jumps. Not much more than that. The problem is how to do as little of all that as possible by walking a lot of tree stuff at compile-time, and leaving a marker here or there at run-time.
In addition to diving into the literature, I would recommend studying, if not using directly as a "common language compiler and run-time" the Gambit Scheme compiler and run-time. Gambit is the system to beat for efficiency, if it is not going to be your system to utilize as a "back-end".
Wednesday, July 09, 2008
Waterfall knows the value of everything...
Apologies to Alan J. Perlis. May he rest in peace.
Monday, July 07, 2008
Thursday, July 03, 2008
Taking a Global Snapshot
In a recent comment here Dan Creswell refers to an algorithm for taking a global snapshot across a distributed message system...
...if our snapshot could just capture the "after" state, then we'd be done. However, we can't do that either because we're not allowed to stop the other messages flowing through the system after we take the local snapshot at a node. Therefore, by the time all nodes take their local snapshots, the global system state may have changed.From an interesting-looking course in distributed systems at Washington University, St. Louis.So, we define a recent and consistent global state as a global state that "could have occurred" between the "before" state and the "after" state. In other words, consider the sequence S of communication events that occurs in the system between the "before" and the "after" state. A recent and consistent global state X is reachable from the "before" state by some subsequence of the events in C. Furthermore, the "after" state is reachable from the state X by the remaining events in C. Notice that this global state didn't necessarily occur at any point in real time, but it "could have occured" between the "before" and "after" states using the same sequence of communication events.
Global snapshots are useful in a wide variety of distributed applications. One application is in distributed databases, for instance a group of bank branches. Another use is deadlock detection: a global snapshot can be examined to see if there has been any progress made by the algorithm. Termination of a distributed algorithm can detected in the same way.
Judge vs. Law: "their privacy concerns are speculative"
From the EFF deeplinks blog...
Yesterday, in the Viacom v. Google litigation, the federal court for the Southern District of New York ordered Google to produce to Viacom (over Google's objections):Dang. Wish I hadn't watched so much Rick Astley. I hope Google tells the judge, "Never gonna give you up..."all data from the Logging database concerning each time a YouTube video has been viewed on the YouTube website or through embedding on a third-party website...for each instance a video is watched, the unique “login ID” of the user who watched it, the time when the user started to watch the video, the internet protocol address other devices connected to the internet use to identify the user’s computer (“IP address”), and the identifier for the video.
...
Google correctly argued that “the data should not be disclosed because of the users’ privacy concerns,” citing the VPPA, 18 U.S.C. § 2710. However, the Court dismissed this argument with no analysis, stating “defendants cite no authority barring them from disclosing such information in civil discovery proceedings, and their privacy concerns are speculative.”
Reminder: Program Casualties
"JSON is the sweet spot of type driven interop"
Wednesday, July 02, 2008
Lisp's 50th Birthday Celebration
http://www.franz.com/services/conferences_seminars/lisp_50th-birthday.lhtml
50th! Take that, other dynamic languages!
Tuesday, July 01, 2008
RabbitMQ / XMPP Gateway
RabbitMQ and XMPP... Now get the best of both worlds, I guess, through this gateway.
Out of Control
James Robertson observes OnStar, the Pentagon, and your local transit authority losing control over their control freakishness...
This is like DRM, but with extra stupidity added in.Because I am _real_ worried I might end up in Speed 3.
Re: Question about message passing paradigm
The problem we are discussing is processes B, C, D hold information X, Y, Z respectively; process A wants a coherent snapshot of X, Y,Z.Yes, the problem seems simple yet subtle. The downside is there are many unwritten constraints (or not) on any specific problem that could lead the solution alternatives one way or another. Unless you want to really dig into those, then the cost/benefit of one solution or another could be more or less off.There are actually two slightly different cases depending on A needs "X Y Z as of *now*" (A, B, C, and D must all synchronise), or A needs "X Y Z as of *some* time in the recent past" (B, C, and D must all synchronise but can then send the information to A without waiting for A to receive it).
I like this problem because it is simple yet subtle. One way that it is subtle is that in "multithread" programming most people STILL think in terms of a single absolute time shared by all threads. (After all, there _is_ such a thing, the system clock. And yes, it's not exactly true, but it's close enough to make people _think_ it's true.) But when you start thinking about Erlang and especially *distributed* Erlang, you start realising that "now" is a pretty fuzzy concept.
e.g. why not coordinate through an in-memory database? This could be reasonable, or not. We don't know enough.
Why not schedule the source processes to send a message on a periodic or scheduled basis? This could be reasonable, or not, and cut down the message traffic, which seemed to be a concern.
Why is sending fewer than N messages a concern? Why does one process have to collect the information? How much information? How tight is the deadline? Is "now" an actual timestamp or just some unknown point in time that a request has been received? How close to "now" do the other "nows" have to be with respect to each other? Can you widen that window if it would decrease the effort to build?
If synchronization across the processes is needed then is an "eventually consistent" approach reasonable if it lowers the effort to build?
Interesting stuff, but challenging to talk about in when the details are too abstract.
Sunday, June 29, 2008
Thoughts on Hotels and Coffee in Belfast
As long as I'm writing down my thoughts on this trip: I've been in two hotels in Belfast, the Hilton and the Radisson. Both are nice, close to the city center, and on the water.
They both have internet frustrations: neither have wireless in the rooms; the Hilton charges for wired internet in the rooms at ₤15 per 24 hours! When you pay that fee then they also throw in wireless _in the lobby_! Well, it's BT and the voucher is good for any BT provider in that 24 hour period. I found BT is the provider around some nearby coffee shops.
The Radisson at least provides free, but wired, internet. The problem then is the MacBook's adapter for UK plugs do not fit in the limited space above the immovable desk provided in the room! The nearest outlet that provides enough clearance for the adapter is across the room on the other side of the bed. If I had a 25' extension cord for either electricity or the internet, then this might be less frustrating.
(Let me update this with a warning: if you intend to use the internets with any expectation of getting bits back to your laptop, avoid the Radisson altogether. Band-width-wise this turned out to be simply unusable for long stretches.)
And so on to coffee: Caffe Nero is the best I've found in the city center so far, and the best I've found anywhere for a large chain. http://www.caffenero.com/
Thursday, June 26, 2008
Thoughts on Continental Airlines
I've flown Continental Airlines twice this year-to-date. Thrice if you count the flight that was actually run by Northwestern, but I'd rather discount that one.
Continental has to be my top choice, for the food service alone. They serve hot meals, and a fair bit of it with each meal, that actually taste like real food.
I do think they recently took another inch out of the leg room though.
Thoughts on the Newark Airport
I can think of several airports to spend over a quarter of a day in that might even be somewhat pleasant. My own PDX would be high on that list.
Not making the cut would be Newark, NJ. Has this airport been even considered for remodeling since I was last here, about 25 years ago???
The most curious difference: the bars are run by the breweries. And so there is a "Miller's" bar and a "Budweiser" bar. Thankfully there is also a "Sam Adams" bar.
I guess folks in the NYC area do not hate _all_ things about Boston.
But what happens when you are traveling with a party with varying tastes?
Tuesday, June 24, 2008
Monday, June 23, 2008
The eBay Reporting Provision: Apparently Just More Of The Same
Steve Dekorte relays information about a last-minute provision in the housing bill, and writes...
So now if you buy a bong on your credit card, the feds will know and may have probable cause to invade your home.But I think most of our bong purchases are safe because there is a $10k USD minimum for transactions to be reported. :0
Another thing I learned: I called Senator Dodd's office and was told this provision is an enforcement mechanism for a law already in place. Apparently these transactions already are required to be reported, but many are not. And so this provision is intended to collect more dough.
Not that that excuses the invasion of privacy, but it's just not going to affect as many people because of the minimum reporting, and the invasion of privacy already is law. I called both my senators, Wyden and Smith, to oppose the provision.
Capitol Hill switchboard: 1-866-928-3035.
Belfast
I head out for Belfast on Wednesday. Mostly business, some time with friends, and some time to wander around. Any suggestions?
I'll probably go on some walking tours of the city, and I think there's a bus that goes to Giant's Causeway.
George Carlin, Class Clown
I remember the first couple of rock albums that I bought as a teenager in the early-mid 1970s: The Who's "Who's Next", Aerosmith's "Toys in the Attic". I was not a musician and could only muster up a bit of air guitar in my room, by myself. I wasn't about to let loose in front of friends.
But *comedy* was something else. There were two comedy albums that everyone I ran with *had* to own. There was no pressure: we just all owned them. And we all memorized every line of every track. And we all repeated them to each other over and over. We weer all comedians.
One of those albums was Cheech and Chong's "Big Bambu".
The other one was George Carlin's "Class Clown".
This was the first time I heard his "Seven Dirty Words" bit. There's at least one word I _learned_ from that list. I very well may have peed my pants once or twice listening to that list.
http://en.wikipedia.org/wiki/Class_Clown
George Carlin. Here's to you...
- Shit - The bird shit on the statue.
- Piss - I have to piss like a race horse.
- Fuck - Fuck you.
- Cunt - She has a beautiful cunt.
- Cocksucker - Go to hell, you cocksucker.
- Motherfucker - You are a motherfucker.
- Tits - Hey, nice tits.
Wednesday, June 18, 2008
Where You Find It
been ill (shortness of breath, stomach cramps) for a week. His family
believes in "faith healing" and does not believe in western medicine
or apparently any medicine. (What would they consider food?)
http://www.portlandtribune.com/news/story.php?story_id=121379440855614400
Religion is what it is for each individual and family. In this case I
don't think the boy was given a choice, let alone the tools to make up
his own mind. That's not unusual. Most religion is passed down I
suspect.
As a Type I diabetic who knows almost nothing about health or
medicine, I have to say what little description this article provides
of the boy's symptoms, and the duration of them before his death,
*could* indicate Type I diabetes. This is a very manageable illness,
and whatever the true cause of death, the week in which the family
could have sought treatment but did not, was tragically long.
The boy also happens to be the cousin of a baby girl who also died
after the family refused medical treatment. Does this family simply
rationalize that their god does not love them? Or does not love these
specific kids? Or that everyone just dies when they die? (Which again
makes me wonder, why does anyone in their family eat meals?)
Filed under "apparently unnecessary tragedies to children, but I don't
understand".
Tuesday, June 17, 2008
SVG and Flash
"Considering that ActionScript is really just Javascript with some
rendering APIs, once SVG is ubiquitous (effectively taking care of the
rendering API), will there be much point to Flash?"
http://www.dekorte.com/blog/blog.cgi?do=item&id=3468
(Aside: ActionScript is _worse_ than JavaScript, as it is a kind of
JavaScript+Java-semi-static-typing hybrid. Anyway...)
What Steve's really getting at is SVG vs. Flash. Flash goes well
beyond rendering, into multimedia, interactivity, environment/network
integration, etc. SVG has some support for JavaScript callbacks and
not much interactivity beyond that. SVG currently only (mainly?) runs
in some browsers, with all the pro's and con's. (I think Adobe's SVG
engine used to run stand-alone. Maybe others do as well?)
Flash could be a good foundation for an SVG engine. SVG could be a
good foundation for a Flash-like replacement.
I'd like to see SVG advance into a more fully capable engine for
*interactive* structured graphics, and beyond that a more fully
capable platform for many kinds of applications. SVG could be our best
hope for moving beyond the browser per se.
Those foundations require a simpler language than JavaScript and a
better security model than the browser or even Flash. The
interactivity model should provide a mix of
declarative/constrain/dataflow as well as imperative (i.e. callbacks
and mutable data, e.g. display lists).
Monday, June 16, 2008
The Emerging Enterprise in the Cloud
Jon Rose writes...
I have been working on a case study with Claude Courbois of NASDAQ for a few months now. We finally finished it up and published it over at InfoQ.com. NASDAQ has a very cool application, Market Replay, which utilizes AIR (desktop) & S3 (data). I am personally fascinated by how much the world has changed, as the platforms allowed NASDAQ to roll out an enterprise application with very minimal hardware infrastructure...Or even just ideas too time-consuming too implement. Development groups with an idea can go and grab a fair bit of infrastructure without all the hoopla needed to requisition all the pieces within an IT data center. If the ideas prove out then in some cases they could or should be brought back "in-house". In other cases, they may be fine in the cloud.These technologies... I believe that their innovation will really mean more opportunities... They are enabling us to bring to market many ideas that were previously too difficult or costly to implement.
Erlang Supervisor Hierarchies in Scala
Initial attempts to duplicate Erlang in other languages tend to make a lot of simplifying assumptions, either knowingly or unknowingly. Distribution is a big feature often overlooked initially, and beyond that "supervisor hierarchies" in which various distributed processes are either workers (do the real work) or supervisors (ensure the real work continues in the face of process or node failures).
Jonas has started an implementation of supervisor hierarchies for Scala's agents, as well as a basic "generic server" framework approximating Erlang's gen_server, etc. So far I think it's all running in one JVM, but it's a good start at illustrating all that Erlang does on behalf of a distributed system.
Sunday, June 15, 2008
Above the Fray
Steve Yegge relays a fracas about language interoperability...
He [Chris] asked this really innocent question. He goes, "You know, I don't really know much about this stuff..."I thought this was going to be interesting, then I found the conversation was about language interoperability *within* a VM.Which is bad, you know. When somebody says that to you at Foo Camp, it means they're settin' you up.
He says, "So how do these languages talk to each other?"
And the room just erupted! It was chaos. All these people are like, "Oh, it's easy!" And the rest of them are like "No, it's hard!" And they're arguing, and arguing, and arguing. They argued for an hour.
And then they stood up, still arguing, and they kept talking about it, heading into the dinner tent. And they sat down, going at it for like three hours.
It was chaos.
Because some people were saying, "Well, you know, if Ruby's gonna call Python, well, uh, you just call, right? You just share the same stack, right?"
And the others are like, "Well, what about different calling conventions? What if they support optional vs. non-optional arguments? What if they support default arguments? What about the threading model? What about the semantics of, you know, the this pointer? What about all this stuff?"
And they're like (waving hands) "Ooooh, we'll gloss over it, gloss over it, smooth it over." And the reply is: "You can't. This is fundamental. These languages work differently!"
And oh my god, it was really interesting. And it was also very clear that it's ten years of research and implementation practice before they get this right. Before you'll be able to have a stack of calls, where you're calling from library to function, library to function in different languages.
So today, VMs are good for interoperability, but you've gotta use a bridge.
Friday, June 13, 2008
Y2K+8
"One of the reasons this topic comes up in Microsoft circles is the
fact that so few Microsoft desktop applications use the CLR. As you
may be aware, there is a performance cost associated with running code
in the CLR and garbage collection often gets painted as the chief
offender."
http://douglaspurdy.com/2008/06/12/objective-c-20-garbage-collection/
Thursday, June 12, 2008
All of a sudden...
Web Too Oh
"In the long term, we need to completely replace JavaScript and the
DOM with something designed to be safe from the ground up."
...noting that Firefox, and any browser generally, is a horrible
platform for applications.
http://blog.360.yahoo.com/blog-TBPekxc1dLNy5DOloPfzVvFIVOWMB0li?p=865
Tuesday, June 10, 2008
Monday, June 09, 2008
Mornin'
We're Americans. We should not have bad news, and we should not "sacrifice" anything, well, at least not any comforts. Besides that the energy industry hated the idea of conservation and energy independence.
Carter also set the objective that America not become more dependent on foreign oil than we were at that time, 30 years ago now. Reagan convinced us we didn't need a pessimist like that.
Mornin'.
Dumbest Name Ever From Apple
"Mobile Me" --- are you f'ing kidding me???
Bah. http://www.apple.com/mobileme/
You can also get there from http://www.me.com/
Joy. So now I can say to my wife, upload those photos from your camera to "Mobile Me" then bring them down to your "My Documents".
Oh, wait. Could you please bring them down to *my* "My Documents"?
Gawd. "Live Mesh" seems perfectly sexy compared to "Mobile Me".
Sunday, June 08, 2008
Toward a New Fast Squeak VM: Eliot Miranda's Blog
Eliot Miranda is one of those really smart VM implementors. He's been working on Smalltalk VMs for a long time, including one of the best: VisualWorks. After a brief sidetrack with the (fairly uninteresting IMO) Newspeak project, he's now at work on a better VM for Squeak. He's got a blog about that.
Does the history of computing matter?
(via Bill de hÓra)
If I were the author of a significant IDE product I would take a fair bit of time to understand the history of my marketplace. Apparently Dmitry Jemerov does not follow that philosophy. I guess that has not hurt his success any. So I have to wonder how much the history of our field matters to its future.
Consider the following image of a Symbolics hypertext system from the mid-late 1980s. Who noticed at the time? Who would've believed such a thing was possible then or even now using a "dynamic language"? 150 years from now what does anyone need to remember? A couple of blips maybe: Netscape and Excel?
Dmitry writes...
Groovy is interesting, but it's a dynamic language and has all the problems of dynamic languages. It's OK for small pieces of code. But building something the size of IntelliJ IDEA [in a dynamic language] would be a complete nightmare.So let's consider history's demonstration that this is false.
- GNU Emacs - Lisp
- Zmacs - a predecessor to GNU Emacs, Lisp, running on the Lisp machine
- Various Lisp machine operating systems including Symbolic's Genera, one from Texas Instruments based on one from MIT, one (at least) from Xerox
- Symbolic's Concordia authoring tool and Document Examiner hypertext system - em, Lisp again
- Smalltalk tools, which I've written about several times already
Since Smalltalk I've generally been using Eclipse for work stuff, but the effort in extending the environment has just been too much work for me to invest in, though I've tried a few times. I settle for writing ant scripts; that's how bad things have gotten - I'm programming in XML.And Joe Gregorio writes...What's on the horizon? Eclipse has E4. Which seems like it's largely a cleanup/sanitization of Eclipse, vs a complete re-think. I suspect I will write as many extensions for E4 as I have for the previous versions of Eclipse. Perhaps I'll sit that out and wait for Steve Northover's E5. Frankly, I think it's time we started fresh; let's call it F1.
Poor old disrespected Smalltalk, all those years of work, all that cutting edge research, and nary a bit of credit, which is particularly galling if you think about the fact that, to date, the language that has benefited the most from Smalltalk is Java.
Mike's Gotta Job For You Mebbe
Mike Herrick's posted an opening at CSI doing the open source incl. Rails and JRuby. Good folks to work with.
Saturday, June 07, 2008
June pdxfunc: Functional Programming With Dynamic Languages
Monday's topic for the Portland Functional Programming Study Group (pdxfunc) has been announced. The meeting will take place Monday, June 9, 7pm, at CubeSpace on Grand Avenue.
Please join us at the next meeting of pdxfunc, the Portland Functional Programming Study Group. The group meets monthly for presentations, demos and discussions. We welcome programmers interested in all functional languages, and the meetings feature content for coders of all skill levels. If interested, please subscribe to our mailing list athttp://groups.google.com/group/pdxfunc
PRESENTATION:
Title: Functional programming with dynamic languages
Summary: Dynamic, multi-paradigm languages such as Ruby, Python and Perl allow programmers great flexibility in how they can write their code, although most use an imperative (AKA "procedural") style. However, using a functional style selectively can help provide clearer and shorter code, reduce bugs, and improve performance. This presentation will provide a basic overview of functional programming, sample code demonstrating how to use functional programming features of dynamic languages, compare and contrast code samples of functional and imperative styles, and discuss when each style is appropriate. No previous knowledge of functional programming is necessary.Bio: Igal Koshevoy is a Business-Technology Consultant with over a decade of experience creating sophisticated, business-critical systems using open source technologies. He is the author of an open source server automation toolkit available at "automateit.org", and supports local community efforts through Calagator, Portland Ruby Brigade, Portland Functional Programming Study Group, Legion of Tech, Ignite Portland, etc.
See you there!
PS: Sorry for the short notice, but Kevin's talk on XML parsing with Haskell had to be delayed. Hopefully he'll be able to present it next month.
Monday, June 02, 2008
Microsoft Wants To Give You A Vulnerable Flash
From Steve Loughran...
SANS is issuing an emergency warning that XP SP3 installs a version of flash with security holes, even over a later version.And you use Windows, again, why?
Acrobatics
News from Adobe today, heading in the direction they were talking about last year for PDF and Flash. PDF is an open standard. I don't know how that spec-wise matches what it takes for Adobe to incorporate SWFs into Reader, techno-wise, and stuff...
Two big announcements today. One, we’re announcing Reader 9 which includes the ability to render SWF content inside of your PDF. That means you can actually put Flash/Flex content directly into created PDFs. That opens up a lot of very, very interesting use cases like exposing form entry applications right inside of the document or starting to use a lot of video content inside of your PDFs. I think this is one of the more interesting things to happen with the Adobe/Macromedia merger. With PDF’s right’s management built in, this also provides you a way to protect your SWF content from being decompiled.I think it's cool. And another set of signs that Adobe "gets" some things competitors either don't get or have not figured out how to execute on successfully. This is all good news for "the office" and multiple offices working together over the internets. Not to mention education, entertainment, and everything else.The second announcement, my favorite of the day, is that we’re rolling out Acrobat.com. You’ve seen a lot of the services in different parts of the web, but we’re finally bringing them together under one umbrella brand with one account and a lot of functionality. You get Buzzword, “Share”, and “Brio” all as part of Acrobat.com and the line between the online software and the desktop software is starting to blur. For instance right from the Adobe Reader menus you can create a new Buzzword document or start a collaborative meeting in “Brio” which as been named Connect Now. Your Buzzword documents can now export to PDF and you can use Share to both create PDFs from documents as well as make it easy to send them to friends or embed them on your blog. There’s even an Acrobat.com AIR widget that lets you drag and drop files and create PDFs from them.
Also, via Mike Chambers today, a bunch of useful reference guide stuff from Adobe re: RIA and ActionScript.
I don't know. Maybe I am just an Adobe "fan boy" so to speak. I think they're doing a lot of things well.
Sunday, June 01, 2008
Toward Better UI Programming Models
Every now and then I complain about the browser's programming model. There's just been better models in the past on desktops, and there must be a ways forward that (1) "don't hurt the web" [see below] and (2) provide at least the ease of the popular models of the past. Most of the popular models of the past are based on some variation of Model-View-Controller from Smalltalk-80... frameworks like Swing, MFC, etc.
Those models are still incredibly low level compared to other practical-yet-relatively-unknown models that evolved over the last 30 years or more. Most of these other models that I can recall are all in the ballpark of contraint-based and data-flow-based systems.
Here are some off the top of my head for interested readers, many of whom I suspect may *only* have client-side experience with HTML and AJAX if they are younger than a certain age, maybe 35? I'll fill out links and descriptions as I get time.
- ThingLab - And subsequent constraint solvers that came out of Alan Borning's groups for Smalltalk, Java, C, etc. (Many developers are familiar with contraints for layout, less familiar with constraints used within domain model and GUI integration. For a recent discussion on contraints in layout see: Michael Lucas-Smith, Vassili Bykov, Andres Valloud)
- Alternate Reality Kit (ARK) - Smalltalk
- Morphic - originally influenced by ARK and implemented in Self, then in Squeak Smalltalk, and now Lively Kernel in Javascript.
- Fabrik
- Hypercard (on this list for its unique simplicity as opposed to its programming model per se)
- Garnet - CommonLisp, read the papers and try the system if you can - great stuff.
- Amulet - Garnet's C++ successor, a bit more clunk but available to more programmers
- EZDraw - Joel Bartlet's Scheme->C system
- Figlets - Haskell
- Functional Reactive Programming (FRP) (data-flow-ish) systems like: FrTime (PLT Scheme), Frappe (Java), Flapjax (Javascript), and various Haskell systems.
Please Don't Hurt The Web
I don't think HTML and AJAX should or could go away any time soon. But I don't think all "clients" have to be entirely (or at all) made of HTML and AJAX. The more RESTful the web becomes the less clients have to consist of HTML and AJAX. That's a big reason I like AIR so much: HTML and AJAX can contain other models like Flex and PDF; and Flex can contain HTML and AJAX; RESTful services can be integrated into any of this; and so on.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.