Sunday, June 6, 2010

Choosing the right smartphone.

Personally I am not a smartphone user but that does mean I don't know about them. And I do have an N800 internet tablet which has the maemo 4.1 operating system that preforms most smartphone stuff video,facebook games remote login to my school's computer systems or whatever when I want that.

So.. here's my list of phones in order of coolness :-)

N900 - The sickest phone on the market of course.

* N900 brochure page

* Wikipedia: N900

* Official Maemo software

Note that there is even more unofficial Maemo 5 software that is usually available at no cost.

So now that I have made my shameless plug for Nokia's phone lets look at the Android offerings which aren't as cool in my opinion but are more popular sales wize due to google's massive amounts of marketing.

Android is not a phone actually! Android is an operating system for mobile devices (phones tablets ebookreaders) and embedded devices (your refrigerator or in the near future your TV). Read here for more about what android is and why it is better than the iPhone OS, Windows Mobile and Blackberry.
* Wikipedia: Android OS

* http://www.android.com/
Click on the market button at the bottom to see available free and for pay applications. The Developer button there leads down the rabbit hole which is java/dalvik programming whoo!

Get on with the Phones man! OK! I will!

Where Android really shines for the end user is the choices of phones and the fact that most all Android programs run the same on any of them.

Some of the latest and greatest Android phones are the HTC Hero, Incredible and EVO 4G, the Motorola droid, the Google Nexus one and the HTC Droid Incredible.
Specs/Reviews:
Nexus one

HTC Hero

Motorola Droid

HTC droid Incredible


The Droid incredible is nearly Identical to the Nexus one but is sold only at Verizon.

HTC EVO 4G

Below is a video of Android Froyo 2.2 which most of these phone will run or update to.

Sunday, December 6, 2009

Journal 15, December 6

Article: Farmville, Social Gaming, and Addiction

Social networking has been a big hit on the Internet with Myspace and Facebook being some of the more well known contenders in the USA. Orkut a Google service is also widely used in Brazil but hasn't seen as much success elsewhere. These services are great for keeping in touch with friends but most of them also offer other features.

Facebook allows members to play games with their friends online without separate registration. Personally, I think that most of these games are very repetitive with little real interaction between players. However, that hasn't stopped a game called Farmville from becoming possibly the most played computer game ever with over 69 million people playing it!

The article speaks of the addictive nature of the game. Players find themselves spending considerable amounts of time playing these games either for long periods so they can reach the next level or revisiting the game often to check up on progress or make decisions that affect the game. Farmville like most social networking games frequently asks to post join requests for to your friends so they too will join in on the game.

The way Farmville and other online social games works reminds me very much of how computer viruses spread except in this case it is not the computer that is becoming less productive it is the person playing game. I think this is becoming a problem for many reasons such as poor performance at work or in school due to being mentally exhausted from playing games. There have even been deaths attributed to being addicted to games one example being a Korean man who played an online game in a cyber cafe for 50 hours straight and died of cardiac arrest and exhaustion.

While such games are not necessarily bad too much of a good thing is usually is not a good thing. Perhaps game developers should place limits on how long their games can be played on the same username to help deter excessively long gaming stints. I think there is a good possibility that the idea that playing games improves motor skills and prepares children for the modern work force is not going to work the way people thought. Instead we end up with lazy teens and adults that would rather be playing a game than doing meaningful work or studies. Obviously this is not the case with everyone but for many people it truly has become a problem.

Friday, November 27, 2009

Journal 15, November 27

Article: Interview with Qi Pan about his Webcam 3D scanner proForma

I think that one of the problems with 3D imaging in the past has been the prohibitive cost of custom 3d cameras. Teh expense of 3D cameras is due to some literally being two cameras sandwiched together and others having an expensive custom lens. Some use multiple independent cameras however I think while that might have some advantages such as you can see all sides of the target the cost and complexity would be even more than for the previously mentioned methods.

Not only is Qi Pan's software able to use a common USB webcam for input but it updates the position and shape of the model in real time once it has been scanned! His project is called proFORMA which stand for Probabilistic Feature-based On-line Rapid Model Acquisition. The software works under the assumption that the camera is stationary and that the object of interest is in the center of view.

I think if porFORMA were freely licensed,under the BSD/MIT license for instance , with source code available could become quite a valuable tool for both open source and commercial interests. I think there is the possibility of using it to enhance video compression for video conferencing. Even though it makes the assumption that the camera is stationary I think it may be possible to allow the software to work if the changes in location of the camera were known making it usable for robotics applications.

