John Graham-Cumming

Last updated

John Graham-Cumming
Image of John Graham-Cumming.jpg
John Graham-Cumming in 2010
Alma mater University of Oxford (DPhil)
Known for POPFile
The Geek Atlas [1]
Scientific career
Institutions Cloudflare [2]
Electric Cloud [3]
Thesis The formal development of secure systems (1992)
Doctoral advisor Jeff W. Sanders
Website www.jgc.org

John Graham-Cumming is a British software engineer and writer [4] best known for starting a successful petition to the Government of the United Kingdom asking for an apology for its persecution of Alan Turing. [5] UK Prime Minister Gordon Brown issued the apology in September 2009. [6] As of 2020, Graham-Cumming serves as Chief Technology Officer at Cloudflare; [7] [8] [9] previously he co-founded Electric Cloud. [3]

Contents

Education

Graham-Cumming was educated at the University of Oxford obtaining a BA in Mathematics and Computation and a Doctor of Philosophy degree in Computer Science in 1992 for research on formal methods for secure computing systems supervised by Jeff W. Sanders. [10] He was an undergraduate and graduate student at Lady Margaret Hall, Oxford. [10]

Career

Graham-Cumming is the original writer of POPFile, an open-source, cross-platform, machine learning email spam filtering program. [11] He is the author of The Geek Atlas, a travel book, [1] and The GNU Make book, a how-to technical manual for the GNU make software. [12] He also wrote and maintained a library of functions for GNU Make called the GNU Make Standard Library. [13]

In October 2010, he started an organization whose aim is to build Charles Babbage's Analytical Engine, [14] [15] [16] [17] known as Plan 28. [18] He has also campaigned for open-source software in science. [19] In 2014, he launched the MovieCode site on Tumblr, which aims to connect film screenshots to specific extracts of source code. [20] Some of the films and source code covered on the MovieCode website are explored in depth in the form of videos on his site Behind The Screens.

Related Research Articles

<span class="mw-page-title-main">Ada Lovelace</span> English mathematician (1815–1852)

Augusta Ada King, Countess of Lovelace was an English mathematician and writer, chiefly known for her work on Charles Babbage's proposed mechanical general-purpose computer, the Analytical Engine. She was the first to recognise that the machine had applications beyond pure calculation.

<span class="mw-page-title-main">Alan Turing</span> English computer scientist (1912–1954)

Alan Mathison Turing was an English mathematician, computer scientist, logician, cryptanalyst, philosopher, and theoretical biologist. Turing was highly influential in the development of theoretical computer science, providing a formalisation of the concepts of algorithm and computation with the Turing machine, which can be considered a model of a general-purpose computer. He is widely considered to be the father of theoretical computer science and artificial intelligence.

<span class="mw-page-title-main">Analytical engine</span> Proposed mechanical general-purpose computer

The analytical engine was a proposed mechanical general-purpose computer designed by English mathematician and computer pioneer Charles Babbage. It was first described in 1837 as the successor to Babbage's difference engine, which was a design for a simpler mechanical calculator.

Computer programming is the process of performing particular computations, usually by designing and building executable computer programs. Programming involves tasks such as analysis, generating algorithms, profiling algorithms' accuracy and resource consumption, and the implementation of algorithms. The source code of a program is written in one or more languages that are intelligible to programmers, rather than machine code, which is directly executed by the central processing unit. To produce machine code, the source code must either be compiled or transpiled. Compiling takes the source code from a low-level programming language and converts it into machine code. Transpiling on the other hand, takes the source-code from a high-level programming language and converts it into bytecode. This is interpreted into machine code. The purpose of programming is to find a sequence of instructions that will automate the performance of a task on a computer, often for solving a given problem. Proficient programming thus usually requires expertise in several different subjects, including knowledge of the application domain, specialized algorithms, and formal logic.

<span class="mw-page-title-main">Computer science</span> Study of computation

Computer science is the study of computation, information, and automation. Computer science spans theoretical disciplines to applied disciplines. Though more often considered an academic discipline, computer science is closely related to computer programming.

An integrated development environment (IDE) is a software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, and a debugger. Some IDEs, such as NetBeans and Eclipse, contain the necessary compiler, interpreter, or both; others, such as SharpDevelop and Lazarus, do not.

