Your leaking thatched hut during the restoration of a pre-Enlightenment state.

 

Hello, my name is Judas Gutenberg and this is my blaag (pronounced as you would the vomit noise "hyroop-bleuach").



links

decay & ruin
Biosphere II
Chernobyl
dead malls
Detroit
Irving housing

got that wrong
Paleofuture.com

appropriate tech
Arduino μcontrollers
Backwoods Home
Fractal antenna

fun social media stuff


Like asecular.com
(nobody does!)

Like my brownhouse:
   route around the high tech
Saturday, June 2 2001
There are several Fox Squirrels living and playing in the bottlebrush trees out in front of my house. Some are tamer than others and at least one of them has developed a fondness for the corn chip detritus I dump out there sometimes. Today I heard a loud clunking on the roof and went to see what was happening. One of the squirrels was up there heaving and hoing on large palm frond that had blown in from one of the extremely tall palm trees lining Amherst Avenue. At first I thought the squirrel was trying to push the frond off the roof (in consideration of the gutters?) but later it seemed she was simply cutting pieces of it off for use as building materials in a nest.

Damn it, it's happened again! I was trying to attach my USB webcam to my main machine, the one with the Athlon processor, and I happened to notice an unusual amount of heat coming out of back. So I opened it up and sure enough, the processor fans were completely still and the entire mass of the heatsink was hotter than the boiling point of water. And yet, strange as this seemed, the machine was functioning just fine. I'm curious as to what sort of technology is used in the Athlon processor allowing it to function at such temperature extremes. My experience with conventional semiconductors back in the 80s taught me that if you couldn't touch it, it was probably already dead.
But the real question here, quite apart from the ruggedness of the Athlon, is why does the fan keep failing? In this case, at least, it all comes down to the motherboard. There are three different connectors for a processor fan on that board, and I've gone through two of them. The first stopped working a few days after I initially put the box together, and now the second one is dead. Evidently there's some logic on the board that controls whether or not these connectors have juice. My question now is: under what conditions should a processor fan not have juice? And even if there are times when it should be off, should those times really occur when the processor heatsink is hot enough for searing ahi? Obviously the motherboard fan control logic is programmed poorly. This is one of those cases where bad programming can lead to destroyed hardware, fire, or perhaps even generalized Y2Kesque mayhem. My solution (and I really should have done this the first time the fan failed) was to snip off the fan's motherboard connector and solder its leads to supply lines coming directly from the dumb, relentlessly provisional power supply. Sometimes you have to route around the high tech just to get things done.
Then when my computer booted up, it had that white desktop with the exclamation mark telling me that the Active Desktop was screwed up and providing me a button to push should I wish to restore it. Every time I see this ridiculous state of affairs I have to ask myself: under what conditions would I not want to restore my Active Desktop? Is whether or not to restore an Active Desktop really a useful choice to be able to make? Consider for a moment all the choices you'd like to be able to make but cannot, and compare them to the trivial amount of control this "do you want to restore your Active Desktop" choice affords you. Wouldn't you much rather be able to control whether or not to include source-bloating inline Microsoft-specific style information in the HTML exported by Word 2000? How about being able to pick a non-Spotlife FTP server for hosting images from your webcam? Believe it or not, this last feature was removed from the latest 5.5 version of the Logitech Webcam software for the following reason (from their website):

The decision to remove this feature was based on several factors, including the problems our support staff faced with the ease of usability. In order to set up a webcam under the old software, the user would have to know all the POP settings, FTP address and server information; often times they did not. However, we still left a webcam solution in our QuickCam software by installing SpotLife. By registering with SpotLife, you can set up a webcam or a web broadcast, without having to know any complicated settings. For more information on SpotLife, please click here. For information on using your QuickCam for a webcast, please view the on-line help files located in the software. If you do not want to broadcast on SpotLife, click here for information on third party webcam software.

So I poked around in the registry and found where the FTP server information was stored and would have tweaked it except I couldn't figure out how the FTP password was encrypted. Normally I like those sorts of challenges, but it already felt like I'd wasted enough of my day on this nonsense. I tried something called Easy Cam instead and seemed to work okay.
What's to be done with a webcam? A lot of people point their webcams at themselves and you can go their webpage and see them throughout the day if they happen to be there. Usually you see them with a focused expression on their face as they surf the web. It's okay to a point I suppose, but for the most part nobody really wants to look at anything except hot chicks, preferably in some state of undress. I thought about pointing my cam out the window so that people can see the squirrels, doves, and hummingbirds cavorting around in the bottlebrush tree, but what happens after dark? And do people still care about the antics of hummingbirds and squirrels in 2001? So I decided to just point the cam at my computer screen so people could see what I was up to in the only place that has any real significance.

