Posts about software

Computer Code for NASA’s Apollo Guidance System

photo of Margaret Hamilton, NASA

Margaret Hamilton, NASA. Standing next to a printout of the source code she and her team wrote for the Apollo guidance computer that made the moon landings possible.

Meet Margaret Hamilton, the badass ’60s programmer who saved the moon landing

The software for the guidance computer was written by a team at the MIT Instrumentation Laboratory (now the Draper Laboratory), headed up by Margaret Hamilton.

The guidance computer used something known as “core rope memory“: wires were roped through metal cores in a particular way to store code in binary. “If the wire goes through the core, it represents a one,” Hamilton explained in the documentary Moon Machines. “And around the core it represents a zero.” The programs were woven together by hand in factories. And because the factory workers were mostly women, core rope memory became known by engineers as “LOL memory,” LOL standing for “little old lady.”

Hamilton is now 78 and runs Hamilton Technologies, the Cambridge, Massachusetts-based company she founded in 1986. She’s lived to see “software engineering” — a term she coined — grow from a relative backwater in computing into a prestigious profession.

In the early days, women were often assigned software tasks because software just wasn’t viewed as very important. “It’s not that managers of yore respected women more than they do now,” Rose Eveleth writes in a great piece on early women programmers for Smithsonian magazine. “They simply saw computer programming as an easy job. It was like typing or filing to them and the development of software was less important than the development of hardware. So women wrote software, programmed and even told their male colleagues how to make the hardware better.”

My aunt was one of those early software engineers. She wrote a chapter for a book, Programming the IBM 360, in the 1960s. My uncle was one of the first employees at NASA and rose to be one of the senior administrators there over his career.

It is great when society is able to capture the value individuals are capable of providing. We need to make sure we allow everyone opportunities to contribute. We do well in many ways but we also do lose from discrimination and also just making it uncomfortable for people to contribute in certain roles when we need not do so.

We have accomplished great things with software in the last 40 years. We could have accomplished more if we had done a better job of allowing women to contribute to the efforts in this field.

Related: The Eagle Has LandedBarbara Liskov wins Turing AwardGreat Self Portrait by Astronaut with Earth Reflected in His Visor

Get Your Own Siftable Modular Computers

I posted about Siftable Modular Computers early last year. Recently I have seen ads for them on my management blog, so I decided to see what progress had been made.

The price is a steep but they do seem cool. A Sifteo pack of 3 cubes, plus software, 2 games… is $149. They also require Mac or Windows software. no straight Linux 🙁 Each extra cube costs $45. They started shipping (at least in the USA) on September 30th.

Even though it doesn’t say it is available for Android or Linux here is a video from the recent Android open conference by David Merrill

I do agree that the idea of using these cubes that are in our physical space that we manipulate is very cool. And the idea of intelligent play I very much support. But they need to reduce the price and make them available on the best operating system (Linux/Ubuntu) – which is also open and free. They have also released a software development kit for those interested in creating games for the device. I wish them well.

Related: Teenage Engineer’s Company Launches Safety StairOpen Source for LEGO MindstormsZubbles, Get Your Colored BubblesArduino: Open Source Programmable Hardware

Gamers Use Foldit to Solve Enzyme Configuration in 3 Weeks That Stumped Scientists for Over a Decade

Gamers have solved the structure of a retrovirus enzyme whose configuration had stumped scientists for more than a decade. The gamers achieved their discovery by playing Foldit, a very cool online game that allows players to collaborate and compete in predicting the structure of protein molecules that I wrote about before: Foldit – the Protein Folding Game. You can download it, play, and help move our understanding forward.

After scientists repeatedly failed to piece together the structure of a protein-cutting enzyme from an AIDS-like virus, they called in the Foldit players. The scientists challenged the gamers to produce an accurate model of the enzyme. They did it in only three weeks.

This class of enzymes, called retroviral proteases, has a critical role in how the AIDS virus matures and proliferates. Intensive research is under way to try to find anti-AIDS drugs that can block these enzymes, but efforts were hampered by not knowing exactly what the retroviral protease molecule looks like.

