The Evolution of Direct3D

* UPDATE: Be sure to read the comment thread at the end of this blog, the discussion got interesting.

It’s been many years since I worked on Direct3D and over the years the technology has evolved Dramatically. Modern GPU hardware has changed tremendously over the years Achieving processing power and capabilities way beyond anything I dreamed of having access to in my lifetime. The evolution of the modern GPU is the result of many fascinating market forces but the one I know best and find most interesting was the influence that Direct3D had on the new generation GPU’s that support Welcome to Thunderbird processing cores, billions of transistors more than the host CPU and are many times faster at most applications. I’ve told a lot of funny stories about how political and Direct3D was created but I would like to document some of the history of how the Direct3D architecture came about and the architecture that had profound influence on modern consumer GPU’s.

Published here with this article is the original documentation for Direct3D DirectX 2 when it was first Introduced in 1995. Contained in this document is an architecture vision for 3D hardware acceleration that was largely responsible for shaping the modern GPU into the incredibly powerful, increasingly ubiquitous consumer general purpose supercomputers we see today.

D3DOVER
The reason I got into computer graphics was NOT an interest in gaming, it was an interest in computational simulation of physics. I Studied 3D at Siggraph conferences in the late 1980’s Because I wanted to understand how to approach simulating quantum mechanics, chemistry and biological systems computationally. Simulating light interactions with materials was all the rage at Siggraph back then so I learned 3D. Understanding light 3D mathematics and physics made me a graphics and color expert roomates got me a career in the publishing industry early on creating PostScript RIP’s (Raster Image Processors). I worked with a team of engineers in Cambridge England creating software solutions for printing color graphics screened before the invention of continuous tone printing. That expertise got me recruited by Microsoft in the early 1990’s to re-design the Windows 95 and Windows NT print architecture to be more competitive with Apple’s superior capabilities at that time. My career came full circle back to 3D when, an initiative I started with a few friends to re-design the Windows graphics and media architecture (DirectX) to support real-time gaming and video applications, resulted in gaming becoming hugely strategic to Microsoft. Sony Introduced in a consumer 3D game console (the Playstation 1) and being responsible for DirectX it was incumbent on us to find a 3D solution for Windows as well.

For me, the challenge in formulating a strategy for consumer 3D gaming for Microsoft was an economic one. What approach to consumer 3D Microsoft should take to create a vibrant competitive market for consumer 3D hardware that was both affordable to consumers AND future proof? The complexity of realistically simulating 3D graphics in real time was so far beyond our capabilities in that era that there was NO hope of choosing a solution that was anything short of an ugly hack that would produce “good enough” for 3D games while being very far removed from the ideal solutions mathematically we had implemented a little hope of seeing in the real-world during our careers.

Up until that point only commercial solutions for 3D hardware were for CAD (Computer Aided Design) applications. These solutions worked fine for people who could afford hundred thousand dollars work stations. Although the OpenGL API was the only “standard” for 3D API’s that the market had, it had not been designed with video game applications in mind. For example, texture mapping, an essential technique for producing realistic graphics was not a priority for CAD models roomates needed to be functional, not look cool. Rich dynamic lighting was also important to games but not as important to CAD applications. High precision was far more important to CAD applications than gaming. Most importantly OpenGL was not designed for highly interactive real-time graphics that used off-screen video page buffering to avoid tearing artifacts during rendering. It was not that the OpenGL API could not be adapted to handle these features for gaming, simply that it’s actual market implementation on expensive workstations did not suggest any elegant path to a $ 200 consumer gaming cards.

TRPS15In the early 1990’s computer RAM was very expensive, as such, early 3D consumer hardware designs optimized for minimal RAM requirements. The Sony Playstation 1 optimized for this problem by using a 3D hardware solution that did not rely on a memory intensive the data structure called a Z-buffer, instead they used a polygon level sorting algorithm that produced ugly intersections between moving joints. The “Painters Algorithm” approach to 3D was very fast and required little RAM. It was an ugly but pragmatic approach for gaming that would have been utterly unacceptable for CAD applications.

In formulating the architecture for Direct3D we were faced with difficult choices Similar enumerable. We wanted the Windows graphics leading vendors of the time; ATI, Cirrus, Trident, S3, Matrox and many others to be Able to Compete with one another for rapid innovation in 3D hardware market without creating utter chaos. The technical solution that Microsoft’s OpenGL team espoused via Michael Abrash was a driver called 3DDDI models (3D Device Driver Interface). 3DDDI was a very simple model of a flat driver that just supported the hardware acceleration of 3D rasterization. The complex mathematics associated with transforming and lighting a 3D scene were left to the CPU. 3DDDI used “capability bits” to specify additional hardware rendering features (like filtering) that consumer graphics card makers could optionally implement. The problem with 3DDDI was that it invited problems for game developers out of the gate. There were so many cap-bits every game that would either have to support an innumerable number of feature combinations unspecified hardware to take advantage of every possible way that hardware vendors might choose to design their chips producing an untestable number of possible hardware configurations and a consumer huge amount of redundant art assets that the games would not have to lug around to look good on any given device OR games would revert to using a simple set of common 3D features supported by everyone and there would be NO competitive advantage for companies to support new hardware 3D capabilities that did not have instant market penetration. The OpenGL crowd at Microsoft did not see this as a big problem in their world Because everyone just bought a $ 100,000 workstation that supported everything they needed.

