(I was listening to Grammar Girl, and the topic was "graduated from college". Lo and behold...)
This is an English major who can't write two sentences without twice as many errors: http://www.answerbag.com/q_view/127475
"I recently graduated college with a degree in English and am at a major crossroad in my life. I can either go to Japan and teach English for a year or go back to school for my teaching credential/master's degree. What should I do?"
Did he really get a degree in English? I got mine in Ethnic Studies, which is allegedly not a good degree. Here's the corrected version:
The Nerd Handbook, at Rands in Repose.
One way to stay in control is to get the computer to tell you to stop working. Work Rave break enforcer.
I've been seeing RoHS all over. Finally found out it is the European anti-poison law. It's what prevents lead from getting into China-sourced goods in Europe. Our lack of a similar law leaves Americans eating lead and roofies. Nothing like a little NAFTA-esque reduction of anti-business regulations to poison the populace. Thank you, spirit of Ronald Reagan.
I've been learning a bit of MS Access lately, and unable to keep up with writing stuff. Sysadminning takes priority. Here are some interesting things:
I was watching some video of 60-Minutes, and they referred to the Brookings Institute as "left-leaning". What? I thought I was up to date on the Left stuff, but didn't know the BI was "left". A web search for "Left Leaning Brookings Institute" turned up a lot of results.
I've wasted around five hours this past week dealing with miscellaneous Windows XP licensing issues. Ever since Microsoft (basically) started tracking users, it's been difficult to resort to the tried-and-true technique of "justified piracy" to maintain one's legitimate software license rights. After all, the way 99% of the world sees it, if you paid for a licensed copy, but lost the CD, you're entitled to use the software legally.
For a while, I've bought into an idea that some folks (like Dave Winer) have promulgated about information. They say that there are three ways to organize information: chronologically, tabular, and hierarchically. (Notably, project management software combines all three.)
It seems about right, though the description seems too facile. Right now, computers can have tables and hierarchies, but there's not much support for storing and querying collected time-interval data. Most time data are treated as "atoms," when, in reality, most time data is some kind of interval.
One other kind of information seems to be missing: indeterminacy. Quantum mechanics (a subject about which I know little) and fuzzy logic (again, don't know much) both deal with the fact that you don't really know the value of a measurement, until you also know how accurate your measurement is. In other words, you need to know how much confidence you have in your data; statistics and statistical methods (a class I didn't do well in) are important.
This is a repository of "novice" articles, written with the intent of driving more traffic to the site, and getting more ad clicks. It's pretty crass, I know, but the information may be very useful.
This is an obsolete article, and left here as a placeholder until a better one can be written.
This is a snapshot of GGDatabase.class.php, a bit of code to construct objects that hold metadata about a MySQL table.
<?php
/**
* Copyright 2006 Slaptech.net
*/
$base = '../';
include_once('../config/config.inc.php');
/*
* Database and table metadata section
*/
class GGDatabaseMetaData {
var $tables = array();
}
class GGTableMetaData {
var $fields = array();
function GGTableMetaData( $table )
{
$db = new Database();
$sql = "SELECT * FROM $table";
$db->query( $sql );
$numFields = mysql_num_fields($db->result);
$table = mysql_field_table($db->result, 0);
for ( $i=0; $i < $numFields; $i++ )
{
$name = mysql_field_name($db->result, $i); After a while, it became obvious that there was no way to drive the ArcMap application from Excel -- timeouts from errors wouldn't get handled, so bad runs would hang.
A real app could raise errors on timeouts, so, I had to learn VB OLE programming. Fortunately there's a free version of VB called VB Express Edition. It's a complete VB environment, that uses .NET. Unfortunately, there aren't references for the old VB classes included. .NET is, in parts, a bit more complex than VB - it's a victim of feature-itis. There are also fewer VB.NET tutorials out there.
Here's a diagram of the "new" system, which is, mostly, going to be an iteration of the "old"system.

The app is broken into three parts. One part manages a list of files. One part is a bunch of "scripts" that do the actual work of analyzing, copying, and deleting files. One part is a scheduler that will run the scripts only at specified times, so that it won't interrupt the normal workday.
map( function, @array );
OR
map { ... } @array;
This latter form is powerful. You can stack it like this:
map { ... } ( map { ... } @array );
PHP lacks this nice syntax. It does, however, have array_walk(), and that can work in a pinch. Below is a form that writes a little bit of array_walk() code for you. Type a variable name, and press TAB.
Here's some more code to use.
Sub test()
Dim pDoc As IDocument
Dim pApp As IApplication
Set pDoc = New MxDocument
Set pApp = pDoc.Parent I'm still working on this. These are just notes, and I'm a noob.
The ESRI ArcObjects don't fully support scripting. They support some basic level of scripting, but they don't fully support scripting with via contemporary OLE Automation, which is what Perl and other languages use.
Historically, there are three phases of COM/OLE that should help explain this situation a little.
First is COM. COM is a way to factor applications into objects that can be used across languages. Normally, you're constrained by the language.
Second is DCOM or OLE. OLE, and later, Distributed COM allowed for the objects to be located on different computers, or within another application. You could issue a method call to a remote program. The technology to do this involved "interfaces". An interface, in this situation, is a lightweight object that communicates with a remote concrete class, aka, coclass. The interface presents a "local face" for the remote object. To access the objects, you "instantiate an interface." Complex objects typically implement several interfaces, and, to access such an object, you needed to instantiate each interface separately, and then set the instance to the object.
3-10-2008: I never really ended up using this tool.
The simplified template system described elsewhere was working pretty well, but I was faced with making a number of web forms. I hate coding these up by hand because there are always changes, and it's a pain to edit the table layouts. (CSS isn't quite right.) So, I wrote a tool that converts the HTML code into the .PHT format. .PHT is a very small subset of PHP, consisting of echoing object properties, calling object methods, the ternary operator (? :), and while loops that call the next() method.