"I have a mind like a steel... uh... thingy." Patrick Logan's weblog.

Search This Blog

Saturday, September 27, 2008

A Space Black Out

"When NASA's last scheduled Space Shuttle mission lands in June of
2010, the United States will not have the capability to get astronauts
into space again until the scheduled launch of the new Orion
spacecraft in 2015. Over those five years, the U.S. manned space
program will be relying heavily on Russia and its Baikonur Cosmodrome
facility in Kazakhstan."

http://www.boston.com/bigpicture/2008/09/the_baikonur_cosmodrome.html

Really? Wow.

The Ties That Bind

"Nancy Pfotenhauer, a senior economic adviser to McCain, has been all
over the airwaves in recent days touting McCain's decision to
"suspend" his campaign over the bailout. But her husband, Kurt
Pfotenhauer, worked until late last year as the top lobbyist for the
Mortgage Bankers Association, a trade group that in recent years
downplayed fears of a housing bubble, only to be proved spectacularly
wrong."

http://tpmmuckraker.talkingpointsmemo.com/2008/09/mccain_advisers_husband_heads.php

You Said How Much?

Paul Newman

Gone. Damn.

My boyhood movie heros were Paul Newman and Steve McQueen.

They were the epitome of cool, and always will be for me.

Friday, September 26, 2008

Query Replace

Maybe emacs users should do more to promote it. Emacs has a reputation of being overwhelming. But we don't promote emacs enough. There are great reasons to learn and use it. I don't think emacs is difficult to learn, there is a great help system and an interactive tutorial to begin.

Emacs does have a ton of functionality. A co-worker asked me about the enormity of the emacs key sequences, not to mention the number of functions that can be run by name. I've used emacs for 27 years, so I'm not the one to speculate on the effort to learn it.

But one thing to remember is that across all the different editing "modes" (for editing this language or that one, or text, or email, or file systems, or what have you) most of the commands are the same and others simply apply the same concept to a specific mode. e.g. what does it mean to go forward and backward by a word or a sentence or an expression or function definition?

See an emacs command summary. I could not quote a lot of these for you without acting out the sequences with my hands. Emacs is now in my physical hand memory.

My favorite emacs function may be "query replace". This function at first may seem not unlike any kind of interactive find-and-replace dialog on a Mac or Windows.

But query replace (found on the meta-percent key combination for those following along at home) is enormously rich. First, query replace will attempt to preserve case in the replaced text. e.g. if you replace "foo" with "bar" and the function encounters "FOO" then you have the option of replacing it with "BAR" and if it encounters "Foo" then the replacement will be "Bar".

What if you want to replace a found match but then edit that particular match slightly differenty before continuing on? (Otherwise you have to remember to go back, and where to go back to, to edit that specific replacement. And what if there are several variations?)

In this case when prompted for a replacement, type control-r for a "recusrive edit". Now you are in a position to edit that specific replacement before continuing with the search for the next match. If you want to do the replace and then review the replaced text before continuing with the next match, do this: type comma "," to do the replace but remain at that spot. You can type control-r to recursively edit the replaced text or do the usual to continue on.

control-meta-c escapes the recursive edit and continues with the search.

What if you made a mistake with the previous match? Either you should have made the replacement and didn't, or you should not have made the replacement. Type "^" and query replace takes you back to the location of the previous match with the text in the state as you left it.

Enough already. Emacs is one helluva tool. There may be other tools with just as broad and deep an array of functions. If you don't have one already, give emacs a try.

Vote No

I'm not sure everyone deserves to stay in their homes under all
circumstances, but that's not the real problem by and large.

The real problem is the so called "bail out" - just look at the wolves
lining up for a piece of the action. Look at the terms and conditions.

http://VoteNoBailout.org

That's reason enough to say "no, thanks".

Thursday, September 25, 2008

Wednesday, September 24, 2008

Decentralize Now

Peter Saint-Andre...

"Radical decentralization has got to be a big part of any solution to
what ails America, and busting up the country into its 50 constituent
states would be a step in the right direction"

https://stpeter.im/?p=2305

I'm for it - with one exception - the state boundaries are artificial.
We have states and cities bordering each other on rivers. The lines
should be drawn around a more natural "bio-region" as they say.

For example the right size for where I live would be the Columbia
River Watershed.

Radical decentralization would be the best move this country could
make. All the more reason it will never happen, in this cynic's
opinion.

Fiasco on the Grandest of Scales

Steve Dekorte...

"Frankly, I'm amazed there aren't (yet) riots in the streets. These public purchases of overpriced assets are a transference of wealth from the poor and middle class to the wealthy on the grandest of scales. Apparently "liquidity" means the ability of the wealthy to unload their bad investments on the public.

