
-Zuk
As you can see from the release notes, CUDA 3.1 also gives 16-way kernel concurrency, allowing for up to 16 different kernels to run at the same time on Fermi GPUs. Banks said a bunch of needed C++ features were added, such as support for function pointers and recursion to allow for more C++ apps to run on GPUs as well as a unified Visual Profiler that supports CUDA C/C++ as well as OpenCL. The math libraries in the CUDA 3.1 SDK were also goosed, with some having up to 25 per cent performance improvements, according to Banks.
A few days ago I installed the android SDK and the ADT plugin for eclipse. When I started playing with the android API I was a little disappointed. I was missing the source attachment for the android.jar which contains the android API. I was searching the web for the android sources jar and found a guide how to create an android sources jar [1].
I've adapted the sources howto and created my own android sources jar for android platform 7 aka android 2.1. You can download it here:
http://www.bughome.de/android/platforms/android-7/android-src.jar
I'm pretty sure that the android-src.jar is missing some sources, because the source jar is smaller than the binary jar. Comment me if you find the missing sources.
So often in the digital era, we discuss how virtual environment technology is changing the world around us: how virtual environments and social media are the true pinnacle.
Less often discussed, however, is how the technology is changing us.
When I first began to write this, I didn't have a clear understanding of how I would begin, or really how I wanted to convey what I was about to say to the world. After a few false starts, and some rewording, I decided that it would be best to frame this in a current tense format in order that I can give you a better insight as to my own understanding of the future.
It isn't that I do not believe that social media, or virtual environments are worthwhile to engage. It's simply that I know it will not be the herald of the future that companies wish to make it out to be. Like everything before it, social media and virtual environments are simply a digital evolution to something greater. They serve today to condition us and prepare us for a future most have yet to contemplate.
This is the dawn of the Age of Personas.
Surely you have a Facebook account, or Twitter. If not, then I can assure you that if you are reading this, then you subscribe to a virtual environment or other social media network. These are examples of Web 2.0 and maybe Web 3.0.
Social Media in itself is an interesting concept, and succinctly frames the evolution of our Persona mentality, giving rise to a human powered livestream network of details and information, datamined by software and sold to the highest bidder as metrics so that those services may in turn target you for advertising. Surely even Facebook has a method to make money, and your personal information is that very manner.
This isn't alarming, and really shouldn't be. I know there are plenty of privacy concerns to be had as to what is being done with the massive storehouse of information you are putting out, but to be honest that doesn't actually matter in the long run.
We're being conditioned.
With an accelerating returns curve of technology, we are completely helpless in the digital age without the aide of this technology and the algorithms (the same which monitor our habits and do metrics) to sort our lives for us and give us insight in a manner by which we wouldn't have without it. In a manner of speaking, you can say that we no longer live in a digital age, or even a virtual age, but instead we are beginning to evolve into an augmented age.
This brings to mind technologies in their infancy such as Augmented Reality, whereby we show our webcams some image or symbol and it superimposes some sort of digital content we can manipulate on-screen. But I assure you, this is just the beginning of our evolution in the digital age. Augmented Reality is the new buzz word, along side social media and virtual environments, but it has yet to occur to anyone (not on a wide scale) that these three aspects of our digital lives are merely three components to the real end-goal.
Gone are the days of virtual environments (however much we continue to tout them as the way of the future), and social media is a toy in comparison. Entire industries are springing up to utilize virtual environments like SecondLife for business, pleasure, marketing, you name it. While on the flip-side we see how things are rapidly expanding in the social media universe of twitter, Facebook, and others. Augmented reality, however is currently in the infancy stage whereby it is seen as just a gimmick, much like we believe 3D Television is a gimmick (again, however much it is touted or pushed upon us).
But there is a difference.
Social media in and of itself is not the end-all solution, but it is playing a decidedly large part in how we behave and creating the concept of Personas in our digital world. We can be anyone and anything within these digital spaces, social media, virtual environments, and further.
We are this conglomeration of multiple online identities, and we often act in very contrasting manners within each "avatar". We log into SecondLife as an avatar persona, and we tend to have "Alts" or alternate accounts to allow us to further explore more personas. In the social media aspect, we may have a Facebook account, twitter account, blog, and half a dozen other connections for just as many purposes.
We are living as a multitasking culture of split personalities, and with increasing ability to be omnipresent and very close to omniscient. The future is not in virtual environments, nor is it in social media, nor should we make a claim with augmented reality. On the same note, however, we should not discount these technologies either, because they are a crucial part of the future.
But only when they evolve and finally combine.
Some see virtual environments as a stake in the future of the Internet and Web, and if we listen to Linden Lab then the future is how to successfully integrate SecondLife into social networking aspects and even the web itself to create some sort of all-encompassing platform of the future. Others swear by the current social media application, and others still will stake their reputation on the power of Cloud Computing.
All of those people would be very wrong about the future.
The future isn't about any single aspect of our current culture today, it is a combination of all of them in what can only be described as not Augmented Reality or Virtual Reality. No, not even Social Media or Cloud Computing can encompass what the future will be about.
The future... is about something bigger than the sum of its parts. Instead it will be about Hyper Reality. It's when the virtual environment becomes a part of our reality, when augmented reality becomes seamless and without markers, it's when information is available about anything, anyone, and anywhere without asking.
It's when the virtual world merges with the real world.
We're only seeing the beginning of this evolution today. But what if your real life and your virtual life were combined? What if the SecondLife grid were to be overlaid onto reality? What if your virtual inventory were available digitally in an augmented reality space which was laid out via grid blocks of GPS cells in actual reality?
Combine that Hyper Reality space with social networking aspects today, and you can see how our split personalities will be ever popular in the future. When virtual worlds, social networking/media, and augmented reality merge into one seamless space and become part of our actual reality, that is where the future is at.
We'll be omnipresent in a manner of speaking, with always on internet access through wireless access points covering every city, and our ability to "exist" in multiple places at once. We'll be omniscient in a manner of speaking through that same connection, and our hyper reality. The real question is whether we'll be omnipotent as well?
To answer that, we would have to better define omnipotence. I'd say it would be the power to change all aspects of our reality at will, and to be honest, a Hyper Reality would give us that power (if nothing more than virtually). But then, by that point, the question will be if virtual reality has any meaning any longer. By that point, virtual reality and actual reality will have merged into Hyper Reality and we'll not distinguish between the two, other than possibly denoting that "all virtual" environments such as SecondLife are a different space than "all real" environments, while Hyper Real environments would be the preferred experience of Hybrid Reality.
What we're looking at here is the very real possibility that we'll attain a singularity.
I know this sounds like science fiction, but thirty years ago when companies were talking about video phones (and they fell flat), who would have guessed that they were actually right, but were unable to foresee how it would be implemented on a wide scale? We use video phones all the time now, in the form of Skype or a similar service.
The computer and Internet have changed quite a bit of our habits to start. Where once it was just a fad, it is now indispensable to society. Some countries even have made Internet access a basic human right.
Who would have guessed this thirty years ago?
So I tell you today, the virtual environment is not the holy grail, nor is social media, nor is augmented reality. Instead be glad you live in the dawning of the age of Personas, and the evolution of something truly magnificent.
Whether you are an alt in SecondLife, are "married" in the digital world, or have hundreds of "friends" on a social network. Whether you believe all of your twitter followers are truly relevant to your interests. The concept of "location" has definitely been altered. The idea of "self" is irrevocably different. And soon, the idea of what constitutes "reality" will forever be changed.
The catalyst for Hyper Reality exists in today's components.
One part 3D Camera (Kinect), One part GPS, One part Compass, One part Gyroscope. Add in sufficient computation and a blanket Wi-Fi, and throw in a connection to SecondLife grid to handle the back end. Toss in a dash of social media networks and Web access, and you have a recipe for the future of our singularity.
Welcome to Hyper Reality.
Persona 3.0
As it stands right now, the service is -- perhaps shockingly -- running as intended. OnLive still requires a faster than normal connection (regardless of what the folks from OnLive might tell you), and it requires a wired one at that, but it absolutely, unbelievably works. Notice I haven't mentioned issues with button lag? That's because I never encountered them. Not during a single game (even UE3).
What he stressed most, though, was Perlman's other company, Mova, working in tandem with OnLive to create impressive new visual experiences in games. "This face here," Bentley began, as he motioned toward a life-like image that had been projected on a screen before us, "is computer generated -- 100,000 polygons. It's the same thing we used in Benjamin Button to capture Brad Pitt's face. Right here, this is an actress. You can't render this in real time on a standard console. So this is the reason OnLive really exists." Bentley claims that Mova is a big part of the reason that a lot of folks originally got involved with OnLive. "We were mind-boggled," he exclaimed. And mind-boggling can be a tremendous motivator, it would seem -- spurring Bentley to leave a successful startup for a still nascent, unknown company working on the fringes of the game industry.
In fairness, what we saw of Mova was terrifyingly impressive, seemingly crossing the uncanny valley into "Holy crap! Are those human beings or computer games?" territory. Luckily for us, someone, somewhere is working with Mova for games. Though Bentley couldn't say much, when we pushed him on the subject, he laughed and responded, "Uhhhh ... ummm ... there's some people working on it." And though we may not see those games for quite some time, when we do, we'll be seeing the future.
eclipse remote control is an eclipse plugin which allows to execute remote commands within eclipse. Right now it's pretty limited to a very few number of commands. Currently you can open a file and launch a build command. Launching commands is done via the java client application.
To create a new command you have to implement a few classes within eclipse remote control. So you have to check out the eclipse remote control source from the github repository: git://github.com/marook/eclipse-remote-control.git
Implementing a new command requires the following steps:
The communication classes are located in the com.github.marook.eclipse_remote_control.command
project. Add a new java class to the com.github.marook.eclipse_remote_control.command.command
package. Your new command class must implement the abstract Command
java class from the same package.
The communication class must set a unique ID. This ID is used to identifiy commands in the eclipse remote control plugin. The unique ID is passed to the Command
constructor.
The communication class contains all the information which is sent from the eclipse remote control client to the eclipse remote control plugin. So the communication class needs to contain fields for all transfered information. Also you have to add getter and setter methods for all the fields.
All communication classes implement the Serializable
interface. Make sure your command class and the command class's fields implement the Serializeable
requirements.
The client is implemented in the com.github.marook.eclipse_remote_control.client
project. The client creates command classes from command line arguments and sends it to the eclipse remote control plugin. To create and send your command class you have to add the parse and send code to the com.github.marook.eclipse_remote_control.client.Client
class's main
method. The following listing is an example of the parse and send code for the open file command:
if("open_file".equals(command)){
if(args.length < 2){
printUsage(System.err);
System.exit(1);
return;
}
final OpenFileCommand cmd = new OpenFileCommand();
cmd.setFileName(args[1]);
fireCommand(cmd);
}
Here comes the actual work. You have to implement a command runner which executes the command within the eclipse instance. All command runners are implemented within the com.github.marook.eclipse_remote_control.run
project. Create a new command runner class in the com.github.marook.eclipse_remote_control.run.runner.impl.simple.atom
package. All command runnerst must implement the ICommandRunner
interface from the same project. For your convenience you should use the AbstractAtomCommandRunner
superclass for your command.
The commands's work is implemented in the command runner's internalExecute(...)
method. This method is specified by the ICommandRunner
interface.
At last you must register the command runner in the SimpleCommandRunner
class. Add a putAtomRunner
method call to the static block in the SimpleCommandRunner
class. Right now this static block contains only two registrations:
static {
putAtomRunner(new OpenFileCommandRunner());
putAtomRunner(new ExternalToolsCommandRunner());
}
Basically that's all you need to do for a new command. If you need more information check out the eclipse remote control source code. Read the source from the existing commands. I think this will be the best for getting started.