What is the deal with these ASCII art cats?

A while ago I saw a flash movie of a little white cat in a cardboard box. She sings.

During the song she watches another (boy) cat walk by, who is apparently her boyfriend. He runs off with another cat.

The weird thing is- the boy cat looks like it has a “delta” character for a nose. Or the letter “de” in Russian.

Recently I figured out a couple of things:

  • The song is from a video game- Lunar: Silver Star Story Complete
  • The reason the cats look like they have letters in them is because they are ASCII art characters from the Japanese BBS “2ch”

How’s that for obscure.

Hey, did you notice the Japanese chatroom people make art with Russian characters? And we just have the Latin character set?

Know why?


Quick! Go learn another language! It may not be too late for you!


   _____∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜' ____( ゚Д゚)<  逝ってよし!!
   UU    U U    \_______

Ducks and Oil

I love the duck pond.

My mom used to save the ends of sliced bread loaves in the freezer, and when we had enough once every couple months we would take them to the duck pond. We did this since before I could walk.

The best part was eating the bread with the ducks. It was like having a little picnic with them. I would feed the ducks the bread, and occasionally eat some of the stale bread if there wasn’t too much ice on it. They would wag their little tails and quack a lot.

When I was three, we moved to Palo Alto, which comes with its own private park that belongs to the city, Foothills Park. The park has a couple of lakes and some hiking trails. The ducks there living on one of the lakes can be reached by walking out on a pier. You drive through Los Altos Hills and get to the park; it is definitely not walking distance and may only be considered biking distance if you are a frequent rider.

One time, I couldn’t have been more than five, probably less, I was feeding the ducks, and eating bread with them, and some soccer mom approached me, and said something like “Don’t eat the bread! no!” apparently thinking I was feeding the ducks moldy bread and my own mother wasn’t watching me closely.

For a long time my mother would ask me if I wanted to go feed the ducks, and I would sadly tell her no. She couldn’t figure out why. But what was the point? You just throw some bread in the water… that’s entertainment? The interactive and empathetic parts of the experience were gone.

Eventually I got over it, maybe I forgot a little. But I don’t think I ever ate the bread with the ducks again. I still like feeding the ducks.

I don’t live in Palo Alto anymore, and neither do my parents, so I can’t get into the park these days.

Anyway the other day I was driving around the penninsula, and was stopping at a crosswalk in downtown Palo Alto, and crossing the street is the SAME SOCCER MOM. It had to be her, twenty years later, and she was walking her little dog.

I hadn’t come to a full stop yet, so I jammed on the accelerator, neatly stopping the front left wheel of my black beamer directly on her tiny dog, the leash still connected to her hand. I shouted at her “KEEP YOUR FUCKIN NOSE OUT OF MY STALE BREAD BITCH!”

She mumbled something while looking at my fine automobile, probably an apology of sorts. Her hands made a slight wringing motion. I think she finally saw the error of her ways. I really think we made a connection and some healing happened that day.

Come to think of it I should buy some nice bread so I can feed the ducks and eat at the same time and not feel guilty and victimized. The bread should be whole grain and organic and horrifically expensive, and preferably be made with a bone meal made from young children who live in Palo Alto.

I can’t help but think about the impact of feeding the ducks bread. The white bread isn’t as good for them as their normal diet of weeds and small insects. They get simultaneously fat and malnourished. Their population explodes.

Then, one day, there is a dip in volume of people feeding the ducks. Who knows why- maybe people stop eating bread; maybe the jobs in the area move away and the people with them. But now the ducks are forced to go back to their natural food sources. And there isn’t enough.

There is a massive duck die-off. Some survive on the smaller natural food, and are healthier… but there just isn’t enough to go around. Most of the ducks die until their dwindling population can be supported by their environment.

But then we are just like the ducks; our oil-driven agribusiness is the white bread. When the oil goes… most of us go. I wonder if we will live to see it?

All portions of this anecdote are made possible by ducks, and oil. The ducks are of course important. We drove to the park. I drove over the soccer mom’s dog. The bread was made with fertilizer, gas-burning tractors, and transported by truck.

It’s a strong interdependence.

Pikmin 2

Today I beat Pikmin 2. It took a long time.

The last boss is made of junk; 4 weapons that each correspond to a certain type resistant Pikmin.

weapon resistant Pikmin color range ease of avoision length of Pikmin death
electricity yellow play area+ very low! instant!
water bombs blue entire map ! moderate seconds
toxic gas white entire play area low seconds
flamethrower red part of play area moderate seconds

So, that’s the order I recommend taking them down. The reasons?

  1. First take the electricity thing off. The attack has no “cure” and will kill everyone instantaneously. It has the second largest range as well. Pull the component off the field so it doesn’t distract from the battle- by this I mean: when you throw Pikmin at the enemy and miss, they may gather around the component and try to lift it, making themselves sitting ducks. We can’t have that.
  2. Next take the water spigot. The reason is this thing can hit anywhere on the map, and with it still active, nothing is safe. If you can, pull the component off the field so it doesn’t distract from the battle. Note with these remaining “curable” attacks, the leading cause of Pikmin death is when the commander is downed while the Pikmin are suffering, so the commander cannot save them. Thus the water attack is probably the least deadly in this regard, but its range disables other strategies, so we are taking it off first.
  3. Now that the spigot is gone, you can stow vulnerable Pikmin (the yellow and blue) elsewhere. Split up the squad; let one of your commanders take them to a corner of the map.
  4. Next take the gas dispenser. It is unlikely you brought enough white to take down the gas dispenser by themselves, so your leaner squad composed solely of reds will have to be on their toes. After it is gone, remove all remaining non reds to your “hide in the corner” squad. The reds, assuming there are 30 or more of them, can carry the junk on the field off in peace, since they are invulnerable to the sole remaining attack (the flamethrower).
  5. Now take the flamethrower using your reds only. Remove the piece from the field if you like.
  6. When the piece is gone, bring back the “hide in the corner” squad and finish this thing off! Yay!

