Author Archive for tamasdecsi

Page 3 of 5

What does “information” exactly mean?

Back in the university, a lecturer once asked us whether any of us know what does “information” in Information Technology exactly means. With every department desperately trying to catch up with latest trends, cloaking themselves with this much hyped word, he wanted to find the real meaning behind it.

At that time, I came up with a possible answer coming from the morphology of the word: in-formation, meaning something that has never taken any form, something beyond space and time, thus beyond any comprehension. Others thought “in” means “in the process of” (constant) formation, that is, information being an ever changing entity. Well, none of the explanations were convincing enough, so we concluded that this mystery is yet to be solved.

It kept me bugging ever since. Not stating that I’ve finally found the answer (that remains the privilege of the enlightened to know), I still found an interesting explanation in the book Buddha and the particle accelerator by István Héjjas, where he associates ancient knowledge (of religious origins) and modern physics. Information, in this explanation is associated with sattva, an ethereal, very fine quality of the three qualities that make up the physical world. The other two qualities are rajas, a very fiery quality, the equivalent of energy in modern physics, and tamas, a very worldly, still and dense quality, the equivalent of matter. The three always appear together, matter being the mass, energy providing the dynamism, and information determining the spatial and temporal distribution of all of it. None of these qualities can appear in their pure form. I like this explanation because it puts information in a place where – though it is beyond touch, still – its presence is observable within our time-space continuum.

Thinking it further from the IT perspective, the analogies will be, matter obviously being the hardware that provides the base for the electromagnetic fields, energy being the electromagnetic forces responsible for altering the electromagnetic fields, while information provides the distribution patterns.

So what does information really mean, then?

It is the essence that brings in the order and meaning to the otherwise chaotically behaving mass. This explains all the chaos you suddenly find yourself in when an unwanted “information loss” happens.

Information Technology, therefore, is (or at least supposed to be) the collection of knowledge and tools with which we can understand, harness and tame all that chaos around us.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Long live the C64

Back in 1986 my first computer was a Commodore 64. It was a very successful hobby computer of its time, with features like 320×200 screen resolutions with 16 colors, 8 separately controllable 24×16 moving objects (sprites) with collision detection, three channels programmable synthetizer, and so on. Though these features may sound a little awkward today, the Commodore 64 created a (sub)culture that spawned a plethora of timeless computer games that will not likely to perish for long. What more, you can even play them over the web.

I have spent countless hours eager to put together something useful, or just deciphering or dissecting games for a better understanding of how they work. Then, when I started drawing Mandelbrot sets, I realized the limitations of the 1MHz CPU, and moved on to a PC.

Even after these machines have finally been replaced by PCs, they lived on in form of emulators, such as the excellent free software VICE and Frodo to name a few. Emulators have appeared on many platforms ranging from DOS to UNIX to Java to Dreamcast and a whole lot more. Frodo was even ported to EPOC OS, thus runs on Psion Handhelds, and even on some Symbian Smartphones. I too have started implementing an emulator, and got as far as a emulating the 6510 CPU before abandoning the project to do something more useful instead.

Of course, data needed to be transferred to this new, virtual world, for which purpose, different tools have emerged. I myself used the X1541 cable and the wav to prg converter. A couple of different file formats have also emerged to store C64 tape and disk images.

In the meantime, a single chip version of the C64 has been designed. It is packaged within a joystick, comes preloaded with some 30 classic games, and only needs 4 AA batteries and a TV to connect to. The C64 Direct-To-TV and its second generation successor, the C64D2TV are so cheap many C64 owners bought it just for fun, and of course, started taking them apart, and with a little hacking, made them a fully functional C64, some even made them appear as one.

With hardware extensions still being developed to this platform, one can use an SD card as a modern replacement of the floppy disk with the 1541/III project, or even connect to ethernet networks with a LAN card, to name a few. With my limited skills in wiring/soldering, I’ve only built an RS232 signal level converter only to give a second purpose to my C64 as a text terminal to my PC.

On the software side, development hasn’t stopped either. New operating systems have been created to the C64, such as LUNIX and Contiki that added TCP/IP support, and even let you reuse your C64 as a web server (ok, not a high-performance one, lol), what more, some sick software lets you browse the web from a C64.

One may say there’s not much point in developing on such an old, limited platform, but think of it: those who master programming such a limited device, will for sure excel in programming embedded systems too, where there are similar restrictions even today.

All in all, C64 was not only successful because of its “advanced” features in its time, but is also successful due to the simple, understandable, yet extensible hardware design, that lets hobbyists create interfaces that keep the connectivity of the core up-to-date, which ultimately ensures many years still to come for the C64.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Accelerometers

Having demonstrated to friends how my phidget accelerometer works made me realize that people are generally unfamiliar with this type of sensors. In this post, therefore, I’m going to tell some facts about accelerometers, as well as show the classic and new ways of using them.

An accelerometer is capable of measuring vibration, motion, acceleration, and gravity, to name a few appliances. Assuming the sensor is fixed to an object, the readouts can be interpreted in many ways. It may detect the motion of a building, the tilt of a camera, the acceleration of a car, and so on.

Accelerometers are calibrated to read zero when forces cancel out each other, that is free fall, for example. When an accelerometer stands still on some surface on Earth, it reads 1G as the vectorial sum of the readings on its three orthogonal axes. The two basic parameters of such sensors are the number of axes (1 to 3) and measurement range. The range of the sensor determines its potential uses, with simpler implementations only able to determine a rough tilt, to high-precision ones capable of measuring heavy vibration.

