enginebrainstorms

ozan (oz) yigit's noteblog at sun. all my text and photography is released under a cc attribution-noncommercial-noderivs license. all my poetry requires explicit permission.

All | books | design | general | humor | java | music | opensource | photography | poetry | programming | sf | skeptic | tools


20060622 Thursday June 22, 2006

r6rs syntax-case macros

scheme continues to improve on the only worthwhile syntax extension mechanism (macros) ever devised for any programming language. the srfi-93 [just issued] is a description of the draft r6rs syntactic abstraction system from the current scheme standardization process.

the hygiene condition:

A binding for an identifier introduced into the output of a transformer call from the expander must capture only references to the identifier introduced into the output of the same transformer call. A reference to an identifier introduced into the output of a transformer refers to the closest enclosing binding for the introduced identifier or, if it appears outside of any enclosing binding for the introduced identifier, the closest enclosing lexical binding where the identifier appears (within a syntax template) inside the transformer body or one of the helpers it calls.

(2006-06-22 12:35:12.0) Permalink

20060531 Wednesday May 31, 2006

about time

hmm, i would not have noticed its disappearance.

Subject: removed sendmail from the tree.
To: current-users@netbsd.org
From: Christos Zoulas
List: current-users
Date: 05/29/2006 20:50:53

Hello,

I have removed sendmail from the NetBSD base sources as core@ and
security-officer@ have requested.  There might be a some tree fallout
while we clean up...

Thanks for your patience.

christos