Fabric King

I’ve seen some pretty awesome custom-made clothing on people walking around Oakland… in true bling hip hop style, there have been some great examples of jackets and shoes made from bootlegged high-end designer fabrics, for example a jacket made from Coach purse fabric.

Now I see an online source of some of this fabric. Pretty cool!Web link of note: Fabric King
(At http://www.fabricking.com/)


Soy-based human flesh alternative.

Hufu is designed to resemble, as humanly possible, the taste and texture of human flesh. If you’ve never had human flesh before, think of the taste and texture of beef, except a little sweeter in taste and a little softer in texture. Contrary to popular belief, people do not taste like pork or chicken.

Web link of note: Hufu
(At http://www.eathufu.com/)

SOAP::Lite Notes

Recently I’ve been playing with the perl implementation of SOAP, called SOAP::Lite.

  • Q: There is no place in the server code that describes the tags for the response!
    • A: The article at SOAP::Data describes how to put data into a complex type for a parameter for a method- I’m not yet certain if this works for the server side:

      A common question is how to do you created nested XML elements using SOAP::Lite. The following example demonstrates how:

          SOAP::Data->name('foo' => \SOAP::Data->value(
              SOAP::Data->name('bar' => '123')));

      The above code will produce the following XML:

  • Q: How do I put complex types into a SOAP::Lite?
    • A: Again from SOAP::Data,

      The following code:

          $elem1 = SOAP::Data->name('item' => 123)->type('SomeObject');
          $elem2 = SOAP::Data->name('item' => 456)->type('SomeObject');
          my $client = SOAP::Lite
          $temp_elements = SOAP::Data
              ->name("CallDetails" => \SOAP::Data->value(
                    SOAP::Data->name("elem1" => 'foo'),
                    SOAP::Data->name("elem2" => 'baz'),
                    SOAP::Data->name("someArray" => \SOAP::Data->value(
                        SOAP::Data->name("someArrayItem" => @array)
                             )->type("ArrayOf_SomeObject") ))
          $response = $client->someMethod($temp_elements);

      Will produce the following XML:

          <?xml version="1.0" encoding="UTF-8"?>
              <namesp1:someMethod xmlns:namesp1="urn:TemperatureService">
                <CallDetails xsi:type="namesp2:SomeObject">
                  <elem1 xsi:type="xsd:string">foo</elem1>
                  <elem2 xsi:type="xsd:string">baz</elem2>
                  <someArray xsi:type="namesp2:ArrayOf_SomeObject">
                    <item xsi:type="namesp2:SomeObject">123</bar>
                    <item xsi:type="namesp2:SomeObject">456</bar>
  • Q: How do you force XML data into a response?
    • A: there is defeinitely a nicer way to do it- but the only way I found was to do it “manually” by force-feeding XML to SOAP::Data. Given the XML response

      I used

      sub productsList {
        $xml_content = "<products>" .
                "<product>tomatobomb</product>" .
                "<product>fishgoo</product>" .
        $response = SOAP::Data->type('xml' => $xml_content);
        return $response;
  • Q: And how do you get THAT data out?
    • A: on the client:
      $result =  $soapclient->productsList();
        @array = $result->valueof('//products/product');
      for my $t ( @array ) {
              print "node: $t \n";
  • Q: How do I force XML from the client to hardcode a request?
    • A:
  • Q: What does the no-argument, “Hello World” SOAP::Lite client SOAP request look like?
    • A: with a method “hi()” in the namespace/service “Demo”, with no arguments:
      <?xml version="1.0" encoding="UTF-8"?>
      <SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
          <namesp1:bye xmlns:namesp1="Demo"/>
  • Q: What does the “Hello World” SOAP::Lite server response look like?
    • A:
      <?xml version="1.0" encoding="UTF-8"?>
      <SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
          <namesp1:byeResponse xmlns:namesp1="Demo">
            <s-gensym3 xsi:type="xsd:string">goodbye, cruel world</s-gensym3>
  • Q: In SOAP::Lite, what is “namesp1”?
    • A:
  • Q: How do I get my simple data out of a SOAP response in SOAP::Lite?
    • A:
  • Q: How do I transport arrays through SOAP::Lite?
    • A:
  • Q: How do I transport hashes through SOAP::Lite?
    • A:
#!perl -w
use  SOAP::Lite;
my $s =  SOAP::Lite
       ->  uri('http://www.PerfectXML.com/NETWebSvcs/BookService')
       -> proxy('http://www.PerfectXML.NET/WebServices/SalesRankNPrice/BookService.asmx')
       -> on_action(sub{sprintf '%s/%s', @_  })
my $ISBN =  SOAP::Data->name('ISBN' =>  1861005466)->type('string')->uri('http://www.PerfectXML.com/NETWebSvcs/BookService');
$result =  $s->GetAll($ISBN)->result; # hash with elements
print  $result->{AmazonSalesRank}, "\n";
print  $result->{AmazonPrice}, "\n";
print  $result->{BNSalesRank}, "\n";
print  $result->{BNPrice}, "\n";
$result =  $s->GetRate(
   SOAP::Data->name('fromCurr')->type(string => $FromCode),
   SOAP::Data->name('ToCurr')->type(string => $ToCode)

More links: