Serious Cryptography: A Practical Introduction to Modern Encryption


Jean-Philippe Aumasson - 2017
    You’ll learn about authenticated encryption, secure randomness, hash functions, block ciphers, and public-key techniques such as RSA and elliptic curve cryptography.You’ll also learn: - Key concepts in cryptography, such as computational security, attacker models, and forward secrecy - The strengths and limitations of the TLS protocol behind HTTPS secure websites - Quantum computation and post-quantum cryptography - About various vulnerabilities by examining numerous code examples and use cases - How to choose the best algorithm or protocol and ask vendors the right questionsEach chapter includes a discussion of common implementation mistakes using real-world examples and details what could go wrong and how to avoid these pitfalls. Whether you’re a seasoned practitioner or a beginner looking to dive into the field, Serious Cryptography will provide a complete survey of modern encryption and its applications.

Hands-On Machine Learning with Scikit-Learn and TensorFlow


Aurélien Géron - 2017
    Now that machine learning is thriving, even programmers who know close to nothing about this technology can use simple, efficient tools to implement programs capable of learning from data. This practical book shows you how.By using concrete examples, minimal theory, and two production-ready Python frameworks—Scikit-Learn and TensorFlow—author Aurélien Géron helps you gain an intuitive understanding of the concepts and tools for building intelligent systems. You’ll learn how to use a range of techniques, starting with simple Linear Regression and progressing to Deep Neural Networks. If you have some programming experience and you’re ready to code a machine learning project, this guide is for you.This hands-on book shows you how to use:Scikit-Learn, an accessible framework that implements many algorithms efficiently and serves as a great machine learning entry pointTensorFlow, a more complex library for distributed numerical computation, ideal for training and running very large neural networksPractical code examples that you can apply without learning excessive machine learning theory or algorithm details

Getting Real: The Smarter, Faster, Easier Way to Build a Web Application


37 Signals - 2006
    At under 200 pages it's quick reading too. Makes a great airplane book.

Grokking Algorithms An Illustrated Guide For Programmers and Other Curious People


Aditya Y. Bhargava - 2015
    The algorithms you'll use most often as a programmer have already been discovered, tested, and proven. If you want to take a hard pass on Knuth's brilliant but impenetrable theories and the dense multi-page proofs you'll find in most textbooks, this is the book for you. This fully-illustrated and engaging guide makes it easy for you to learn how to use algorithms effectively in your own programs.Grokking Algorithms is a disarming take on a core computer science topic. In it, you'll learn how to apply common algorithms to the practical problems you face in day-to-day life as a programmer. You'll start with problems like sorting and searching. As you build up your skills in thinking algorithmically, you'll tackle more complex concerns such as data compression or artificial intelligence. Whether you're writing business software, video games, mobile apps, or system utilities, you'll learn algorithmic techniques for solving problems that you thought were out of your grasp. For example, you'll be able to:Write a spell checker using graph algorithmsUnderstand how data compression works using Huffman codingIdentify problems that take too long to solve with naive algorithms, and attack them with algorithms that give you an approximate answer insteadEach carefully-presented example includes helpful diagrams and fully-annotated code samples in Python. By the end of this book, you will know some of the most widely applicable algorithms as well as how and when to use them.

The Rust Programming Language


Steve Klabnik
    This is the undisputed go-to guide to Rust, written by two members of the Rust core team, with feedback and contributions from 42 members of the community. The book assumes that you’ve written code in another programming language but makes no assumptions about which one, meaning the material is accessible and useful to developers from a wide variety of programming backgrounds.Known by the Rust community as "The Book," The Rust Programming Language includes concept chapters, where you’ll learn about a particular aspect of Rust, and project chapters, where you’ll apply what you’ve learned so far to build small programs.The Book opens with a quick hands-on project to introduce the basics then explores key concepts in depth, such as ownership, the type system, error handling, and fearless concurrency. Next come detailed explanations of Rust-oriented perspectives on topics like pattern matching, iterators, and smart pointers, with concrete examples and exercises--taking you from theory to practice.The Rust Programming Language will show you how to: Grasp important concepts unique to Rust like ownership, borrowing, and lifetimes Use Cargo, Rust’s built-in package manager, to build and maintain your code, including downloading and building dependencies Effectively use Rust’s zero-cost abstractions and employ your ownYou’ll learn to develop reliable code that’s speed and memory efficient, while avoiding the infamous and arcane programming pitfalls common at the systems level. When you need to dive down into lower-level control, this guide will show you how without taking on the customary risk of crashes or security holes and without requiring you to learn the fine points of a fickle toolchain.You’ll also learn how to create command line programs, build single- and multithreaded web servers, and much more.The Rust Programming Language fully embraces Rust’s potential to empower its users. This friendly and approachable guide will help you build not only your knowledge of Rust but also your ability to program with confidence in a wider variety of domains.

This Is Why We Can't Have Nice Things: Mapping the Relationship Between Online Trolling and Mainstream Culture