“We wanted to see if human intuition could succeed where automated methods had failed,” said Dr. Firas Khatib of the University of Washington Department of Biochemistry. Khatib is a researcher in the protein structure lab of Dr. David Baker, professor of biochemistry.

Remarkably, the gamers generated models good enough for the researchers to refine and, within a few days, determine the enzyme’s structure. Equally amazing, surfaces on the molecule stood out as likely targets for drugs to de-active the enzyme.

“These features provide exciting opportunities for the design of retroviral drugs, including AIDS drugs,” wrote the authors of a paper appearing Sept. 18 in Nature Structural & Molecular Biology. The scientists and gamers are listed as co-authors.

This is the first instance that the researchers are aware of in which gamers solved a longstanding scientific problem.

“The focus of the UW Center for Game Sciences,” said director Dr. Zoran Popovic, associate professor of computer science and engineering, “is to solve hard problems in science and education that currently cannot be solved by either people or computers alone.”

The solution of the virus enzyme structure, the researchers said, “indicates the power of online computer games to channel human intuition and three-dimensional pattern matching skills to solve challenging scientific problems.”

With names like Foldit Contenders Group and Foldit Void Crushers Group, the gamer teams were fired up for the task of real-world molecule modeling problems. The online protein folding game captivates thousands of avid players worldwide and engages the general public in scientific discovery.

Direct manipulation tools, as well as assistance from a computer program called Rosetta, encourage participants to configure graphics into a workable protein model. Teams send in their answers, and UW researchers constantly improve the design of the game and its puzzles by analyzing the players’ problem-solving strategies.

Figuring out the shape and misshape of proteins contributes to research on causes of and cures for cancer, Alzheimer’s, immune deficiencies and a host of other disorders, as well as to environmental work on biofuels.

Dr. Seth Cooper, of the UW Department of Computing Science and Engineering, is a co-creator of Foldit and its lead designer and developer. He studies human-computer exploration methods and the co-evolution of games and players.

“People have spatial reasoning skills, something computers are not yet good at,” Cooper said. “Games provide a framework for bringing together the strengths of computers and humans. The results in this week’s paper show that gaming, science and computation can be combined to make advances that were not possible before.”

Games like Foldit are evolving. To piece together the retrovirus enzyme structure, Cooper said, gamers used a new Alignment Tool for the first time to copy parts of know molecules and test their fit in an incomplete model.

According to Popovic, “Foldit shows that a game can turn novices into domain experts capable of producing first-class scientific discoveries. We are currently applying the same approach to change the way math and science are taught in school.”

Related: Letter on the discoveryAlgorithmic Self-AssemblyPhun Physics Software GameCool Mechanical Simulation System

Tool to Make Creating Android Applications Easy

I am skeptical this will be really useful but it is a good thing to try. I can believe we could get good tools to allow non-programmer to create simple applications – but I think it will take years to get decent tools. Try App Inventor for Android. I might have to try it myself.

I would image sure most of the applications created will be horrible. It certainly is different from Apples attempts to restrict developers of iPhone apps as much as possible. The move certainly seems to open the development of simple applications beyond those that “are thrilled when a computer reminds them they’re missing a bracket or semicolon” 🙂

Related: Arduino: Open Source Programmable Hardware4 and 8 Year Old Sisters Impress with SqueakApp Inventor for AndroidDroid Incredible

Google Summer of Code 2009

Google Summer of Code is a global program that offers student developers stipends to write code for various open source software projects. Google funds the program with $4,500 for each student (and pays the mentor organization $500). Google works with several open source, free software, and technology-related groups to identify and fund projects over a three month period.

Since its inception in 2005, the program has provided opportunities for nearly 2500 students, from nearly 100 countries. Through Google Summer of Code, accepted student applicants are paired with a mentor or mentors from the participating projects, thus gaining exposure to real-world software development scenarios and the opportunity for employment in areas related to their academic pursuits. In turn, the participating projects are able to more easily identify and bring in new developers. Best of all, more source code is created and released for the use and benefit of all.

Google funded approximately 400 student projects in 2005, 600 in 2006, 900 in 2007 and 1125 in 2008 and will be funding approximately 1,000 student projects in 2009.

