Pragmatic Version Control Using Git


Travis Swicegood - 2008
    High-profile projects such as the Linux Kernel, Mozilla, Gnome, and Ruby on Rails are now using Distributed Version Control Systems (DVCS) instead of the old stand-bys of CVS or Subversion.Git is a modern, fast, DVCS. But understanding how it fits into your development can be a daunting task without an introduction to the new concepts. Whether you're just starting out as a professional programmer or are an old hand, this book will get you started using Git in this new distributed world. Whether you're making the switch from a traditional centralized version control system or are a new programmer just getting started, this book prepares you to start using Git in your everyday programming.Pragmatic Version Control Using Git starts with an overview of version control systems, and shows how being distributed enables you to work more efficiently in our increasingly mobile society. It then progresses through the basics necessary to get started using Git.You'll get a thorough overview of how to take advantage of Git. By the time you finish this book you'll have a firm grounding in how to use Git, both by yourself and as part of a team.Learn how to use how to use Git to protect all the pieces of your project Work collaboratively in a distributed environment Learn how to use Git's cheap branches to streamline your development Install and administer a Git server to share your repository

Nmap Cookbook: The Fat-free Guide to Network Scanning


Nicholas Marsh - 2010
    Every Nmap feature is covered with visual examples to help you quickly understand and identify proper usage for practical results.Topics covered include:* Installation on Windows, Mac OS X, Unix/Linux platforms* Basic and advanced scanning techniques* Network inventory and security auditing* Firewall evasion techniques* Zenmap - A graphical front-end for Nmap* NSE - The Nmap Scripting Engine* Ndiff - A Nmap scan comparison utilitySimplified coverage of Nmap 5.00 features.

The Problem with Software: Why Smart Engineers Write Bad Code


Adam Barr - 2018
    As the size and complexity of commercial software have grown, the gap between academic computer science and industry has widened. It's an open secret that there is little engineering in software engineering, which continues to rely not on codified scientific knowledge but on intuition and experience.Barr, who worked as a programmer for more than twenty years, describes how the industry has evolved, from the era of mainframes and Fortran to today's embrace of the cloud. He explains bugs and why software has so many of them, and why today's interconnected computers offer fertile ground for viruses and worms. The difference between good and bad software can be a single line of code, and Barr includes code to illustrate the consequences of seemingly inconsequential choices by programmers. Looking to the future, Barr writes that the best prospect for improving software engineering is the move to the cloud. When software is a service and not a product, companies will have more incentive to make it good rather than "good enough to ship."

Flask Web Development: Developing Web Applications with Python


Miguel Grinberg - 2014
    With this hands-on book, you’ll learn Flask from the ground up by developing a complete social blogging application step-by-step. Author Miguel Grinberg walks you through the framework’s core functionality, and shows you how to extend applications with advanced web techniques such as database migration and web service communication.Rather than impose development guidelines as other frameworks do, Flask leaves the business of extensions up to you. If you have Python experience, this book shows you how to take advantage of that creative freedom.- Learn Flask’s basic application structure and write an example app- Work with must-have components—templates, databases, web forms, and email support- Use packages and modules to structure a large application that scales- Implement user authentication, roles, and profiles- Build a blogging feature by reusing templates, paginating item lists, and working with rich text- Use a Flask-based RESTful API to expose app functionality to smartphones, tablets, and other third-party clients- Learn how to run unit tests and enhance application performance- Explore options for deploying your web app to a production server

The Infinite Machine: How an Army of Crypto-hackers Is Building the Next Internet with Ethereum


Camila Russo - 2020
    He convinced a crack  group of coders to join him in his quest to make a super-charged, global computer.The Infinite Machine introduces Vitalik’s ingenious idea and unfolds Ethereum’s chaotic beginnings. It then explores the brilliant innovation and reckless greed the platform—an infinitely adaptable foundation for experimentation and new applications—has unleashed and the consequences that resulted as the frenzy surrounding it grew: increased regulatory scrutiny, incipient Wall Street interest, and the founding team’s effort to get the Ethereum platform to scale so it can eventually be  accessible to the masses.Financial journalist and cryptocurrency expert Camila Russo details the wild and often hapless adventures of a team of hippy-anarchists, reluctantly led by an ambivalent visionary, and lays out how this new foundation for the internet will spur both transformation and fraud—turning some into millionaires and others into felons—and revolutionize our ideas about money.

The Design of the UNIX Operating System


Maurice J. Bach - 1986
    The leading selling UNIX internals book on the market.

Programmers at Work: Interviews With 19 Programmers Who Shaped the Computer Industry (Tempus)


Susan Lammers - 1986
    A classic title on the PC revolution originally published in 1986. Featuring Bill Gates, Andy Hertzfeld, Charles Simonyi, Ray Ozzie, Michael Hawley and many more.

QUICK GUIDE TO STARTING A BULLET JOURNAL: Take Back Control of Your Life and Your Day With These Great Bullet Journal Ideas