Whitney Phillips - 2015
    They gleefully whip the media into a frenzy over a fake teen drug crisis; they post offensive messages on Facebook memorial pages, traumatizing grief-stricken friends and family; they use unabashedly racist language and images. They take pleasure in ruining a complete stranger's day and find amusement in their victim's anguish. In short, trolling is the obstacle to a kinder, gentler Internet. To quote a famous Internet meme, trolling is why we can't have nice things online.Or at least that's what we have been led to believe. In this provocative book, Whitney Phillips argues that trolling, widely condemned as obscene and deviant, actually fits comfortably within the contemporary media landscape. Trolling may be obscene, but, Phillips argues, it isn't all that deviant. Trolls' actions are born of and fueled by culturally sanctioned impulses -- which are just as damaging as the trolls' most disruptive behaviors.Phillips describes, for example, the relationship between trolling and sensationalist corporate media -- pointing out that for trolls, exploitation is a leisure activity; for media, it's a business strategy. She shows how trolls, "the grimacing poster children for a socially networked world," align with social media. And she documents how trolls, in addition to parroting media tropes, also offer a grotesque pantomime of dominant cultural tropes, including gendered notions of dominance and success and an ideology of entitlement. We don't just have a trolling problem, Phillips argues; we have a culture problem. This Is Why We Can't Have Nice Things isn't only about trolls; it's about a culture in which trolls thrive.

From Gutenberg to Zuckerberg: What You Really Need to Know About the Internet


John Naughton - 2011
    In the process we've been remarkably incurious about its meaning, significance or cultural implications. Most people have no idea how the network works, nor any conception of its architecture; and few can explain why it has been - and continues to be - so uniquely disruptive in social, economic and cultural contexts. In other words, our society has become dependent on a utility that it doesn't really understand. John Naughton has distilled the noisy chatter surrounding the internet's relentless evolution into nine clear-sighted and accessible areas of understanding. In doing so he affords everyone the requisite knowledge to make better use of the technologies and networks around us, and see lucidly into their future implications. Along the way FROM GUTENBERG TO ZUCKERBERG covers areas as diverse as the science of complexity, the economics of abundance, the appeal of disruption and the problematic nature of intellectual property. FROM GUTENBERG TO ZUCKERBERG gives you all the basic, conceptual equipment you need to understand the Internet phenomenon.

The Art of Computer Programming, Volume 1: Fundamental Algorithms


Donald Ervin Knuth - 1973
     -Byte, September 1995 I can't begin to tell you how many pleasurable hours of study and recreation they have afforded me! I have pored over them in cars, restaurants, at work, at home... and even at a Little League game when my son wasn't in the line-up. -Charles Long If you think you're a really good programmer... read [Knuth's] Art of Computer Programming... You should definitely send me a resume if you can read the whole thing. -Bill Gates It's always a pleasure when a problem is hard enough that you have to get the Knuths off the shelf. I find that merely opening one has a very useful terrorizing effect on computers. -Jonathan Laventhol This first volume in the series begins with basic programming concepts and techniques, then focuses more particularly on information structures-the representation of information inside a computer, the structural relationships between data elements and how to deal with them efficiently. Elementary applications are given to simulation, numerical methods, symbolic computing, software and system design. Dozens of simple and important algorithms and techniques have been added to those of the previous edition. The section on mathematical preliminaries has been extensively revised to match present trends in research. Ebook (PDF version) produced by Mathematical Sciences Publishers (MSP), http: //msp.org

Designing Data-Intensive Applications


Martin Kleppmann - 2015
    Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords?In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications. Peer under the hood of the systems you already use, and learn how to use and operate them more effectively Make informed decisions by identifying the strengths and weaknesses of different tools Navigate the trade-offs around consistency, scalability, fault tolerance, and complexity Understand the distributed systems research upon which modern databases are built Peek behind the scenes of major online services, and learn from their architectures

Targeted: My Inside Story of Cambridge Analytica and How Trump and Facebook Broke Democracy


Brittany Kaiser - 2019
    A veteran of Barack Obama's 2008 campaign, Kaiser's goal was to utilize data for humanitarian purposes, most notably to prevent genocide and human rights abuses. But her experience inside Cambridge Analytica opened her eyes to the tremendous risks that this unregulated industry poses to privacy and democracy.Targeted is Kaiser's eyewitness chronicle of the dramatic and disturbing story of the rise and fall of Cambridge Analytica. She reveals to the public how Facebook's lax policies and lack of sufficient national laws allowed voters to be manipulated in both Britain and the United States, where personal data was weaponized to spread fake news and racist messaging during the Brexit vote and the 2016 election. But the damage isn't done Kaiser warns; the 2020 election can be compromised as well if we continue to do nothing.In the aftermath of the U.S. election, as she became aware of the horrifying reality of what Cambridge Analytica had done in support of Donald Trump, Kaiser made the difficult choice to expose the truth. Risking her career, relationships, and personal safety, she told authorities about the data industry's unethical business practices, eventually testifying before Parliament about the company's Brexit efforts and helping Special Counsel Robert Mueller's investigation into Russian interference in the 2016 election, alongside at least 10 other international investigations.Packed with never-before-publicly-told stories and insights, Targeted goes inside the secretive meetings with Trump campaign personnel and details the promises Cambridge Analytica made to win. Throughout, Kaiser makes the case for regulation, arguing that legal oversight of the data industry is not only justifiable but essential to ensuring the long-term safety of our democracy.

