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 was...moreA 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.(less)
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"; t...moreJimmy 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.(less)
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 able...moreA 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.(less)
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 occa...moreA 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 and...moreA 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. (less)
An impressive technical book that looks at security in all its forms (physical, computer based, social) and shows you the various ways security can be...moreAn 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 difficu...moreA 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.(less)
An interesting book that covers just what the title says: how some of today's Open Source Applications were designed. And understanding how applicatio...moreAn 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.
An imaginative and fascinating guide to the history, theory and present state of 'information'.
Starting from African drum communication, Gleick shows...moreAn imaginative and fascinating guide to the history, theory and present state of 'information'.
Starting from African drum communication, Gleick shows how oral language become written words; how words altered culture; how lists of words developed into a dictionary; how the need to communicate lead to communication networks and how technology lead to ways to store and process information (in the form of words and numbers).
Then Claude Shannon comes into the picture (after being introduced at the beginning) and alters the way information is seen with Information Theory.
From this point, the book bursts with information (sorry) about the relationships between information and entropy, physical storage and communication channels.
The closing chapters look at the current flood of information and how all this information, easily accessable, has lead to a change in the way we communicate and what lies in store for us.(less)
Wireshark is one of the more useful tools available for people doing network packet analysis. But a tool is good if you know how to use it and this bo...moreWireshark is one of the more useful tools available for people doing network packet analysis. But a tool is good if you know how to use it and this books show you how to use it in an easy to follow practical guide.
After going through an introduction to network packet analysis and using Wireshark, the book gets down to the nitty-gritty: using Wireshark to troubleshoot networks. You'll learn how to determine where a network problem might be happening and how to backup your analysis with evidence gathered using Wireshark.
One part that definitely needs more work is the section on wireless network analysis. This is an especially challenging part of a network to troubleshoot due to the difficulty of getting proper hardware to capture wireless packets, much less ensuring that you are getting the data you need to do proper analysis. What is covered in this book is enough to get you started in wireless network analysis but more coverage of this topic would be helpful.(less)
Before the actual 802.11i (known to most people as 'WPA' or 'WPA2') specification was ready, this was the book to read if you wanted to get in-depth k...moreBefore the actual 802.11i (known to most people as 'WPA' or 'WPA2') specification was ready, this was the book to read if you wanted to get in-depth knowledge of the problem posed by wireless security. It tells why WEP was broken, the interim and final solutions proposed to fix wifi security and how it actually works.
Time has caught up with the book now that the actual 802.11i spec has been released and has rendered some parts of the book obsolete or in need of corrections. Still a good book to read and was my main reference source for wifi security at my time of need.(less)
A good summary and guide to advanced programming in the Unix environment. Covers most of the major Unix APIs and shows you not only how to use the int...moreA good summary and guide to advanced programming in the Unix environment. Covers most of the major Unix APIs and shows you not only how to use the interfaces but how to use them properly and securely.(less)