Applying for the program is only allowed from March 23rd through April 3rd. Still a short period of time but in previous years they have only taken them for one week. Organizations hosting students include: Creative Commons, MySQL, Debian, The Electronic Frontier Foundation/The Tor Project, haskell.org, Grameen Foundation USA, National Center for Supercomputing Applications, Ruby on Rails, Wikimedia Foundation and WordPress. See the full list of organizations and link to descriptions of the projects each organization offers.

See the externs.com internship directory (another curiouscat.com ltd. site) for more opportunities including those in science and engineering.

Related: Google Summer of Code Projects 2008posts on fellowships and scholarshipsLarry Page on How to Change the Worldcomic on programmersInterview of Steve Wozniak

Open Source Abandoned by OLPC

Not Free at Any Price by Richard M. Stallman

When the OLPC appeared, it fell one step short of full freedom: the highly publicized wireless mesh network device, which allows OLPCs to connect to the Internet through nearby OLPCs, required a non-free program. This piece of non-free code prevented me from fully endorsing the OLPC. But that would not stop me from using one: I would just have to delete the non-free code and do without the internal wireless device.

The OLPC had practical inconveniences, too: no internal hard disk, a small screen, and a tiny keyboard. In December 2007 I test-drove the OLPC with an external keyboard, and concluded I could use it with an external disk despite the small screen. I decided to switch.

If you want to support a venture to distribute low-priced laptops to children, wait a few months, then choose one that donates MIPS-based machines that run entirely free software. That way you can be sure to give the gift of freedom.

He is more anti-microsoft than I am but I agree with this contention that what we should support is a open source solution to provide laptops to children around the world. It is a shame, I really liked the potential for OLPC. I still wish them success I just am not interesting in directly supporting that effort but instead would like an alternative open source solution.

The Sylvania Netbook is available from Amazon now with the Ubuntu operating system (linux version). I use Ubuntu and it is excellent.

Related: Will Desktop Linux Take Off?Lemote (fully open source laptop)13 Things For Ubuntuposts on UbuntuGreat FreewareOne Laptop Per Child – Give One Get OneOLPC’s Open Source Rift Deepens

Freeware Wi-Fi app turns iPod into a Phone

image of iPod Touch

Wireless turns iPod into a phone

A freeware application for the iPod Touch can turn the music player into a virtual mobile phone. Truphone uses wi-fi technology in an iPod Touch to allow users to make calls to other iPod Touch owners and Google Talk’s messaging service users.

The software is a spin-off from technology Truphone developed for smartphones and iPhones. The developers plan to have the ability to make calls to and from landlines in place very soon.

Geraldine Wilson – Truphone’s CEO – said the firm had ambitions to become a global internet player. “There are a slew of new features we’re rolling out for the iPod Touch that will let users call landlines, Skype users or send instant messages. We’re talking weeks, not months, before these go live.” Although Truphone technology can, in theory, work on any mobile device, the firm is concentrating on devices that have an application store.
..
The company said Google’s Android operating system would be the next platform for which it will develop the Truphone applications.

From the Truphone site:

Nokia and iPhone users can make Truphone calls from any Wi-Fi zone, anywhere in the world. We’ll use your Wi-Fi connection to route the call over the internet at our amazing flat worldwide rates (see rate checker), saving you loads of money on international calls from your home country and saving you even more on calls when you’re abroad.

Wi-Fi calls to other connected Truphone users are completely free of charge. From wherever, to wherever.

Very cool. See our gadgets and gifts store.

Related: Mobile Phone-based Vehicle Anti-theft SystemVideo GogglesAwesome Cat CamOpen Source for LEGO MindstormsLinks to great freeware

The Fall of Spore

image from Spore game

The hype for Spore as it was being developed was grand, and I was intrigued. Unfortunately the compromises I have read about have been disappointing. Seed has written about the development of the game in The Creation Simulation

This was Spore’s central problem: Could the game be both scientifically accurate and fun? The prototyping teams were becoming lost in their scientific interests.