The realization that we could not get what we needed from the OpenGL team was one of the primary could be better we Decided to create a NEW 3D API just for gaming. It had nothing to do with the API, but with the driver architecture underneath Because we needed to create a competitive market that did not result in chaos. In this respect the Direct3D API was not an alternative to the OpenGL API, it was a driver API designed for the sole economic purpose of creating a competitive market for 3D consumer hardware. In other words, the Direct3D API was not shaped by “technical” requirements so much as economic ones. In this respect the Direct3D API was revolutionary in several interesting ways that had nothing to do with the API itself but rather the driver architecture it would rely on.

When we Decided to acquire a 3D team to build with Direct3D I was chartered surveying the market for candidate companies with the right expertise to help us build the API we needed. As I have previously recounted we looked at Epic Games (creators of the Unreal engine), Criterion (later acquired by EA), Argonaut and finally Rendermorphics. We chose Rendermorphics (based in London) Because of the large number of 3D quality engineers and the company employed Because The founder, Servan Kiondijian, had a very clear vision of how consumer 3D drivers should be designed for maximum future compatibility and innovation. The first implementation of the Direct3D API was rudimentary but quickly intervening evolved towards something with much greater future potential.

D3DOVER lhanded
Whoops!

My principal memory from that period was a meeting in roomates I, as the resident expert on the DirectX 3D team, was asked to choose a handedness for the Direct3D API. I chose a left handed coordinate system, in part out of personal preference. I remember it now Only because it was an arbitrary choice that by the caused no end of grief for years afterwards as all other graphics authoring tools Adopted the right handed coordinate system to the OpenGL standard. At the time nobody knew or believed that a CAD tool like Autodesk would evolve up to become the standard tool for authoring game graphics. Microsoft had acquired Softimage with the intention of displacing the Autodesk and Maya anyway. Whoops …

The early Direct3D HAL (Hardware Abstraction Layer) was designed in an interesting way. It was structured vertically into three stages.

DX 2 HAL

The highest was the most abstract layer transformation layer, the middle layer was dedicated to lighting calculations and the bottom layer was for rasterization of the finally transformed and lit polygons into depth sorted pixels. The idea behind this vertical structure driver was to provide a relatively rigid feature path for hardware vendors to innovate along. They could differentiate their products from one another by designing hardware that accelerated increasingly higher layers of the 3D pipeline resulting in greater performance and realism without incompatibilities or a sprawling matrix of configurations for games to test against art or requiring redundant assets. Since the Direct3D API created by Rendermorphics Provided a “pretty fast” implementation software for any functionality not accelerated by the hardware, game developers could focus on the Direct3D API without worrying about myriad permutations of incompatible hardware 3D capabilities. At least that was the theory. Unfortunately like the 3DDDI driver specification, Direct3D still included capability bits designed to enable hardware features that were not part of the vertical acceleration path. Although I actively objected to the tendency of Direct3D capability to accumulate bits, the team felt extraordinary competitive pressure from Microsoft’s own OpenGL group and from the hardware vendors to support them.

The hardware companies, seeking a competitive advantage for their own products, would threaten to support and promote OpenGL to game developers Because The OpenGL driver bits capability supported models that enabled them to create features for their hardware that nobody else supported. It was common (and still is) for the hardware OEM’s to pay game developers to adopt features of their hardware unique to their products but incompatible with the installed base of gaming hardware, forcing consumers to constantly upgrade their graphics card to play the latest PC games . Game developers alternately hated capability bits Because of their complexity and incompatibilities but wanted to take the marketing dollars from the hardware OEM’s to support “non-standard” 3D features.

Overall I viewed this dynamic as destructive to a healthy PC gaming economy and advocated resisting the trend OpenGL Regardless of what the people wanted or OEM’s. I believed that creating a consistent stable consumer market for PC games was more important than appeasing the hardware OEM’s. As such as I was a strong advocate of the relatively rigid vertical Direct3D pipeline and a proponent of introducing only API features that we expected up to become universal over time. I freely confess that this view implied significant constraints on innovation in other areas and a placed a high burden of market prescience on the Direct3D team.

The result, in my estimation, was pretty good. The Direct3D fixed function pipeline, as it was known, produced a very rich and growing PC gaming market with many healthy competitors through to DirectX 7.0 and the early 2000’s. The PC gaming market boomed and grew to be the largest gaming market on Earth. It also resulted in a very interesting change in the GPU hardware architecture over time.

Had the Direct3D HAL has been a flat driver with just the model for rasterization capability bits as the OpenGL team at Microsoft had advocated, 3D hardware makers would have competed by accelerating just the bottom layer of the 3D rendering pipeline and adding differentiating features to their hardware capability via bits that were incompatible with their competitors. The result of introducing the vertical layered architecture THING that was 3D hardware vendors were all encouraged to add features to their GPU’s more consistent with the general purpose CPU architectures, namely very fast floating point operations, in a consistent way. Thus consumer GPU’s evolved over the years to increasingly resemble general purpose CPU’s … with one major difference. Because the 3D fixed function pipeline was rigid, the Direct3D architecture afforded very little opportunity for code branching frequent as CPU’s are designed to optimize for. Achieved their GPU’s amazing performance and parallelism in part by being free to assume that little or no branching code would ever occur inside a Direct3D graphics pipeline. Thus instead of evolving one giant monolithic core CPU that has massive numbers of transistors dedicated to efficient branch prediction has as an Intel CPU, GPU has a Direct3D Hundreds to Welcome to Thunderbird simple CPU cores like that have no branch prediction. They can chew through a calculation at incredible speed confident in the knowledge that they will not be interrupted by code branching or random memory accesses to slow them down.