Levi Bailey - 2017
     So you've been hearing about it, but what exactly is a Bullet Journal?  Well, simply put, a Bullet Journal is your ticket to a more organized, well-planned, and less stressful life!  In this book, I'll show you the super simple method of bullet journaling that is sure to change your life.  In this book, you will learn:   How to start a bullet journal Best practices for using your bullet journal effectively What to look for when purchasing a bullet journal notebook Tons of bullet journal ideas to unleash your creativity How to use your bullet journal to give meaning to your day This book will pay for itself by giving you the tools needed to take back control of your day, your life, and your sanity! Let's get started!  Buy Quick Guide to Starting a Bullet Journal today and take the first step to a more stress-free life!

Zero Day: The Threat In Cyberspace


Robert O'Harrow Jr. - 2013
    For more than a year, Washington Post reporter Robert O'Harrow has explored the threats proliferating in our digital universe. This eBook is a compilation of that reporting. With chapters built around real people, including hackers, security researchers and corporate executives, this book will help regular people, lawmakers and businesses better understand the mind-bending challenge of keeping the internet safe from hackers and security breaches -- and all out war.

High Performance JavaScript


Nicholas C. Zakas - 2010
    The problem is that all of those lines of JavaScript code can slow down your apps. This book reveals techniques and strategies to help you eliminate performance bottlenecks during development. You'll learn how to improve execution time, downloading, interaction with the DOM, page life cycle, and more. Yahoo! frontend engineer Nicholas C. Zakas and five other JavaScript experts -- Ross Harmes, Julien Lecomte, Steven Levithan, Stoyan Stefanov, and Matt Sweeney -- demonstrate optimal ways to load code onto a page, and offer programming tips to help your JavaScript run as efficiently and quickly as possible. You'll learn the best practices to build and deploy your files to a production environment, and tools that can help you find problems once your site goes live. Identify problem code and use faster alternatives to accomplish the same task Improve scripts by learning how JavaScript stores and accesses data Implement JavaScript code so that it doesn't slow down interaction with the DOM Use optimization techniques to improve runtime performance Learn ways to ensure the UI is responsive at all times Achieve faster client-server communication Use a build system to minify files, and HTTP compression to deliver them to the browser

The Cyber Effect: A Pioneering Cyberpsychologist Explains How Human Behavior Changes Online


Mary Aiken - 2016
    Levitt, co-author of Freakonomics - One of the best books of the year--NatureMary Aiken, the world's leading expert in forensic cyberpsychology, offers a starting point for all future conversations about how the Internet is shaping development and behavior, societal norms and values, children, safety, privacy, and our perception of the world. Drawing on her own research and extensive experience with law enforcement, Aiken covers a wide range of subjects, from the impact of screens on the developing child to the explosion of teen sexting and the acceleration of compulsive and addictive behaviors online. Aiken provides surprising statistics and incredible-but-true case studies of hidden trends that are shaping our culture and raising troubling questions about where the digital revolution is taking us.Praise for The Cyber Effect"How to guide kids in a hyperconnected world is one of the biggest challenges for today's parents. Mary Aiken clearly and calmly separates reality from myth. She clearly lays out the issues we really need to be concerned about and calmly instructs us on how to keep our kids safe and healthy in their digital lives."--Peggy Orenstein, author of the New York Times bestseller Girls & Sex"[A] fresh voice and a uniquely compelling perspective that draws from the murky, fascinating depths of her criminal case file and her insight as a cyber-psychologist . . . This is Aiken's cyber cri de coeur as a forensic scientist, and she wants everyone on the case."--The Washington Post"Fascinating . . . If you have children, stop what you are doing and pick up a copy of The Cyber Effect."--The Times (UK)"An incisive tour of sociotechnology and its discontents."--Nature"Just as Rachel Carson launched the modern environmental movement with her Silent Spring, Mary Aiken delivers a deeply disturbing, utterly penetrating, and urgently timed investigation into the perils of the largest unregulated social experiment of our time."--Bob Woodward"Mary Aiken takes us on a fascinating, thought-provoking, and at times scary journey down the rabbit hole to witness how the Internet is changing the human psyche. A must-read for anyone who wants to understand the temptations and tragedies of cyberspace."--John R. Suler, PhD, author of The Psychology of Cyberspace"Drawing on a fascinating and mind-boggling range of research and knowledge, Mary Aiken has written a great, important book that terrifies then consoles by pointing a way forward so that our experience online might not outstrip our common sense."--Steven D. Levitt"Having worked with law enforcement groups from INTERPOL and Europol as well as the U.S. government, Aiken knows firsthand how today's digital tools can be exploited by criminals lurking in the Internet's Dark Net."--Newsweek

The Basics of Digital Forensics: The Primer for Getting Started in Digital Forensics


