Monthly Archives: May 2008

Another look at Yubileiny

In an earlier posting, I presented a recording that I did of the new Russian satellite Yubileiny, also designated RS-30. I finally found my spectrogram code, and made a picture of the resulting recording. It’s kind of big, but click the thumbnail below if you want to have a peek:

Recording of Yubileiny on May 27, 2008

The image consists of 27 spans, each of about 30 seconds. You can see that every five seconds, my program corrects for the doppler shift, perhaps causing a break in the morse line. It’s relatively easy to read the morse code off the resulting image.

Movie Reviews in One Line

I’ve seen a bunch of movies lately. Rather than give details of each, I just thought I’d give a single line review of each.

Iron Man: I was wildly entertained, but inexplicably couldn’t tell you why afterwards, other than to say that Robert Downey Jr. is great onscreen.

Chronicles of Narnia, Prince Caspian: Snoozefest, lots of shots of people walking in front of CG imagery.

Speed Racer: Underrated, yes, lots of visuals, but enough story to make it tolerable.

Fido: A funny, quirky movie which answers the question “what if Ward and June Cleaver owned a pet zombie?”

Indiana Jones and the Kingdom of the Crystal Skull: Not genuinely bad, but pales by comparison to the original three, keep expectations low (think “National Treasure” rather than “Raiders”) and you might have fun.

The new A&E remake of The Andromeda Strain: Every element added to the original blew chunks, a catastrophe of a script, ludicrous beyond the measure of things. It needs a second line to describe just how mind numbingly terrible it was. Or even a third. Did you guys have writers? Really? The tagline is “It’s a bad day to be human”, but it should have been “It’s a bad day to remake Andromeda Strain”.

Another try at recording Yubileiny

Well, by the time I got home tonight, there was going to only be a single low pass of the Yubileiny satellite to the west out over the Pacific ocean, but I decided to give it a try anyway. It’s maximum altitude for this pass was about 16 degrees. I started this recording pretty much at AOS, but didn’t start receiving until the satellite cleared about 4 degrees. Not bad really: my horizons are pretty high here. I tracked it on 435.315, and switched over a couple of times to see if it was sending on 435.215, which has also been mentioned on the amsat-bb mailing list. No dice.

But I did get a chance to try out my super simple Doppler tracking program. I have a satellite prediction library written in Python, so I coded up a simple Python script to track a particular satellite, and automatically send Doppler corrections out a serial port to my FT-817 so that it should update the frequency every five seconds or so. As you listen, you’ll hear the Doppler going down, and then the radio tunes and the frequency of the received signal hops back up. I was using the elements for OBJECT A as they were posted to the amsat list, which matched pretty well: I didn’t twiddle with any offsets throughout the pass.

Anywho… here’s the recording (faint for the first minute or two, but then picks up):

RS30, Yubileiny, recorded on May 27, 2008

Phoenix to land today…

Mars Phoenix, on the Martian SurfaceThe Phoenix probe to Mars should land today around 6:00EDT. It’s a lander designed to dig in the Martian top soil to look for sub surface ice that the Mars Observer’s data indicates is just below the surface in the northern polar regions. It will subject this soil and ice mixture to a battery of scientific tests, hopefully which will give us some clue as to the possibility of biological viability in the Martian biosphere.

NASA – Phoenix

Update: It’s down safe! Congratulations to the NASA team.

“Yubileiny” is a next generation small satellite

The Russians, in commemoration of their 50th anniversary of their launch of Sputnik, the first artificial satellite, commissioned a small satellite called Yubileiny which apparently launched in the last day. Members of the amsat-bb list have been picking up CW telemetry and some digital signals from the bird. It sounds really interesting, and includes a 2m uplink receiver and a 70cm downlink transciever. I haven’t had time to go over the details of the bird, but it sounds very interesting. I’ve added the orbital elements to my own program, and find that in about six hours, we’ll have a 70 degree pass, so I’ll try to pick it up, if not today, then in the next few days. It has a fairly high 1500km orbit, so it stays above horizon for close to 20 minutes, and has a wide footprint which seems intriguing. More when I find out more:

“Yubileiny” is a next generation small satellite

Addendum: From their website:

With the help of equipment that is installed on the satellite, radio-amateurs all over the world will be able to receive information on the history of space development and domestic cosmonautics achievements. The spacecraft is expected to work in the cyclic operation: every 4 minutes spoken messages, video pictures, and signals imitating call-signs of the first artificial satellite will be transmitted over the radio channel at the international frequency range of 435 MHz.

Neat!

Addendum: I recorded the CW beacon as it came over on its last pass. Didn’t hear any of the other kinds of data it is supposed to be sending, but maybe I just caught it at a bad time, or its cycle was distrupted. In any case:

Yubileiny recorded on my Arrow + FT-817ND

