"I have a mind like a steel... uh... thingy." Patrick Logan's weblog.
Wednesday, December 31, 2008
Multnomah County Sheriff’s Office: “Naked Home Invader Captured After Senior Citizen Grabs His ‘Cahoochies.’”
From the Portland Tribune...
Gresham resident Michael Gordon Dick (that’s right), 46, is being held on $104,000 bail on accusations of felony burglary, harassment and private indecency at the Multnomah County Detention Center.Mr. Dick may have to stay on guard in jail once news of his crime gets around.
The 88-year-old victim was in her robe at 6:30 a.m. when she confronted Dick after finding him in her home...
...the victim reached behind her and grabbed the intruder’s crotch, “giving him a good squeeze,” wrote Deputy Paul McRedmond, a spokesman for the Multnomah County Sheriff’s Office, in a press release titled “Naked Home Invader Captured After Senior Citizen Grabs His ‘Cahoochies.’ ”
His xmas christmas special is here:
Some Lisp-related, and just compiler-related papers and things I've been digging up and enjoying all over again...
- Expansion-Passing Style: A General Macro Mechanism
A simple way to implement macros (no hygiene, thank you). Moreover compared to a basic
defmacro, this approach allows many more kinds of transformations, e.g. currying, call-by-name, call-by-need, macrolet, stepping inspector, etc. Without getting into anything else about compilation, you can plop this thing right on top of your current Lisp and create all kinds of new Lisps and tools.
- Rabbit: A Compiler for Scheme
- The original Scheme compiler where Steele put all the basic elements together for writing modern compilers for any language.
- The 90-minute Scheme-to-C Compiler
- This one's fairly recent and has not received enough attention. This is a concise, Cliff Notes, summary of Rabbit, for all intents. Amazingly it is a working Scheme-to-C compiler, of course without optimizations, the full numeric tower, data structures, etc.
- Realistic Compilation by Program Transformation
- A thesis that came out of the Rabbit, Orbit, SML/NJ, etc. school. Explains why most compilers should not be *-to-C but *-to-Lambda. The cheapest way to do this today: *-to-Gambit-to-C. Takes transformation to an extreme: ultimately the source-to-source transformations restrict the names in the program to those that can be directly mapped onto the machine registers, etc. But the representation is still essentially executable source code, e.g. Scheme code.
- ORBIT: An Optimizing Compiler for Scheme (pdf)
- See also the T Project. If you've made it this far you are interested in compilers, language implementations, and Lisp. Orbit is Rabbit, but way out there.
(The great Nat Hentoff being let go from the Village Voice.)
Tuesday, December 30, 2008
of Computer Programs...
What this highlights for me is that the worldwide financial system, generally, is both worldwide and a system. It's made of interconnected, independent agents, with varying motivations and levels of self-interest, all feeding back to each other filtered and transformed information, far from ideal, instantaneous knowledge.
A front page article in the Seattle Times this weekend speculated whether the regional home market would experience a rebound in 2009. The gist of the argument is that that market has been relatively untouched. I could be wrong, and whatever else, Seattle may continue to be less affected than other areas. However what I missed in the article was any recognition that Seattle is part of an overall system that continues to be sinking, and even worse: the home mortgage crisis may be not even halfway through its defaults.
Belying any glimmer of hope of a recovery, the Madoff list above provides a long list of banks and other financial institutions that clearly do not engage in sufficient diligence when investing billions of dollars. The Madoff case may be the most blatant but I imagine it is exemplary in exposing rampant negligence.
James Robertson writes about changing business models of retailers, etc.
Fuel prices are definitely a short-term issue. Moreover, on-line vendors have even more opportunities to take advantage of distribution patterns. WallMart manages their supply chain for their stores on-line. Vendors who do not require a storefront near their customers can optimize their supply chain as far down the distribution chain granularity as they desire. And they can outsource as much of the distribution as they desire.
I am continually surprised at how invisible WallMart is at least to this customer's eyes in building their on-line shopping capabilities. I see Amazon as WallMart's greatest competitor. I still say WallMart should buy Yahoo.
As Steve Yegge points out at the end of his recent piece on embedded systems, his piece is not really about embedded systems per se, but any system that involves humans. The best explanation of this I've found is in what should be required reading for anyone that builds anything that involves humans: Winograd and Flores' "Understanding Computers and Cognition".
Monday, December 29, 2008
(1984 Edition: Blogger Destroys Ignorance)
Before leaving on a short holiday adventure following the Northwest Snowpocalypse of 2008, I'd set out to email my blog a short love note to Lisp. After a few helpful comments, blogger destroying same, and Twitter destroying my patience for revising blog posts, I'll try rewriting with previous comments in mind...
Something I really like about Lisp and Smalltalk is the very small number of rules and the very large bang for the buck. Ioke and io fall into that same realm:
Although nothing beats Lisp for me. Consider doubling the fraction 3/2.
In ioke the following expression evaluates to the integer 3:
3/2 + 3/2
Although Smalltalk has fractions (and if it didn't you could add them), the same expression evaluates to the fraction 9/4. Why? Because Smalltalk evaluates binary messages from left to right. There are no "mathematical operators", no "operator precedence", and no syntax for literal fractions. The Smalltalk equivalent to the ioke expression above is:
(3/2) + (3/2)
Or less generally:
3/2 * 2
Smalltalk's fewer rules than the common Algol derivatives are a good thing. As Nat Pryce commented earlier, the mathematical operator precedence rules we learn in grade school are far from universal across all of mathematics anyway. Why cling to them in programming languages?
Now we get to Lisp:
(+ 3/2 3/2)
Fractions can be expressed truly as literal numbers. This evaluates to 3 and there's never any question about "operator precedence". The fewest rules of all: function application is function application. Absolutely uniform. Absolutely lovely.
- ► 2011 (19)
- ► 2009 (40)
- ▼ 12/28 - 01/04 (12)
- ► 2007 (388)
- ► 2006 (261)
- ► 2005 (335)
- ► 2004 (534)
- ► 2003 (286)
- 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.