DirectX 7.0 up through the underlying parallelism of the GPU was hidden from the game. As far as the game was concerned some hardware was just faster than other hardware but the game should not have to worry about how or why. The early DirectX fixed function pipeline architecture had done a brilliant job of enabling dozens of Disparate competing hardware vendors to all take different approaches to Achieving superior cost and performance in consumer 3D without making a total mess of the PC gaming market for the game developers and consumers . It was not pretty and was not entirely executed with flawless precision but it worked well enough to create an extremely vibrant PC gaming market through to the early 2000’s.

Before I move on to discussing more modern evolution Direct3D, I would like to highlight a few other important ideas that influenced architecture in early modern Direct3D GPU’s. Recalling that in the early to mid 1990’s was relatively expensive RAM there was a lot of emphasis on consumer 3D techniques that conserved on RAM usage. The Talisman architecture roomates I have told many (well-deserved) derogatory stories about was highly influenced by this observation.

Talsiman
Search this blog for tags “Talisman” and “OpenGL” for many stories about the internal political battles over these technologies within Microsoft

Talisman relied on a grab bag of graphics “tricks” to minimize GPU RAM usage that were not very generalized. The Direct3D team, Rendermorphics Heavily influenced by the founders had made a difficult choice in philosophical approach to creating a mass market for consumer 3D graphics. We had Decided to go with a more general purpose Simpler approach to 3D that relied on a very memory intensive a data structure called a Z-buffer to Achieve great looking results. Rendermorphics had managed to Achieve very good 3D performance in pure software with a software Z-buffer in the engine Rendermorphics roomates had given us the confidence to take the bet to go with a more general purpose 3D Simpler API and driver models and trust that the hardware RAM market and prices would eventually catch up. Note however that at the time we were designing Direct3D that we did not know about the Microsoft Research Groups “secret” Talisman project, nor did they expect that a small group of evangelists would cook up a new 3D API standard for gaming and launch it before their own wacky initiative could be deployed. In short one of the big bets that Direct3D made was that the simplicity and elegance of Z-buffers to game development were worth the risk that consumer 3D hardware would struggle to affordably support them early on.

Despite the big bet on Z-buffer support we were intimately aware of two major limitations of the consumer PC architecture that needed to be addressed. The first was that the PC bus was generally very slow and second it was much slower to copy the data from a graphics card than it was to copy the data to a graphics card. What that generally meant was that our API design had to growing niche to send the data in the largest most compact packages possible up to the GPU for processing and absolutely minimize any need to copy the data back from the GPU for further processing on the CPU. This generally meant that the Direct3D API was optimized to package the data up and send it on a one-way trip. This was of course an unfortunate constraint Because there were many brilliant 3D effects that could be best accomplished by mixing the CPU’s branch prediction efficient and robust floating point support with the GPU’s parallel rendering incredible performance.

One of the fascinating Consequences of that constraint was that it forced the GPU’s up to become even more general purpose to compensate for the inability to share the data with the CPU efficiently. This was possibly the opposite of what Intel intended to happen with its limited bus performance, Because Intel was threatened by the idea that the auxiliary would offload more processing cards from their work thereby reducing the CPU’s Intel CPU’s value and central role to PC computing. It was reasonably believed at that time that Intel Deliberately dragged their feet on improving PC performance to deterministic bus a market for alternatives to their CPU’s for consumer media processing applications. Earlier Blogs from my recall that the main REASON for creating DirectX was to Prevent Intel from trying to virtualize all the Windows Media support on the CPU. Intel had Adopted a PC bus architecture that enabled extremely fast access to system RAM shared by auxiliary devices, it is less Likely GPU’s that would have evolved the relatively rich set of branching and floating point operations they support today.

To Overcome the fairly stringent performance limitations of the PC bus a great deal of thought was put into techniques for compressing and streamlining DirectX assets being sent to the GPU performance to minimize bus bandwidth limitations and the need for round trips from the GPU back to the CPU . The early need for the rigid 3D pipeline had Consequences interesting later on when we Began to explore assets streaming 3D over the Internet via modems.

We Recognized early on that support for compressed texture maps would Dramatically improve bus performance and reduce the amount of onboard RAM consumer GPU’s needed, the problem was that no standards Existed for 3D texture formats at the time and knowing how fast image compression technologies were evolving at the time I was loathe to impose a Microsoft specified one “prematurely” on the industry. To Overcome this problem we came up with the idea of ​​”blind compression formats”. The idea, roomates I believe was captured in one of the many DirectX patents that we filed, had the idea that a GPU could encode and decode image textures in an unspecified format but that the DirectX API’s would allow the application to read and write from them as though they were always raw bitmaps. The Direct3D driver would encode and decode the image data is as Necessary under the hood without the application needing to know about how it was actually being encoded on the hardware.

By 1998 3D chip makers had begun to devise good quality 3D texture formats by DirectX 6.0 such that we were Able to license one of them (from S3) for inclusion with Direct3D.

http://www.microsoft.com/en-us/news/press/1998/mar98/s3pr.aspx

DirectX 6.0 was actually the first version of DirectX that was included in a consumer OS release (Windows 98). Until that time, DirectX was actually just a family of libraries that were shipped by the Windows games that used them. DirectX was not actually a Windows API until five generations after its first release.

