Delimiters

A project I was working on forbid sending & down the wire because it was being used elsewhere as a delimiter. I thought of a clever inexpensive way to package and then unpackage text info to still allow user input with the character &.

 

To package, perform these string replacements:

  • “/” → “/+”
  • “&” → “/*”

 

To unpackage, perform these string replacements:

  • “/*” → “&”
  • “/+” → “/”

 

I learned later that this is a common problem and the solution I came up with would most likely go in the “escape sequence” category.

Virtual Worlds

So I have been getting more into the idea of Minecraft and have just watched some of Yogscast. I have noticed that when they just started out, they weren’t as interested in pushing what the game could do on the outset as I would have been. The first thing I would have done is make a single block base size tower going as far up as possible. This also seems to me to be the best way to avoid creatures at night. Perhaps it is the programmer in me in that the first thing I am interested in is “what causes this to break” and “what are the boundaries,” all of which I need to test in multiple ways before I am satisfied.

 

People rely on constraints to define their digital worlds similarly to how they rely on them in the physical world. What I like about programming and in particular programming language formulation is that you are allowed to build up these constraints and then break them down and build them up again in a different direction to do things people would have thought were impossible. They where impossible according to the previous assumptions, but these assumptions are almost always breakable. Designing such things is intriguing because you’re free to develop a world which follows your own rules. Understanding how assumptions can be subverted is also neccessary for propper cyber security.

 

After I program for a long time the program sometimes feels like a landscape which I am manipulating similar to Minecraft. C feels like jagged mountains where you have to be careful of fault lines lest the land split apart. However, you can make the ground as smooth as glass, or rough as sand paper and everything in between. Java feels more like rolling hills, certain things you can’t do, but you have a safer, if perhaps invariably bigger area. Python feels a bit like a national park with pathways indicating the best ways through, following these pathways is powerful, but it can be difficult if you want to forge your own path. Lisp is a bit like building your world on the moon, you have an enormous amount of flexibility, but it’s going to look unfamiliar to most people.

 

I think this thrill of creation is the same driving force as Minecraft, Dwarf Fortress, World of Warcraft, and other virtual worlds. People get dopamine hits from the act of creation whether it’s virtual, mental, or solid. Virtual worlds are considered by many to be the next digital frontier and it will be interesting to see the human effect on such new virtual worlds as we have seen the human effect on AI.

Not So Clever

So I just spent an hour or so trying to convince cleverbot that bees make a buzzing sound. I just tried asking again and it informed me that bees make a “meh” sound which I don’t think is the right answer. It’s funny what kind of stuff ends up in the conversation when the discussion becomes increasingly random. After trying to command cleverbot to learn about bees, it replied with some nonsense and I responded with the equally nonsensical, “sudo or sudon’t that is the command prompt” and the conversation continued to devolve from there.

 

Watching the responses cleverbot gave me as our dialog progressed it became clear that cleverbot was not going to trust just me in anything I say, but instead will ask others who chat with cleverbot. This is why at times cleverbot can appear quite lucid and come close to passing the Turing test before again succumbing to gibberish. When you get on some line of discussion where people are likely to respond in the same way it will seem like you are talking to a human, and in a way you are. A recent radio lab post discussed how although AI has come a long way in some ways, it still has a long way to go. However, humans have such a strong desire to connect with other sentient beings that we will gladly bond with robot therapists and pets, even when they are fairly simplistic.