<D <M <Y
Y> M> D>

  1. D2-D4 G8-F6
  2. C2-C4 E7-E6
  3. G1-F3 B7-B6
  4. B1-C3 F8-B4
  5. C1-D2 C8-B7
  6. E2-E3 E8-G8
  7. F1-D3 D7-D6
  8. A2-A3 B4-C3
  9. D2-C3 F6-E4
  10. A1-C1 F7-F5
  11. E1-G1 B8-D7
  12. D1-E2 D8-F6

 ABCDEFGH
 --------
|r    rk |8
|pbpn  pp|7
| p ppq  |6
|     p  |5
|  PPn   |4
|P BBPN  |3
| P  QPPP|2
|  R  RK |1
 --------

<@CrackMonkey> it just seems like some simple person is shouting the bible at me with a bad accent
<@CrackMonkey> KAI ANEKALESEN MWUSHN KAI ELALHSEN KURIOS AUTW EK THS SKHNHS TOU MARTURIOU LEGWN

(Nick, on finding a beta code version of the Septuagint in my home directory)

The verse Nick quotes is Leviticus 1:1 (Septuagint). "And the Lord called unto Moses, and spake unto him out of the tabernacle of the congregation, saying" (KJV).

I was complaining the other day about software portability (for one thing) and a lack of development environment and operating system standards (for another).

Why should this be? Isn't libc specified by POSIX, documented by Kernighan and Ritchie and ANSI and in the Stevens book and so on? Aren't the APIs and ABIs well-defined?

Well, it turns out that

This is just the beginning. But this situation seems ridiculous, because compiling is a highly deterministic function. In a clearly-defined language and environment, you would expect to be able to call, in effect, a "compile" function on some source code, and get back some object code. You need to tell the compile function what the source language and target machine architecture will be, but in principle it can be implemented on any platform.

But, of course, that's not what ever happens (except possibly in closely-specified languages which compile to bytecodes, like Java or Python). In some sense the Babel of incompatible and non-portable languages is a result of a lack of standards, and a lack of adherence to existing standards. In another sense it has to do with the insularity of adherents of the respective platforms. Users of a platform tend to focus on being able to build native code well according to the conventions of each platform. Cross-compilers are traditionally an afterthought. And there's little hope that Mac developers would put a high priority on being able to cross-compile Linux sources for Linux, or Windows sources for Windows.

There are so many other factors which hinder portability of source code itself. Platforms are likely to provide useful (but platform-specific) libraries, which then tend to get used by programmers. This is especially true in the GUI world, where there are so many platform-specific graphics and UI libraries with completely divergent object models and APIs and even basic concepts.

Portability is even lacking where you would expect to find it, within the Unix world and what gets called "ANSI C". Just take a look at a ten-year-old Unix application. I know I've been looking at a lot of them recently.

What would it take to develop languages, platform models, and development environments where compiling really did mean calculating a particular well-defined function?

The HP/Snosoft affair reflects poorly on the New HP.

I got one of my antique ammeters to measure the current used by a halogen lamp (one amp). From now one, I should call it the "amp lamp".

The meters hadn't been used for years, and seem to be sticky or rusty internally, and not very sensitive.

As this began to play, I heard the Noe Venable lyric "mama, oh mama, we're spinning around". What a fine co-incidence (and fine movie and fine song).

In a larger sense, while academics have slept, the content industries have systematically stifled flows of essential information, created artificial scarcity, and made certain areas of basic research potentially illegal.

(Siva)

But, says Chuck Sims, they have not done so by diminishing fair use rights.

I had a visit from Lucky and a visit from Annalee and Jesse and talked to all of them about trusted computing.

I'm famous, and I'm off to DEF CON X.


[Main]
Support Bloggers' Rights!
Support Bloggers' Rights!


Contact: Seth David Schoen