CLOSE
Original image
Alfred Edward Chalon

Ada Lovelace: The First Computer Programmer

Original image
Alfred Edward Chalon

Ada Lovelace has been called the world's first computer programmer. What she did was write the world’s first machine algorithm for an early computing machine that existed only on paper. Of course, someone had to be the first, but Lovelace was a woman, and this was in the 1840s. Lovelace was a brilliant mathematician, thanks in part to opportunities that were denied most women of the time.

Ada Byron was a teenager when she met Cambridge mathematics professor Charles Babbage, who had invented the Difference Engine, a mechanical computer designed to produce mathematical tables automatically and error-free. Babbage never built the actual machine due to personal setbacks and financing difficulty. By 1834 he had moved on to design his Analytical Engine, the first general purpose computer, which used punch cards for input and output. This machine also lacked financing and was never built. (Babbage's Difference Engine was finally constructed in 1985–2002, and it worked.)

An original model of part of the Analytical Engine. Photograph by Bruno Barral (ByB)

Babbage was impressed with the brilliant young woman, and they corresponded for years, discussing math and computing as he developed the Analytical Engine. In 1842, Babbage gave a lecture on the engine at the University of Turin. Luigi Menabrea, a mathematician (and future Italian prime minister), transcribed the lecture in French. Ada, now in her late 20s and known as Countess of Lovelace, was commissioned to translate the transcript into English. Lovelace added her own notes to the lecture, which ended up being three times as long as the actual transcript. It was published in 1843

Lovelace's notes made it clear that she understood the Analytical Engine as well as Babbage himself, and furthermore, she understood how to make it do the things computers do. She suggested the data input that would program the machine to calculate Bernoulli numbers, which is now considered the first computer program. But more than that, Lovelace was a visionary: she understood that numbers could be used to represent more than just quantities, and a machine that could manipulate numbers could be made to manipulate any data represented by numbers. She predicted that machines like the Analytical Engine could be used to compose music, produce graphics, and be useful to science. Of course, all that came true—in another 100 years. 

Babbage was so impressed with Lovelace's contributions, he dubbed her "The Enchantress of Numbers."

How did a young woman get the opportunity to show the world her talents in the 19th century? Mathematical intelligence was not the only thing Ada Lovelace had going for her. Her potential for intelligence probably came genetically, as she was the daughter of the poet Lord Byron and his first wife Anne Isabella Noel Byron. Both were privileged members of the aristocracy, and both were gifted and well educated. The marriage broke up shortly after Ada was born.

Lady Byron, who studied literature, science, philosophy, and, most unusual for a woman, mathematics, was determined that Ada not follow in her father's footsteps. Instead of art and literature, Ada was tutored in mathematics and science. Ada excelled in all her studies, and her interests were wide ranging. Ada became a baroness in 1835 when she married William King, 8th Baron King; the two had three children. In 1838, she became Countess of Lovelace when her husband was elevated to Earl of Lovelace. Her pedigree and peerage alone would have landed Lovelace in the history books, but her accomplishments in mathematics made her a pioneer of not only computing, but of women in science.

Lovelace died of cancer in 1852, when she was only 36. More than 150 years later, we remember her contributions to science and engineering in the celebration of Ada Lovelace Day on October 13. First celebrated in 2009 (in March), it is a day set aside to learn about women in science, technology, engineering, and mathematics. 

Original image
iStock // Ekaterina Minaeva
technology
arrow
Man Buys Two Metric Tons of LEGO Bricks; Sorts Them Via Machine Learning
May 21, 2017
Original image
iStock // Ekaterina Minaeva

Jacques Mattheij made a small, but awesome, mistake. He went on eBay one evening and bid on a bunch of bulk LEGO brick auctions, then went to sleep. Upon waking, he discovered that he was the high bidder on many, and was now the proud owner of two tons of LEGO bricks. (This is about 4400 pounds.) He wrote, "[L]esson 1: if you win almost all bids you are bidding too high."

Mattheij had noticed that bulk, unsorted bricks sell for something like €10/kilogram, whereas sets are roughly €40/kg and rare parts go for up to €100/kg. Much of the value of the bricks is in their sorting. If he could reduce the entropy of these bins of unsorted bricks, he could make a tidy profit. While many people do this work by hand, the problem is enormous—just the kind of challenge for a computer. Mattheij writes:

There are 38000+ shapes and there are 100+ possible shades of color (you can roughly tell how old someone is by asking them what lego colors they remember from their youth).

In the following months, Mattheij built a proof-of-concept sorting system using, of course, LEGO. He broke the problem down into a series of sub-problems (including "feeding LEGO reliably from a hopper is surprisingly hard," one of those facts of nature that will stymie even the best system design). After tinkering with the prototype at length, he expanded the system to a surprisingly complex system of conveyer belts (powered by a home treadmill), various pieces of cabinetry, and "copious quantities of crazy glue."

Here's a video showing the current system running at low speed:

The key part of the system was running the bricks past a camera paired with a computer running a neural net-based image classifier. That allows the computer (when sufficiently trained on brick images) to recognize bricks and thus categorize them by color, shape, or other parameters. Remember that as bricks pass by, they can be in any orientation, can be dirty, can even be stuck to other pieces. So having a flexible software system is key to recognizing—in a fraction of a second—what a given brick is, in order to sort it out. When a match is found, a jet of compressed air pops the piece off the conveyer belt and into a waiting bin.

After much experimentation, Mattheij rewrote the software (several times in fact) to accomplish a variety of basic tasks. At its core, the system takes images from a webcam and feeds them to a neural network to do the classification. Of course, the neural net needs to be "trained" by showing it lots of images, and telling it what those images represent. Mattheij's breakthrough was allowing the machine to effectively train itself, with guidance: Running pieces through allows the system to take its own photos, make a guess, and build on that guess. As long as Mattheij corrects the incorrect guesses, he ends up with a decent (and self-reinforcing) corpus of training data. As the machine continues running, it can rack up more training, allowing it to recognize a broad variety of pieces on the fly.

Here's another video, focusing on how the pieces move on conveyer belts (running at slow speed so puny humans can follow). You can also see the air jets in action:

In an email interview, Mattheij told Mental Floss that the system currently sorts LEGO bricks into more than 50 categories. It can also be run in a color-sorting mode to bin the parts across 12 color groups. (Thus at present you'd likely do a two-pass sort on the bricks: once for shape, then a separate pass for color.) He continues to refine the system, with a focus on making its recognition abilities faster. At some point down the line, he plans to make the software portion open source. You're on your own as far as building conveyer belts, bins, and so forth.

Check out Mattheij's writeup in two parts for more information. It starts with an overview of the story, followed up with a deep dive on the software. He's also tweeting about the project (among other things). And if you look around a bit, you'll find bulk LEGO brick auctions online—it's definitely a thing!

Original image
quiz
arrow
Name the Author Based on the Character
May 23, 2017
Original image
SECTIONS
BIG QUESTIONS
BIG QUESTIONS
WEATHER WATCH
BE THE CHANGE
JOB SECRETS
QUIZZES
WORLD WAR 1
SMART SHOPPING
STONES, BONES, & WRECKS
#TBT
THE PRESIDENTS
WORDS
RETROBITUARIES