Addendum2: Gary asked about some of the details. I am using my own satellite software code to predict passes, written in Python and based on the Plan13 algorithms of G3RUH. The orbital elements for the sats were posted on the amsat-bb mailing list. I’ve heard that one of these two (fairly close) objects is the satellite:

OBJECT B
1 32954U 08025B   08145.10200117  .00000024  00000-0  10000-3 0    23
2 32954 082.4959 138.5618 0019422 319.0397 040.9226 12.42638976    61
OBJECT C
1 32955U 08025C   08145.10180017  .00000010  00000-0  00000+0 0    20
2 32955 082.5031 138.5641 0019114 306.5063 053.4208 12.43247202    67

I found OBJECT C to be the closest. I was monitoring the frequency that was mentioned on the list, which is around 435.315, which will begin about 10khz higher at the beginning of the pass. If you listen to the above MP3, you can hear the frequency dropping as the satellite approaches. As yet, I haven’t heard that there will be any uplink capability for amateurs. I’ve also heard that others are recording FM based transmissions which might include slow scan tv or the like. I’ll keep an ear open for it later, and let you know what I find out.

Six – A Hex playing program for KDE

Well, all this reading about the board game Hex made me want to play. Six is an interesting, capable hex player available for Linux. It’s really very slick, it plays on any board size from 4×4 to 14×14, and at multiple difficulty levels. I’ve only played a few games, but have already learned a lot. Here’s the board from one of my 10×10 games where I played white. I lost, but I thought I did okay in defending.

An Example Game

I’m already learning a lot. One of the neater things about Hex is that since pieces don’t move after you play them, the entire game is right there.

HexWiki

Work on my checkers program milhouse has stalled a bit: I have a problem in the transposition tables that is fighting against my endgame database attempt, and it’s subtle enough that I haven’t had time to work it out. I’ve been relaxing by reading some more about other board games, and have begun to read a bit about attempts at games with very high branching factor like Go and Hex. I frankly don’t have the brain power for Go, so I thought I might think about hex a bit more. It’s just about as simple a game as you can get, and yet has deep strategy that seems more intuitive to me. Some useful information is stored on the HexWiki.

Animatronic WALL-E Spotted in LA

As we get closer to the Wall-E premiere, you’ll probably be seeing this animatronic version of Wall-E in various promotional spots, and eventually deployed at the theme parks. One of my good friends at Pixar, Tom Duff helped work on the software to help control him (a very cool project) and so it’s good to see him out in the world. Check out:

MUST WATCH: Animatronic WALL-E Spotted in LA | /Film


Wall-E Spotted in LA! from Blink on Vimeo.

I think it’s very cool.

Easy to construct, 18×18 magic square.

If you take the decimal expansion of 1/19, 2/19… up to 18/19, and write out the first 18 digits of the decimal expansion of each, you get:

 0  5  2  6  3  1  5  7  8  9  4  7  3  6  8  4  2  1 | 81
 1  0  5  2  6  3  1  5  7  8  9  4  7  3  6  8  4  2 | 81
 1  5  7  8  9  4  7  3  6  8  4  2  1  0  5  2  6  3 | 81
 2  1  0  5  2  6  3  1  5  7  8  9  4  7  3  6  8  4 | 81
 2  6  3  1  5  7  8  9  4  7  3  6  8  4  2  1  0  5 | 81
 3  1  5  7  8  9  4  7  3  6  8  4  2  1  0  5  2  6 | 81
 3  6  8  4  2  1  0  5  2  6  3  1  5  7  8  9  4  7 | 81
 4  2  1  0  5  2  6  3  1  5  7  8  9  4  7  3  6  8 | 81
 4  7  3  6  8  4  2  1  0  5  2  6  3  1  5  7  8  9 | 81
 5  2  6  3  1  5  7  8  9  4  7  3  6  8  4  2  1  0 | 81
 5  7  8  9  4  7  3  6  8  4  2  1  0  5  2  6  3  1 | 81
 6  3  1  5  7  8  9  4  7  3  6  8  4  2  1  0  5  2 | 81
 6  8  4  2  1  0  5  2  6  3  1  5  7  8  9  4  7  3 | 81
 7  3  6  8  4  2  1  0  5  2  6  3  1  5  7  8  9  4 | 81
 7  8  9  4  7  3  6  8  4  2  1  0  5  2  6  3  1  5 | 81
 8  4  2  1  0  5  2  6  3  1  5  7  8  9  4  7  3  6 | 81
 8  9  4  7  3  6  8  4  2  1  0  5  2  6  3  1  5  7 | 81
 9  4  7  3  6  8  4  2  1  0  5  2  6  3  1  5  7  8 | 81
------------------------------------------------------+
81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81   81