[i have ran alternative mailers since late-eighties, eg. rayan's zmailer. these days, my netbsd mail server for bsdcore runs postfix...]

(2006-05-31 13:46:25.0) Permalink

20060421 Friday April 21, 2006

just a little vituperation amongst friends

potentially regrettable linus quote of the year [complete thread here]:

I claim that Mach people (and apparently FreeBSD) are incompetent idiots. Playing games with VM is bad. memory copies are _also_ bad, but quite frankly, memory copies often have _less_ downside than VM games, and bigger caches will only continue to drive that point home.

[someone should crank him up on fine-grained kernel multi-threading...]

(2006-04-21 11:55:48.0) Permalink

20060420 Thursday April 20, 2006

now reading: coplien and harrison chainleaf

coplien and harrison's organizational patterns of agile software development is one of the most interesting books i have read on the topic. what makes it special? heavy on pragmatic, multiple successful-project based development patterns, many of them familiar, carefully supported with other empirical research and case studies. concise discussions of each pattern with very little hand-waving. in a field that is littered with one-project generalizations and [sometimes collected] blogorrhea of assorted talking heads, this is a refreshing piece of work. [well, one can do without the early bell-labs style typesetting and all the quaint photography from the archives of the library of congress - where is duane bibby when a good book needs his illustrations?]

[some more detailed notes on various patterns to follow]

ROTFL: nurture the role of the wise fool who can raise uncomfortable truths with impunity.

(2006-04-20 13:23:48.0) Permalink

20060413 Thursday April 13, 2006

on unchecked claims on exceptions split rock

recently came across various essays and rants [eg. here, here, here, ad nauseam] on java's checked exceptions. this was indirectly through tate's strange anti-java monograph. [more on that later] all in all, mildly intriguing.

fluff: some of the authors use phrases and words like conventional wisdom, myth, orthodoxy, and refer to well-regarded experts for support, which must impress many. evidently computing is now a field in which the power of a passionate "expert" essay more often than not trumps the necessity and power of empirical content that one can objectively put to test.

historic details: happily for CS literacy, one of the commentators on bruce eckel's essay, kevlin henney, did identify CLU as well as modula-3 as precursors to java in exceptions, and mentions a good [but probably mostly unread] overview: a history of CLU. [kevlin also points to modula-3 report as a reference, but alas that report does not discuss the rationale behind the design of its exception mechanism. i am tempted to email luca cardelli and ask...] CLU history paper has an interesting section on the design of CLU exceptions. to quote: [emphasis mine]

CLU’s mechanism is unusual in its treatment of unhandled exceptions. Most mechanisms pass these through: if the caller does not handle an exception raised by a called procedure, the exception is propagated to its caller, and so on. We rejected this approach because it did not fit our ideas about modular program construction. We wanted to be able to call a procedure knowing just its specification, not its implementation. However, if exceptions are propagated automatically, a procedure may raise an exception not described in its specification.

CLU wanted the cake and eat it too:

Although we did not want to propagate exceptions automatically, we also did not want to require that the calling procedure handle all exceptions raised by the called procedure, since often these represented situations in which there was nothing the caller could do. For example, it would be a nuisance to have to provide handlers for exceptions that ought not to occur, such as a bounds exception for an array access when you have just checked that the index is legal. Therefore, we decided to turn all unhandled exceptions into a special exception called "failure" and propagate it. This mechanism seems to work well in practice.

[alas, so far as I am aware, CLU practice was limited to university teaching, not large-scale industrial use.]

liskov also quotes an earlier sharp observation:

The hardest part of designing an exception handling mechanism, once the basic principles are worked out, is to provide good human engineering for catching exceptions.

nicely put.

obref: Bergin and Gibson, history of programming languages, addison-wesley, 1996. [it includes the liskov history paper, as well as a transcript of her presentation and the question and answer session that followed.]

[i would like to visit this topic again soon, and see if we can do something about empirical content...]

(2006-04-13 12:48:45.0) Permalink

20060214 Tuesday February 14, 2006

lessons from the sony CD DRM episode

Halderman and Felten case study and analysis of digital rights management technologies based on sony CD DRM mess is now released. [pdf] required reading.

The systems make no pretense of enforcing copyright law as written, but instead seek to enforce rules dictated by the label's and vendor's business models. These rules, and the technologies that try to enforce them, implicate other public policy concerns, such as privacy and security.

[2006.02.14-10:33 EST: this paper has not yet been slash-dotted.]

(2006-02-14 07:13:25.0) Permalink

20060209 Thursday February 09, 2006

recent technical paper pile

brian cantrill, hidden in plain sight
wheeler, countering trusting trust through diverse double compiling
margo seltzer, beyond relational databases
matt austern, towards standardization of dynamic libraries
veli mäkinen and gonzalo navarro, optimal incremental sorting
norman ramsey, et al. design principles for machine description languages
sleepycat, getting started with berkeley db java edition
aske simon christensen et al, precise analysis of string expressions
govindavajhala and appel, windows access control demystified
kulkarni, douglis et al. redundancy elimination within large collection of files

(2006-02-09 07:56:00.0) Permalink

20060203 Friday February 03, 2006

computer models of musical creativity

david cope's new book computer models of musical creativity looks quite interesting. [ contents and sample chapters] also good to see that the programs used in cmmc are open source. [i note with some amusement that cmmc code will be mostly inpenetrable to an entire generation of programmers; it is in common lisp.]

[some mp3 selections.]

(2006-02-03 10:03:33.0) Permalink

20060125 Wednesday January 25, 2006

nikon D200: the triumph of design

Bjørn Rørslett's serious d200 review is finally out.

You can get truly impressive and stunning image quality from a D200 shot, but this - obviously - requires using the best lenses from the vast arsenal available in "F" mount. If you try to use mediocre lenses on the D200, you'll be rewarded with a corresponding result. So plan for adding better quality item to your lens line-up, if you have not already done so.

[my own impressions and minor tests to follow at a later date. i have put aside my interest in canon's full sensor cameras; the cost of having another brand in the bag is now nearly astronomical given d200's price/performance, design and ergonomics, not to mention its ability to do multiple exposures, and handle my AI/AIS lenses...]

(2006-01-25 10:49:43.0) Permalink

20060124 Tuesday January 24, 2006

on keeping bits [or not] abandoned glove

first there was a freebsd 6.0 upgrade in my lab. an extremely rare event: i managed to wipe out my freebsd /usr/local, including bitkeeper distro and binaries.

next there was not keeping bits: over a year ago, i had moved most [not all] of my private projects to bitkeeper. after the wipeout, i realized that i had not used bitkeeper for over a year. not once. [so much for any project work at home...]

since i cannot justify owning a bk license right now [also free from its non-compete clause] it is time to move on. i may re-visit graydon's monotone. i know i will spend some time with svn. [sort of like having to white-knuckle through rush-hour traffic in toronto. life gets shorter as a result.] i want to take a closer look at tom [lord]'s handiwork to see if it has any signs of recovering from its spiraling, stomach churning idiosynchronicity. [maybe its derivatives are easier on the eyes and mind] elsewhere, svk and mercurial keep coming up in good conversation...

that reminds me: i need to convert some of my old bk repositories to the lowest common version control, or abandon them. sigh.

[rick moen's scm/vcs list]

(2006-01-24 16:45:28.0) Permalink

20060118 Wednesday January 18, 2006

parr's wisdom

when in doubt, visit terence parr's [of antlr fame] little nybbles of development wisdom.

[eg. point 7 under herding cats: ask people what they want to do.
hear, hear.]

(2006-01-17 22:17:28.0) Permalink

20051221 Wednesday December 21, 2005

grammar rules in perl six

larry wall says:

In Perl 6 we actually give the programmer control over the individual grammar rules and even sub-rules, so that you can replace little bits and pieces of the grammar.

oh neat, still write-only, but more so.

[right, a cheap shot. i think this special perl6 innovation makes pereira and warren's relatively sane prolog definite clause grammars (DCG) about 25 years ahead of its time. see eg. covington, natural language processing for prolog programmers.]

(2005-12-20 21:25:00.0) Permalink

20051219 Monday December 19, 2005

ipod: martin shuffle

peter norvig has a very neat discussion of locating songs within an ipod shuffle. It outlines his friend charles martin's solution using sorted playlists with sequential and shuffle mode stepping. also included: markov decision processes, value iteration algorithm, and python code. [phew]

(2005-12-18 23:14:22.0) Permalink

20051208 Thursday December 08, 2005

graham on w2, ajax et al.

paul graham [my favorite computing-industry double of counselor troi] has some interesting things to say about web 20, ajax, google and so on:

Web 2.0 means using the web as it was meant to be used, and Google does. That's their secret. The web naturally has a certain grain, and Google is aligned with it. That's why their success seems so effortless. They're sailing with the wind, instead of sitting becalmed praying for a business model, like the print media, or trying to tack upwind by suing their customers, like Microsoft and the record labels.

[tack upwind: a lovely image. graham always has a certain mix of spunk & bite not to mention grain, if not always enough depth past three pages. horizontal.]

(2005-12-08 11:18:26.0) Permalink Comments [1]

20051130 Wednesday November 30, 2005

a module system for scheme [r6rs]

a module system for scheme (to be a part of R6RS) just came down as R6RS library syntax srfi 83.

The module system presented here is designed to let programmers share libraries, i.e., code that is intended to be incorporated into larger programs, and especially into programs that use library code from multiple sources. The module system supports macro definitions within modules, allows macro exports, and distinguishes the phases in which definitions and imports are needed.

trio - bach harpsichord concertos

i happen to think [as an implementor] this is about a decade too late; not having a standard module system drained scheme some of its early potential. [others would disagree and say scheme is a rare gem; its facets are slowly and carefully cut to brilliance. it is a fascinating way to build a language for an alternate universe.]

[musical recommendation: trio - bach: complete harpsichord concertos, trevor pinnock, kenneth gilbert, english concert. deutsche grammophon archiv]

(2005-11-30 12:20:00.0) Permalink Comments [0]

Calendar

« November 2009
SunMonTueWedThuFriSat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
     
       
Today

Search

RSS Feeds

XML
All
/books
/design
/general
/humor
/java
/music
/opensource
/photography
/poetry
/programming
/sf
/skeptic
/tools

Links





Get OpenSolaris

Recent Entries


Navigation



Referers

Today's Page Hits: 134