Mike Schaeffer's Weblog
Mon, 21 May 2007
Tomorrow, my employer is replacing my three year old Dell
D400 with a nice new Compaq
nc2400. I have to admit that I'm a bit apprehensive about the switch; My
D400 works quite well and shows few signs of decay. But, I also remember
feeling the same way about the D400. Maybe the Compaq will be as good as the
last Compaq I regularly
used and be another nice suprise. Anyway, as part of clearing out the old
machine, here are a few links I've found that I'd like to preserve. No
promises on content, but you might find at least one of them to be
interesting if you read this blog.
reddit this! Digg Me!
- Nicholas Carr - IT Doesn't Matter - Probably false, from what I've heard about it.
- Folklore.org - Macintosh Stories - Wonderful web site dedicated to stories from the creation of the Macintosh. If you're up for that, you might also be up for this, a detailed history of the old Apple ][ machines.
- Design and Implementation of a Web-based Email System
- Oracle Documentation Home Page - Oracle's website sucks, so here is the link to their documentation that's not as obvious as it should be.
- Y Combinator Startup News - Elitist Reddit.
- Michael Ruhlman's Blog - Good for foodies. This is the guy that went to culinary school to learn enough about cooking to write about chefs.
- SmartServe Chicken - The opposite of the last link, but you've probably eaten this crap if you live in the western world.
- Jaguar V12 Engine - A nice history of an apparantly pretty troublesome, but 'sexy', engine.
- Atlas of Lie Groups and Representations - I have no idea what this is, but it seems important. :-)
- Rob Pike's Notes on Programming in C
- My Lisp Experiences and the Development of Gnu Emacs - By Richard Stallman, of course...
- Emacs Lisp Coding Thoughts
- Ford Six Performance - Ford dropped this engine in favor of a 4.2 Liter V6, but this was the entry level truck engine for years. I remember very clearly looking at new 4.9 liter F-150's with my dad back in 1991.
- Come Celebrate the Joy of Programming with the World's Most Unbreaucratic Computers - Lisp Machine Stuff...
- Bitsavers - This is probably the most important link on the list, aside from the next one. A huge archive of old computer documentation and software. If you're a computer geek, and you care about where you came from, you should click this link and spend the next couple weeks reading.
- 1979 Episcopal Book of Common Prayer
reddit this! Digg Me!
Tue, 15 May 2007
I just started reading this blog, but it already looks useful: m-x all-things-emacs.
reddit this! Digg Me!
reddit this! Digg Me!
The other day, I created a table in Oracle with the following command. This
is written in the subset of
SQL known as DDL, or Data Defintion Language.
I'm not a database guru, but it seems like another way to handle this possible limitation is to have the table description query return a one row, one column table with a BLOB or VARCHAR2 containing the DDL description. SQL*Plus could then special case the display of this query to make it look nice on the screen. (SQL*Plus already does special case desc queries, since their display does not honor calls to SET PAGESIZE. If you really do need table information in tabular form, there are always the ALL_TABLES and ALL_TAB_COLS views. (Of course, a really wonderful solution to all of this would be to make those views writable, somehow standardize them, and then skip the DDL entirely. :-)
reddit this! Digg Me!
CREATE TABLE COMMON.SAMPLE_TABLE ( NAME VARCHAR(64) NOT NULL, STATUS CHAR(1), X_C NUMBER (10), Y_C NUMBER (*,10) NOT NULL, Z_C NUMBER (*,10), FOO VARCHAR2 (18) NOT NULL, BAR DATE, BAZ TIMESTAMP ) /Once the table is created, it is then possible to ask the database to describe the table:
common@XE> desc COMMON.SAMPLE_TABLE; Name Null? Type ----------------------------- -------- ---------------------------- NAME NOT NULL VARCHAR2(64) STATUS CHAR(1) X_C NUMBER(10) Y_C NOT NULL NUMBER(38,10) Z_C NUMBER(38,10) FOO NOT NULL VARCHAR2(18) BAR DATE BAZ TIMESTAMP(6)For some reason, the syntax of Oracle's description of the table's definition is entirely different than the syntax of the DDL used to define the table in the first place. Not only does the description not use DDL, minor details are different too. For example, the relative placement of the nullability (NOT NULL) of a column and its data type is reversed from one representation to the other. This makes converting a table description into corresponding DDL a trickier process than it would be otherwise. Another difference (loss?) is that the DDL syntax allows for table specific attributes and the description syntax does not. That means that the table's full description really might look something like this:
CREATE TABLE COMMON.SAMPLE_TABLE ( NAME VARCHAR(64) NOT NULL, STATUS CHAR(1), X_C NUMBER (10), Y_C NUMBER (*,10) NOT NULL, Z_C NUMBER (*,10), FOO VARCHAR2 (18) NOT NULL, BAR DATE, BAZ TIMESTAMP ) LOGGING NOCOMPRESS NOCACHE NOPARALLEL MONITORING /So, if you rely on a table description as the basis for creating a duplicate copy of a table, you not only have to do specific work to convert the description from description syntax to DDL, the DDL you end up with will likely be incomplete. While I am sure that there is an excellent reason for the syntactic split between the two types of table descriptions, I honesly cannot think of it. My current best theory is that SQL*Plus and SQLNET cannot handle non-table returns from a database request. Because of this, the table description has to itself be a table. You could even make the argument that this is the 'right' way to do things, since it gives you a table description in a form (a table) that database code should easily be able to manipulate. However, the description is itself incomplete, so I'm not sure how useful that explanation is.
I'm not a database guru, but it seems like another way to handle this possible limitation is to have the table description query return a one row, one column table with a BLOB or VARCHAR2 containing the DDL description. SQL*Plus could then special case the display of this query to make it look nice on the screen. (SQL*Plus already does special case desc queries, since their display does not honor calls to SET PAGESIZE. If you really do need table information in tabular form, there are always the ALL_TABLES and ALL_TAB_COLS views. (Of course, a really wonderful solution to all of this would be to make those views writable, somehow standardize them, and then skip the DDL entirely. :-)
reddit this! Digg Me!
[/tech/general] permanent link
Fri, 04 May 2007
"A major problem facing mothers is that ovens are self-cleaning
but kids are not!"
reddit this! Digg Me!
reddit this! Digg Me!