Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction
Arvind Narayanan - 2016
Whether you are a student, software developer, tech entrepreneur, or researcher in computer science, this authoritative and self-contained book tells you everything you need to know about the new global money for the Internet age.How do Bitcoin and its block chain actually work? How secure are your bitcoins? How anonymous are their users? Can cryptocurrencies be regulated? These are some of the many questions this book answers. It begins by tracing the history and development of Bitcoin and cryptocurrencies, and then gives the conceptual and practical foundations you need to engineer secure software that interacts with the Bitcoin network as well as to integrate ideas from Bitcoin into your own projects. Topics include decentralization, mining, the politics of Bitcoin, altcoins and the cryptocurrency ecosystem, the future of Bitcoin, and more.An essential introduction to the new technologies of digital currencyCovers the history and mechanics of Bitcoin and the block chain, security, decentralization, anonymity, politics and regulation, altcoins, and much moreFeatures an accompanying website that includes instructional videos for each chapter, homework problems, programming assignments, and lecture slidesAlso suitable for use with the authors' Coursera online courseElectronic solutions manual (available only to professors)
AWS Lambda: A Guide to Serverless Microservices
Matthew Fuller - 2016
Lambda enables users to develop code that executes in response to events - API calls, file uploads, schedules, etc - and upload it without worrying about managing traditional server metrics such as disk space, memory, or CPU usage. With its "per execution" cost model, Lambda can enable organizations to save hundreds or thousands of dollars on computing costs. With in-depth walkthroughs, large screenshots, and complete code samples, the reader is guided through the step-by-step process of creating new functions, responding to infrastructure events, developing API backends, executing code at specified intervals, and much more. Introduction to AWS Computing Evolution of the Computing Workload Lambda Background The Internals The Basics Functions Languages Resource Allocation Getting Set Up Hello World Uploading the Function Working with Events AWS Events Custom Events The Context Object Properties Methods Roles and Permissions Policies Trust Relationships Console Popups Cross Account Access Dependencies and Resources Node Modules OS Dependencies OS Resources OS Commands Logging Searching Logs Testing Your Function Lambda Console Tests Third-Party Testing Libraries Simulating Context Hello S3 Object The Bucket The Role The Code The Event The Trigger Testing When Lambda Isn’t the Answer Host Access Fine-Tuned Configuration Security Long-Running Tasks Where Lambda Excels AWS Event-Driven Tasks Scheduled Events (Cron) Offloading Heavy Processing API Endpoints Infrequently Used Services Real-World Use Cases S3 Image Processing Shutting Down Untagged Instances Triggering CodeDeploy with New S3 Uploads Processing Inbound Email Enforcing Security Policies Detecting Expiring Certificates Utilizing the AWS API Execution Environment The Code Pipeline Cold vs. Hot Execution What is Saved in Memory Scaling and Container Reuse From Development to Deployment Application Design Development Patterns Testing Deployment Monitoring Versioning and Aliasing Costs Short Executions Long-Running Processes High-Memory Applications Free Tier Calculating Pricing CloudFormation Reusable Template with Minimum Permissions Cross Account Access CloudWatch Alerts AWS API Gateway API Gateway Event Creating the Lambda Function Creating a New API, Resource, and Method Initial Configuration Mapping Templates Adding a Query String Using HTTP Request Information Within Lambda Deploying the API Additional Use Cases Lambda Competitors Iron.io StackHut WebTask.io Existing Cloud Providers The Future of Lambda More Resources Conclusion
Introducing Ethereum and Solidity: Foundations of Cryptocurrency and Blockchain Programming for Beginners
Chris Dannen - 2017
Blockchain protocols are taking the world by storm, and the Ethereum project, with its Turing-complete scripting language Solidity, has rapidly become a front-runner. This book presents the blockchain phenomenon in context; then situates Ethereum in a world pioneered by Bitcoin.See why professionals and non-professionals alike are honing their skills in smart contract patterns and distributed application development. You'll review the fundamentals of programming and networking, alongside its introduction to the new discipline of crypto-economics. You'll then deploy smart contracts of your own, and learn how they can serve as a back-end for JavaScript and HTML applications on the Web.Many Solidity tutorials out there today have the same flaw: they are written for "advanced" JavaScript developers who want to transfer their skills to a blockchain environment. Introducing Ethereum and Solidity is accessible to technology professionals and enthusiasts of all levels. You'll find exciting sample code that can move forward real world assets in both the academic and the corporate arenas. Find out now why this book is a powerful gateway for creative technologists of all types, from concept to deployment.What You'll LearnSee how Ethereum (and other cryptocurrencies) workCompare distributed apps (dapps) to web appsWrite Ethereum smart contracts in Solidity Connect Ethereum smart contracts to your HTML/CSS/JavaScript web applicationsDeploy your own dapp, coin, and blockchainWork with basic and intermediate smart contractsWho This Book Is For Anyone who is curious about Ethereum or has some familiarity with computer science Product managers, CTOs, and experienced JavaScript programmersExperts will find the advanced sample projects in this book rewarding because of the power of Solidity
21 Lessons: What I've Learned from Falling Down the Bitcoin Rabbit Hole
Gigi - 2020
Like many others, I feel like I have learned more in the last couple of years studying Bitcoin than I have during two decades of formal education. The following lessons are a distillation of what I’ve learned. First published as an article series titled “What I’ve Learned From Bitcoin,” what follows can be seen as a third edition of the original series. Like Bitcoin, these lessons aren’t a static thing. I plan to work on them periodically, releasing updated versions and additional material in the future.Bitcoin is an inexhaustible teacher, which is why I do not claim that these lessons are all-encompassing or complete. They are a reflection of my personal journey down the rabbit hole. There are many more lessons to be learned, and every person will learn something different from entering the world of Bitcoin. I hope that you will find these lessons useful and that the process of learning them by reading won’t be as arduous and painful as learning them firsthand.
More Effective C#: 50 Specific Ways to Improve Your C#
Bill Wagner - 2008
If you are serious about developing with the C# language, you need this book." -Bill Craun, Principal Consultant, Ambassador Solutions, Inc. "More Effective C# is an opportunity to work beside Bill Wagner. Bill leverages his knowledge of C# and distills his expertise down to some very real advice about programming and designing applications that every serious Visual C# user should know. More Effective C# is one of those rare books that doesn't just regurgitate syntax, but teaches you how to use the C# language." -Peter Ritchie, Microsoft MVP: Visual C# "More Effective C# is a great follow-up to Bill Wagner's previous book. The extensive C# 3.0 and LINQ coverage is extremely timely!" -Tomas Restrepo, Microsoft MVP: Visual C++, .NET, and Biztalk Server "As one of the current designers of C#, it is rare that I learn something new about the language by reading a book. More Effective C# is a notable exception. Gently blending concrete code and deep insights, Bill Wagner frequently makes me look at C# in a fresh light-one that really makes it shine. More Effective C# is at the surface a collection of very useful guidelines. Look again. As you read through it, you'll find that you acquire more than just the individual pieces of advice; gradually you'll pick up on an approach to programming in C# that is thoughtful, beautiful, and deeply pleasant. While you can make your way willy-nilly through the individual guidelines, I do recommend reading the whole book-or at least not skipping over the chapter introductions before you dive into specific nuggets of advice. There's perspective and insight to be found there that in itself can be an important guide and inspiration for your future adventures in C#." -Mads Torgersen, Program Manager, Visual C#, Microsoft "Bill Wagner has written an excellent book outlining the best practices for developers who work with the C# language. By authoring More Effective C#, he has again established himself as one of the most important voices in the C# community. Many of us already know how to use C#. What we need is advice on how to hone our skills so that we can become wiser programmers. There is no more sophisticated source of information on how to become a first-class C# developer than Bill Wagner's book. Bill is intelligent, thoughtful, experienced, and skillful. By applying the lessons from this book to your own code, you will find many ways to polish and improve the work that you produce." -Charlie Calvert, Community Program Manager, Visual C#, Microsoft In More Effective C#, Microsoft C# MVP and Regional Director Bill Wagner introduces fifty brand-new ways to write more efficient and more robust software. This all-new book follows the same format as Wagner's best-selling Effective C# (Addison-Wesley, 2005), providing clear, practical explanations, expert tips, and plenty of realistic code examples. Wagner shows how to make the most of powerful innovations built into Microsoft's new C# 3.0 and .NET Framework 3.5, as well as advanced C# language capabilities not covered in his previous book. Drawing on his unsurpassed C# experience, the author reveals new best practices for working with LINQ, generics, metaprogramming, and many other features. He also uncovers practices that compromise performance or reliability and shows exactly how to avoid them. More Effective C# shows how to Use generics to express your design intent more effectively Master advanced generics techniques, such as constraints, method constraints, and generic specialization Use the multithreaded techniques you'll need to work with the .NET framework every day Express modern design idioms using the rich palette of C# language features Successfully mix object oriented and functional programming constructs Create composable interfaces and avoid confusion in public interfaces Use extension methods to separate contracts from implementation Program successfully with C# closures and anonymous types Write more effective LINQ queries Make the most of LINQ Lazy Evaluation Queries and Lambda Expressions Distinguish and convert between delegates and expression trees Efficiently utilize nullable types and partial classes Use implicit properties for mutable, nonserializable data You're already a successful C# programmer-this book can help you become an outstanding one.
Tribe of Hackers: Cybersecurity Advice from the Best Hackers in the World
Marcus J. Carey - 2019
Tribe of Hackers wants to change that. We asked for industry, career, and personal advice from 70 cybersecurity luminaries who are ready to break down barriers and shatter ceilings. It's about time.This book can be a catalyst for change for anyone, from beginners trying to enter the industry, to practitioners looking to start their own firms. What tips do the founders of Dragos, Inc. and Duo Security have on starting a company? Do you need a college degree or certification to be a cybersecurity professional? What is the biggest bang-for-the-buck action your organization can take to improve its cybersecurity posture? What "life hacks" to real hackers use to make their own lives easier? What resources can women in cybersecurity utilize to maximize their potential?All proceeds from the book will go towards: Bunker Labs, Sickle Cell Disease Association of America, Rainforest Partnership, and Start-Up! Kid's Club.We can't wait to show you the most epic cybersecurity thought leadership collaborative effort, ever.(Source: Amazon.com)
Bulletproof SSL and TLS: The Complete Guide to Deploying Secure Servers and Web Applications
Ivan Ristic - 2014
Quite the contrary; mistakes are easy to make and can often fully compromise security. Bulletproof SSL and TLS is the first SSL book written with users in mind. It is the book you will want to read if you need to assess risks related to website encryption, manage keys and certificates, configure secure servers, and deploy secure web applications. Bulletproof SSL and TLS is based on several years of work researching SSL and how SSL is used in real life, implementing and supporting a comprehensive assessment tool running on the SSL Labs website (https://www.ssllabs.com), and assessing most of the public SSL servers on the Internet. The assessment tool helped many site owners identify and solve issues with their SSL deployments. The intent of this book is to provide a definitive reference for SSL deployment that is full of practical and relevant information.
Move Fast: How Facebook Builds Software
Jeff Meyerson - 2021
You may not like Facebook, but you can't deny its success. And to a large degree, that success stems from the "move fast" ethos. The entire culture of Facebook is built for speed.Move Fast is an exploration of modern software strategies and tactics through the lens of Facebook. Relying on in-depth interviews with more than two dozen Facebook engineers, this book explores the product strategy, cultural principles, and technologies that made Facebook the dominant social networking company. Most importantly, Move Fast investigates how you can apply those strategies to your creative projects.It's not easy to build a software company, but once you know how to move fast, your company will be prepared to build a strategy that benefits from the world's rapid changes, rather than suffering from them.
You Don't Know JS Yet: Get Started
Kyle Simpson - 2020
But with a million blogs, books, and videos out there, just where do you start? The worldwide best selling "You Don't Know JS" book series is back for a 2nd edition: "You Don't Know JS Yet". All 6 books are brand new, rewritten to cover all sides of JS for 2020 and beyond. "Get Started" prepares you for the journey ahead, first surveying the language then detailing how the rest of the You Don't Know JS Yet book series guides you to knowing JS more deeply.
Colossus: The Secrets of Bletchley Park's Codebreaking Computers
B. Jack Copeland - 2006
This book rewrites the history of computer science, arguing that in reality Colossus--the giant computer built by the British secret service during World War II--predates ENIAC by two years.Colossus was built during the Second World War at the Government Code and Cypher School at Bletchley Park. Until very recently, much about the Colossus machine was shrouded in secrecy, largely because the code-breaking algorithms that were employed during World War II remained in use by the British security services until a short time ago. In addition, the United States has recently declassified a considerable volume of wartime documents relating to Colossus. Jack Copeland has brought together memoirs of veterans of Bletchley Park--the top-secret headquarters of Britain's secret service--and others who draw on the wealth of declassified information to illuminate the crucial role Colossus played during World War II. Included here are pieces by the former WRENS who actually worked the machine, the scientist who pioneered the use of vacuum tubes in data processing, and leading authorities on code-breaking and computer science.A must read for anyone curious about code-breaking or World War II espionage, Colossus offers a fascinating insider's account of the world first giant computer, the great great grandfather of the massive computers used today by the CIA and the National Security Agency.
Security Engineering: A Guide to Building Dependable Distributed Systems
Ross J. Anderson - 2008
Spammers, virus writers, phishermen, money launderers, and spies now trade busily with each other in a lively online criminal economy and as they specialize, they get better. In this indispensable, fully updated guide, Ross Anderson reveals how to build systems that stay dependable whether faced with error or malice. Here's straight talk on critical topics such as technical engineering basics, types of attack, specialized protection mechanisms, security psychology, policy, and more.
Learning Ruby
Michael J. Fitzgerald - 2007
Written for both experienced and new programmers alike, Learning Ruby is a just-get-in-and-drive book -- a hands-on tutorial that offers lots of Ruby programs and lets you know how and why they work, just enough to get you rolling down the road. Interest in Ruby stems from the popularity of Rails, the web development framework that's attracting new devotees and refugees from Java and PHP. But there are plenty of other uses for this versatile language. The best way to learn is to just try the code! You'll find examples on nearly every page of this book that you can imitate and hack. Briefly, this book:Outlines many of the most important features of Ruby Demonstrates how to use conditionals, and how to manipulate strings in Ruby. Includes a section on regular expressions Describes how to use operators, basic math, functions from the Math module, rational numbers, etc. Talks you through Ruby arrays, and demonstrates hashes in detail Explains how to process files with Ruby Discusses Ruby classes and modules (mixins) in detail, including a brief introduction to object-oriented programming (OOP) Introduces processing XML, the Tk toolkit, RubyGems, reflection, RDoc, embedded Ruby, metaprogramming, exception handling, and other topics Acquaints you with some of the essentials of Rails, and includes a short Rails tutorial. Each chapter concludes with a set of review questions, and appendices provide you with a glossary of terms related to Ruby programming, plus reference material from the book in one convenient location. If you want to take Ruby out for a drive, Learning Ruby holds the keys.
Teach Yourself C
Herbert Schildt - 1989
This is a step-by-step foundation text in C, including examples, test-yourself exercises and up-to-date coverage of the C standard library and Windows programming.
The Haskell School of Expression: Learning Functional Programming Through Multimedia
Paul Hudak - 2000
It has become popular in recent years because of its simplicity, conciseness, and clarity. This book teaches functional programming as a way of thinking and problem solving, using Haskell, the most popular purely functional language. Rather than using the conventional (boring) mathematical examples commonly found in other programming language textbooks, the author uses examples drawn from multimedia applications, including graphics, animation, and computer music, thus rewarding the reader with working programs for inherently more interesting applications. Aimed at both beginning and advanced programmers, this tutorial begins with a gentle introduction to functional programming and moves rapidly on to more advanced topics. Details about progamming in Haskell are presented in boxes throughout the text so they can be easily found and referred to.
Django for Beginners: Learn web development with Django 2.0
William S. Vincent - 2018
Proceed step-by-step through five progressively more complex web applications: from a "Hello World" app all the way to a robust Newspaper app with a custom user model, complete user authentication flow, foreign key relationships, and more. Learn current best practices around class-based views, templates, urls, user authentication, testing, and deployment. The material is up-to-date with the latest versions of both Django (2.0) and Python (3.6). TABLE OF CONTENTS: * Introduction * Chapter 1: Initial Setup * Chapter 2: Hello World app * Chapter 3: Pages app * Chapter 4: Message Board app * Chapter 5: Blog app * Chapter 6: Forms * Chapter 7: User Accounts * Chapter 8: Custom User Model * Chapter 9: User Authentication * Chapter 10: Bootstrap * Chapter 11: Password Change and Reset * Chapter 12: Email * Chapter 13: Newspaper app * Chapter 14: Permissions and Authorizations * Chapter 15: Comments * Conclusion