At around 9:00pm I was going to go hang out with Linda and Julian at Bathtubgirl's place in downtown Los Angeles (Bathtubgirl herself is in Portland, Oregon right now), and since it was too late for effective use of the Big Blue Bus, I decided to drive Punch Buggy Rust, which has been sitting in a state of neglect for most of the past month. But when I went to retrieve it from the basement (where it keeps company with John's Golf and Audi and three cars belonging to a neighbor), I couldn't find a garage door opener remote control anywhere. I looked everywhere for one: in both of John's cars and in all the possible places in the house, but it was hopeless. John must have hidden them somewhere. The peculiar thing about these remotes is that they were one of John's major obsessions about two months ago. Back then he had at least three of them, and one was disassembled on the living room computer desk the day the FBI came calling (I'm sure it's in their report). I get really frustrated whenever I have trouble finding something that someone else has misplaced (now I know how my Dad felt back when I used to borrow his tools). It's the kind of frustration that obliterates rational control, causing me to lash out by slamming drawers shut and crying out, at the top of my lungs for all the neighbors to hear, "Why can't it just be here?"
Once I realized it was hopeless, I just gave up on it (in a way that would have impressed Gretchen). What a bummer, another weekend gone and all I've done with it is use it as an opportunity to sit in front of a computer and play loud repetitive Shoutcast stations. But if I'm going to be stuck in the house on a Saturday night, I might as well turn my time into something productive.
The earlier experience with my webcam got me thinking about perhaps building an Amihotornot.com-style rating portal based on webcams, but using the Flash-based "rating widget" I've pilfered from my workplace website. Originally used for media-based ratings, I've completely figured out the widget's API and successfully deployed it experimentally on Vodkatea, where it can be used to rate any sort of entities retrieved from a database.
By midnight (in something like three hours), I'd managed to build a RatedImage database, a form for submitting image URLs (complete with web-spider 404 checking), a rating statistics job and a placement algorithm to steer the most popular images to the front page of Vodkatea. The weakest link of these was the placement algorithm, which at present looks like this (in SQL):

Create Procedure usp_a125RatedImageGetRandomBasedOnRating
	(
	@iUserID int=null
	)

	AS
	
	set nocount on
	declare @iThisRow int
	declare @iCount int
	declare @rNonLinearity real
	declare @iMaxWeight int
	declare @iMinWeight int
 
	declare @iRange int
		create table #ri
			(
			iNum int Not Null Identity (1, 1),
			iImageID int null,
			vcURL varchar(80) Null,
			iRating int null,
			iVotes int null,
			tiType tinyint null,
			iUserID int null
			)
		if @iUserID is not null
			begin
				insert into #ri
					(
					iImageID ,
					vcURL ,
					iRating,
					iVotes ,
					tiType,
					iUserID
					)
				select 
					i.iImageID ,
					i.vcURL ,
					i.iRating,
					i.iVotes ,
					i.tiType,
					i.iUserID

				from 
					a125RatedImage i
				join
					a125Rating r
				on
					i.iImageID=r.iEntityID
				and
					r.iEntityID=202
				where
					r.iUserID=@iUserID
				order by convert(real(60, 30),iRating+1/(iVotes+1)) desc 
			end
		else
			begin
				insert into #ri
					(
					iImageID ,
					vcURL ,
					iRating,
					iVotes ,
					tiType,
					iUserID
					)
				select 
					i.iImageID ,
					i.vcURL ,
					i.iRating,
					i.iVotes ,
					i.tiType,
					i.iUserID

				from 
					a125RatedImage i
				order by convert(real(60, 30),iRating+1/(iVotes+1)) desc 
			end
		
		set @iCount=
		(
		select max(iNum) from #ri
		)
	set @iMaxWeight =(select max(iRating/(iVotes+1)) from #ri)
	set @iMinWeight =(select min(iRating/(iVotes+1)) from #ri)
	if @iMaxWeight=0 begin set @iMaxWeight=1 end
	if @iMinWeight=0 begin set @iMinWeight=1 end
	set @iRange=@iMaxWeight - @iMinWeight
	set @rNonLinearity= power(convert(real(60, 30),@iMaxWeight)/convert(real(60, 30),@iMinWeight),.1) 
	set @iThisRow=cast((.05+convert(real(60, 30),@iCount) * power(Rand(),@rNonLinearity)) as integer)
	if @iThisRow=0 begin set @iThisRow=1 end
	select * from #ri where iNum=@iThisRow

	return(0)


Most of the work left to be done on this project consists of perfecting this algorithm. The core of the logic in this procedure is based on some thinking I did about a year ago concerning how to statistically skew a sequence of random real numbers between 0 and 1 towards the lower end of this range. My solution was to raise them to the power of a factor I call "nonlinearity." This technique allows me to populate a temporary table with a list of items sorted by descending popularity and then randomly pick an item from that temp table based on a random number statistically skewed towards the low end of its range, so as to pick low-end items more often than items from the high end.
Actually, though, in this case I probably don't want to show the most popular images the most often. Perhaps I want to show unrated images the most often, popular images the next most often, and never show images that have been rated zero by a particular user to that user under any circumstances.
The next application of ratings will probably be to users. Vodkatea will soon become the ultimate middle school hell as people keep checking in to see how their status is faring in relation to the stati of their friends and enemies.

For linking purposes this article's URL is:
http://asecular.com/blog.php?010602

feedback
previous | next