Cybercast News Service: What sort of policies was Che implementing?
Humberto Fontova: Massive nationalization. Rene Dumont, a French socialist economist, went to Cuba to advise the regime and told them, good grief, you've done more radicalization, more nationalization in two years than the Chinese revolution did in eight years. They were nationalizing everything, stealing all private property, turning farms into state farms—and that naturally would get rid of any potential capitalist rival. This was accomplished by 1964-65. And Che Guevara had made such a mess of it, the Soviets told Castro “enough!” They told him to remove Che Guevara, to lay him off, do something else with him. The Soviet Union poured the equivalent of eight Marshall Plans into Cuba. Think about it: One Marshall Plan, $9 billion, sent to war-raved Europe with 300 million people, and it worked. Eight of these plans, $72 billion, sent to Cuba, a country of 6.5 million people, who formerly had a better per capita income than half of Europe, and the place is poorer than Haiti today. That defies not just the laws of economics but also the laws of physics.
Nothing much else to say except for “read the whole thing.”
Not much to say today—have a rather long to-do list, one item of which involves OpenGroupWare and installing is as easy as:
TODO: write configuration guide for OGo 1.1
- mod_ngobjweb setup
- init script
- starting OGo on the shell
(and that's not just the high level overview of the configuration, that is all the documentation for configuration—and no, I didn't get it running)
It's also not helping that I have a terrible headache.
When I came across the world's quickest electric motocycle (link via Flutterby) that can do 0–60 in one second and the ¼ mile in 8, I thought of Gregory, but I'm not sure why. Gregory isn't the crotch-rocket type of guy.
Think of it—the Electric Daytona 500! The only limitation—the vehicle has to be powered solely by electrons. No other restrictions on size, weight or shape. The first past the checkered flag after 500 laps wins the prize. Make it an annual event, and I guarentee you'll see rapid electric car innovations.
It was a rather long two months that ended today with the return of The Kids.
There goes the quiet.
Several months ago I added a hidden field to my Email Notification Signup form (and later, renamed the script to flush out any spammers that cached the script location) and boy, was I getting spammed through that script.
The thought of using such a techique as a reverse captcha never occured to me. Hiding a form element such that normal users won't see it, but spambots will, and rejecting any request with that field filled in. What a neat idea.
Of course, that's assuming I ever get around to having comments on my blog …
Mark hired me to do some work on Seminole, his embedded web server. I'm finding it a difficult thing to work on—not because the code is bad, but because the code is in a language I'm not comfortable programming in (C++) in an environment I'm not used to (embedded programming) and I'm weak in reading and understanding the code of others.
It could be worse though—I could be making performance enhancements to osCommerce.
It's also got me thinking about the whole development process. On how we write code, edit code, compile code and store code. About multiple development branches (Seminole currently has 21 compilation targets and 34 compile time selectable options). And language design, because I think that how we develop code influences computer language design.
Update on Wednesday, August 8th, 2007
Mark had some comments about this entry:
- You misspelled “language” twice on your blog post. [Fixed. This is something that happens too often, actually. —Editor]
- You may want to mention I didn't choose C++ either. It chose me when Seminole was “accidentally” created. [True—but that's a story for Mark to tell, not I —Editor]
- There are way more than 21 compilation targets. What you see is the “in tree” reference portability layers. I have a few customers who have created their own.
- You may want to go to a Barnes & Noble and check out a book from O'Reilly (no animal on the cover though) called Beautiful Code. I just bought it but haven't had a chance to read through.
Nothing quite like waking up to clothes and knapsacks flying down the stairs, followed shortly by two Kids flying down the stairs amid cries of “S'not!” and “Is!”
Three days. Frankly, I'm not sure if I should be thankful the quiet lasted this long, or upset that it didn't last longer.
In any case, things have been resolved, clothes and knapsacks cleaned up and life has gone quiet again for the time being (and in case you're reading this Spring—they woke me up must mere moments before the alarm would have, and whatever fight they were having has long since been forgotten).
Since I haven't heard back about the auction, and I still own the domain in question, it seems that my offer of $5,000 was a bit too much for it.
Ah well, didn't hurt to try.
“My niece only has to get past a background check before she can get her dream job with the government. The only thing she's worried about is her credit score.”
“Credit score? For a background check?”
“Yes, credit score.”
“I thought a background check for a government job was stuff like criminal records, school records, getting character references, not a credit check.”
“Before I got hired by the government, my credit was checked.”
“Well, people who are in financial trouble are more susceptible to bribery.”
“Yup, I guess that's how it works.”
Oooh, look! It's 07-08-09!
Okay, it's 2007-08-09, and yes, not many people write the two-digit year first.
That's why this is a stupid date trick.
Programming Small Devices
This book's aim is to help students who have been spoiled by gigabytes of RAM and gigahertz processors deal with the harsher, leaner world of small devices. Like Müldner's C for Java Programmers, it assumes readers already know how to program, and focuses on dispelling their misconceptions and curing their sloppy habits. What do you do when you don't have garbage collection? What do you do when you don't even have floating point, or when you have to worry about watts as well as bytes? Ranging over architecture, basic data structures, and neat programming tricks, this is an excellent introduction to programming in a world where nothing is free.
I could probably use a book like this, as long as it also covered compiling and linking issues one finds in embedded systems programming.
But alas, that book does not exist. Along with seventeen other interesting books that don't exist, but should (too bad too—Error Handling is something that needs to be taught, and isn't—I actually had a university teacher tell me, “If you don't know how to handle the error, don't check for it,” and that's pretty much the only thing I was “taught” about error handling in college).
NASA has now silently released corrected figures, and the changes are truly astounding. The warmest year on record is now 1934. 1998 (long trumpeted by the media as record-breaking) moves to second place. 1921 takes third. In fact, 5 of the 10 warmest years on record now all occur before World War II. Anthony Watts has put the new data in chart form, along with a more detailed summary of the events.
If the article isn't enough to show we still don't know enough about the weather to make dire predictions, then the scores of comments should be enough, with both sides debating the various arguments (“Greenland is melting!” “But it's also revealing large Viking settlements showing it was warmer a millenium ago!”).
Sure, there have been plenty of video games turned into Hollywood lacklusters, such as Doom, Final Fantasy, Mortal Combat and Super Mario Brothers. But those will pale in comparison to Minesweeper: The Movie (link via kisrael.com).
While the Bible might be the literal Word of God, it would have behooved Him to have created Xerox a bit sooner than He did.
My calligraphy has gotten to the point where I'm now doing actual illuminated (illustrated) pieces (although other people do the illumination—I just add the lettering). The main problem I have now is that the writing is so slow that it's very easy to make a mistake.
In fact, I made two mistakes on the piece I just finished.
Mistake number one: I was supposed to write “whose continued and exemplary service as a chirurgeon has brought comfort to so many.” But in going so slow, I wasn't paying attention to what I was actually lettering, and wrote instead “whose continued and exemplary service to so m” before realizing my mistake.
Not having a small knife to scrape the mistake away (nor even the more modern Liquid Paper™) I decided to carry on and rewrite that particular sentence to read “whose continued and exemplary service to so many as a chirurgeon has brought comfort.”
Okay, so not the best wording, but when it's hard (or impossible) to fix mistakes, you roll with it.
Mistake number two: the word was supposed to be “Companion” but I had just finished writing “Ch” when I realized it wasn't supposed to be “Champion.”
It's “Champion” now. Hope that's okay.
Who would have thought that going so slow would be so error prone?
TRENTON, N.J.—Adulterers, beware: Your cheatin' heart might be exposed by E-ZPass. E-ZPass and other electronic toll collection systems are emerging as a powerful means of proving infidelity. That's because when your spouse doesn't know where you've been, E-ZPass does.
Of the 12 states in the Northeast and Midwest that are part of the E-ZPass system, agencies in seven states provide electronic toll information in response to court orders in criminal and civil cases, including divorces, according to an Associated Press survey.
I wonder how long it will be before they start mailing out speeding tickets based upon transit times between toll booths? The information is there after all …
Accordingly, this paper analyzes previously unpublished files recovered from a backup of Woods's student account at Stanford, and documents an excursion to the real Colossal Cave in Kentucky in 2005. In addition, new interviews with Crowther, Woods, and their associates (particularly members of Crowther's family) provide new insights on the precise nature of Woods's significant contributions. Real locations in the cave and several artifacts (such as an iron rod and an axe head) correspond to their representation in Crowther's version …
I remember first “playing” this game in 5th Grade (where “playing” involved the teacher reading the descriptions off the only Apple ][ in the school, asking us elementary students what to do next, and typing in the directions given) but it was later, in high school, when my friend Bill and I would play this game for hours (on his family's IBM PC), and I can still picture the map Bill made as we made our way through the game.
What's interesting about this report are the actual photographs from the cave system that show up in Adventure.
Fortunately (or unfortunately, depending upon your take), there are no pictures of a grue—I guess the flashbulb scared him off.
The last time I made a major search engine optimization to my site was four years ago, and the reason for that optimization was to get rid of the disturbing search requests that were plaguing the log files (and my mind) at the time. It also had the added benefit of reducing the amount of “duplicate content” on my site. A search engine like Google would skip indexing the monthly archives (as well as the front page) but would index the individual entries. The end result: no more disturbing search requests, and better results for people actually looking for stuff.
But it didn't reduce all the duplicate content. There was still
the small problem of
/2000/1/1.1 having the same content as
/2000/01/01.1 (note the leading zeros). Technically, they
are two separate pages, each with a unique URL, although internally, the leading zero is
ignored by my blogging engine and it
would happily serve up the page under either location.
Now, that particular duplicate content issue is something I've known
about since I started writing
mod_blog and I had code to
distinquish between the two requests, but never wrote the code to
do anything about it. Until last week. Now, go to
/2000/1/1.1 and you'll get a permanent redirect to
/2000/01/01.1. This change should further reduce the amount of
“duplicate content” on my site, as well as reduce the number of hits from
web spiders indexing my site (although the redirection doesn't happen under
a very unique condition, but fixing that pretty much requires a
complete overhaul of some very old code, but it's such a seldom used bit of
code that I'm not terribly worried about it).
I'm a bit concerned about the spiders because of some other information I've pulled out from the log files. My archive of log files (at least, of this blog) go back to October of 2001 and using some homegrown tools, I generated (with the help of GNUPlot) this graph of the growth of my site over the past six years:
In red, you see the number of raw hits to this site (with the scale along the left hand side), with some explosive growth in early 2006 and again in just the last few months here. In green you see the actual bytes transferred (with its scale along the right hand side)—pretty steady up until January of 2006 when it goes vertical, and again it goes vertical in just the past few months.
And I'm at a loss to the sudden explosion of bandwidth usage in my site. Unless it's a lot of people hot linking to images on this site (and yes, that does happen quite often), or a vast increase in the number of spiders indexing my site (and for the past few months, Yahoo's Slurp has been generating about 40,000 hits a month).
I may no longer have disturbing search requests, but I know have a disturbing use of bandwidth.
|Okay (200)||Redirects (300)||Client errors (400)||Server errors (500)|
I checked the logs on the on the 21st and 22nd, and for some odd reason, Apache didn't bother logging the bytes transferred on the 21st (and prior) but did starting on the 22nd (and afterwards). I switched servers in February of this year so that's not the explanation—perhaps I upgraded Apache that month or something (since most of the pages served up on this domain are done via a CGI script, it looked like Apache didn't bother to track the amount of data served in that case, and later versions do).
That might also explain the drop in bandwidth around July/August of 2002—I might have upgraded Apache then and that particular version didn't record the bytes sent via a script properly. So basically, the bandwidth metric is useless between July 2002 and February 2006.
Not that I'm overly concerned about it—it was more curiosity than anything else (and if need be, I could reconstruct the data since I have versions of previous templates used, but there's no need).
Also contributing to the spike in early 2006 are actual traffic spikes that happened in April of 2007, like here:
|Okay (200)||Redirects (300)||Client errors (400)||Server errors (500)|
But those are more easily explained as simply more hits.
“What are you doing here?” they asked.
They were construction foremen, superintendents and project managers attending a course in construction planning from the Lean Construction Institute (LCI). Indeed, what was I doing there?
I started to explain: “In software development, we are told we should manage our projects like construction projects, where a building is designed at the start, cost and schedule are predictable, and customers get what they expect.”
Silence. “You're kidding, right?” “No, honest, that's what we're told.”
Incredulity turns to laughter. The idea that programmers would want to manage projects like the construction industry strikes my classmates as ludicrous.
There's an old programming joke: “If builders built buildings the way programmers write programs, the first woodpecker that came along would destroy civilization.” It sounds like it may not be that much of a joke any more …
Mark just sent me a link to Logomotto, a silly page that mixes a randomly selected logo with a randomly selected motto (just now I got the Homeland Security logo with the motto “Can you hear me now?”).
At the weekly meeting the other day, Smirk asked me to look into some alternative anti-spam measures, since more and more spam is making it past the spam firewall. I mentioned the success of greylisting and he told me to look into it.
I've currently downloaded several packages for both Sendmail (what we use at The Office) and Postfix (what I personally use) and there's better support for greylisting now than there was three years ago, but I'm rather puzzled that all the implementations so far use some form of database backend to keep track of all the requests (tumgreyspf uses the filesystem, but as Mark likes to point out, that's a form of database) when one could just as easily keep track of the requests in memory.
It's not like we're stuck with 256M of RAM these days. Even on my Mac mini, the resident set size of Firefox is 16M and I figure you could store about 65,000 requests (which would be swept clean every hour anyway) in 16M.
So my plan is to write some greylist software that keeps everything in memory, so it should be fast, with no worries about resource exhaustion. The protocol used in Postfix is easy, and I can cannibalize code from two previous daemons I wrote to get up and running rather quickly.
Hey, they have a hard enough time predicting the weather ten days from now. What makes you think they can get it right a century from now?
D.C. resident John Lockwood was conducting research at the Library of Congress and came across an intriguing Page 2 headline in the Nov. 2, XXXX edition of The Washington Post: “Arctic Ocean Getting Warm; Seals Vanish and Icebergs Melt.”
It was dated November 2, 1922!
Sad to say, but the East Coast is still here.
There's nothing quite like checking your email and finding one from a large software company that dominates its field asking if you would consider a position at said company.
Just like that. Right out of left field (or is it “left out of right field”?).
I forwarded the email to Mark on the off-chance he didn't get it. I also replied to the email. I'm curious to see what happens.
Not only did I lose everything related to my Stupid Twitter Project due to a misplaced
rm command (and that was due to a misunderstanding on my part of how git works, which is another rant for another time), but I also found out why the graylist implementations (at least under Postfix) use a database backend—because except for the “master programmers” who wrote Postfix, externally written software by us mere peons is so bloody buggy that any external programs are only run once—or in other words, each incoming email spawns yet another process to do the graylist check.
Either I go with a database backed graylist program, or I create an additional
shim piece of software to connect to the daemon I just finished.
I swear our industry rewards Rube Goldberg
I'm also getting pissed off that Linux and X-Windows can't seem to agree on what the Backspace character is supposed to be.
Sometimes, a setback is just what we need to clear our minds and rethink the problem.
Write the Postfix and Sendmail policy checkers to talk to a long-lived graylist daemon, which should simplify things quite a bit.
Now that I've decyphered the Postfix protocol (it's only when you check the example graylist server that you find some critical information not mentioned in the documentation—sheesh) things should go a bit more smoothly.
It was a fairly productive day today, despite waking up feeling like death warmed over. I've pretty much recovered from Friday night's meltdown—my Stupid Twitter Project is back up and running and I fixed the rather bad display bug in mod_blog (that was just a one-line fix).
Work on the graylist program continues, albeit at a slow pace. While working on it, I discovered that some library code I wrote (which is basically a replacement for ANSI C's
stdio.h) has problems with the whole “end of file” concept. While that sounds bad, it's not, because the whole concept of “end of file” under Unix is rather undefined. Normally, you detect the “end of file” under Unix by calling
read() and if you get back 0 bytes, then you can assume there's nothing more of the file to read—you've reached the “end of file.”
But depending upon how things are set, and what type of device is the target of the
read() call, getting back 0 bytes doesn't necessarily mean there's nothing more to read. It just means there's nothing more to read right now.
That, coupled with the fact that you can't normally detect “end of file” without actually trying to read the file (if in fact, it is a file) means that having a function to check to see if you are at “end of file ” (like
feof()) is a rather difficult thing to get correct (which gets around to the question of why I felt it was necessary to write my own replacement for
stdio.h—because I needed the ability to treat strings as files and you don't get that under
I'm hoping to get the initial version of the graylist software up and running in the next few days.
Work continues on the graylist program. I'm working on the Postfix interface for my own domain, and Smirk just mentioned a domain we can use to test the Sendmail interface. Smirk's domain is perfect for testing because
- it's been around for twelve years;
- it was a heavily used domain (in terms of email) up to around the turn of the century;
- it's not currently used for anything.
So the domain in question gets nothing but 100% spam (and a lot of it, according to Smirk)—perfect for testing the filtering capability of a graylist.
Ick. Sick. Cold. Hate.
I'm back among the land of the living, having finally kicked the cold, although it wasn't a plesant experience, let me tell you. Once I felt the cold settling in my lungs, I knew that if I didn't do something, the term “antibiotics” would soon be bandied about, along with “emergency room,” “deductable” and “bend over, this won't hurt at all.”
Yes, it was cough syrup time.
My hand written notes during Saturday (or was it Friday night?) are a bit tough to make out, but let's see …
“If you drink without rythm, you won't attract the worm.”
I feel like a cross between Hunter S. Thompson and Christopher Walken.
And it devolves from there, amid a margin filled with bizarre doodles. I'm thinking the bit about the worm was related to this video. At least, I hope it was related to that video because the very idea of a mashup between Dune, Fear and Loathing in Las Vegas and Brainstorm is too frightening to consider.
By late Sunday I was feeling much better.
I was curious if my efforts at fixing some issues with my blogging software were having any affect. So I checked the current server logs and yes, my efforts did have an affect:
|Okay (200)||Redirects (300)||Client errors (400)||Server errors (500)|
And some significantly bad affects if that last column is anything to go by (which were the number of requests that the server could not handle due to an internal problem, like my blogging software crashing).
Upon initial investigations, it appeared the problem was lost data—my program was generating output, but it wasn't getting to Apache. That's a buffering problem, and an easily fixed one (I just have to make sure that before my program ends, any data it has buffered is written out). But that didn't fix all the problems.
If anything, the problems were getting worse.
And they seemed to be smack dab in the middle of the actual blogging engine itself—a bit of code that I haven't really touched in six years. Mainly because I didn't want to touch this code. It was ugly. Convoluted. Comments like:
and/*------------------------------------------------------------ ; adjustments for partial days. The code is ugly because ; of the reverse hacks I've done without really understanding ; how I actually *implemented* the reverse display of entries. ; Funny how I'm the one writting the code and even *I* don't ; fully understand what I'm doing here. 8-) ;-------------------------------------------------------------*/
/*---------------------------------------------------- ; I have no idea how long ago I wrote this code, but in ; all that time, I never knew that blog->stentry or ; blog->endentry could become negative. It didn't seem ; to affect the rest of the code, but with the new adtag ; feature, it became a problem. This bit o' code ensures ; that they at least remain positive. ; ; I still don't fully understand what I'm doing here. ;--------------------------------------------------------*/
litter the code. And to top it all off, the reverse printing of entries never fully worked right. The more I hacked on the code to get it right, the more I came to realize—
I'm going to have to scrap this mess and rewrite it from the ground up (well, not the entire program—just the portion that deals with collecting up the entries and displaying them, which works out to be about half the code).
The code is tricky because of two interlocking features—the first being you can display the entries between two arbitrary dates (or a date and a given number of entries, or on the main page, seven days worth of entries, which isn't necessarily seven consecutive days). The second feature is you can reverse the order of printing.
The original implementation left a lot to be desired. Frankly, it was a bad design, which made it difficult to get these two interlocking features right (not to mention the automatic generation of next and previous links) and something about the last feature I added (adding the entry title to the page title when there's only one entry being displayed) just broke the engine completely (although how, I have no idea).
So late Sunday I started rewriting.
My sleeping schedule was shot anyway due to being sick for the past couple of days.
I finished the work (for the most part—I still have to write code to add entries; for the time being I'm adding them manually) sometime this afternoon, much to my surprise.
So much for the boring stuff—now onto fun stuff …
I don't even know now to begin describing episode two of Jmac's Arcade (Missile Command) other than it being a wonderful retrospective of both the game and of growing up in the 80s under the shadow of nuclear annihilation.
Oh, and of sending letters to the President.
Or is it the other way around?
I also heard that Mark turned down the job offer— as he said, “if they want stuff I designed when I was 13, they can have it.” Heh.
The woman you see above is the computed average face of all the women on the Face Research Make an Average page. I also did the average of all the men on that page as well:
And because I couldn't resist—all the people on that page:
I'm now curious about how long it will take Hollywood to
this technology when “casting” future films. “Hey! I need a
quintiscential white guy, a mystical black man and
Bruce Lee for my next film. Could you guys photoshop up some for
me? That would be swell. Thanks.”
“How about an average composite of Bruce Lee, Bruce Li, Jackie Chan and Jet Li? I hear there're some new algorithms to average human movement now, and I doubt anyone will ever notice our ‘borrowing’ from these guys.”
“Sounds great! Do it!”
Update on Friday, August 12th, 2011
My prediction just got closer to reality.
Eryn has 5 windows instead of 3. She has a well-appointed interior with galley and loft bed. She sleeps 3 . Her galley includes microwave, sink and refrigerator.
Eryn is plumbed and wired for 20 amp, 120/240 volt AC.
And … she's spherical:
This is a very cool tree-house, but I doubt I could actually go inside due to my fear of heights, and the swaying would probably get to me, as well as the lack of hot and cold running water, and a functional water closet (not that you could fit one inside the thing).
Still, it's a very beautiful dwelling.
Nothing quite like a 3½ hour meeting to really make a day great.
What with 45,000 participants (at around $250 a pop), arson, a suicide and former partners suing each other over Black Rock City, LLC, it appears as if Burning Man has jumped the shark (then again, I thought the whole gig was up when Wired Magazine made Burning Man the cover story back in 1996).
Update on Friday, August 31st, 2007
I just received the following comment from resilient:
Yup! [1998 and 1999] are the two years I went. On the last year I went I heard about people taking their business partners to the event for networking purposes and that's when I knew the glory days were totally over.
I found the following article about Burning Man rather amusing.
Maybe it's a coincidence that local health workers have complained to me that they think there's a noticeable increase in STD testing around the Bay Area after Labor Day weekend, presumably from those who found bliss and new friends for life (of the genital virus variety) while spreading the, um, love and art at Black Rock City … The Man might be burning, but so is your ass. It's no wonder the attendees are called “burners.”
COLLIER COUNTY: The NBC2 investigators have uncovered more controversy in the Collier County School District. Honors journalism students are not only getting graded on how they write, but half their grade is determined based on how many ads they sell for the yearbook.
Collier County School Board Member Linda Abbot says she was shocked to find out students at Naples High School are graded based in part on sales.
Maybe it's a Florida thing, but this same crap happened in my high school. Failure to make $W per quarter, and the best you could get in Journalism was a D. Make under $X, and you go down two letter grades. Make below $Y, and you go down one letter grade. Make $Z or over, and you don't lose any letter grades, but that still means you could earn a C if you do average reporting. And no exceptions.
Another “no exceptions” rule was “everybody in Journalism writes.” Except for my friend Ed B. The journalism teacher made an exception for him—he didn't have to write—because he cut a deal whereby he handled the business side of things.
Nice how that worked, huh?
Me? I never complained (until now) about all the crap assignments I got—the stories that no other students wanted to cover (partly because it was my fault for getting the crap stories in the first place, but that's another story) because as I saw it, if I didn't complain about the assignments, maybe the teacher would exclude me from the “sales grade.”
I got into Journalism to write (well, actually, I got into journalism because the German teacher quit three weeks after school started in my junior year but that's yet another story), not to sell ads. And most newspapers I know of have separate sales departments to handle the advertising.
(As an interesting side story—when the Drama department held fund-raisers, the teacher there never forced me to sell anything. Then again, I cut a deal with her to handle collecting the money and getting it deposited)
I finally got out of Journalism, but it took my Mom threatening the school for them to relent and let me select a new class halfway through the year.
It appears that LiveJournal is at it again (link via Instapundit), only this time, your account could be suspended for linking to sites that violate LiveJournal's Terms of Service. This is especially onerous if a page you linked to changes since it was linked to (say, the domain being linked to expired, and was picked up by a porn site, which sadly, is a common occurance).
I've read through LiveJournal's Terms of Service and even their FAQ and I can't find anything that purports to support this allegation but given some of the weasly answers LiveJournal has given, they don't come across that well. LiveJournal appears to not grasp the principles of “public relations” at all.
But make of this what you will; act accordingly.