Bay Area Prolog Users Group

Our initial meeting of the San Francisco Bay Area Prolog Users Group is tomorrow.

If you’re on the left coast of North America you can participate in person. We’re meeting at 1130am at the Tech Shop. Tech Shop is at 120 Independence Drive in Menlo Park, CA. Come to front lobby and sign the release, come to the conference room.

What’s on the agenda?

* Cyc and Opensim4Opencog – Douglas Miles – a cool system for supporting AIish activities like machine learning by supplying a virtual body, and a wonderful demonstration of Prolog embedded in another environment.

* Web Apps in Prolog – Anne Ogborn – a basic introduction to using the http_server libraries in swi-prolog.

* Food!

* Door Prizes!

We’ll have a remote presence in Second Life at the CEEIAT building in Belphegor. You can participate there by following

http://slurl.com/secondlife/Belphegor/161/50/63

If you don’t have a Second Life client installed this will direct you how to get a (free) account and download the client. Once you have the client you can follow this link and it’ll offer you a teleport button to our location in world.

We’ll also stream the session into Livestream at

http://www.livestream.com/anniepoo

(and we’ll show this on parcel media in SL).

The meetup is organized through

http://www.meetup.com/Bay-Area-Prolog-Users-Group/

 

Posted in Uncategorized | Leave a comment

Hydrodynamics

Science is to computer science as hydrodynamics is to plumbing.

Explain to someone nontechnical what the difference is between a scientific fact and a scientific opinion.

Now grab any random piece of technical literature. How much is facts, how much opinions, and how much ‘how the other guy/gal  did it’?

Posted in Uncategorized | Leave a comment

Bizarre bug in vimeo

I made a little instructional video today in Premiere.

The video is 1:40 long, and ends with two shots -

1:25 Live video ends and a still image of an eyeball appears

1:35 the end title card appears

There is sound under this.

Fine, I run it out as avi, and upload to vimeo.  The avi file looks like the above. On vimeo, the title card starts at 1:25 – the eyeball never appears.

As of this writing I have no idea why this is happening.

I’m posting about this now just because it seems like a bizarre bug that’s likely to teach something about software engineering.

How do you debug something like this?  This is where understanding fundamentals helps.

Video is encoded by encoding a full frame of data, then encoding the delta to the next frame, and the next, and so on.

Of course, if you’re using any reasonable compression scheme, you’re getting loss from this, so you have to send another full frame every so often (and often, in the insane world of video, you find this ‘full frame every nn’ setting).

So, a working hypothesis is that some codec somewhere in the chain isn’t figuring out that it has still images next to each other, and is smooshing them together.

I can test this hypothesis by inserting a few frames of something else between them. If that fixes it,  it’s a workaround.  But I thought I’d blog my debug process as it happens, just for entertainment value.

ok, I tried the ‘insert something else’ and didn’t fix it.

But it wasn’t a bad guess. Eventually I asked for help on the vimeo help site, and was directed to this video about using ‘slugs’ (black video) to keep things happy.

So, lessons learned?  Knowing how it works is always helpful.

Eat your fundamentals, kiddies.

Posted in Uncategorized | Leave a comment

Soulful Debugging

Many long years ago (about 1984) I was working on a desktop CAD system.

I was supposed to implement line picking. This was early days for desktop CAD. 16 bit everything, 2meg machines, no debugger.

There was some bug – I’d click and at random it would or wouldn’t pick. I decided to debug it by writing nested loops to run through every location on the screen and call the pick routine. If it returned an object I’d turn the pixel red. I drew a line, and then called my pick debug routine.

To my amazement instead of an obvious pattern my screen filled with a beautiful red moire pattern. Drawing different lines changed the pattern in nonobvious, but delightful, ways.

I suppose these days we’d look at something like this and think of it as something to play with for a minute and forget. But I’d never seen a computer produce something truly beautiful – the ‘computer art’ of the period was pretty sterile.

The bug was pretty obvious – I was trying to rescale a 16 bit value with a naive (A * B ) / C formula and overflowing. Reluctantly, I fixed it.

But I still remember that moment long ago when my code suprised me with a gift.

Posted in Uncategorized | Leave a comment

Weird untainting of information

For my usual readers, forgive this slightly bizarre post. It probably contains in it the seed of some evil that will become apparent to us all some day.

For the nontechnical who might read this, there’s a notion of ‘tainted’ information in CS. ‘tainted’ information is, for example, input from a user through a web form, which might contain an attempt to cause the system to misinterpret data as code. So usually there’s some attempt to remove or reencode ‘dangerous’ information.

So, what’s this? Well, I was once a part of the editorial team (lead by Jill Enquist/Gail Sondegaard) for the Transsexual News Telegraph.   Turns out that certain wikipedia editors are questioning some facts about TNT.  And guess what, nobody’s ever reminisced about TNT in print, so it’s ‘unsourced’.

This is being done as a deliberate attack on GLBT visibility – there’s a group of people who have realized that while, in theory, everything in wikipedia is supposed to be sourced, in practice nobody sources statements like ‘Brazil is a country in South America’.  So, if you’re anti-Brazilian, all you have to do is add a template challenging this fact, and then wait 6 months or so and delete it.  If you’re on the other end, you have to find (difficult) an assertion in a ‘reliable source’ that Brazil’s in SA.