The most absurd result of all this is the blame being placed on the "free market" when it is exactly the lack of a free market in currency (via handing a monopoly on currency that caused credit bubble."

http://www.dekorte.com/blog/blog.cgi?do=item&id=3592

Me here...

People generally are disconnected from Washington DC, or even their state and local governments. At least locally they see levies and propositions on an understandable level: do they want to spend $X on the fire department or a library.

At the national level, I've been surprised for years that we're willing to just spend incredible amounts of money on the aftermath of a war that had always been based on documented lies.

This current fiasco is just more of the numbingly same. Paulson - "Give me $700B on the condition that you must have no oversight into how that money is spent."

Oh, did you know that's the condition? That's spelled out literally in the proposal. I will never vote for any of my representatives who back such legislation.

Folks - at least fellow citizens of the USA - we are being *taken to the cleaners* on this. This is a *fiasco* of the grandest of scales. Look around at who's already lined up to get their piece of the action. There is no way this much money can be put on the table without a lot of shady behavior.

In this case enough of the shenanigans are taking place right out in the open to cause riots in the streets.

As for whether a purely free market could do better - I'm not the expert. I'm skeptical there could be such a thing as a "purely free market". It's a system, and people work the system for their own goals. Sometimes those goals are admirable. Most often not.

The term "free market" is used by most politicians and financiers as rhetoric to get what they want, for themselves and their cronies. Period. That's human nature.

Tuesday, September 23, 2008

OTBC's New Home

This is a good move... it puts the Open Technology Business Center
right on the Max line. The old home was a couple miles and a bad bus
ride off the Max line.

http://blog.oregonlive.com/siliconforest/2008/09/otbc_picks_new_home_new_model.html

Maybe they'll have some events to draw me back - I went to an open
house and then never found my way back mostly because of the
inconvenience of the location.

http://www.otbc.org/upcoming_events.html

Spotted in Portland: Clearwire WiMax Trucks

WiMax is being rolled out now in Portland, supposedly. Here's a sighting...

http://blog.oregonlive.com/siliconforest/2008/09/clearwire_lurks.html

As I wrote previously, I've used the service in Seattle, and I like
it. The Seattle service is, or at least has been, slightly under full
WiMax. And apparently the throughput for an individual is dependent on
who's using it nearby, etc.

Still this is convenient, relatively cheap, relatively fast, wireless
anywhere in the city.

Poor Geneva

From The Loughran-Guijarro Scale of system failure...

"7. Loss of small city few people care about. this is why CERN is in Geneva."

http://www.1060.org/blogxter/entry?publicid=C0ECDF2558EE0EC9815CBFFBF8B9CBBB

Poor Geneva.

Sunday, September 21, 2008

Treasure Alright

Paul Krugman:

"Treasury needs to explain why this is supposed to work — not try
to panic Congress into giving it a blank check. Otherwise, no deal."

http://www.blueoregon.com/2008/09/the-administrat.html

You can bet there are a number of people figuring to make a pile of
money on this eventually. Some people will be figuring just how they
escape this, under the radar, with their large salaries and bonuses
intact. Others see an opportunity to come back around later and scoop
up assets out of the government's hands like the Oklahoma Land Rush
all over again. But just the valuable assets. The government gets to
keep the busted assets for sure.

Fortunes may be stashed for a while, but they will be enhanced and
made on this fiasco. Little will trickle down to anyone not already in
the game.

That's the only thing my pea brain can fathom in all this.

What This Is Not

"This is not a spending program," Paulson said.

http://www.cbsnews.com/stories/2008/09/21/politics/politico/thecrypt/main4463279.shtml

Well, as long as we're clear on that point.

Saturday, September 20, 2008

Licensing Bikes???

http://www.portlandtribune.com/news/story.php?story_id=122188941823604900

Cisco's Jabber, Inc.

Cisco buys Jabber, Inc. That must be seen as good news for XMPP generally.

Jabber, Inc. employee and major force in XMPP standardization answers
some questions...

https://stpeter.im/?p=2282

Sunday, September 14, 2008

Listening to..

Little Feat:

  • "Chinese Work Songs"
  • "High Wire Act"
  • "Live at the Ram's Head"
  • "Waiting for Columbus"

In case you're interested.

"They say time loves a hero, but only time will tell.
If he's real, he's a legend from heaven.
If he ain't he was sent here from hell..."

Saturday, September 13, 2008

McCAN-DO

http://timrileylive.wordpress.com/2008/09/11/659/

Apparently McCain says he knows how to capture or kill Osama Bin Laden
but will not make his strategy known unless he's elected president.

Do you appreciate being held hostage by John McCAN-DO-BUT-WONT or is
he merely a charlatan?

Why would he not be collaborating now with the present administration,
assuming he knows something they do not?

Gotta love politics. Of course he's blowing smoke, but sadly, people
probably buy into these games when they should be shaming him, and
running him off of every stage.

Friday, September 12, 2008

OSCON Moves to San Jose!

OSCON is moving from Portland to San Jose? Who wants to spend a week
in San Jose?

Sorry San Jose -- I can happily fly into your airport and rent a car
up to San Francisco, Santa Barbara, Half Moon Bay, and other
destinations. But I've never seen a reason to actually stay in San
Jose overnight. A great part of the atmosphere of OSCON is the
atmosphere of Portland. That all goes away now.

People blog from all over the world how great Portland is, and how
they're looking forward to OSCON in Portland. I'm not able to envision
a similar response to San Jose.

http://siliconflorist.com/2008/09/10/oscon-gone/

Tuesday, September 09, 2008

Dear Football

My friend the viking (and so you might gather, good-sized former-football player) captures my sentiments exactly...

Dear football. Thank you for coming back. Love, me.
I can't really explain it for myself. I love baseball more than football, and so look forward to September pennent races and then October.

But American football, pro, college, and high school, started this past week. What I like about football is you have one game a week per your favorite teams. You have time to talk about the games and teams between games, and listen to all kinds of talk all week on sports radio.

It's really a tradition for my family and me now, going back to pre-teen years.

Oh, and I hope the Buckeyes take some bennies or something before they meet USC on Saturday. And I hope Beanie Wells gets over that foot injury.

More of the Same

A Democrat may be willing to throw a (political) punch?

Real Money


My blog is worth $31,049.70.
How much is your blog worth?

Umk.

Semantic Web, Meet Intranet. Intranet, Meet Semantic Web

From the Sun Babelfish Blog, on Sun generating FOAF from their LDAP...

"So what can one do with foaf that one could not so easily do with
ldap? Well the semantic web is all about linking and meshing
information. So one really simple thing to do is to link an external
foaf file with the internal one. I did this by adding an owl:sameAs
statement to my public foaf file that links my public and my sun id.
(It would be better to link the internal foaf file to the external
one, but that would have required a bit more work internally)."

http://blogs.sun.com/bblfish/entry/sun_intranet_foaf_experiment

Generating the FOAF is a good first step, but then it seems another
step is to make that editable by the subjects.

Monday, September 08, 2008

Engineering With Resources

What I appreciate about the following two pages is they each
illustrate a bit of engineering within the constraints of the system.
They are examples of attempting to use the system in your favor, in
these two cases, HTTP.

http://roy.gbiv.com/untangled/2008/paper-tigers-and-hidden-dragons

http://tech.groups.yahoo.com/group/rest-discuss/message/11265

Sunday, September 07, 2008

Google's Nukes?

Joe Wilcox writes...

"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."

http://www.microsoft-watch.com/content/web_services_browser/android_dresses_up_in_chrome.html?kc=MWRSS02129TX1K0000535

Dan Ingalls on Javascript

Dan Ingalls writes...

"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

http://www.huffingtonpost.com/2008/09/04/jon-stewart-hits-karl-rov_n_123852.html

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

As noted by Joe Gregorio, the AP has finally reported one of the big
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

Every so often something or someone prompts me to take a look at RDF
(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...

http://blogs.talis.com/nodalities/2008/06/first-impressions-of-semantic-web-for-the-working-ontologist.php

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

Jon Udell's got a piece on languages and runtimes, especially "client-side"...

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.

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.

Thank you.

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

Friends

It's good to be cared for.

http://twitter.com/mherrick66/statuses/902322599

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

Not much more to wait now. This will be my third year with my youngest
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

flash player now on linux-32 and -64 as well as freeBSD-32 and -64

http://www.brooksandrus.com/blog/2008/08/22/flash-player-10-platform-ubiquity/

How about a little MC5, shall we?

ok...

"Kick out the jams, motherfuckers!"
-MC5

"Thanks, But No Thanks"

"They want us to reward them for the last eight years with four more years."

-Bill Clinton

Wednesday, August 27, 2008

Collaboration Components

From Ryan Stewart on Adobe's

"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

Phil Stanford is a local columnist for the Portland Tribune. He keeps a pretty good tab on the local government, their past and present shenanigans, especially their involvement with the seedier side of Portland over the years.

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.

See: "Portland Confidential"

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.org

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.

This is Mike "Fuzzy" Herrick's thing. Good deal.
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...

{ foo: bar}
where foo and bar are variables.

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...

{ (foo): bar}
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.)

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.

details

Magic Pen

Another great game my son pointed me to after showing him Fantastic Contraption...

Magic Pen

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

Damien Katz wonders...

"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

Let's see. The open source community is at fault for not getting
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

Fantastic Contraption is quickly becoming one of my most favorite
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...

"More Rails"

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

All My Friends Are Bopping The Blues

It must be going 'round.

-Carl Perkins

Thursday, August 14, 2008

Go Gay

Or at least go right alongside a gay friend or family member.

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 stuck inside of Mobile with the Memphis blues again.

(I'm not on the Twitter. But needed to get that out of my system.)

Tuesday, August 12, 2008

Go See Big Picture

The blog Big Picture is high on my reading list because it has almost
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

Clearwire is coming. My father-in-law has it in Seattle. He's not the
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

This is just a hilarious announcement from the Philadelphia Inquirer,
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"

http://www.cincomsmalltalk.com/blog/blogView?showComments=true&printTitle=Its_1985_In_Philadelphia&entry=3395641948

It reads like a parody.

Thursday, August 07, 2008

Here and Mao

From Naomi Klein...

"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?

There's a discussion on the erlang-questions list about "design
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

From a comment on the great Random Roles interview with Teri Garr, btw
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

If I were more of a Linux Plumber by trade I'd be interested in this...

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.

http://linuxplumbersconf.org/

Thursday, July 31, 2008

Drive-Ins

I was lucky enough to spend my teen years in the 1970s. The drive-in
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

By the way the new Motion Plus 3D extension for the wiimote is
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.

http://www.cincomsmalltalk.com/blog/blogView?showComments=true&printTitle=Liking_the_Wii&entry=3394944679

Symbols

Funny how with all the complicated foo around closure in Java, the
language does not yet even have a convenient notation for symbols.
(Note: enums are not convenient.)

http://www.cincomsmalltalk.com/blog/blogView?showComments=true&printTitle=Smalltalk_Daily_7/31/08:_Symbols&entry=3394950161

Eh, Commerce?

All this search, ads, and other foo about Microsoft, Yahoo, and
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.">>

http://www.theregister.co.uk/2008/07/30/amazon_does_paypal/

Erlang Zeitgeist

What a difference a year or so makes. Erlang was popping up all over
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

"It's a new way of doing business, and some of the most innovative
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

"We learned yesterday that the Department of Justice became an
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."

http://www.blueoregon.com/2008/07/naively-cynical.html

Monday, July 28, 2008

Use Cases and User Stories

InfoQ's got a post on whether projects should use Use Cases or 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

...Open Office

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

Hooked on it. Just going through the first season now from itunes.

I'd not heard of it previously, just happened on it in itunes.

Pronounced "JAY-son"

Why do people say "jay-SAHN"? OSCON speakers much have been coached --
everyone is doing it.

From wikipedia which is inerrant...

JSON (pronounced /ˈdʒeɪsɒn/, i.e., "Jason")

http://en.wikipedia.org/wiki/JSON

Question about Aquamacs

I'll toss this out here first...

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"

Quotes from Ted Leung...

"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

The XMPP Summit apparently has a history of ~12 attendees and this
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.

From The Register...

"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/

OSCON and Portland

Here's just one reason why OSCON is in Portland each July...

http://www.wunderground.com/US/OR/Portland.html

Thursday, July 17, 2008

You're Welcome and You're Not

You're welcome to your ideas. Your welcome to express them in writing, orally, and via many means at your disposal.

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

From The Register...

"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."

http://www.theregister.co.uk/2008/07/15/tech_economy_woe/

There Goes The Neighborhood

"Nintendo this morning announced plans for a version of the
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

I hope the choice is not "protocol buffers" or "xml".

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

Not sure what an "expected" surprise means, but cool...

"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...

...but the cost of nothing.

Apologies to Alan J. Perlis. May he rest in peace.

http://www.cs.yale.edu/quotes.html

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.

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.

From an interesting-looking course in distributed systems at Washington University, St. Louis.

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):
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.”

Dang. Wish I hadn't watched so much Rick Astley. I hope Google tells the judge, "Never gonna give you up..."

Reminder: Program Casualties

Bill de hÓra responds to yet another RPC effort...

"JSON is the sweet spot of type driven interop"

http://www.dehora.net/journal/2008/07/03/arghpc/

Wednesday, July 02, 2008

Lisp's 50th Birthday Celebration

This will coincide with OOPSLA in Nashville. John McCarthy will present.

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

Responding to a thread on the erlang-questions list...
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.

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.

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.

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/

Blog Archive

About Me

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.