DirectX 7.0 was the last generation of DirectX that relied on the fixed function pipeline we had laid out in DirectX 2.0 with the first introduction of the Direct3D API. This was a very interesting transition period for Direct3D for several could be better;

1) The original founders DirectX team had all moved on,

2) Microsoft’s internal Talisman and could be better for supporting OpenGL had all passed

3) Microsoft had brought the game industry veterans like Seamus Blackley, Kevin Bacchus, Stuart Moulder and others into the company in senior roles.

4) Become a Gaming had a strategic focus for the company

DirectX 8.0 marked a fascinating transition for Direct3D Because with the death of Talisman and the loss of strategic interest in OpenGL 3D support many of the people from these groups came to work on Direct3D. Talisman, OpenGL and game industry veterans all came together to work on Direct3D 8.0. The result was very interesting. Looking back I freely concede that I would not have made the same set of choices that this group made for DirectX 8.0 in chi but it seems to me that everything worked out for the best anyway.

Direct3D 8.0 was influenced in several interesting ways by the market forces of the late 20th century. Microsoft largely unified against OpenGL and found itself competing with the Kronos Group standards committee to advance faster than OpenGL Direct3D. With the death of SGI, control of the OpenGL standard fell into the hands of the 3D hardware OEM’s who of course wanted to use the standard to enable them to create differentiating hardware features from their competitors and to force Microsoft to support 3D features they wanted to promote. The result was the Direct3D and OpenGL Became much more complex and they tended to converge during this period. There was a stagnation in 3D feature adoption by game developers from DirectX 8.0 to DirectX 11.0 through as a result of these changes. Became creating game engines so complex that the market also converged around a few leading search providers Including Epic’s Unreal Engine and the Quake engine from id software.

Had I been working on Direct3D at the time I would have stridently resisted letting the 3D chip lead Microsoft OEM’s around by the nose chasing OpenGL features instead of focusing on enabling game developers and a consistent quality consumer experience. I would have opposed introducing shader support in favor of trying to keep the Direct3D driver layer as vertically integrated as possible to Ensure conformity among hardware vendors feature. I also would have strongly opposed abandoning DirectDraw support as was done in Direct3D 8.0. The 3D guys got out of control and Decided that nobody should need pure 2D API’s once developers Adopted 3D, failing to recognize that simple 2D API’s enabled a tremendous range of features and ease of programming that the majority of developers who were not 3D geniuses could Easily understand and use. Forcing the market to learn 3D Dramatically constrained the set of people with the expertise to adopt it. Microsoft later discovered the error in this decision and re-Introduced DirectDraw as the Direct2D API. Basically letting the Direct3D 8.0 3D design geniuses made it brilliant, powerful and useless to average developers.

At the time that the DirectX 8.0 was being made I was starting my first company WildTangent Inc.. and Ceased to be closely INVOLVED with what was going on with DirectX features, however years later I was Able to get back to my roots and 3D took the time to learn Direct3D programming in DirectX 11.1. Looking back it’s interesting to see how the major architectural changes that were made in DirectX 8 resulted in the massively convoluted and nearly incomprehensible Direct3D API we see today. Remember the 3 stage pipeline DirectX 2 that separated Transformation, lighting and rendering pipeline into three basic stages? Here is a diagram of the modern DirectX 11.1 3D pipeline.

DX 11 Pipeline

Yes, it grew to 9 stages and 13 stages when arguably some of the optional sub-stages, like the compute shader, are included. Speaking as somebody with an extremely lengthy background in very low-level 3D graphics programming and I’m Embarrassed to confess that I struggled mightily to learn programming Direct3D 11.1. Become The API had very nearly incomprehensible and unlearnable. I have no idea how somebody without my extensive background in 3D and graphics could ever begin to learn how to program a modern 3D pipeline. As amazingly powerful and featureful as this pipeline is, it is also damn near unusable by any but a handful of the most antiquated brightest minds in 3D graphics. In the course of catching up on my Direct3D I found myself simultaneously in awe of the astounding power of modern GPU’s and where they were going and in shocked disgust at the absolute mess the 3D pipeline had Become. It was as though the Direct3D API had Become a dumping ground for 3D features that every OEM DEMANDED had over the years.

Had I not enjoyed the benefit of the decade long break from Direct3D involvement Undoubtedly I would have a long history of bitter blogs written about what a mess my predecessors had made of a great and elegant vision for the consumer 3D graphics. Weirdly, however, leaping forward in time to the present day, I am forced to admit that I’m not sure it was such a bad thing after all. The result of stagnation gaming on the PC as a result of the mess Microsoft and the OEMs made of the Direct3D API was a successful XBOX. Having a massively fragmented 3D API is not such a problem if there is only one hardware configuration to support game developers have, as is the case with a game console. Direct3D shader 8.0 support with early primitive was the basis for the first Xbox’s graphics API. For the first selected Microsoft’s XBOX NVIDIA NVIDIA chip giving a huge advantage in the 3D PC chip market. DirectX 9.0, with more advanced shader support, was the basis for the XBOX 360, Microsoft roomates selected for ATI to provide the 3D chip, AMD this time handing a huge advantage in the PC graphics market. In a sense the OEM’s had screwed Themselves. By successfully Influencing Microsoft and the OpenGL standards groups to adopt highly convoluted graphics pipelines to support all of their feature sets, they had forced Themselves to generalize their GPU architectures and the 3D chip market consolidated around a 3D chip architecture … whatever Microsoft selected for its consoles.

