An interesting tale about a girl who wanders into Userland and while reading about her quest to return to her home, the reader picks up concepts in CoAn interesting tale about a girl who wanders into Userland and while reading about her quest to return to her home, the reader picks up concepts in Computer Science and Programming without ever encountering a computer (which is just a concrete application of Computer Science).
Starting with meeting Jargon-like creatures that nearly overwhelm her, she meets up with the Travelling Salesman who directs her to a person who creates ideas which starts her on a journey delivering telescopes to various locations.
Along the way, she picks up a Xor chameleon, meets Achilles and the Tortoise, encounters a recursive turning, learns the insecurity of passwords (including hacking one with a timing attack) and learns to program and solve problems for various people. She eventually finds her way back home after a journey through a binary tree.
And if most of what I've said does not make sense to you, then it's probably time to pick up the book and learn about them and discover how to get some of the concepts of Computer Science and programming via this tale that does not feature any computer that we are familiar with....more
A fascinating and informative book about Alan Turing. Starting the story with his parents, the books then tells the story of his childhood until his dA fascinating and informative book about Alan Turing. Starting the story with his parents, the books then tells the story of his childhood until his death from poison which was officially deemed a suicide.
The amount of detail on Turing's life covered in the book is enormous. During his childhood in public school, the book shows Turing to be an unusual boy, with a thirst for knowledge in both science and mathematics; and also developing an unusual relationship with Christopher Morcom. But it was to end in tragedy when the early death of Morcom.
Deciding between science and maths he decides to major in mathematics in Kings College. It is there that he writes his famous paper that was to feature the Turing Machine and its use in the 'Entscheidungsproblem', showing that it was not possible for a machine to determine whether a problem was solvable or not in a less than infinite time. It was not recognised at the time for the groundbreaking paper that it was in computers.
The book then covers his time at Princeton before his return to Britain at the start of World War II. It was here that his work in mathematics is recognised as important for helping to break the various encryption methods being used by the Germans, primarily the Enigma in its various forms. Turing concentrates mainly on the naval Enigma, and the book here gives an overall view of the efforts of many people at Bletchley Park to break the German's encryption, with the help of machines (like the Bombe) that Turing helps to create.
After the war, the book looks at Turing's efforts to create a computer based on the ideas he had developed earlier for the Turing machine. He designs the ACE, with ideas that many computers engineers would be familiar with nowadays, but would be considered ground-breaking at the time. But bureaucracy and Turing' lack of 'people skills' would see the project delayed and ultimately trimmed back from his initial vision.
In the 1950s, the book looks as his ideas and opinions about computer intelligence and how computers would be used in the future. And it is here that trouble develops. The book mentions his various homosexual relationships throughout the 1930 and 1940s but it would a relationship with a man whom he suspects to have robbed his that would cause the police to investigate him and then charge him for the crime of homosexuality. The tale then ends with his death, officially a suicide.
Written in the 1980s, the book thoroughly covers Turing's life, with plenty of footnotes and references. Some knowledge of computer science, computer engineering and mathematics is also needed to grasp and appreciate just how advanced Turing's ideas were at the time when computers as we know it were just being created and were still huge machines limited to research and large companies....more
A great graphic novel, covering the life of Alan Turing from his childhood until his death.
It shows Turing as he is: a lifelong mathematician who wasA great graphic novel, covering the life of Alan Turing from his childhood until his death.
It shows Turing as he is: a lifelong mathematician who was into running, who had a hard time interacting with people around him, the role he played at Bletchley Park in decrypting Nazi Germany's wartime code and what happened at the end when the British Government of the day decided to prosecute him.
Told from multiple viewpoints, it tells his story from his point of view as well in semi-interview format as seen by his mother and his colleagues. What is interesting is that Turing homosexuality is treated as matter-of-fact by the people around him; yet they treated him as an eccentric person, not as a monster.
Whether you know or don't know much about Alan Turing, this is a book to read....more
Jimmy Maher's book tells a fascinating story about how interactive fiction (IF) came to be from its early days as "Hunt the Wumpus" and "Adventure"; tJimmy Maher's book tells a fascinating story about how interactive fiction (IF) came to be from its early days as "Hunt the Wumpus" and "Adventure"; the release of the early commercial text-adventure games; the rise (and fall) of Infocom and other commercial IF companies; and the current day status of IF.
Various IF games are evaluated based on gameplay fairness, complexity, playability, etc. and how they helped to advance the field of interactive games. The story ends at around 2004, with a look at some modern-day IF games as well as IF creation systems, which can be found at the IF Archives.
As a person who used to enjoy playing Zork I (and completing most of it), I find it good to know that even today, the field of IF isn't dead and I look forward to getting acquainted with IF again in the near future.
The book can be read on-line on the site (with images) or in mobi or epub form. However, the epub form does not contain the images....more
A good read, collecting and presenting a lot of useful information on the care and usage of pointers in C. After reading this book, you should be ableA good read, collecting and presenting a lot of useful information on the care and usage of pointers in C. After reading this book, you should be able to understand what C pointers are, how to declare and use them and how to make sure you don't abuse pointers and introduce security issues into your code.
Starting with basic pointer declaration and usage, the book moves on to intermediate usage of pointers like dynamic allocation of memory, pointers to functions and arrays and usage of pointers in structures. Finally, the book covers advanced usage of pointers to create linked lists and how to do introduce object-oriented like-features into your code.
Most of the early material in the book is already familiar to me, but it was refreshing to see that how I used pointers was mostly already correct, with a few gotchas and tips to be filed away for future reference.
A worth-while read for those new to pointers in C and for those who are already familiar with pointer usage but would like to verify that their pointer usage techniques are correct as well as to learn more advanced pointer usage.
Note that the book assumes you are already familiar with C....more
A beautifully illustrated book that would be enjoyed by those that lived through the 1980s and have used or heard about any of the computers (and occaA beautifully illustrated book that would be enjoyed by those that lived through the 1980s and have used or heard about any of the computers (and occasional game consoles) featured in this book.
It was a time when the future of the home computer was up for grabs and competition for customers was fierce before the dust settled and the few common types of computers we see (mainly the IBM PC and Apple Macintosh) dominate the marketplace.
The book covers many computers, starting from 1975 with the MITS Altair 8800 and ending in 1988 with the NeXT Cube. Photographs of each computer (or a model variation) are presented from various angles with text explaining the background of the computer and the companies and people who created it.
The photographs are original to the book and required finding the computers involved from various museums and collectors. The text was written with accuracy in mind, which required the original creators to be interviewed whenever possible.
If you are looking for a overview of computers on the market in the USA and the UK in the 1980s, this is the book to read.
A fascinating book that serves as a good introduction to the internals of the Android Operating System.
For those interested in getting Android up andA fascinating book that serves as a good introduction to the internals of the Android Operating System.
For those interested in getting Android up and running on a new piece of hardware, this book will serve as a guide that tells you how to download Android and how to start building and customising it to your requirements.
It also serves as a good book that gets you started on understanding just how Android works from the system point of view; what are its underlying services, what they do and how to modify the services or add new custom services to your Android system.
If you are interested in programming and running an Android app, this book is not for you. ...more
An impressive technical book that looks at security in all its forms (physical, computer based, social) and shows you the various ways security can beAn impressive technical book that looks at security in all its forms (physical, computer based, social) and shows you the various ways security can be implemented and compromised.
This book also shows you why security should never be a 'by-the-way' or implemented after the fact but must be considered right at the start. Not only that, it also shows you why a world-view of security should be considered; it is not something that can only be targeted at one part of a system and expected to work.
Covering some theory of encryption and technical description of various security systems, the book goes on to show how security touches all our lives either directly (passwords) or indirectly (our privacy or safety).
The book provides plenty of examples of how security systems work and don't work. It includes examples from the author's personal experience, showing how even he has a hard time making sure that the systems he makes are really secure and showing how he has managed to break systems that other people claim are secure.
One of the more important aspects that the book covers is responsibility and deniability in security; how the desire to push responsibility on to other people or get plausible deniability when a breach occurs drives the way security is implemented. This, of course, causes distortions in the security model, making it even more likely that the security would be broken.
Whether you are interested in general security or only in one aspect of security, this is a good book to read. And after reading it, you will get a very good idea of how hard it actually is to make a system secure and why you must hire very capable people to do it and to avoid 'snake-oil' security implementations.
A good, interesting learn-how-to-program book aimed not just at children but also adults new to the art of programming.
Programming need not be difficuA good, interesting learn-how-to-program book aimed not just at children but also adults new to the art of programming.
Programming need not be difficult and need not be restricted to 'hunting and pecking' at the keyboard, wondering why the computer refuses to PRINT 'HELLO WORLD". Using Scratch, a graphical based programming language that requires minimal keyboard skills, young children (and not so young adults) can learn to appreciate the art of programming.
Using a comic strip to pose a series of programming challenges, the book gradually introduces the reader to the Scratch environment, to create images and to drag-and-drop Scratch constructs to quickly get programs up and running.
Starting with simple ideas like getting a sprite to move about a screen, the challenges in the book get more complicated as the user is taught how to control sprites using the keyboard and mouse, how to animate sprites, how to make sprites detect and react to other sprites, play sounds, etc.
By the end of the book, you should be ready to go and make your own Scratch programs or explore and modify those already provided with Scratch or found on the Scratch web site.
But as in all books, especially programming books, occasional minor errors can be found. Some of the x-y locations or labels given in the programs do not match the expected results. However, by then, you should be good enough in Scratch to be able to see the errors and correct them.
In a way, this is an extra challenge; to be able to correct the errors found in the book and gives you an extra sense of accomplishment.
Recommended for young children (and adults) who want to learn programming. Due to the occasional errors, it is best that young children are guided through the programs so that as the errors are encountered, the children can be made aware of them and can work out how to correct the errors....more
An interesting book that covers just what the title says: how some of today's Open Source Applications were designed. And understanding how applicatioAn interesting book that covers just what the title says: how some of today's Open Source Applications were designed. And understanding how applications are designed is good to know when it is your turn to design an application that will be seen by the world, warts and all.
The book covers over twenty applications and range from the old but still much used (Bash, Sendmail), single purpose (Audacity) to generic purpose (Mercurial) and to generic design (Python Packaging, NoSQL).
It is not possible for me to understand or be interested in every project in this book, but by concentrating on those that interested me, and generally skimming through the others, you'll get a idea of what is involved in the design of software that most of us would use, whether directly or indirectly.
Some projects are covered in very general terms (Hadoop Distributed File System), other expose some of the internal structures of the software (Telepathy), while others give a fascinating look into how the software has developed and changed over the years (Sendmail).
Probably the best way to get the most out of this book is to read those parts that interest you, but also skim through the other projects to see what ideas were rejected or implemented. You never know; the way one unknown (to you) project was done in the book may well guide you on how to do your own software projects better.