INFO-LINK



Open Source

A Roundtable on BSD, Security, and Quality


A Roundtable on BSD, Security, and Quality

The Participants:
Theo deRaadt (TdR), OpenBSD principal architect.
Todd Miller (TM), OpenBSD contributor, a system administrator at the University of Colorado at Boulder.
Angelos Keromytis (AK), OpenBSD network stack guru, a graduate student at the University of Pennsylvania.
Warner Losh (WL), Free BSD contributor, an embedded-systems programmer.
Jack Woehr (DDJ), Dr. Dobb's Journal contributing editor.

 

DDJ: Some people think the install of OpenBSD should be kept simple, the way it is. Others want greater ease for the users.

TM: The direction I'm going is to have a facility for installing large numbers of machines easily. Right now you have to do attended installs. It would be nice to have a config file, TFTP or NFS mounts, preload a bunch of defaults, and splat out 30 installs at once. Most of the major OSes have this in some form or other. RedHat Linux KickStart is more complicated than it need be.

We already have a facility for installing arbitrary things in addition to the base sets, although it's not very well documented. OpenBSD 2.8 will be easier to install in some ways. One thing I've been meaning to add for the last couple of years is partition profiles, so you can say, "I want it to look sort of like this," this percentage for disk label a, this for b, and so on.

OpenBSD install basically started out as a prototype that escaped. I haven't really had time to go back and revamp it like I wanted to.

DDJ: How does OpenBSD IPv6 compare to the other free UNIXs?

WL: Itojun-san of the Kame project in Japan seems to be six different people inhabiting one body, as far as his ability to hack [the network protocol stack]. He makes sure that FreeBSD, OpenBSD, NetBSD, and BSDi remain in sync with the main Kame repositories. For the OpenBSD Crypto2000 sort-of-mini-conference, he attended and got no sleep. When his roommate went to sleep, Itojun was hacking. When he woke up in the middle of the night, Itojun was hacking. When he woke up in the morning, Itojun was hacking.

TdR: All the BSDs are at the same level. It's all the same code base. It's the same APIs. OpenBSD has more in the security side of IPv6 than FreeBSD has because that's not done by Kame.

DDJ: What is the difference in security?

AK: The big difference is that we [of OpenBSD] have a very well integrated IPSec stack. Even more so, we're the only free project with any real support for hardware acceleration for crypto.

Security is of particular interest to us. Most developers are convinced that IPSec is going to play a significant role in whatever OpenBSD is used for, either as a workstation or firewall. We see a lot of firewalls already that could be termed "IPSec VPN boxes".

If you're going to have cheap hardware, 486s, or low-end Pentiums acting as firewalls, they need all the help they can get in terms of cryptography processing. We have support for some crypto cards already (http://www.openbsd.org/crypto.html#hardware). We're looking into adding support for public key cryptography to accelerate OpenSSL and the public key operations in IPSec. That's our next big goal.

DDJ: How does IPSec change normal user operation?

AK: Right now, for various reasons, mostly because it's the simplest thing to do, IPSec is used for VPNs to bridge different sites or for telecommuting.

DDJ: But IPSec itself is much richer than that?

AK: The goal is to make it so that every single application that uses the network should be able to request security services from the network stack, to have all its data received and transmitted encrypted, no matter to whoever it is talking to.

DDJ: "The Death of FTP"?

AK: Not the death of FTP. Maybe there's a new command line argument to FTP. Maybe secure is the default setting of the OS. Maybe the user's profile says "FTP in secure mode only." We support some of that right now but it's not very well meshed.

DDJ: So the applications that everyone is using haven't caught up with the facilities offered in IPSec.

AK: Yes.

DDJ: What about the general viability of all the BSDs? Are you going to become the "OS/2" to Linux's "Windows"?

WL: That's a little scary! The BSDs are not in any kind of decline. If anything, the past year has been something of a renaissance. A lot of net companies using various BSD boxes. People are installing more firewalls, more IDS boxes, we're seeing a lot of those are BSD-based. A lot of that is due to the strength of the BSD IP stack.