The net result was that the retail PC game market largely died. It was simply too costly, too insecure and too unstable a platform for publishing high production value games on any longer, with the partial exception of MMOG’s. Microsoft and the OEM’s had conspired together to kill the proverbial golden goose. No biggie for Microsoft as they were happy to gain complete control of the former PC gaming business by virtue of controlling the XBOX.

From the standpoint of the early DirectX vision, I would have said that this outcome was a foolish, shortsighted disaster. Microsoft had maintained a little discipline and strategic focus on the Direct3D API they could have ensured that there were NO other consoles in existence in a single generation by using the XBOX XBOX to Strengthen the PC gaming market rather than inadvertently destroying it. While Microsoft congratulates itself for the first successful U.S. launch of the console, I would count all the gaming dollars collected by Sony, Nintendo and mobile gaming platforms over the years that might have remained on Microsoft platforms controlled Microsoft had maintained a cohesive strategy across media platforms. I say all of this from a past tense perspective Because, today, I’m not so sure that I’m really all that unhappy with the result.

The new generation of consoles from Sony AND Microsoft have Reverted to a PC architecture! The next generation GPU’s are massively parallel, general-purpose processors with intimate access to the shared memory with the CPU. In fact, the GPU architecture Became so generalized that a new pipeline stage was added in DirectX 11 DirectCompute called that simply allowed the CPU to bypass the entire convoluted Direct3D graphics pipeline in favor of programming the GPU directly. With the introduction of DirectCompute the promise of simple 3D programming returned in an unexpected form. Modern GPU’s have Become so powerful and flexible that the possibility of writing cross 3D GPU engines directly for the GPU without making any use of the traditional 3D pipeline is an increasingly practical and appealing programming option. From my perspective here in the present day, I would anticipate that within a few short generations the need for the traditional Direct3D and OpenGL APIs will vanish in favor of new game engines with much richer and more diverse feature sets that are written entirely in device independent shader languages ​​like Nvidia’s CUDA and Microsoft’s AMP API’s.

Today, as a 3D physics engine and developer I have never been so excited about GPU programming Because of the sheer power and relative ease of programming directly to the modern GPU without needing to master the enormously convoluted 3D pipelines associated with Direct3D and OpenGL API’s. If I were responsible for Direct3D strategy today I would be advocating dumping the investment in traditional 3D pipeline in favor of Rapidly opening direct access to a rich GPU programming environment. I personally never imagined that my early work on Direct3D, would, within a couple decades, Contribute to the evolution of a new kind of ubiquitous processor that enabled the kind of incredibly realistic and general modeling of light and physics that I had learned in the 1980 ‘s but never believed I would see computers powerful enough to models in real-time during my active career.

Play crammed 1 Million Google Apps.

CALIFORNIA – the official Android app store, Google Play, the latest re-print track record. Google announced that Google Play enlivened more than one million applications.

Reported by Softpedia, Friday (27/07/2013), it was revealed by Google’s Senior Vice President Sundar Pichai, a corporate event, Wednesday (24/7), local time. Pichai also revealed a number of other details about the Android app.

He claims the app store has reached 50 billion downloads and revenue developer time to grow 2.5 times more than last year. Other interesting information is that the level of activation of Android tablets expected to reach 70 million units by the end of this year. In comparison, according to Cnet, activation of Android tablets in the last year only 10 million.

At the same event, Google also announced two new products that have long awaited the Nexus 7 and the latest Android operating system, 4.3 Jelly Bean. The latest generation of Nexus 7 has better hardware than its predecessor, and also be the first device that uses the Android 4.3 Jelly Bean.

Acquainted with BASH Scripting

It is undeniable that over time, the popularity of Linux is increasing every day. Linux Kernel project which was originally just a fun project by Linux apparently transformed into a project that became the basis for the evolution of the digital world today.

We can see that more and more digital devices are therein using Linux in it. Changes were made in all areas so that Linux can be used by all users, both from the ground level up to the experts though.

One thing that remains a hallmark of Linux is the existence of a shell that is never lost on any Linux distro. Shell is a command-line interpreter on duty to translate the commands entered by the user directly to the system through the help of a terminal or console as a zoom interface (such as Command Prompt on the Windows platform). Although today most of the Linux distributions already to offering graphical display, the shell is still regarded as one of the strengths of Linux shell bridge where users can interact with the system in order to be more flexible. Many things can be done on a shell because we are dealing directly with the system, coupled with the many variants of the shell that offers a variety of features in it, such as csh, sh, bash, ksh, tcsh, ash, zsh, etc.

One of the most common type of shell used is BASH (Bourne-Again Shell) which was created by Bryan Fox in 1988. Shell is a replacement of the Bourne Shell (sh) existing first and is still used in some Linux distributions. Currently BASH shell has become a de facto standard for almost all Linux distributions because it is considered the most feature-rich and has a fairly high degree of portability. For comparison between variants shell can be seen on the Wikipedia website

To be able to understand the Linux system with better and also improve your productivity and take advantage of the flexibility offered by Linux, so it’s good we are trying to learn programming BASH script. PCplus using Slackware Linux distro, but this tutorial can be applied to all Linux distributions for use BASH version 4.2 and above. You can use any text editor because basically BASH script is plain text file. You can also try it on a Windows platform with the help of Cygwin,

open the editor:

