Monthly Archives: March 2005

Quick facial cutting picture

I'll write a full article about this with lots and lots of pictures (thanks to Rafael for taking photos) of the cutting that Lukas Zpira (via IAM) did on me this afternoon after the healing has progressed for a while, but I wanted to quickly share one teaser picture before I went to bed.

Image update posted

I've just posed an image update with another thousand pictures scattered across most sections of the site. Thanks to Crass from BPS TEAM (formerly Tribal Touch) in Strasbourg, France for the somewhat creepy cover shot — tattoo by Pierre.

Tomorrow there will be a big experience update, and then I'm going to take off a couple days to do some programming and assorted upgrades and feature additions.

Oh yeah, and I'm getting my face cut today.

Warning: Porn Blooper Entry

I love working in the sex industry, and it's been one of my primary businesses now for over twelve years. As far as porn blogs go, I tend to follow LukeFord.com and HardcoreGossip… but occasionally I check out Fleshbot as well, who today linked to an entry on Pornblography titled “The Hazards of Performing in Porn“. Check it out, it's hilarious.

Nationalism

I wanted to learn more about this story [via] about a school resource officer having her computer impounded by the police because her screen saver was a promo for some show called 'The L Word' which has lesbians on it, which I guess is a little too much for the folks in Camden, Ohio. Anyway, I wanted to know what the show was about so I thought I'd visit Showtime's website… but being in Mexico, they've banned me (and all other non-US visitors):

Luckily Showcase Canada has no such blocking. But Canada's always been open to immigration and tries to maintain friendly relations with the rest of the world. In all seriousness though, doing full geolocation-based blocking of a website is in extremely poor taste and goes against the “spirit of the internet”. The Net should have no borders.

New video animation of IAM usage

The video below shows user activity over a twenty-four hour period on the members-only iam.bmezine.com site. This site has about 10,000 active members around the world, about half of which have entered their geographical location, and about two or three hundred of which are online and active at any given moment. This video has a time-resolution of about one minute and plots their activity over one day of usage (starting at about noon EST on March 15, 2005).


4.5 meg WMV file

The blue dots represent an active user, with yellow glows of different sizes representing multiple users in the same location. The timecode displayed at the bottom is the server time, EST (GMT-5:00). The only rendering error that I know of are a few users that are showing up on a boat off the west coast of Africa in the South Atlantic… that's a database error, not a dream vacation). Oh, and the music is “Land of the One Percenters” by The Bomboras (off the Head Shrinkin' Fun album — if you like this track, it's representative of this album… pick it up).

I thought some people reading this might be interested in knowing how this was done so they could implement it on their own sites (it's not hard — easy in fact!). So here's how, start to finish…

How it's done: Rendering the map

While my complete dynamic-scaling mapping system (which this is based on) is actually over 1,600 pre-rendered image files to do fast zooms of the planet down to about a 1km resolution in both daytime and nighttime modes, the version that renders with rolling night and day regions on the same map is actually much simpler. Three main image files are needed. Below are smaller versions of the ones I use (I render initially at 2,700×1,350 pixels and then resize before outputting).


Daytime Nighttime Alpha Channel

First I load all three images into memory. The first two images are the separate night and day maps, with the third image being an alpha map that I use to combine them. You'll note that it is double width, covering two full days of the Earth's rotation. This is a little lazy and wasteful of resources, but it's very easy. I select a region of this alpha channel that's the same width as the main images that matches the day/night ratio of the current server time and crop it down. Metacode…


/calculate number of minutes since midnight (0-1439)
current.minute = (time.hour * 60) + time.minute
/scale this to match the main image width (2700 pixels)
slider = (current.minute * 2700) / 1440
/move it over a bit so that it matches EST, wrapping if need be
slider = slider + 550
if slider >= 2700, then slider = slider 2700
/crop it
crop alpha.jpg at (slider,0) to size (2700,1350)

The alpha map now matches the main images in size, and represents a day/night picture of the current time as well. The daytime image is used as a base, and then the nighttime image is pasted on top of it using this alpha map to set the transparency, and voila, a pretty image containing both day and night scenery — and not just a dimming, but a real nighttime view.

After that, I just add the current IAM usage information, adding all users who are online and have provided their location to the system. If more than one user is online in the same location, a “glow” representing the number of users is drawn around them. I'm using an equidistant cylindrical projection map, so it's very easy to plot points via latitude and longitude to it without having to do any complicated math. Anyway, then I write the time onto the map and output it as a JPG image and I'm done.

An older version (2.2) of Smaller Animals' ImgSource graphics library is used for most of the image handling internally, inside a PB/CC wrapper.

How it's done: Creating the video

To capture the frames, I use my old “camthief” utility which I wrote years ago to download sequential images from my now-wife's webcam. It allows you to specify a URL and a time interval (among other minor settings) and then grabs every new image it sees. It occasionally runs into communications errors (and sometimes the server stalls) so I put it into a batch file that executes the command over and over and over to ensure it would survive almost any contingency.

If you'd like to have a copy of this program, you can download it here:
http://www.zentastic.com/viabme//camthief.exe — it's 33k and runs from a Win32 command prompt.

When a day had passed, I had a numbered sequence of about 1,500 images representing the frames. They were a non-standard size, so I wrote a Photoshop action to resize them and add a header and footer. After that, using the free RAD Converter I turned these into an uncompressed AVI file, which I then compressed to a WMV file using the (also free) Microsoft Movie Maker. All very easy!