The sum of the rows, colums, and it turns out, the main diagonals is 81, which means that it’s a magic square. It’s not hard to see why the rows and columns are sum to the same, but the diagonals are a bit trickier. Anyway, just something to think about.

25 Cent I2C Adapter

I doubt I’ll ever need this, but I still think it’s kind of neat. I2C is a two wire serial bus that is used in many microcontrollers to access peripheral devices using only a couple of wires. This hack notes that most modern graphics cards communicate with monitors in a similar way using a technology called “DDC”. This allows your graphics card to simply ask the monitor what resolution and scan rates it supports. The hack is to use the DDC stuff to talk to I2C peripherals. I think that’s pretty cool.

25 Cent I2C Adapter

Chinook Endgame Database working (pretty much)…

Well, in a fit of productivity (or what passes for productivity when you are working on useless pet projects), I decided to get the Chinook 6 piece endgame database working in my checkers program. How hard could it be? They give you code to access it after all. A few simple adaptations, and….

Well, it’s not that simple. The code is dreadful. I mean really bad. First of all, it’s not even ANSI C. I haven’t seen K&R style declarations in a maybe fifteen years, and haven’t written any non-ANSI C in twenty. But protoize does a pretty good job of fixing that up. There are a slew of warnings, but those aren’t really difficult, you just tidy up the code a bit, and it’s clean.

Of course, it still doesn’t work. That’s because (sorrow of sorrows) they wrote the code in a very unportable way. This drives me crazy. They use the “long” datatype all over the place, but as written, I am pretty sure that the code will fail horribly if long is 64 bits. Which, of course, every machine I play with these days are. And there are a few “signed/non-signed” issues, and the fact that lseek doesn’t return a long anymore to confound you a bit. And, of course, the interface routines are all written to accept board positions in a format which only the Chinook guys could love, and it took me way too long to create an adapter to make it work.

But I think it does. At least, it seems to pass some preliminary tests:

milhouse, a checkers program by Mark VandeWettering.
transposition table enabled, 4194304 entries, 96 Mb used
quiescence extension enabled
165 puzzles in the puzzle library
sanity checking sizeof(long) = 8
initializing Chinook endgame database...
... creating table
... using database DB6
... allocating 48132029/47004 entry index
... initializing 2...3...4...5...6... database
... allocating 16384 buffers
... initializing 16384 buffers
milhouse: puzzle 164
LOADED puzzle 164: First Position, white should win, but it takes 92 moves..
Color is set to white.
	   White  
	+--------+
	| - - - -|
	|- - - R |
	| - - - -|
	|- - - - |
	| - - - -|
	|- w - - |
	| - - w -|
	|- r - - |
	+--------+
	   Red    

milhouse: db
Chinook sees this as a win for white
milhouse: 

This is the classic First Position, which it sees as a win for white. Unfortunately, it doesn’t actually play the ending very well. It won’t lose it as white (ever), but because of search horizon issues, it won’t find the winning line either (it’s 92 moves long, so that’s not suprising, but still).

More on this later.

On the futility of expert checkers play through deep searches alone…

I really can’t put off creating an endgame database for my checkers program for much longer. I’ve been studying the so-called “First Position” for a while, and it’s basically hopeless to find the way through to the win for white from this position:

	   White  
	+--------+
	| - - - -|
	|- - - R |
	| - - - -|
	|- - - - |
	| - - - -|
	|- w - - |
	| - - w -|
	|- r - - |
	+--------+
	   Red    

What’s so difficult about this? It’s a very, very tricky position. As Jim Loy says, “The procedure: Force the piece to advance by immobilizing the king. The king and piece cannot both fit in the double corner, so the king is forced out, where his situation is hopeless.” Easier said than done! Try following his analysis all the way through. Milhouse can’t even seem to find the right winning combination from Figure 8, falling into a draw by repetion where it can’t make any headway in self play.

Here’s a link to the “perfect play”. 93 moves. First Position with Optimizations

Addendum: During play against the novice level of Chinook, I ended up on the losing side of a 4 on 3 king endgame. But here’s the thing: Chinook seemed to take a very, very long time in converting the endgame into the more manageable 3 on 2 endgame. It does point out a problem though: the endgame databases contain only whether a given move is a win, loss or draw. In many cases, all possible moves are still wins, but you may not actually make any headway in reaching the endgame. For instance, check out the following position queried from the endgame database:


4 on 3… which way to go?

All available moves for white are wins (not too hard to believe, since white is up a king), but the question remains which move should I make? If you can’t see a “conversion” (an exchange or capture which simplifies the position) in your search depth, then you aren’t guaranteed to make any headway towards winning the game, and you kind of march around, hoping to stumble into the winning line.

You can build a database which stores the optimal move at any given position, but of course that takes more memory. Still, I think the 5 piece subset, and probably the 6 piece “perfect play” endgame databases are pretty reasonable given modern machines. That’s where I’m heading.