1. The first step in creating a shell script is telling the system what shell you want to use, because it could be available in a Linux distribution over the shell variant. Because we want to use bash, then write this line in the first row of each bash shell script that will be created

This code is called the shebang and a special instruction that will determine what the interpreter is going to be used to process a shell script. For example, for a script that utilizes Perl interpreter, it will contain information

2. Because the shell script is basically able to execute commands on the shell, then we can run shell commands from a shell script. For example, we want to display today’s date along with the name that we use username to login. Use the code on the listing-1 as an example. Before you can run the script, give it execute permissions on the file with the command chmod + x’s listing 1.sh (adjust the file name you gave) then run the command.

Date command displays the current date information while whoami will menapilkan your user information to login.

3. What if we want to display the text coupled with a shell command? Use the echo function to display a message to the screen shown in listing-2. Echo function accepts parameters in the form of a text message that will be displayed kelayar. You might ask, why the date and user information are on different lines with text displayed? This is due essentially echo function will display a message and then change the next line. To be able to display an information to the right of the text is displayed, use the-n parameter on the function like echo in the listing-3.

4. You can try some of the commands contained in the location / bin and / usr / bin. If not sure of the usefulness of a command, run the command man <nama-perintah> on the console or terminal, for example, man ls and manual information about the ls command will be displayed. Each command has a variation of different parameters with each other, so there are times when we have to read the manual to know every option available.

How Smart Dust Could Be Used To Monitor Human Thought

A few years ago a team of researchers from Brown University made headlines after they successfully demonstrated how a paralyzed woman who had lost the use of her arms and legs could control a robotic arm using her brainwaves. In a video, Cathy Hutchinson imagines drinking a cup of coffee, and the robotic arm brings the cup to her lips.

The scene is amazing, but also a little disturbing. Hutchinson is connected to the robotic arm through a rod-like “pedestal” driven into her skull. At one end of the pedestal, a bundle of gold wires is attached to a tiny array of microelectrodes that is implanted in the primary motor cortex of Hutchison’s brain. This sensor, which is about the size of a baby aspirin, records her neural activity. At the other end of the pedestal is an external cable that transmits neural data to a nearby computer, which translates the signals into code that guides the robotic arm.

This method, known as BrainGate, pretty much defined state-of-the-art brain-computer interfaces at the end of the last decade. If the idea of a rod-through-the-head computer interface makes you cringe, you are not alone.

For some time, a small team of researchers at UC Berkeley has been working on plans for a less invasive, wireless monitoring system. Earlier this month, they released a draft paper: “Neural Dust: An Ultrasonic, Low Power Solution for Chronic Brain-Machine Interfaces.”

Dongjin Seo, a graduate student in UC Berkeley’s electrical engineering and computer science department, authored the paper under the supervision of senior faculty members, including Michel Maharbiz who has famously created cyborg beetles for the US Defense Department.

Seo said the researchers’ goal is to build an implantable system that is ultra-miniature, extremely compliant, and scalable to be viable for a lifetime, for brain-machine interfaces. “With neural dust, due to its extreme scalability, this framework can be applied for Obama’s BRAIN initiative, which necessitates large-scale, parallel, and real-time monitoring of neurons,” Seo explained.

The Berkeley researchers propose to sprinkle the brain with tiny, dust-sized, wireless sensors. This would reduce the risk of infection from wiring up scores of sensors placed throughout the brain and limit the trauma to one initial operation. During that operation, the skull would be opened, and sensors would be inserted into the brain. At the same time a separate transceiver would be placed directly under the skull but above the brain. The transceiver would communicate with the sensors via ultrasound.

Another battery-powered transceiver outside the skull would receive data transmissions from the chip inside the skull and supply wireless power to it.  As the paper notes, this type of power transfer is already used in a variety of medical applications, including cochlear implants. Seo said the amount of power being proposed is within FDA and IEEE guidelines.

The idea of neural dust immediately sparked the imagination of futurists after the paper was published on arXiv.org on July 8. “The brilliance of this system is that it could potentially allow scientists to see what’s going on with thousands, tens of thousands, or even hundreds of thousands of neurons inside the brain at once,” wrote Ramez Naam, a senior associate at the Foresight Institute and author of “More Than Human: Embracing the promise of biological enhancement.”

But would neural dust have practical use for the growing industry of mind-controlled computer games and brain training apps? Jon Cowan, founder ofNeuroTek, is dubious. NeuroTek’s Peak Achievement Training has been used at the U.S. Olympic Training Center in Colorado Springs, as well as at other Olympic centers from China to Norway.

“[Neural dust] doesn’t have much practical promise because of the surgery it would require,” Cowan said. “I don’t think they’ll find too many people that would volunteer for it.” Cowan noted existing ways for measuring brainwaves that rely on external sensors may be crude, but they’re effective enough for today’s applications.

“We really believe this is a practical system and, more importantly, we think this is potentially a powerful framework for achieving what Obama has announced,” Seo said. Still, he pointed out that the paper is a draft. “It’s a concept paper,” he said. “It’s a theoretical study of what we think is possible in the realm of neural recording.”

By publishing the paper on arXiv.org, an online collection of preprints of scientific work, the team is hoping to spur involvement and feedback from scientists in different fields. Lots of challenges remain to be overcome before neural dust will be ready for live testing.

Google Chromecast Announced, Change Ordinary So Smart TV