But how does it work, one may ask. Well, the most widespread accelerometer implementation is MEMS (that is a Micro-Electro-Mechanical-System), basically a piece of hanging microscopic weight that changes its electrical parameters when a force bends it, and an auxiliary circuit measures and quantifies this alteration, all on the same wafer of silicone packaged into a single chip.

Let’s take a look at what ways can it be used. The classical, industrial usage of accelerometers include building-control systems (sensing motion and vibration), airplane navigation systems (that only rely on inertial changes to tell where the airplane is), car-safety systems (to determine when an airbag need to be blown). Accelerometers have also been used for mapping land features otherwise hard to measure due to the lack of reference points (e.g. tunnels and caves).

New appliances have emerged since, with airbags became more and more widespread, and the price of accelerometres have fallen while the size of the sensor was shrinking. Then, all of a sudden, embedding them into notebooks and hand-held devices became feasible, opening up innovative ways of extending the computers’ awareness of the surrounding physical world.

An embedded sensor’s readings may save your data by issuing emergency-shutdown for the HDD when gravity tilt suddenly disappears, which means the notebook is free-falling, and is about to crash-land on hard surface. This feature appeared in MacBooks just a few years ago, using an accelerometer often referred as sudden motion sensor. By providing access to the sensory readings, however, Apple has opened up a way for a new breed of fun applications, utilities and games, including MacSaber, my personal favourite. In recent news, iPhone’s tilt sensor has just been put into action.

An accelerometer in a hand-held device, such as a phone has even more potential, as these gadgets are moving basically all day. Recognising gestures could simplify the interaction, for example answering a call could be as easy as raising the phone to our ears, while a simple shake would reject the same call. An accelerometer provides enough info to use as a secure-guard: the walking-pattern is different for every individual, so the phone can literally sense, and therefore act, when it has taken away from its owner. Check this link for some other ideas.

So why not use them in input devices? Taking a look at Gyration’s air-mouse or Nintendo’s WiiMote clearly shows the advantages of accelerometer-equipped input devices, which bring more spatial freedom into the interaction, so much you can even crash your TV screen with. Industrial grade data gloves can capture the fine motion of the human hand with accelerometers. One may say these tools are very expensive, but check out the accelerometer mouse project from students of the Cornell University, who created a mouse glove from a mere 13 dollars.

This latter project inspired me too, so I grabbed a USB 3-axis accelerometer from phidgets.com to experiment with. Probably not the cheapest solution, but it worked right away as I plugged it into the USB port. Not that I’m anything closer to my goals with that easeness.

All in all, starting in the heavy-weight industry, and gradually shrinking into mobile appliances, accelerometers have become part of our everydays, and hold a huge potential for improving Human-Computer Interaction.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Phidgets

Phidget is a shorthand for “physical world widget”, which is some hardware sensor or controller connecting to a computer, originally created by students of University of Alberta, later packaged and distributed by Phidgets Inc..

Phidgets are a painless way to extend a USB-equipped computer’s interactions with the physical world, providing a wide range of sensors, displays, and controllers as simple as plugging them in. With an acceptable pricetag, phidgets open up a world of new possibilities for software developers with only limited skills in electronics, ultimately resulting in some fun projects.

Phidgets Inc. provides software drivers and libraries for Windows, Windows CE, Mac OSX, and Linux, including driver source code (with a restrictive license, though). There are APIs for COM, Java, .Net, C, ActionScript, and bindings to a variety of languages to speed up development. Browsing the web and the forum for python support I’ve also came across the python-phidgets and the phydget projects that provide python bindings.

I decided to give phidgets a try, so I’ve purchased a 3-axis phidget accelerometer, a phidget interface kit with text-LCD, and a few analog sensors to measure temperature, magnetic fields, and light, and also a touch sensor. The sensors are going to be used in a home-automation project, while the accelerometer will somehow become an input device (thinking of something like the accelerometer mouse).

With the limited time I have spent with my phidgets so far, I’ve added accelerometer support to phydget (should you be interested, here’s the source code for my accelerometer-enabled version), and created a minimalistic visualizer for the accelerometer readings using the excellent vpython library. More to come as soon as I could make some progress in either of my planned phidgets projects…

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

The Canvas Element and me

I became aware of the canvas element when it was introduced in Firefox version 1.5. With all the frustrations still not seeing SVG mainstream support in most browser, I was fascinated to see this other approach to renders vector graphics on web pages. Of course, Internet Explorer does not support it, so there’s not much to do with it in the real world until it becomes supported in the far future. Nevertheless, I gave it a try.

Here comes the result of my short experiment: the canvas clock.

If you happen to belong to the growing minority of people using either Safari, Firefox, or Opera browser, you’ll be able to read your local time in a fashioned manner here to the left. Should you still be an Internet Explorer user, you may download the Explorer Canvas project, or take this chance to upgrade to a modern browser.

Anyhow, the canvas element can only be populated by programing, through a simple JavaScript API, which makes it a little bit cumbersome compared to SVG, for which there are plenty of applications to author graphic with, and which does fit the line of markup languages defining the web. One project deserves to be mentioned here, CanvaSVG, a JavaScript code that renders an SVG document on the canvas element, thus connecting the two different approaches with a swoosh.

It will be interesting to see whether SVG support will curb the canvas element, or it will gain a momentum in the future.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]