Think in 4 dimensions
Sunday, August 31, 2008
There is something that really bugs me about our human perception of space, which I consider one of many of my mathematical deficiencies: I don't understand why I can't think in, or even visualize, 4 dimensional space. And it's not just me; we, humans, are not wired to to do this.
Sure, we live in a 4 dimensional world (width, height, length, and time), but I mean 4 dimensions in the Euclidean sense.
I was taught to manipulate objects in countless dimensions (vector spaces), but I can't really see beyond 3 dimensions--i.e., we can't draw things on a piece paper that are accurate representation of 4 dimensional objects. Some people claim to be able to visualize 4 dimensions, but how can we prove they can't?
By analogy, we can project the shadows of a 4 dimensional object into to our 3 dimensional world. What's more, we can project these things into 2 dimensional screens (see the nice bubble looking image above?). I buy that and I have seen the "projections," but I just can't visualize real 4 dimensional objects. And I've tried very hard.
The latest step I've taken in my quest to understand higher dimensions is to watch a freely available movie titled, unsurprisingly,
Dimensions.
If you watch the movie and end up understanding 4 dimensions, drop me a line.
Is Google Apps Engine bad for you and the internet?
Friday, August 29, 2008
According to
Richard Stallman, it is. This is what he answered when someone asked him what the future of the web may look like in 5 to 10 years (Technology Review, August 2008, p. 39):
No one can see the future, because it depends on you. But I see a danger in the Web today: doing your computing on servers running software you can't change or study, and entrusting your data to U.S. companies required to give it to Big Brother without even a search warrant. Don't risk this practice.
There is nothing insightful in his answer, and it's not surprising he's promoting Open Source. Nevertheless, is seems to be a close-minded statement coming from a computing pioneer (is he a pioneer?). There are some web applications that grow from a couple of users at launch time to millions of users in a matter of months (or days?). The hardware requirements to support this kind of growth is an impediment to many: in these cases, no money == failure.
The web doesn't wait for you; if there is no VC money or a sustainable revenue/profit generator model the idea just dies and someone else ends up copying it. True enough, some of these small shops have no business calling themselves, well, businesses; however, lack of money shouldn't stop them from trying. A large number of these innovative web companies will have to make use of server farms like Google's: it's too expensive to scale along with your users. Most important, it's too expensive to grow fast enough.
It's his opinion, but I, on the other hand, think that the opening of server farms to the public is a good idea. Are all the rules and regulation perfect? No. But we may be able to figure them out when the time comes. Do we get these things right all the time? No. But just because it's difficult, we can't just sit idle waiting for everything to be perfect.
Do you know what's cool? LEGO Mindstorms, that's what
Saturday, August 23, 2008
I've been meaning to get a LEGO Mindstorms set for sometime now, but every time I have looked for one it has been around X-mass time; and as we all know, it's close to impossible to find anything you really want during the end of year festivities.
Yesterday, after dinner, we strolled to the local Toys-R-Us to buy model magic for Gabriel (he likes to sculpt things and whatever this putty is made of, it kind disappears on you; I'm not sure where it goes, but we keep buying the stuff). Out of curiosity I asked if they had Mindstorms on stock. The sales clerk said they did and I immediately asked to see one (I didn't believe it). Since they did have them, I got one for Gabriel.
The toy is more for me, really, because he hasn't figured out the programming part of it. I found it interesting, however, that he immediately wanted me to make it do things independently. In other words, he wanted me to make "him" feel things and become like a person. And I call it a him, because we named the little guy
Metal Head. Ironic, I think, because the thing has not a piece of metal on the outside that can I see. I have to admit that 8 year logic trumps my jaded, cynic view of the world, so Metal Head it is.
What a great experience and opportunity these toys are. On the one hand, this toy is well made and well engineered. And it's no surprise, since LEGO actually paid a few of the heavy users of the first Mindstorms generation
to help design the NXT version. The money was well spent. On the other hand, it is an amazing opportunity to reel in kids to scientific and engineering careers. The next generation of engineers will already know how program remote explorers and how integrate hardware with software to engineer explorer robots to go places where no human can ever survive. Sure, you can't compare play time in the safety of a living room to Jupiter's unforgiving surface, but it's easy to extrapolate.
The Mindstorms is quite a marvelous, yet simple, set of technologies put together. With only 7 input and output ports, the possibilities are endless. It's an amazing toy.
I haven't played with LEGOs in a while, but I figured that writing software is similar to building things with LEGO, so I tried building the first robot. After all, I'm an OO proponent to the point of evangelism. LEGOs are built with components, software system are also built with components. The major difference, of course, is the scope and amount of time it takes to build each. The first project, LEGO promises, is to take 30 minutes. Sure enough, I can write a "Hello, World!" program in less time than that--give me any computer language, and I can have that baby outputting platitudes in no time.
Again, I haven't built anything with LEGOs in a long time, so the 30 minutes project became a 90 minutes project for me. After sweating profusely and debilitating lower back pain (I was sitting on the floor just like Gabriel was), Metal Head turned out all right: the robot is a 3 wheeled small machine that moves around, if programmed correctly.
The next step was to make it look like what the box promises. I couldn't disappoint my son, so there goes another 90 minutes to build claws into the thing and then make it pick up balls on command. The funny part here was that I crisscrossed the wiring of the motors. So once I turned Metal Head on to check that the it still worked, it started jumping around. This gave it a more real experience of becoming alive and it gave me a feel of panic once I realized that all the jumping, although funny at the time, made the pieces start falling off (I couldn't afford another 90 minutes of putting it back together).
The programming is visual and somewhat limited. However, for the target audience (kids 10+), the visual building of logic is a perfect introduction to the craft of software creation.
Each square represents a unit of work. Each unit of work has attributes and behaviors that tell the computer what to do. For example, you can make the robot look around and stop as soon as it feels an obstacle; you can then clap your hands to close the claws, the robot says thank you, pick whatever it's in front of it, turn around, and, finally, drop it off whenever it finds a black finish line. It took me two minutes to program all that. Well, it would have taken anyone two minutes to program all that.
Without the genius of the whole package (the NXT computer, components, and programming environment), doing only one of those things would have taken years of research and PHd dissertations--the light sensing stuff is easy now.
Of course, being a software tinkerer, I know there is much more that you can do with a toy like Metal Head. For that, however, you need to go beyond LEGO's visual programming environment and move onto more familiar territory: a programming language with APIs and real lines of codes (you know, something with curly braces and semi colons at the end of each statement).
You have many choices here, but I'll go with
LeJOS for my further experimentation. I haven't done anything with it yet, but I already have a couple of requests from Gabriel. I doubt any of my programs will make Metal Head behave like Wall-E, as he's envisioning; nevertheless, I hope the whole experience of pushing the orange button to make it do things will instill in him the same curiosity I have for anything that can be engineered, programmed, or both.
UPS didn't deliver again and again
Friday, August 22, 2008
What's wrong with UPS? Or is it just the driver that services my area that really sucks and doesn't like to deliver to my building.
Twice in the span of 10 days he or she has failed to deliver the goods. And he or she is not even trying. UPS drivers are supposed to leave one of those notes that say that they knocked on the door and no one answered. Well, I didn't even get that courtesy. I'm serious, this driver doesn't even go around my block, as I worked from home today and the brown truck was nowhere to be seen.
The most irritating thing of the whole experience is that I checked UPS's tracking website 5 minutes after the supposed delivery attempt was made and it was already updated with the failure to deliver message. I mean, their logistic system works perfectly, but if you are a delivery company and you don't deliver anything or even attempt to deliver, then you are doing something wrong.
And as a paying customer, what do I do make my voice heard? I called their 1-800 number and I was told that I can't escalate the issue any further because there is no one to call. The matter stops with the customer service representative you happen to get and they tell you that all they can do is send an electronic message to the manager of the local depot and that I will get a call back so I can complain to that manager.
I already know how this will turn out. I will be told that the driver was given a good talking to and that it will never happen again. How do I know this? Well, it happens every time I get something delivered via UPS.
I have stopped buying anything online on shops that are using UPS, but in some cases I don't know which service is being used. When the word UPS shows up in my confirmation email, I already know that I will have to make the trip to the depot to pick up my wares, after angrily calling the manager to complain about their driver who never stops by my place.
I would understand if this failure to deliver happened 1 out 5 times, but when it happens 4 out of 5 times there is a big problem.
Actually, 1 failure to deliver out of 5 times is completely unacceptable for any delivery company. And if it is the driver who doesn't like going around my area because it's too far from wherever he or she happens to be going that day, he or she doesn't understand the contract between UPS and the customer: I pay for home delivery to get products delivered to my house, not to pick them up at the depot.
UPS, are you listening to me? Apparently not. Otherwise, I wouldn't be writing this entry (
again).
You would think a company with a
21% loss of profit in Q2 of 2008 would be willing to make their customers happy. In this high-cost fuel times, every penny counts. Happily, I will be sending my business to any other delivery company that is not named UPS.
What's wrong with this page?
Thursday, August 21, 2008
What's wrong with this
page?
It seems perfectly fine, until you try to put the information into some sort of context. For example, what year was this published?
From looking at the page, you'd have no idea. And this is not an isolated incident: it's surprisingly common.
In this case, it can be argued that the URL gives the information required (2003); however, the address bar is
not what we users go to a web site for. We are only interested in the content of the results to our requests and care not for the implementation details of the web application at hand.
Three Olympic questions
Tuesday, August 12, 2008
Question one: are you watching the Olympics?I'm not from the US, but I'm currently doing some work for the site I just linked. It's an interesting take on social networking with good old blogging technology. Of course, there are various challenges to take care of, but everything seems to be working out fine.
BTW, I watched my first bit of Olympics yesterday: man that Phelps guy can sure swim fast.
Question two: why aren't the soccer games being shown on TV?Soccer, being the king of sports, is not getting enough respect on this version of the Olympics. Not one video of a goal has leaked on the net. What's up with that?
Question three: why hasn't Canada won any medals?I think the Olympics needs a new medal just for showing up to feel the love, because it doesn't look like Canada will win any medals. Even
Azerbaijan has won 3 medals--as of this writing--and I've never even heard of that country before. Now, a G8 super power is expected to do way better than non-G8 countries.
Ummm...Ahhh...
Saturday, August 09, 2008
Imagine giving a presentation without "Ums" or "Ahs." Somehow, that little break lets us catch our breath to put the next sentence coherently--at least we think it does; otherwise, we wouldn't do it.
I always wondered if a microphone could be built to filter out those annoying breaks. Well, I think the technology exists now, but I'm not sure if the market does. The noise-canceling technology used in cellphones could be used to create a um-ah filtering microphone. The question is: would anyone buy it?
For more information on the cell phone canceling chips, go to
Audience. For the um-ah canceling microphone, check back with me.
Nature is cool and all, but...
Saturday, August 02, 2008
So, nature has been doing its thing for about 14 billion years, and it's done a good job at creating cool stuff. But when it comes to what
we create, there's no equal (OK, fine...we can't yet create a human brain). I can't help to look at the latest pictures of the Large Hadron Collider and think of the amount of effort required to create such a thing.
The pictures are just breathtaking. Of course, the thing serves a purpose--and destroying Earth is not one of them.
This is one of my favorites:
Computer Center.