In addition to announcing second-generation Nexus 7 and Android 4.3 Jelly Bean, Google today also announced the existence of which is a smart Chromecast shaped dongle instead Nexus Q. Chromecast shaped stick that utilizes an HDMI port on the television to run Chrome OS version is simple and will integrate several Google services such as YouTube, Google Play Music, Play Video, and Google Chrome both applications in mobile, tablet or laptop.
Chromecast works like a second screen. If someone such as looking at a YouTube video on your phone, laptop, or tablet and then touch the button Chromecast available in the Chrome browser, it is a television that has been installed sticks Chromecast will play the video as it is displayed on the phone screen. In addition Chromecast can also accept input from a variety of devices that will be played simultaneously turns, for example, from cell phones and play video from laptop playing a movie. Besides Google Play Music and Video, Netflix app (in the U.S.) are also supported by this Chromecast.
Chromecast control can be done from the phone, for example, adjust the volume or change the video played. Chromecast also allows playback of video ‘removed’ from the phone to the tablet and will be passed from the last time the video is played.
Google Chromecast also able to play music like a DJ. This service can access Google Play Music and Pandora. In addition it can also display tabs Chromecast Chrome on television to view photos or videos on Google+ or Vimeo for example. Chromecast also create opportunities through Google Cast application development SDK for Android, iOS and Chrome. To run Chromecast, the television must have an HDMI port plugs plus a blank as a resource for Chromecast mealui microUSB.
Chromecast can be purchased at a price of just USD 35 and is now becoming available in the United States. In addition Chromecast can also be purchased from the Play Store, Amazon.com and BestBuy.com. Currently no information when this gadget will be available in Indonesia.

HP Releases Desktop PC with Military Standards

Global desktop PC sales continue to slow. However, this does not preclude Hewlett-Packard (HP) to continue releasing the latest desktop PC product lines.

No half-hearted, at an event in Jakarta, Wednesday (07/24/2013), HP released 4 series desktop PCs at once, namely EliteOne 800 G1, G1 EliteDesk 800, ProOne 600 G1, and G1 ProDesk 600. The four were aimed at the business segment.

Present as a business device, HP equip these devices with a variety of features that do not exist in the PC consumer.

For example, four of which are equipped with a safety feature called HP Client Security. Using these features, users can protect the devices at every layer, including hardware, software, and BIOS.

Other value, the products have passed the test of military standards. According to Ricky Handrian, MDM Business Desktop PC HP Indonesia, standardization include durability, shock, and temperature.

These devices have to endure or withstand heavy overwritten with a maximum weight of 75 kg. In addition, products with military standards must withstand shock, although it has been taken away in a car in the distance.

“Devices that pass this certification should still be able to operate, though it was taken in a truck and suffered shock, for example, 1,000 miles,” said Ricky.

HP Series 800 G1 EliteOne a version All-in-one PC from EliteDesk 800 G1. This product is available in one version a touch screen and non-touch also.

Those who are interested can choose the specifications of the product. To EliteOne 800 G1, specification available is generation Intel Core processors up to 4 Haswell, Windows 8 Pro, up to 16 GB of RAM, up to 1 TB HDD, and a 23-inch LED screen.

Meanwhile, the desktop version of this device, EliteDesk 800 G1, comes with a slightly higher specification, namely 4-generation Intel Core processor Haswell, Windows 8 Pro, 32 GB RAM, and up to 2 TB HDD.

Carrying the same concept with the EliteBook 800, ProOne 600 HP version of the G1 is the all-in-one PC from HP ProDesk 600 G1. For the problem specification, these two products have the same choice as the Elite 800 series.

So, what distinguishes the two series? According to Ricky, the two series have different processor platforms support. 800 Series uses Intel Q87 platform. While the Pro 600 series using Q85.

“ProDesk Series 600 is a downgraded version of the EliteBook 800. ProDesk device 600 is certainly cheaper than EliteBook 800. Yeah, let’s just ProDesk 600 as the sister of the EliteBook 800,” added Ricky.

Maxthon Partners with AMD to Offer Web Browser Optimized for Next Generation APU Chips

Maxthon, a cloud-based browser, today released a new version of its Windows browser that uses a revolutionary new microprocessor from Advanced Micro Devices (AMD), significantly reducing power consumption while offering superior video performance. AMD’s new Accelerated Processing Unit (APU) leverages new technology to make transactions between the graphics processing unit (GPU) and the central processing unit (CPU) faster and more energy-efficient than ever before.

“New chip architecture like AMD’s APU product is a clear signpost to where we believe the Web technology is heading: more happening in the chip and the browser serving as more of an open standards operating system,” said Jeff Chen, founder and CEO of Maxthon. “We’re proud to collaborate with AMD on such an exciting step forward.”

The GPU handles the processing of rich media including graphics and video, while the CPU manages the heavy lifting of analytical and logic-based functions. Until now, communicating across these two units has depended on a serial data connection that processes millions of functions per second, often resulting in a sluggish and power-consuming Web experience.

The partnership allows Maxthon to optimize the Windows browser for lightning-quick interaction between the APU to speed up video and graphics rendering, particularly using HTML5 standards for which Maxthon is the global leader in support. Among other things, the Maxthon Cloud browser is using OpenCL for lightning quick HTML5 video post processing to offer richer, faster video.

“In the near future what we now know as TV will be mediated through a Web browser optimized for innovative technology like AMD’s APU processors,” said Karl Mattson, vice president of Maxthon International. “Among other things, that means the electronic ‘hearth’ of the TV in the family room will be freed to be available to any device connected to the Web running a browser like Maxthon.”