John Sammons - 2011
    This book teaches you how to conduct examinations by explaining what digital forensics is, the methodologies used, key technical concepts and the tools needed to perform examinations. Details on digital forensics for computers, networks, cell phones, GPS, the cloud, and Internet are discussed. Readers will also learn how to collect evidence, document the scene, and recover deleted data. This is the only resource your students need to get a jump-start into digital forensics investigations.This book is organized into 11 chapters. After an introduction to the basics of digital forensics, the book proceeds with a discussion of key technical concepts. Succeeding chapters cover labs and tools; collecting evidence; Windows system artifacts; anti-forensics; Internet and email; network forensics; and mobile device forensics. The book concludes by outlining challenges and concerns associated with digital forensics. PowerPoint lecture slides are also available.This book will be a valuable resource for entry-level digital forensics professionals as well as those in complimentary fields including law enforcement, legal, and general information security.

Web Operations: Keeping the Data on Time


John Allspaw - 2010
    It's the expertise you need when your start-up gets an unexpected spike in web traffic, or when a new feature causes your mature application to fail. In this collection of essays and interviews, web veterans such as Theo Schlossnagle, Baron Schwartz, and Alistair Croll offer insights into this evolving field. You'll learn stories from the trenches--from builders of some of the biggest sites on the Web--on what's necessary to help a site thrive.Learn the skills needed in web operations, and why they're gained through experience rather than schoolingUnderstand why it's important to gather metrics from both your application and infrastructureConsider common approaches to database architectures and the pitfalls that come with increasing scaleLearn how to handle the human side of outages and degradationsFind out how one company avoided disaster after a huge traffic delugeDiscover what went wrong after a problem occurs, and how to prevent it from happening againContributors include:John AllspawHeather ChampMichael ChristianRichard CookAlistair CrollPatrick DeboisEric FlorenzanoPaul HammondJustin HuffAdam JacobJacob LoomisMatt MassieBrian MoonAnoop NagwaniSean PowerEric RiesTheo SchlossnagleBaron SchwartzAndrew Shafer

Professor Frisby's Mostly Adequate Guide to Functional Programming


Brian Lonsdorf
    We'll use the world's most popular functional programming language: JavaScript. Some may feel this is a poor choice as it's against the grain of the current culture which, at the moment, feels predominately imperative. However, I believe it is the best way to learn FP for several reasons:You likely use it every day at work.This makes it possible to practice and apply your acquired knowledge each day on real world programs rather than pet projects on nights and weekends in an esoteric FP language.We don't have to learn everything up front to start writing programs.In a pure functional language, you cannot log a variable or read a DOM node without using monads. Here we can cheat a little as we learn to purify our codebase. It's also easier to get started in this language since it's mixed paradigm and you can fall back on your current practices while there are gaps in your knowledge.The language is fully capable of writing top notch functional code.We have all the features we need to mimic a language like Scala or Haskell with the help of a tiny library or two. Object-oriented programming currently dominates the industry, but it's clearly awkward in JavaScript. It's akin to camping off of a highway or tap dancing in galoshes. We have to bind all over the place lest this change out from under us, we don't have classes[^Yet], we have various work arounds for the quirky behavior when the new keyword is forgotten, private members are only available via closures. To a lot of us, FP feels more natural anyways.That said, typed functional languages will, without a doubt, be the best place to code in the style presented by this book. JavaScript will be our means of learning a paradigm, where you apply it is up to you. Luckily, the interfaces are mathematical and, as such, ubiquitous. You'll find yourself at home with swiftz, scalaz, haskell, purescript, and other mathematically inclined environments.

RESTful Web Services


Leonard Richardson - 2007
    But can you also build web sites that are usable by machines? That's where the future lies, and that's what RESTful Web Services shows you how to do. The World Wide Web is the most popular distributed application in history, and Web services and mashups have turned it into a powerful distributed computing platform. But today's web service technologies have lost sight of the simplicity that made the Web successful. They don't work like the Web, and they're missing out on its advantages. This book puts the "Web" back into web services. It shows how you can connect to the programmable web with the technologies you already use every day. The key is REST, the architectural style that drives the Web. This book:Emphasizes the power of basic Web technologies -- the HTTP application protocol, the URI naming standard, and the XML markup language Introduces the Resource-Oriented Architecture (ROA), a common-sense set of rules for designing RESTful web services Shows how a RESTful design is simpler, more versatile, and more scalable than a design based on Remote Procedure Calls (RPC) Includes real-world examples of RESTful web services, like Amazon's Simple Storage Service and the Atom Publishing Protocol Discusses web service clients for popular programming languages Shows how to implement RESTful services in three popular frameworks -- Ruby on Rails, Restlet (for Java), and Django (for Python) Focuses on practical issues: how to design and implement RESTful web services and clients This is the first book that applies the REST design philosophy to real web services. It sets down the best practices you need to make your design a success, and the techniques you need to turn your design into working code. You can harness the power of the Web for programmable applications: you just have to work with the Web instead of against it. This book shows you how.