<span class="mw-page-title-main">Obfuscation (software)</span> Deliberate creation of difficult-to-understand code

In software development, obfuscation is the act of creating source or machine code that is difficult for humans or computers to understand. Like obfuscation in natural language, it may use needlessly roundabout expressions to compose statements. Programmers may deliberately obfuscate code to conceal its purpose or its logic or implicit values embedded in it, primarily, in order to prevent tampering, deter reverse engineering, or even to create a puzzle or recreational challenge for someone reading the source code. This can be done manually or by using an automated tool, the latter being the preferred technique in industry.

<span class="mw-page-title-main">GNU Autotools</span> Suite of programming tools

The GNU Autotools, also known as the GNU Build System, is a suite of programming tools designed to assist in making source code packages portable to many Unix-like systems.

<span class="mw-page-title-main">Jack Dongarra</span> American computer scientist (born 1950)

Jack Joseph Dongarra is an American computer scientist and mathematician. He is the American University Distinguished Professor of Computer Science in the Electrical Engineering and Computer Science Department at the University of Tennessee. He holds the position of a Distinguished Research Staff member in the Computer Science and Mathematics Division at Oak Ridge National Laboratory, Turing Fellowship in the School of Mathematics at the University of Manchester, and is an adjunct professor and teacher in the Computer Science Department at Rice University. He served as a faculty fellow at the Texas A&M University Institute for Advanced Study (2014–2018). Dongarra is the founding director of the Innovative Computing Laboratory at the University of Tennessee. He was the recipient of the Turing Award in 2021.

<span class="mw-page-title-main">Automatic Computing Engine</span> British early electronic serial stored-program computer

The Automatic Computing Engine (ACE) was a British early electronic serial stored-program computer design by Alan Turing. Turing completed the ambitious design in late 1945, having had experience in the years prior with the secret Colossus computer at Bletchley Park.

Free Java implementations are software projects that implement Oracle's Java technologies and are distributed under free software licences, making them free software. Sun released most of its Java source code as free software in May 2007, so it can now almost be considered a free Java implementation. Java implementations include compilers, runtimes, class libraries, etc. Advocates of free and open source software refer to free or open source Java virtual machine software as free runtimes or free Java runtimes.

<span class="mw-page-title-main">History of computer science</span> Aspect of history

The history of computer science began long before the modern discipline of computer science, usually appearing in forms like mathematics or physics. Developments in previous centuries alluded to the discipline that we now know as computer science. This progression, from mechanical inventions and mathematical theories towards modern computer concepts and machines, led to the development of a major academic field, massive technological advancement across the Western world, and the basis of a massive worldwide trade and culture.

<span class="mw-page-title-main">Computer</span> Automatic general-purpose device for performing arithmetic or logical operations

A computer is a machine that can be programmed to carry out sequences of arithmetic or logical operations (computation) automatically. Modern digital electronic computers can perform generic sets of operations known as programs. These programs enable computers to perform a wide range of tasks. A computer system is a nominally complete computer that includes the hardware, operating system, and peripheral equipment needed and used for full operation. This term may also refer to a group of computers that are linked and function together, such as a computer network or computer cluster.

Electric Cloud, Inc. was a privately held, DevOps software company based in San Jose, CA. Founded in 2002, Electric Cloud was a provider of application release orchestration (ARO) tools, automating release pipelines and managing application life cycles. Electric Cloud's products included ElectricFlow and ElectricAccelerator.

<span class="mw-page-title-main">GNU Affero General Public License</span> Free software license based on the AGPLv1 and GPLv3

The GNU Affero General Public License is a free, copyleft license published by the Free Software Foundation in November 2007, and based on the GNU GPL version 3 and the Affero General Public License.

<span class="mw-page-title-main">GNU General Public License</span> Series of free software licenses

The GNU General Public License is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general use and was originally written by the founder of the Free Software Foundation (FSF), Richard Stallman, for the GNU Project. The license grants the recipients of a computer program the rights of the Free Software Definition. These GPL series are all copyleft licenses, which means that any derivative work must be distributed under the same or equivalent license terms. It is more restrictive than the Lesser General Public License and even further distinct from the more widely used permissive software licenses BSD, MIT, and Apache.