The Zinn Reader: Writings on Disobedience and Democracy


Howard Zinn - 1997
    It is rare that a historian of the Left has managed to retain as much credibility while refusing to let his academic mantle change his beautiful writing style from being anything but direct, forthright, and accessible. Whether his subject is war, race, politics, economic justice, or history itself, each of his works serves as a reminder that to embrace one's subjectivity can mean embracing one's humanity, that heart and mind can speak with one voice. Here, in six sections, is the historian's own choice of his shorter essays on some of the most critical problems facing America throughout its history, and today.

Being Digital


Nicholas Negroponte - 1995
    Negroponte's fans will want to get a copy of Being Digital, which is an edited version of the 18 articles he wrote for Wired about "being digital." Negroponte's text is mostly a history of media technology rather than a set of predictions for future technologies. In the beginning, he describes the evolution of CD-ROMs, multimedia, hypermedia, HDTV (high-definition television), and more. The section on interfaces is informative, offering an up-to-date history on visual interfaces, graphics, virtual reality (VR), holograms, teleconferencing hardware, the mouse and touch-sensitive interfaces, and speech recognition. In the last chapter and the epilogue, Negroponte offers visionary insight on what "being digital" means for our future. Negroponte praises computers for their educational value but recognizes certain dangers of technological advances, such as increased software and data piracy and huge shifts in our job market that will require workers to transfer their skills to the digital medium. Overall, Being Digital provides an informative history of the rise of technology and some interesting predictions for its future.

A World Without Email: Reimagining Work in an Age of Communication Overload


Cal Newport - 2021
    Their days are defined by a relentless barrage of incoming messages and back-and-forth digital conversations--a state of constant, anxious chatter in which nobody can disconnect, and so nobody has the cognitive bandwidth to perform substantive work. There was a time when tools like email felt cutting edge, but a thorough review of current evidence reveals that the hyperactive hive mind workflow they helped create has become a productivity disaster, reducing profitability and perhaps even slowing overall economic growth. Equally worrisome, it makes us miserable. Humans are simply not wired for constant digital communication.We have become so used to an inbox-driven workday that it's hard to imagine alternatives. But they do exist. Drawing on years of investigative reporting, author and computer science professor Cal Newport makes the case that our current approach to work is broken, then lays out a series of principles and concrete instructions for fixing it. In A World without Email, he argues for a workplace in which clear processes--not haphazard messaging--define how tasks are identified, assigned and reviewed. Each person works on fewer things (but does them better), and aggressive investment in support reduces the ever-increasing burden of administrative tasks. Above all else, important communication is streamlined, and inboxes and chat channels are no longer central to how work unfolds.The knowledge sector's evolution beyond the hyperactive hive mind is inevitable. The question is not whether a world without email is coming (it is), but whether you'll be ahead of this trend. If you're a CEO seeking a competitive edge, an entrepreneur convinced your productivity could be higher, or an employee exhausted by your inbox, A World Without Email will convince you that the time has come for bold changes, and will walk you through exactly how to make them happen.

The Rails Way


Obie Fernandez - 2007
    Now, for the first time, there s a comprehensive, authoritative guide to building production-quality software with Rails. Pioneering Rails developer Obie Fernandez and a team of experts illuminate the entire Rails API, along with the Ruby idioms, design approaches, libraries, and plug-ins that make Rails so valuable. Drawing on their unsurpassed experience, they address the real challenges development teams face, showing how to use Rails tools and best practices to maximize productivity and build polished applications users will enjoy. Using detailed code examples, Obie systematically covers Rails key capabilities and subsystems. He presents advanced programming techniques, introduces open source libraries that facilitate easy Rails adoption, and offers important insights into testing and production deployment. Dive deep into the Rails codebase together, discovering why Rails behaves as it does and how to make it behave the way you want it to. This book will help you Increase your productivity as a web developer Realize the overall joy of programming with Ruby on Rails Learn what s new in Rails 2.0 Drive design and protect long-term maintainability with TestUnit and RSpec Understand and manage complex program flow in Rails controllers Leverage Rails support for designing REST-compliant APIs Master sophisticated Rails routing concepts and techniques Examine and troubleshoot Rails routing Make the most of ActiveRecord object-relational mapping Utilize Ajax within your Rails applications Incorporate logins and authentication into your application Extend Rails with the best third-party plug-ins and write your own Integrate email services into your applications with ActionMailer Choose the right Rails production configurations Streamline deployment with Capistrano "

The Wisdom of Crowds


James Surowiecki - 2004
    With boundless erudition and in delightfully clear prose, Surowiecki ranges across fields as diverse as popular culture, psychology, ant biology, behavioral economics, artificial intelligence, military history, and politics to show how this simple idea offers important lessons for how we live our lives, select our leaders, run our companies, and think about our world.