AK: I suspect the next big explosion for BSD will be embedded systems. We're seeing a lot of vendors that want to have a real operating system in their device. They need to have a file system, even in flash. They want full IP support. They want to download and run executables. Java is one approach, others are taking a more pragmatic and traditional approach. It's no longer feasible for a small company to roll out its own operating system. All the BSDs and Linux have legacy code that already runs.

WL: Furthermore, a lot of embedded systems are based on processors of the past that BSD has already been ported to. MIPS leaps to mind as an example. Support for StrongARM and PPC allows BSD and Linux a foot in the door in such designs.

DDJ: What's the main difference between BSD and Linux?

WL: The strong central source repository. You know what you're building. With Linux, "You need this, and you need this, and get this somewhere else, and today we just discovered that you need these twelve patches." There's no way to keep up with that. It's crazy-making.

With the BSDs, you synchronize to the sources, "make world" or "make build", and you know exactly what's running on your machine. From a security point of view, that's good.

DDJ: What's this BSD merger about?

WL: BSDi bought Walnut Creek CDROM (http://www.cdrom.com). Walnut Creek has been a big FreeBSD supporter for a long time. BSDi is now providing hardware infrastructure and hiring developers to work on FreeBSD.

DDJ: Has there been cross-pollination between the Linux and BSD kernels?

WL: Not a lot, though sometimes one steals ideas. Linux, for instance, stole part of the BSD networking stack. [Pauses.] All of it.

AK: There used to be a huge difference between the Linux kernel on the one hand and the BSD kernels on the other. The main reason was the lack of cohesion, lack of grand vision in Linux. The subsystems were developed independently. The communication between the people who were controlling the development of the Linux kernel was not as close as in the BSDs. That has probably changed recently.

There's also some cross-pollination in the other direction on device drivers. Companies are perhaps more willing to give documentation on their devices to Linux hackers than to bother to deal with the BSDs. So the way to support a new piece of hardware in BSD is to find the Linux driver and use it as documentation for the device.

DDJ: So there's not any real big difference now between Linux and BSD kernels?

AK: One of the recent changes that I know of in the Linux kernel is the threading of the drivers. It's a fairly good idea, I don't know if we want to move there right now, but it's the direction we are going. In the last major kernel update that's the approach I took in the crypto subsystem.

WL: When an interrupt happens in BSD, you raise the processor SPL, no other interrupts can happen, and the driver executes. What Linux is moving to, and what FreeBSD SMP was also moving to, [is that] each driver has its own thread, so that when it is executing it doesn't necessarily block all the interrupts. It becomes more independent and the multiprocessing capabilities become more scalable. You can say, "I'll just run this thread on this CPU and that thread on that CPU doing device driver things" and you don't have the SPL issues you have in a traditional BSD kernel. Solaris is like that, everything is a thread in the Solaris kernel.

DDJ: So is SMP supported in the BSDs these days?

TM: People say SMP when they really mean ASMP or just "MP".

WL: A lot of the early Linux kernels claimed to be SMP but they were only run on one processor. So which SMP do you mean?

TdR: Or, whose idea of SMP?

WL: With FreeBSD 4.x, it uses a big, giant lock. One of the things BSDi is supporting is porting BSDi fine-grained threading and fine-grained locking to FreeBSD, which will make the multiprocessing more symmetric.

TdR: In NetBSD, Bill Sommerfeld has been working on SMP stuff, so ... The cost of buying a dual-processor machine is probably greater than buying a great single-processor machine, and most people get more out of a fast single processor. And there are coming machines with multiple processors in the core of a single chip.

WL: The main reason FreeBSD put multi-processor support in is that we had several customers at ISPs who had limited rack space and who could get more out of another CPU.

DDJ: OpenBSD strikes me as being an aesthetic revolt against something that happens to operating systems as they become used. When I installed OpenBSD and found it so minimalist, I said, "I have finally found the free Unix that's the closest thing to FORTH."

TdR: Before I did OpenBSD I actually wrote a FORTH compiler, in 1987, that booted diskless on a Sun 350 out of the boot rom.

DDJ: Chuck Moore still rails that programming is vastly too complicated, that it's just job insurance for programmers, that things have to be smaller and simpler.

TdR: Right. As we keep on looking at source code, we find that most people can't write more than twenty lines of code in C. They make mistakes that matter twenty years later, that become security holes, buffer overruns, races, misuses of the API. Misuses of the API is the killer. Calling them and thinking they work one way but they don't. strncpy(), strncat() ... no one knows how they work.

TM: strncpy() and strncat() work differently. If you expect one behavior, you'll be right half the time. Does it matter? The OpenBSD experience shows that, yes, it does matter, and that the people who were guessing guessed wrong half the time.

TdR: We went through our source tree and fixed all the strncpy() errors. On the whole, we found about one percent were correct in a 300-megabyte source tree.

DDJ: Give some practical advice to professional programmers. How did you learn to be right?

TdR: The rules were set a long time ago. It's just that someone started paying attention.

WL: Read the man page and make sure you understand it, not just what you think it says. You can also use an alternative API that's harder to use incorrectly, like the strl* routines that Todd did, strlcpy(), strlcat() ...

TdR: They're still not in glibc. They're everywhere else. They're in Solaris. We invented them two years ago. They're showing up in vendor operating systems. We made a convincing argument why these things are necessary. Todd and I wrote a paper on it. He gave a talk on it at a previous Usenix, I talked about it at a conference in Australia.

TM: They're very simple APIs, a tiny amount of code, it barely makes a paper. You have a consistent API, "I'm writing to here, this is where I'm starting, and this is how much space I have." People can understand that.

Most of the problem people have with strncpy() and strncat() is that they often require pointer arithmetic. People often get this wrong. It was really fun to do an 11-page paper on approximately 11 lines of code!

DDJ: Why bother with this when we now have std::string?

TdR: We're not C++ programmers. There is one program written in C++ in OpenBSD, out of 300 megabytes of source code.

DDJ: Isn't everything going to be written in C++ someday?

TdR: You need a simpler language. The problem we deal with today is that the language is too complicated, and then they want to add C++ to it?

A friend of mine works at a company that writes Microsoft applications. They have a piece of paper they constantly update listing APIs and parts of C++ you're not allowed to use. It's four pages long.

WL: The biggest problem people have with C++ is that they see a feature and feel they have to use it. That's wrong.

TdR: Another problem: one C++ programmer cannot debug another C++ programmer's code!

DDJ: I'm not sure I agree with that, but C++ does allow one to create vastly different kinds of structure. Java has the same problem.

TdR: Even in C, there are stylistic things that people do that cause great problems. In particular this fellow Angelos over here keeps indenting his code differently than the rest of us do. Whenever we look at his code we have to re-orient ourselves to how he does stuff!

TM: When everything is consistent, errors stand out. When you're dealing with security, finding errors is important.

TdR: When we do audits, we do trolls through the source code looking for particular types of errors. When it's consistent, we can go through very quickly.

You have to be pretty particular about automatic indenters. You should run qmail through indent sometime. It doesn't compile afterwards!

WL: It finds bugs in indent. People have a brief period of time where they are focused and they get 80 percent of it right, and that's indent, or whatever. The other 20 percent that's really hard, they don't have the fire for it anymore.

I use emacs to indent. If it has a problem, I've usually made a syntax mistake. I don't use the syntax coloring, though, I find it distracting, and only recently have I worked on machines that run it fast enough.

TdR: The whole thing is creating environments that are conducive to what we do, which is improve quality. Not just making correct code, taking existing code and fixing it, which is most of what we do.

TM: You look at code from the '80s and before, then you look at the code we write now, there seems to be stylistic things that change over time. Not just one person's thing, but schools of programming. Looking at old code, I can read it, but I can't just understand what it does until I fix this and that and change the formatting. When things look right, problems are obvious. You're not going line by line.

WL: A lot of old-time code on the net was written when the school of thought was, "That will never happen. Why waste my time and a few bytes of memory?" Consequently, that code has more errors than today when memory's cheap, and people say, "Why not check for errors?"

TdR: Nowadays you end up with very large chunks of code that check for errors, and once and a while miss errors, but since the code is now so large, when it fails, it's hard to find out why it failed! It seems there's no happy medium.

WL: I've seen code that tries to determine if getpid() fails. It can't.

AK: On the other hand, how many people check if close() fails? Not many. But since AFS, you actually have to check. There's nothing you can do, but at least you can report it.

TM: With fclose(), there are buffered stdio writes in there, and you want to know. You can at least warn.

AK: What's to guarantee, though, that next year there won't be some new operating system feature where, if it fails, you have to re-issue close() ...

TdR: That's a slippery slope. You're saying it's okay to change the way the UNIX APIs work.

AK: But close() was expected to fail sometimes, that's why there's a return.

TdR: close() was void before AFS.

TM: But fclose() was not. You see this kind of thing with Perl code. Perl is a nice language, I use it a lot, it's great for whipping up things and some large projects. Perl programmers have a tendency not to check return codes. Perl doesn't make that too easy, because there are some things not obvious that you really should check.

AK: People who program in Perl, like I do, often use Perl because they want something really fast, and then they throw it away. Some of this code escapes and becomes real projects, but the mentality remains, to the author's dismay. We all have horror stories about these programs we wrote years ago, then five years later we get e-mail, "This doesn't work, can you fix it?"

DDJ: Michael Cowlishaw, inventor of Rexx, tells about a program he wrote in 1979. He got e-mail in 1994 from someone who found a bug. The amazing thing was that the program still worked over the various releases of IBM VM/ESA.

TdR: That's because they didn't change the close() call! [general laughter].

WL: close() may be a silly example, but a better example is setuid().

TdR: setuid() was subtly changed by POSIX to add saved UIDs. The result was that in Perl setuid() in 1992 it caused a security hole because the system call was changed. The existing binary running on top of a new kernel had the hole. It didn't affect any other programs, but it affected one that mattered.

WL: I saw some programs in FreeBSD ports that had that same bug in it.

TdR: We were very careful. We put seteuid()s in front of every single setuid(). We decided to avoid the problem instead of having to read all those pieces of software. Since that time, we have removed some seteuid()s where we are sure it's safe.

DDJ: But make it safe first and then peel away the layers.

TdR: When we get time.

DDJ: Theo said earlier to me that it's not about security, it's about quality, that if you write software that performs according to its specification, it can't be insecure if you use it in the correct way.

TM: If the specification is a secure specification. cf, rsh and that family of things are inherently insecure because of the reliance on trusting that the IP address at the remote side is good, and that remote side hasn't been holed. There are flaws in the specification that inherently imply insecurity.

TdR: There are flaws in everything. SSL trivially opens you up to a denial-of-service attack, because the attacker can make you chew CPU calculating keys. So is IKE.

DDJ: What's the thing with IKE? There are guys running around here wearing buttons, "I don't like IKE."

TdR: The protocol used for IPSec key negotiation.

DDJ: What's the problem with it? I asked them but I didn't get a clear answer.

TdR: It's an insanely complicated protocol, therefore, the reasons it is broken are insanely complicated.

AK: The problem is 300 pages of specification. The implementation we have of this in OpenBSD is about 36,000 lines of code without the crypto. That's just the protocol. I can't think of one single piece of code that size and start to debug it.

TdR: The Boeing 747 flight control deck has about 30,000 lines of code, separated into 12 independent modules. That's the right way to do things.

DDJ: Systems get larger, but code still has to be broken up so the human mind can grasp it.

TdR: I don't see any magic bullet.

WL: Most of the IDEs don't reduce complexity, they just help you manage it. To have something that works well, you have to reduce complexity.


Around the Web

CoreDet: A Compiler and Runtime System for Deterministic Multithreaded Execution

CoreDet is a fully automatic compiler and runtime system for deterministic execution of arbitrary C/C++ multithreaded programs.

Quick Read

Honeypot Detection in Advanced Botnet Attacks

Honeypots have been successfully deployed in many computer security defense systems.

Quick Read

Swarm: A True Distributed Programming Language

The Swarm prototype is a simple stack-based language, akin to a primitive version of the Java bytecode interpreter.

Quick Read

Key Software Development Trends

Several trends are emerging within the area of software development. Here are some of the most important trends S. Somasegar has been thinking about recently.

Quick Read

Understanding Parallel Performance

Understanding parallel performance. How do you know when good is good enough?

Quick Read

Short and Tweet: Experiments on Recommending Content from Information Streams

The authors used 12 algorithms to study the URL recommendation on Twitter as a means of better directing attention in information streams.

Quick Read





Video

Forty finalists will gather in Washington, D.C. from March 11-16 to compete for $630,000 in awards.; DDJ; Intel; science; Dr. Dobb's talks with Commonsware's Mark Murphy about what's involved in developing software for the Android operating system; Android; apple; DDJ; tablet development; The new method uses analytics technology developed by the Mayo and IBM collaboration, Medical Imaging Informatics Innovation Center, and has proven a 95 percent accuracy rate in detecting aneurysm.; Algorithm; DDJ; diagnostics; ibm; imaging; T-Mobile USA is enabling phone calls to Haiti without charges for international long distance through January 31 and retroactive to the earthquake on January 12; DDJ; mobile; wireless; Al Williams gives you a demor of One-Der: The One Instruction CPU; DDJ; At the 2010 International Consumer Electronics Show, the auto industry's first working smartphone application was unveiled; DDJ; mobile; The Bluetooth Special Interest Group (SIG) has announced the adoption of BLUETOOTH low energy wireless technology.; bluetooth; DDJ; wireless; IBM has unveiled its list of five innovations that have the potential to change how people live, work and play in cities around the world over the next five to ten years; DDJ; ibm; TeliaSonera's LTE mobile broadband commercial network in Stockholm is now the fastest and largest in the world.; broadband; DDJ; ericsson; mobile; Google has introduced, google Goggles, a visual search application on Android devices that allows users to search for objects using images rather than words; Android; DDJ; google; mobile; Visual Search Applications; Dr. Dobb's talks with David Intersimone, Vice President of Developer Relations and Chief Evangelist at Embarcadero Technologies, about RAD Studio 2010, SQL optimization and his reflections on the software industry.; database programming; DDJ; sql; Researchers from Intel Labs have created an experimental, 48-core Intel processor or "single-chip cloud computer."; cloud computing; DDJ; Intel; multicore; parallelism; The Large Hadron Collider will produce roughly 15 million gigabytes of data annually, to be accessed by a distributed computing and data storage infrastructure called the LHC Computing Grid.; CERN; DDJ; grid computing; physics; A mobile handheld device designed to let users can point, shoot and listen to printed text.; DDJ; Intel; mobile; Ericsson has become the first vendor to prove end to end interoperability in TD-LTE, another standard of 4G radio technologies designed to increase the capacity and speed of mobile telephone networks.; DDJ; ericsson; mobile; TD-LTE; According to a recent study, 80 percent of US respondents feel there are unspoken rules about mobile technology usage, and approximately 69 percent agreed that violations of these unspoken mobile manners are unacceptable.; DDJ; Intel; mobile; IBM and Canonical will introduce a software package for netbooks and other thin client devices in Africa. This is the first cloud- and premise-based Linux netbook software package offered by IBM and Canonical.; cloud computing; DDJ; ibm; His unprecedented ability to manipulate individual atoms signaled a quantum leap forward in in nanoscience experimentation and heralded in the age of nanotechnology.; DDJ; ibm; nanotechnology; IBM honored for its invention of the Blue Gene family of supercomputers. Adobe founders also recognized.; adobe; DDJ; ibm; Former U.S. President Bill Clinton addressed thousands of online entrepreneurs from around the world gathered for the third APEC Business Advisory Council SME Summit in Hangzhou, China.; DDJ; e-business; With free cooling for several months a year, Sweden is an ideal location for cost-efficient data centers.; data centers; DDJ; PNC Bank introduces a new mobile App for the iPhone and iPod touch that provides Virtual Wallet customers with a high-def view of their money while on the go.; DDJ; iphone; The Swedish LTE site will be part of a commercial network scheduled to go live in 2010, bringing data rates far above what is possible in today's mobile broadband networks.; DDJ; ericsson; mobile broadband; Nanotechnology advancement could lead to smaller, faster, more energy efficient computer chips.; circuit boards; DDJ; nanotech; semiconductor; Dr Dobbs talks with with Claudia Backus, Senior Director of Ecosystem Programs at Motorola, regarding the company's recently released MotoDEV Studio for their Android-powered phones.; Android; DDJ; mobile; motodev; The Extremadura Regional Government of Spain and IBM have launched an electronic prescription system in 680 pharmacies in western Spain.; DDJ; ibm; Ericsson to Acquire Majority of Nortel's North American Wireless Business; DDJ; ericsson; mobile; telecom; Nintendo's Wii Sports Resort is an immersive, expansive active-play game that includes a dozen resort-themed activities.; DDJ; nintendo; video games; OnStar can remotely send a signal to the electronic system in the subscriber's stolen vehicle and the vehicle will not be able to be re-started.; cellular; DDJ; wireless; In celebration of the historic Apollo Moon landing, Google has released Moon in Google Earth.; DDJ; google; Ericsson has been awarded contracts with the three telecom operators in China to provide fixed broadband access.; broadband; DDJ; mobile; tv; wireless; Dr. Dobb's talks with Adobe's Adam Lehman about the upcoming release of ColdFusion specifically optimized for Flash and Adobe AIR platform delivery.; adobe; ColdFusion; DDJ; eclipse; Companies team to develop computing device and chipset architectures that will combine the performance of powerful computers with high-bandwidth mobile broadband communications and ubiquitous Internet connectivity.; broadband; DDJ; Intel; mobile; nokia; Adobe Systems and HTC recently announced that the new HTC Hero will be the first Android phone to ship with support for Adobe Flash Platform technology.; adobe; Android; cell phones; DDJ; flash; mobile; mobility; 3.2 million Euros awarded across eight prize categorie recognizing world-class scientific research and artistic creation.; DDJ; A parody of Paul Simon's "50 Ways to Leave Your Lover," but for software security nerds.; DDJ; sql; Dr. Dobb's Mike Riley talks with Jim Manias of Advanced Systems Concepts.  In this conversation, Jim discusses the new ActiveBatch 7 and how it can provide significant productivity gains for application developers and business process owners alike.; ActiveBatch; DDJ; Sun cofounder Scott McNealy and Oracle CEO Larry Ellison discussed Java's role in computing. Sun has also released OpenSolaris 2009.06.; DDJ; java; opensolaris; oracle; sun; Spotlight on NATO's centre of excellence on cyber defense in Tallinn, Estonia.; cyber defense; DDJ; nework security; security; Create Data Access Layers in ASP.NET; DDJ; In this demonstration you will learn how to layout a WPF application. We will explore the major layout panels that come with WPF, contrasting them with each other and describing when to use each.; DDJ; web development; windows; wpf; The Intel Foundation has announced the top winners of the Intel International Science and Engineering Fair; DDJ; Intel; News; science; Matt Hester demonstrates Internet Explorer’s 8 new feature Selectors API for utilizing CSS selectors for quick and easy element lookups.; DDJ; IE8; microsoft; windows; The NATO Virtual Silk Highway provides affordable, high-speed Internet access via satellite to the academic communities of the Caucasus and Central Asia.; DDJ; On a Windows Mobile device, applications are typically not closed down, but they stay in the background. Maarten Struys shows you a simple way to preserve battery power inside your own applications.; DDJ; microsoft; power consumption; windows; Windows Mobile Devices; Cadillac is now offering wireless Internet access with its CTS sedan.; DDJ; wireless broadband; By default, Windows Mobile Standard (Smartphone) applications launched from Visual Studio are not accessible on the device/emulator once they are minimized. In this video, Jim Wilson demonstrates two simple techniques to solve the problem.; DDJ; microsoft; smartphone; VIsual Studio; Mike Riley talks with the brass from Everypoint, creators of the NEMO mobile application development platform.; DDJ; Developers; development environments; mobile applications; Symmetric and asymmetric encryption algorithms, the SHA256 hash encryption algorithms, and how to implement in a simple application using Microsoft's Azure Services Platform.; Azure; DDJ; encryption; microsoft; security; windows; T-Mobile has introduced the Sidekick LX, which features enhanced video capability.; DDJ; Mobile Smartphone; Bluetooth 3.0 offers speedier transmission of large amounts of video, music and photos between devices wirelessly.; bluetooth; DDJ; mobile networks; wireless broadband; Cities around the world are battling with stressed transportation networks, so IBM has announced plans for three new smart rail projects in China, Taiwan and The Netherlands.; DDJ; ibm; ILOG; CASMOBOT is a Nintendo Wii remote controlled slope lawn mower.; DDJ; Denmark; nintendo wii; research; robotics; Project ensures documents, images, video and other Internet-based data growing at over 100 terabytes per month will live on for future generations; data storage; DDJ; history; Intenet; research; Sun Microsystems; Dr. Dobb's talks with Dave McAllister, Director of Standards and Open Source for Adobe, about the Open Screen Project.; adobe; DDJ; Open Screen Project; open source; The Facebook Connect SDK provides the code to let third-party developers embed hooks into their applications so users can connect to their Facebook accounts and exchange information using iPhone apps.; apple; cocoa; DDJ; Facebook; iphone; Mars in Google Earth Updated; DDJ; google; google earth; Google mars; red planet; The Sun Cloud is built on the Sun Open Cloud Platform that leverages the best in world-class open source technologies. The Sun Open Cloud Platform brings together Java, MySQL, OpenSolaris and OpenStorage.; cloud computing; DDJ; java; open solaris; sun; DDJ; High School; Intel; science; ILOG Elixir is a suite of professional user interface controls that gives developers a rich collection of innovative and interactive data display components for Adobe Flex and Adobe Air.; adobe; air; DDJ; elixir; flash; flex; ILOG; The inaugural San Diego Science Festival being held this month is touted as one of the largest multicultural, multigenerational, multidisciplinary celebrations of science ever seen on the West Coast; DDJ; lockheed; News; science; IBM has announced Innov8 version 2, a new version of its serious game that helps students and professionals hone their business and technology skills in a compelling, familiar video game format.; DDJ; ibm; serious games; Swiss Automobile Visionary Frank M. Rinderknecht builds a concept car with adaptive energy concept and iPhone controls.; apple; Concept Car; DDJ; iphone; j; siemens; Two-Year Plan to Focus on 32 Nanometer Manufacturing Technology; 32 nanometer technology; chip; cpu; DDJ; gpu; Intel; manufacturing; Nehalem; Westmere; New version features ocean layer, historical imagery, and more.; DDJ; google; Dr. Dobb's talks with Marty Alchin, author of "Pro Django" about his book and the deep internals of the Django framework.; DDJ; Django; A new content-authoring solution for learning professionals; adobe; DDJ; toolkits; web authoring; In a Second Life setting, Danny Coward discusses Java FX with Dr. Dobb's Jon Erickson.; DDJ; java; JavaFX; sun; The Core i7 processor is the first member of a new family of Nehalem processor designs with new technologies that boost performance on demand.; chip; DDJ; Intel; processors; Dan Diephouse, creator of XFire, a high-performance open-source SOAP framework (which became the Apache CXF project), shares the five common mistakes in SOA governance and insight about the Apache CXF and Mule RESTpack development environments.; apache; Apache CXF; DDJ; mule; open source; soa; soap; Xfire; Adrian Kaehler and Gary Bradski discuss the Open Computer Vision Library (sourceforge.net/projects/opencvlibrary/) and their book "Learning OpenCV".; DDJ; Open Computer Vision Library; OpenCV; In the first part of this two-part interview, Stephen Wolfram reflects on the 20-year anniversary of Wolfram Research.; DDJ; Mathematica; Mathematics; science; In the second part of this two-part interview, Stephen Wolfram discusses his book "A New Kind of Science."; DDJ; Mathematica; Mathematics; science; Nick Hodges talks about Delphi 2009, a RAD tool for Windows, and Delphi Prism, a database engine for Windows, Mac OS X, and Linux.; DDJ; delphi; RAD; windows; Dr. Dobb's talks with Tony Lombardo, lead Technical Evangelist at Infragistics, about all new UI tools for Windows and .NET.; .net; DDJ; silverlight; ui; windows; wpf; Dr. Dobb's talks with Eric Schulz about his International Mathematica User's Conference 2008 presentation on the Mathematica Essentials Palette and the future digital educational material; DDJ; Mathematica; Mathematics; Dr. Dobb's talks with ActiveState's Trent Mick about the recently released Komodo IDE 5.0.; DDJ; ide; open source; Dr. Dobb's talks with Continuity Logic's Kris Carlson about "Why We Die: Simulation of the Evolution of Senescence" and why he programs with Mathematica's functional programming language.; DDJ; functional programming; Mathematica; simulation; Ericsson collaborates with Intel; DDJ; ericsson; Intel; Mobile technology; Dr. Dobb's talks with Schoeller Porter about the grid and cloud versions of Mathematica; clouds; DDJ; Grid; Mathematica; Dr Dobb's interviews Yehuda Katz, maintainer of the Merb project, about the advantages this highly optimized Ruby on Rails alternative offers to web application developers.; DDJ; Ruby on Rails; Dr. Dobb's talks with Thomas Roman, Professor of Mathematics at Central Connecticut State University, about "Mathematica Visualization in a Theoretical Physics Problem - Negative Energy in an Unusual Quantum State."; DDJ; Mathematica; physics; quantum; science; The Forbidden City: Beyond Space & Time is a fully immersive, three-dimensional virtual world that recreates a visceral sense of space and time.; Blade Server; China; DDJ; ibm; linux; mac; online; virtual world; windows; Dr. Dobb's interviews open source luminary Miguel de Icaza about his latest milestone of achieving Microsoft .NET 2.0 Framework compatibility with the Mono Project .; DDJ; Dr. Dobb/s interviews Paul Kimmel, author of "LINQ Unleashed for C#", about Microsoft's new query technology that lets developers poll any information from any data source regardless of location or structure. I; C#; DDJ; Dr. Dobb's; LINQ; microsoft; It takes a supercomputer to build a super car. ; DDJ; HPC; simulation; Dr. Dobb's shows how to install and execute cross-platform scripting languages on the Windows Mobile platform. In this installment, Mike Riley examines Perl for Windows Mobile devices.; DDJ; mobile devices; perl; windows; Dr. Dobb's shows how to install and execute cross-platform scripting languages on the Windows Mobile platform. In this installment, Mike Riley examines Python CE which is optimized for Windows Mobile devices.; DDJ; mobile devices; python; windows; Dr. Dobb's shows how to install and execute cross-platform scripting languages on the Windows Mobile platform. In this installment, Mike Riley examines Ruby for Windows Mobile devices.; DDJ; mobile devices; ruby; windows; Young participants at ITU TELECOM ASIA 2008 in Bangkok, Thailand received free laptops as part of ITU’s initiative to promote affordable devices to increase access to information and communication technologies.; communication; DDJ; itu; Currently technical strategist to Microsoft's Chief Software Architect, Rebecca Norlander has had a tremendous impact on Excel, Internet Explorer, Windows XP SP2, and Windows Vista Security. ; DDJ; microsoft; Contributing authors to the book "Beautiful Code" got together at Dr. Dobb's SD West Conference in March, 2008. Part 1 of 3.; DDJ; programming; software development; Contributing authors to the book "Beautiful Code" got together at Dr. Dobb's SD West Conference in March, 2008. Part 2 of 3.; DDJ; programming; software development; Contributing authors to the book "Beautiful Code" got together at Dr. Dobb's SD West Conference in March, 2008. Part 3 of 3.; DDJ; programming; software development; Anders Hejlsberg discusses C#, Turbo Pascal, and what it means to design a programming language. ; C#; DDJ; microsoft; Turbo Pascal; Solar powered laptops given to youths at ITU Asia 2008.; DDJ; News; telecommunications; IBM breakthrough stands to impact future direction of information technology.; DDJ; Mike Riley spoke to ActiveState's Jeff Hobbes about the new features in Tcl Dev Kit and Perl Dev Kit including the code coverage and hot-spot analysis tool and Mac OSX support.; DDJ; Tim O'Reilly addressed the OSCON convention in his Wednesday keynote titled "Degrees of Freedom, Open Source in the Wed 2.0 Era.; DDJ;