<span class="mw-page-title-main">Open-core model</span> Business model monetizing commercial open-source software

The open-core model is a business model for the monetization of commercially produced open-source software. Coined by Andrew Lampitt in 2008, the open-core model primarily involves offering a "core" or feature-limited version of a software product as free and open-source software, while offering "commercial" versions or add-ons as proprietary software.

Cloudbleed was a Cloudflare buffer overflow disclosed by Project Zero on February 17, 2017. Cloudflare's code disclosed the contents of memory that contained the private information of other customers, such as HTTP cookies, authentication tokens, HTTP POST bodies, and other sensitive data. As a result, data from Cloudflare customers was leaked to all other Cloudflare customers that had access to server memory. This occurred, according to numbers provided by Cloudflare at the time, more than 18,000,000 times before the problem was corrected. Some of the leaked data was cached by search engines.

References

  1. 1 2 John Graham-Cumming (2009). The Geek Atlas: 128 Places Where Science and Technology Come Alive. Sebastopol, CA: O'Reilly Media, Inc. ISBN   978-0-596-52320-6. OCLC   850983602.
  2. Swan, Chris (2014). "John Graham-Cumming on Polyglot Programming and Geek History". infoq.com. C4Media Inc. Retrieved 17 May 2016.
  3. 1 2 Melski, Eric (2009). "Seven lessons from seven years at Electric Cloud". electric-cloud.com. Archived from the original on 25 February 2020.
  4. Anon (2010). "John Graham-Cumming Profile". The Guardian . London. Retrieved 3 October 2013.
  5. Whiteman, Hilary (2009). "Petition seeks apology for Enigma code-breaker Turing". edition.cnn.com. CNN . Retrieved 3 October 2013.
  6. PM's apology to codebreaker Alan Turing: we were inhumane, The Guardian, 10 September 2009
  7. Graham-Cumming, John (2019). "Helping To Build Cloudflare, Part 1: How I came to work here". blog.cloudflare.com. Cloudflare.
  8. Scammell, Robert (2020). "CTO Talk: Q&A with Cloudflare's John Graham-Cumming". verdict.co.uk.
  9. Graham-Cumming, John (2019). "Helping To Build Cloudflare, Part 2: The Most Difficult Two Weeks". blog.cloudflare.com. Cloudflare.
  10. 1 2 Graham-Cumming, John (1992). The formal development of secure systems. ox.ac.uk (DPhi thesis). University of Oxford. OCLC   60063995. EThOS   uk.bl.ethos.315747.
  11. Schechter, Bruce (8 March 2003). "Spambusters". newscientist.com. New Scientist . Retrieved 3 November 2013.
  12. Graham-Cumming, John (2008). The GNU Make Book. No Starch Press. ISBN   9781593276492. OCLC   896860365.
  13. "GNU Make Standard Library". gmsl.jgc.org. Retrieved 10 June 2023.
  14. Fildes, Jonathan (2010). "Campaign builds to construct Babbage Analytical Engine". bbc.co.uk. BBC News . Retrieved 3 October 2013.
  15. Graham, Duncan (3 March 2011). "A £400,000 PC downgrade: Rebooting Babbage's Analytical Engine". wired.co.uk. Wired UK . Retrieved 3 October 2013.
  16. "The Greatest Machine That Never Was: John Graham-Cumming at TEDxImperialCollege". youtube.com. YouTube. 26 April 2012. Archived from the original on 21 December 2021. Retrieved 3 October 2013.
  17. "John Graham-Cumming: The greatest machine that never was". ted.com. TED . Retrieved 3 October 2013.
  18. "Plan 28: Building Charles Babbage's Analytical Engine". plan28.org. Retrieved 24 July 2012.
  19. Ince, Darrel C.; Hatton, Leslie; Graham-Cumming, John (2012). "The case for open computer programs". Nature . 482 (7386): 485–488. doi: 10.1038/nature10836 . PMID   22358837.
  20. Johnson, Phil (2014). "The sources of all that code you see in TV and movies". itworld.com. ITworld. Archived from the original on 11 January 2014. Retrieved 13 January 2014.