The article mentioned that one of the drawbacks of the software currently was that the object needed to be sufficiently textured or else the proFORMA would be unable to model it correctly. I think that is probably because it uses the colors of the object as reference points when figuring out the 3D shape.

Qi Pan states that processing power is one of the main things holding back the system from being able to capture much larger models such as entire scenes. I think that could be partially remedied by using a computer with accelerator cards such made by Tilera which can run regular C/C++ code on using Linux as the operating system the advantage is it runs slightly modified but otherwise normal code on 36 to 100 or more cores for vastly increased performance in multithreaded applications.

Another cool possibility is being able to import objects you own into games to further personalize the experience. Perhaps so games no longer have to be entirely a canned experience but can be modified and enhanced by the players. An example of one such game would be Gary's mod I don't think it is actually a game with goals or anything in the conventional sense but fun non the less I think due to it being a giant user content scratchpad of sorts. From generating a model of you favorite teapot to getting a video chat stable on a weak wifi connection I think proFORMA has a lot of possibilities to explore.

Video of perFORMA in action.

Sunday, November 22, 2009

Journal 14, November 22

IBM makes supercomputer significantly smarter than cat

While I don't think that IBM has literally built a supercomputer as smart as a cat or smarter than a cat, they have completed a super computer capable of modeling neural simulations 4.5 times as complex as a cat brain. According to the researchers the simulation doesn't yet run in real time.

The purpose of whole brain simulations is to allow researchers to experiment with a model they can directly manipulate. The simulation allows them it run reproducible tests and create snapshots of activity with greater resolution than with real test subjects. While the simulations aren't real brains they are based on observations of how real neurons and brain tissue interact.

Some of the research is aimed toward understanding chemical interactions within the brain. Other researchers are also working on understanding how the brain actually works. If the researchers could uncover how the brain actually functions advances in technology similar to the fly eye algorithm might be possible for brain simulations. Assuming such algorithms exist in the brain perhaps even ordinary computers would be capable of supporting strong artificial intelligence.

I think the notion that researchers should be careful with these sorts of simulations since they might be alive is rather nonsensical. I think such simulations are after all just simulations and if they cease to be just simulations it will be painfully obvious. Another reason being that the simulations can be reversed or reset to their original state whereas in real brains that clearly can't happen.

Even though it seems nonsensical to me, the reason the ethical questions arise are due to so called emergent behavior of the systems that is as yet not understood similar to the fly eye algorithm in my past post though on a much higher order obviously. I don't think such emergent behavior in a man made system is grounds to call it alive or anything of that nature unless there is other significant evidence such as a human level of intelligence which would be a bit scary to begin with. I thought it was interesting that one person pointed out in the comments of the article this brain simulation may be more complex than a cat's brain but a plain old bucket of slime is also more complex and diverse diverse than a human even if it isn't intelligent. I think the underlying problem with the whole scheme is that the models may not reveal any emergent behavior at all if they do not incorporate all the needed components or are in the wrong configuration similar to how they fly eye algorithm required all the components to be in place for it to work.

Blog post referenced by Arstecnica postThe Cat is Out of the Bag and BlueMatter

Saturday, November 14, 2009

Journal 12, November 14

Secret Math of Fly Eyes Could Overhaul Robot Vision

When things go right, robot vision is perhaps the most attention grabbing feat in computer science. I think that has to do with the long running fascination people have for designing human like machines and computers.

While most techniques for machine vision require massive amounts of processing power. Recent developments in studying fly vision have show that much simpler systems can also be effective. An example of current complex computer vision cited in the article was the Lucas-Kanade method for machine vision which is extremely computationally intensive having to compare individual pixel changes each time the image updates.

The fly inspired computer vision algorithm is much more optimal and works by ignoring areas that don't change in color and focuses on the changing patterns. This narrower approach allows more efficient implementation of commonly needed computer vision systems such as obstacle avoidance and detection. The algorithm is a feedback loop and creates a cascading non linear system of equations according to the researchers and is not fully understood but it works.

I think this sort of vision system might be useful for in the automotive industry for self guided vehicles once the algorithms are better understood. I think a drawback might be that some of the information from the camera is seemingly discarded by this design that might be needed for some applications and the system may have to rely on more conventional computer vision techniques anyway.

Examples of current computer vision systems in robots are Domo developed at MIT CSAIL and the Honda ASIMO robots. The Domo robot has been demonstrated on video to be able to interact with a visually complex environment for specific tasks. ASIMO is mainly a walking demo robot which basic balancing and obstacle avoidance. Both of these robots are fairly good examples of the state of the art in vision and environment interaction which is needed for human like robots. The main drawbacks are still high computational requirements of both systems with Domo using a powerful networked compute cluster of 15+ computers.