Spore’s decision”‰—”‰to preserve the illusion of life at the expense of the actual facts of life”‰—”‰made for some substantial casualties. First to go in the cute-versus-science war were the extreme ends of the scale”‰—”‰galaxy formation and origins of life simulation”‰—”‰dismissed as being too abstract and dissipated. Next, small and then big laws were shattered and remade. Wright’s determination to represent faster-than-light travel as impossible crumbled in the face of making the spacefaring section of the game enjoyable. Evolution, despite his staunch Darwinism, became a massively telescoped process that depended on the external, deliberate interventions of the players. And so, instead of becoming the ultimate science project, Spore gradually became the ultimate game.

The snag is that Spore didn’t just jettison half its science”‰—”‰it replaced it with systems and ideas that run the risk of being actively misleading. Scientists brought in to evaluate the game for potential education projects recoiled as it became increasingly evident that the game broke many more scientific laws than it obeyed.

I can understand this process and even admit it might be the right choice for those involved. I am just disappointed we don’t have what was imagined (and hyped) early on – a great, fun, learning environment to enjoy and learn from.

The game has an amazingly low 1 1/2 star rating on Amazon with 3,121 reviews (I have never seen anything so popular so disliked on Amazon). Some of the disappointment is in the compromises made but I know a bunch is for the hated digital rights management DRM used by Spore.

Related: The Science Behind SporeProtein Folding “Game”Physics Simulation GameLego Learningposts on software

Problems Programming Math

Arithmetic Is Hard – To Get Right by Mark Sofroniou

I’ve been working on arithmetic in Mathematica for more than 12 years. You might think that’s silly; after all, how hard can arithmetic be?

The standard “schoolbook” algorithms are pretty easy. But they’re inefficient and often unnecessarily inaccurate. So people like me have done a huge amount of work to find algorithms that are more efficient and accurate. And the problem is that these algorithms are inevitably more complicated, and one has to be very careful to avoid insidious bugs.

Take multiplying integers, for example. The standard “schoolbook” long-multiplication algorithm uses n^2 multiplications to multiply two n-digit numbers. But many of these multiplications are actually redundant, and we now know clever algorithms that take n^1.58, n log n, or even fewer multiplications for large n. So this means that if one wants to do a million-digit multiplication, Mathematica can do it in a fraction of a second using these algorithms–while it would take at least a few minutes using standard long multiplication.

It’s not easy to get reliable numerical computation, and it’s not something one can “bolt on” after the fact. It’s something one has to build in from the beginning, as we’ve done in Mathematica for nearly 20 years.

Related: Who Killed the Software Engineer?Sexy MathFreeware Math Programs1=2: A ProofThings You Need to be a Computer Game Programmer

Stellarium

Stellarium is free open source planetarium for your computer.

Related: Learn Physics with Free Space Flight SimulatorFun Physics Freeware GameFold.it, the Protein Folding Game

Interview with Donald Knuth

Interview with Donald Knuth by Andrew Binstock, April 2008:

I currently use Ubuntu Linux, on a standalone laptop—it has no Internet connection. I occasionally carry flash memory drives between this machine and the Macs that I use for network surfing and graphics; but I trust my family jewels only to Linux. Incidentally, with Linux I much prefer the keyboard focus that I can get with classic FVWM to the GNOME and KDE environments that other people seem to like better. To each his own.

I’m basically advising young people to listen to themselves rather than to others, and I’m one of the others. Almost every biography of every person whom you would like to emulate will say that he or she did many things against the “conventional wisdom” of the day.

Still, I hate to duck your questions even though I also hate to offend other people’s sensibilities – given that software methodology has always been akin to religion. With the caveat that there’s no reason anybody should care about the opinions of a computer scientist/mathematician like me regarding software development, let me just say that almost everything I’ve ever heard associated with the term “extreme programming” sounds like exactly the wrong way to go…with one exception. The exception is the idea of working in teams and reading each other’s code. That idea is crucial, and it might even mask out all the terrible aspects of extreme programming that alarm me.

I also must confess to a strong bias against the fashion for reusable code. To me, “re-editable code” is much, much better than an untouchable black box or toolkit. I could go on and on about this. If you’re totally convinced that reusable code is wonderful, I probably won’t be able to sway you anyway, but you’ll never convince me that reusable code isn’t mostly a menace.

Related: Donald Knuth – Computer ScientistProgrammers at WorkPreparing Computer Science Students for JobsTeach Yourself Programming in Ten YearsCurious Cat Ubuntu posts