So, here’s a little reminisce about TNT.

Following the first New Women’s Conference there was a sense that we didn’t want the good energy to simply dissipate.  I volunteered to create a newsletter so we could keep somewhat in touch (this was pre-internet).

With no experience doing such a thing, I somewhat overdid the project, and spent the next 5 or so months working on a 24 page elaborate ‘zine’ called ‘rites of passage’.

The original issue attracted help from Gail Sondegaard (a pen name for Jill Enquist) and Kevin Horowitz. Kevin left the project after a bit, but Jill stayed and essentially took over the publication. By the third issue it was renamed to Transsexual News Telegraph and had officially dropped it’s ‘post op’ orientation and status as the NWC newsletter.

The front covers usually had some sort of transsexual art.  The back cover was always a thought provoking graphic. For example, the first RoP had a poster describing the causes of nontranssexualism.

At one point we intended to approach Apple with a request that they run one of their ‘think different’ ads with the famous picture of Christine Jorgenson descending an outside boarding stair from an airliner. Later we decided discretion was the better part of valor and dropped the idea.

The magazine was printed by sometimes crazy methods. It was printed up on 9 x 12 paper and saddle stitched 48 pages for most of it’s life.

In later years Katherine Collins joined Jill in putting the magazine out.  The publication got thicker, and less frequent. After about 1998 it was published irregularly. Jill was having personal problems that affected her ability to put out the considerable amount of effort of doing the magazine.

Jill is one of the great unsung heros of the transsexual rights movement.  Her quiet work churning out issue after issue sustained the trans movement.  Her grace and intelligence helped steer the often fractious bunch of activists towards a sense of community.

The struggle continues. This post is a response to an attempt to erase some of our history – an ongoing campaign of bigots on wikipedia.

So, a bit of infowar to brighten the morning of all you crypto/security fans.

Posted in Uncategorized | Leave a comment

The Realities of Software Engineering

originally posted 02.27.08

OK, folks, I’m going to let the secret out.

Software engineering is a crazy way to make a living.

Proof – a few stats from my resume-

# of major software systems I’ve built – 34

# of paychecks that have bounced – 5

# of times police have been called to my workplace – 2

# of employers who had identifiable psychiatric ailments (I am not a pshrink, but I can guess here) – 5

# of interviews where I declined the position in the middle of the interview – 2

# of times I wished I’d done so >>2

# of times I have slept at the office – > 100. Number of different employers where I did this – 3

# of times I have become homeless during tech downturns – 2

# of times I have suggested they give me my development machine as final payment – 3 or so.

Most absurd first question in an interview, “So, what instrument do you play?” (answer:”None” next question:”ah, you know this position is for music editing software?”)

Second most absurd question, “So, where did you learn Japanese?” (I don’t speak Japanese… I’m not of Asian descent. Position required Japanese fluency, something the headhunter overlooked).

# of times I’ve been asked by an employer to write a program to punch lace cards – 1

# of crimes detected while working – n

# reported to police n-1

# of times person reported to police was client – n-2

# of times I’ve lied during a demo – many

Largest amount charged for trivial fix – $175 to push one button.

Most hours spent at the office in one week – 168. I was living there.

# of pornographic software systems I’ve worked on – 2

My favorite menu item – ‘Genitals’ (a checkable item) in most versions of Poser.

# of times I’ve removed functionality or installed something to cripple software at client’s request – 3

# of times I’ve been offered illegal drugs as my payment – 1

# of times I accepted – 0

# of times I’ve been asked by other engineers what to do about the crazy shop they were in – 14

# of times I’ve built things stupidly at the insistance of the boss – n!

# of times I’ve been blamed for it – n! + m

Most useful piece of code:

for(var i = 0 ; i < secsTilShipDate() ; i++)invertLargeMatrix();

Just thought all you college students studying hard cause mom and dad say engineering is the way to fame and fortune should know.

Posted in Uncategorized | 1 Comment

The Great Big Press Company

originally posted 02.27.08

This is the story of the Great Big Press Company.

And of Bob.

GBPC built presses. Fancy presses, with lots of automatic rollers and gizmos on them. All controlled by a small programmable microcontroller built around a 6502.

The controllers were programmed from a development system. And the code on that system had been built by Bob. So he knew every line of those 20,000 lines of 6502 assembler.

Whenever the higher ups at GBPC asked Bob for a new controller, it needed configuring. You see, each press had it’s own special combination of gizmos and gadgets that needed controlled. No problem, Bob just changed a few parameters in his code, and whipped a new version out.

He carefully stored all these versions – ACD0001.asm ACD0002.asm,…. and so on.With no indication which code was on which press.

I was called in to interview for a position at GBPC. The position? Bob had a girlfriend. His girlfriend was from South America. Bob was leaving for South America- in two weeks. I was to step in, take over 20,000 lines of assembler with nary a comment, oh, and I’d be responsible for somehow (my problem to figure out how) figure out what code was on what machine spread throughout the world.

I ran, rather than walked, away from GBPC. Six months later I ran into the fellow I’d interviewed with. I asked how GBPC was doing. It was out of business. While the controller problems hadn’t been the only cause, they were, he said, the biggest one.

Posted in Uncategorized | Leave a comment