Perhaps if more algorithms similar to the fly vision algorithm could be discovered by experimentation and observation of nature faster and more efficient ways to comtrol robotic systems could be developed. Interestingly early versions of algorithm have already allowed the creating tiny self guided flying robots.

I think this development is similar to other developments in math for instance it is quicker to multiply 10 x 10 than to add 10 ten times a similar gain is made here where a new way via they fly vision algorithm of doing things has allowed the implementation of complex systems with much less powerful computers.

Thursday, November 5, 2009

Journal 11, November 5

Nvidia Making x86 CPU With Ex-Transmeta Brains?

The x86 ISA (instruction set architecture) originally developed by Intel has had a life of continual legal battles wins and losses on both sides of the Intel fence. Intel has long had competitors that also produce x86 designs under license namely AMD and Cyrix owned by VIA.

Intel has recently made a bold move that upsets the balances a bit. Intels latest designs integrate a memory controller onto the CPU die. The impact of this is that other companies would be forced to use an separate memory controller or license Intel's on chip memory controller assuming Intel would even be willing to license it at all. Nvidia made the next move by directly accessing intel's memory controller in their latest chipset designs. Intel of course retaliated and Nvidia has subsequently ceased chipset development as far as is know to the public.

An exception to that rule would be Fujitsu that currently still produces Sparc based designs for high performance computing needs and is touted as the fastest CPU .

Nvidia has never been in the CPU business but has lots of high proformace design experience. Much like the article I think that Nvidia aims to add support for executing x86 binaries on their hardware.

There has been speculation for some time that they would do this and Nvidia's CEO has even threatened it a time or two! I find it rather intriguing that Nvidia has hired many former Transmeta employees working for them possibly to work on x86 compatibility for their GPUs. In my opinion Transmeta's biggest development was a x86 compatible processor that did not use the x86 instruction set in hardware. This allowed them to translate x86 or any instruction set within reason into their own instruction format with good proformace due to their design.

In my opinion if Nvdia were to use a similar translation technology as Transmeta used and implemented it into their GPUs it might spur progress with parallel processing since in theory programs running on the main CPU could be migrated directly onto the GPU if it were determined that it were a multi-threaded program capable of benefiting from the GPU's massive parallel architecture.

Similar ideas are also in the works at Intel on the Larrabee project and also at AMD on the Bulldozer project. Its good to see that Nvidia is not going to lie down on this one and let Intel and AMD get too far ahead.

Saturday, October 31, 2009

Journal 10, October 31

Article: Important update about Gallium3D

Recently AROS a mostly AmigaOS 3.1 compatible operating system has gained hardware accelerated 3d on Nvidia hardware ranging from the Geforce2 up to the 7000 series this however is unheard of in hobby and amateur operating systems!

While Gallium3d currently has a few bugs on AROS that can be seen by comparing the videos of a demo running in software mode and again with the hardware driver. The hardware driver seems to have trouble with rendering some textured 3d ojects from what I can tell.

Gallium3d is the next generation core of the The Mesa 3D Graphics Library which runs on most operating systems allowing cross platform 3d development whether it be games, 3d cad tools, virtual reality or technical demos. The big advantage with Gallium3d is that it is much more modular than previous versions of Mesa meaning that for Mesa to be ported to a new OS all that is needed is to write the operating system specific componetnts and add support for the hardware dirvers to your operating system. This was possible with older versions of mesa but now with galluim3d the same drivers can accelerate multiple APIs such as OpenCL, OpenVG, Clutter, OpenGL ES and of course OpenGL. Whereas in the past it would have taken much more code to enable all those APIs even with mere software rendering.

While most Galluim3d/Mesa development goes on for the Linux platform another OS besides AROS that is already getting a port is the Haiku operating system. Haiku is a BeOS alike operating system that aims to please desktop and workstation users. It has good compatibility with most older BeOS software and has some tricks of its own now as well I may blog more specifically about it sometime in the future. I have been building test images of the Haiku OS for quite some time since I found out about it last year and the developers are progressing quite quickly even though it is a small project. A screenshot of the gallium3d software renderer on haiku can be found here.

One of the coolest things about AROS is how fast it is for instance it takes mere seconds for it to do a warm boot! AROS also has a webkit based browser which is the same engine in Apples safari browser that supports most websites although Adobe flash only works on Windows, Linux and Solaris or an operating system that emulates those such as FreeBSD.

If you would like to try out AROS you can even run it inside windows as an applicaion with windows as the host! Or you can test out the more complete AROS derived distro called Icaros