About Maxthon

Maxthon is an innovative software company that develops superior Web browsers that continue to set new standards for speed, security, simplicity and cloud features. It is available on the Windows, Android, iOS and Mac platforms. With offices in San Francisco, Los Angeles, Beijing, Shanghai and Hong Kong, Maxthon reaches a global community of users that tops more than 120,000,000 people each month in more than 150 countries.

iOS Beta 7 Is Software The Most High adoption rate

Onswipe, mobile publishing company presenting interesting data related to IOS 7. As news is that we have quoted from TechCrunch, it turns out, iOS 7 beta is a beta version of iOS is the most popular so far.

This was revealed after they find out that 0.46% explorers on their sites using the iOS beta 7. This figure is much higher than the figures obtained from the iOS 6 years ago which was only 0:25%.

The takeaways from Onswipe, According to CEO Jason Baptiste, are that developers are around twice as excited about iOS 7 as they were about iOS 6, and that they’re spending more time getting ready for the big changes coming in the new version of Apple’s mobile OS in order to have everything nice and tidy for the consumer launch this coming fall.
Also note also iPhone users surf in Onswipe with iOS 7 is as much as 0.77%, while iPad users 0:28%. When compared to when iOS 6 beta last year just as much as iPhone users 0:19%, with iPad users are at 0:38%.

Previously, Apple released iOS beta 7 for developers widely registered on June 10, the last. And the release of iOS 7 beta 2 yesterday, Apple finally include support for the iPad. iOS beta 7 3 rumored release date July 8, 2013.

Facebook’s Balancing Act: The Good, the Bad, and the Ugly

The good news: Facebook (NASDAQ: FB  ) turned fabulously profitable in the just-reported second quarter thanks to a redesigned ad flow on mobile Facebook apps. Revenues jumped 23% from the first quarter to the second. Last year, the same comparison yielded just an 11% seasonal gain. The year-ago quarter’s net loss turned into a tidy profit.

In response, share prices jumped more than 30% overnight and sit very close to all-time highs that were set during the stock’s IPO.

The bad news: The ad assault is interfering with the user experience. A fresh survey (free registration required) from the American Customer Satisfaction Index shows Facebook dead last among online media sites in terms of user satisfaction. “Facebook users find the numerous changes to the site’s interface taxing,” says the ACSI. Twenty-seven percent of users surveyed complained that ads are ruining their Facebook experience these days.

The ugly news: The good news may not last very long. Facebook had better dial back the ad blitz if it wants those disgruntled users to stick around.

It’s a high-wire balancing act between monetization and user satisfaction. Lean too far in one direction, and you won’t make any money from those billions of page views. Err too far in the other direction, and those profitable page views will melt away as unhappy users find greener pastures.

Don’t think it couldn’t happen. Facebook is not too big to fail. Unless the company strikes that crucial balance before it’s too late, we could very well see another mass exodus from one leading social network to another.

Facebook itself killed MySpace by launching a better service in the same genre. Before that, MySpace trampled all over social pioneer Friendster in much the same way.

And there are Facebook alternatives waiting to crush the current king at the first opportunity, believe it or not.

Chief among these is Google (NASDAQ: GOOG  ) and its Google+ service, which benefits from tight integration with the world’s most popular search engine as well as with leading video site YouTube.

Twitter sings a somewhat different tune but can fill many of the functions of a Facebook account. LinkedIn (NYSE: LNKD  ) is basically Facebook for corporate users and could very well expand into the consumer side of things if it wanted to.

All of these alternatives offer fewer ads and a cleaner experience than Facebook. LinkedIn ties with Facebook at the least satisfied end of the ACSI survey; everyone else runs miles ahead. Yes, even the much-maligned Google+ “ghost town.” And even LinkedIn reports fewer ad-taint complaints than Facebook.

That’s why I’d take this week’s Facebook share-price pop as a temporary boost, and not as a sustainable clean bill of health. The service currently leans far too heavy on the monetization side of the fence and runs a very real risk of finding out that the next era of social networking doesn’t include much Facebooking.

So my bearish CAPScall on Facebook stays in place until Mark Zuckerberg and company adjust their strategy again. If you can’t keep your users happy, the money will very quickly cease to matter.

One his incredible tech stock is growing twice as fast as Google and Facebook, and more than three times as fast as Amazon.com and Apple. Watch our jaw-dropping investor alert video today to find out why The Motley Fool’s chief technology officer is putting $117,238 of his own money on the table, and why he’s so confident this will be a huge winner in 2013 and beyond. Just click here to watch!

Tizen protype Display Tablet Appears on Internet

A tablet operating system Tizen has just appeared on the internet. The emergence of the prototype tablet Tizen Tizen obtained from Indonesia who has a chance to look deeper into the tablet.

The tablet has a screen size of 10 inches and using the Tizen OS is a Linux-based OS developed by Intel with Samsung. According to the plan, the operating system will also be used in a variety of devices, from smartphones, tablets, laptops and even systems for vehicle bermotoro.

Tizen tablet prototype that appears is from a Japanese company called Shisutena. The tablet is also scheduled to be introduced this year in Japan. According to the Indonesian Tizen, this tablet will come with Tizen OS 2.1.

The tablet has a resolution of 1920 x 1200 pixels with a 1.4GHz quad-core processor, 2GB RAM and 32GB of internal memory. The tablet also comes with 802.11n WiFi, 2MP rear camera and 0.3MP camera on the front.