Advanced Scala with Cats


Noel Welsh - 2017
    This means designing systems as small composable units, expressing constraints and interactions via the type system, and using composition to guide the construction of large systems in a way that maintains the original architectural vision.The book also serves as an introduction to the Cats library. We use abstractions from Cats, and we explain the structure of Cats so you can use it without fear in your own code base. The broad ideas are not specific to Cats, but Cats provides an excellent implementation that is beneficial to learn in its own right.

The Tangled Web: A Guide to Securing Modern Web Applications


Michal Zalewski - 2011
    Every piece of the web application stack, from HTTP requests to browser-side scripts, comes with important yet subtle security consequences. To keep users safe, it is essential for developers to confidently navigate this landscape.In The Tangled Web, Michal Zalewski, one of the world's top browser security experts, offers a compelling narrative that explains exactly how browsers work and why they're fundamentally insecure. Rather than dispense simplistic advice on vulnerabilities, Zalewski examines the entire browser security model, revealing weak points and providing crucial information for shoring up web application security. You'll learn how to:Perform common but surprisingly complex tasks such as URL parsing and HTML sanitization Use modern security features like Strict Transport Security, Content Security Policy, and Cross-Origin Resource Sharing Leverage many variants of the same-origin policy to safely compartmentalize complex web applications and protect user credentials in case of XSS bugs Build mashups and embed gadgets without getting stung by the tricky frame navigation policy Embed or host user-supplied content without running into the trap of content sniffing For quick reference, "Security Engineering Cheat Sheets" at the end of each chapter offer ready solutions to problems you're most likely to encounter. With coverage extending as far as planned HTML5 features, The Tangled Web will help you create secure web applications that stand the test of time.

The Effective Engineer: How to Leverage Your Efforts In Software Engineering to Make a Disproportionate and Meaningful Impact


Edmond Lau - 2015
    I'm going to share that mindset with you — along with hundreds of actionable techniques and proven habits — so you can shortcut those years.Introducing The Effective Engineer — the only book designed specifically for today's software engineers, based on extensive interviews with engineering leaders at top tech companies, and packed with hundreds of techniques to accelerate your career.For two years, I embarked on a quest seeking an answer to one question:How do the most effective engineers make their efforts, their teams, and their careers more successful?I interviewed and collected stories from engineering VPs, directors, managers, and other leaders at today's top software companies: established, household names like Google, Facebook, Twitter, and LinkedIn; rapidly growing mid-sized companies like Dropbox, Square, Box, Airbnb, and Etsy; and startups like Reddit, Stripe, Instagram, and Lyft.These leaders shared stories about the most valuable insights they've learned and the most common and costly mistakes that they've seen engineers — sometimes themselves — make.This is just a small sampling of the hard questions I posed to them:- What engineering qualities correlate with future success?- What have you done that has paid off the highest returns?- What separates the most effective engineers you've worked with from everyone else?- What's the most valuable lesson your team has learned in the past year?- What advice do you give to new engineers on your team? Everyone's story is different, but many of the lessons share common themes.You'll get to hear stories like:- How did Instagram's team of 5 engineers build and support a service that grew to over 40 million users by the time the company was acquired?- How and why did Quora deploy code to production 40 to 50 times per day?- How did the team behind Google Docs become the fastest acquisition to rewrite its software to run on Google's infrastructure?- How does Etsy use continuous experimentation to design features that are guaranteed to increase revenue at launch?- How did Facebook's small infrastructure team effectively operate thousands of database servers?- How did Dropbox go from barely hiring any new engineers to nearly tripling its team size year-over-year? What's more, I've distilled their stories into actionable habits and lessons that you can follow step-by-step to make your career and your team more successful.The skills used by effective engineers are all learnable.And I'll teach them to you. With The Effective Engineer, I'll teach you a unifying framework called leverage — the value produced per unit of time invested — that you can use to identify the activities that produce disproportionate results.Here's a sneak peek at some of the lessons you'll learn. You'll learn how to:- Prioritize the right projects and tasks to increase your impact.- Earn more leeway from your peers and managers on your projects.- Spend less time maintaining and fixing software and more time building and shipping new features.- Produce more accurate software estimates.- Validate your ideas cheaply to reduce wasted work.- Navigate organizational and people-related bottlenecks.- Find the appropriate level of code reviews, testing, abstraction, and technical debt to balance speed and quality.- Shorten your debugging workflow to increase your iteration speed.

The Passionate Programmer


Chad Fowler - 2009
    In this book, you'll learn how to become an entrepreneur, driving your career in the direction of your choosing. You'll learn how to build your software development career step by step, following the same path that you would follow if you were building, marketing, and selling a product. After all, your skills themselves are a product. The choices you make about which technologies to focus on and which business domains to master have at least as much impact on your success as your technical knowledge itself--don't let those choices be accidental. We'll walk through all aspects of the decision-making process, so you can ensure that you're investing your time and energy in the right areas. You'll develop a structured plan for keeping your mind engaged and your skills fresh. You'll learn how to assess your skills in terms of where they fit on the value chain, driving you away from commodity skills and toward those that are in high demand. Through a mix of high-level, thought-provoking essays and tactical "Act on It" sections, you will come away with concrete plans you can put into action immediately. You'll also get a chance to read the perspectives of several highly successful members of our industry from a variety of career paths. As with any product or service, if nobody knows what you're selling, nobody will buy. We'll walk through the often-neglected world of marketing, and you'll create a plan to market yourself both inside your company and to the industry in general. Above all, you'll see how you can set the direction of your career, leading to a more fulfilling and remarkable professional life.

Homeschooling: A Patchwork of Days: Share a Day with 30 Homeschooling Families


Nancy Lande - 1997
    When author Nancy Lande started homeschooling more than 10 years ago, this is the book she wanted that didn't exist. What better way to create your homeschool than reading about others and picking and choosing the styles that appeal to you? Lande has corralled a variety of homeschoolers and, with some deft editing, allowed them to speak for themselves. Every chapter features a different household on any given day. Many of the writers are mothers, but a stay-at-home dad and several children tell their tales as well. Their detailed descriptions start in the waking hours of morning and get down to the nitty-gritty information of everyday life in a homeschool: how moms fit in showers, how chores are divvied up, how reading and research are gently initiated, how parents set aside time for themselves. These writers invite the reader into their homes and advise, "Don't mind the mess." Their passages are often funny and unflinchingly honest. They aren't embarrassed to tell you they whipped out SpaghettiOs for a hurried lunch or stole a peek at CNN while ignoring the chaos in the playroom. Some of the families have created highly structured school environments within their homes, with desks and sharpened pencils. Others promote freestyle learning, with their children sprawled across the house working on projects or reading in between walking the dog, playing games, and riding bikes. The majority of families here live in Pennsylvania, the author's home state, but one writes from as far away as Scotland, another lives on a mountain in Alaska, and yet another checks in from a college town in Texas. Their learning logs, reading lists, and journal entries, along with family photos, help illustrate the book. The quilt they piece together is a great service to those wondering how to approach homeschooling. --Jodi Mailander Farrell

The Algorithm Design Manual


Steven S. Skiena - 1997
    Drawing heavily on the author's own real-world experiences, the book stresses design and analysis. Coverage is divided into two parts, the first being a general guide to techniques for the design and analysis of computer algorithms. The second is a reference section, which includes a catalog of the 75 most important algorithmic problems. By browsing this catalog, readers can quickly identify what the problem they have encountered is called, what is known about it, and how they should proceed if they need to solve it. This book is ideal for the working professional who uses algorithms on a daily basis and has need for a handy reference. This work can also readily be used in an upper-division course or as a student reference guide. THE ALGORITHM DESIGN MANUAL comes with a CD-ROM that contains: * a complete hypertext version of the full printed book. * the source code and URLs for all cited implementations. * over 30 hours of audio lectures on the design and analysis of algorithms are provided, all keyed to on-line lecture notes.

The Selfish Pig's Guide to Caring


Hugh Marriott - 2003
    Their job is long, lonely, and hard, yet there is limited support and no formal training. As a result, carers suffer frequent damage to their physical and mental health. Though carers by definition are anything but "selfish pigs," they are also liable to feelings of guilt that are often brought on by fatigue and isolation. This guide is designed to provide support for carers of every variety and air commonly ignored topics that arise when providing care. Humorous and uplifting in tone, this is the perfect resource for coming to terms with caring for someone in the grip of a debilitating disease.

The Disaster Preparedness Handbook: A Guide for Families


Arthur T. Bradley - 2011
    Ninety-nine percent of the time, the world spins like a top, the skies are clear, and your refrigerator is full of good food. But the world is a volatile place-storms rage, fires burn, and diseases spread. No one is ever completely safe. Humans live as part of a very complex ecosystem that is unpredictable and merciless. Could you protect your family in the case of an emergency-domestic or global? The Disaster Preparedness Handbook will help you to establish a practical disaster plan for your entire family (covering all fourteen basic human needs) in case the unpredictable happens. Additional information is also presented for those with special needs, including the elderly and disabled, children, pregnant women, and even pets. Well-researched by an army veteran and current NASA engineer, this is the essential guide every family should have, study, and keep handy, in case the unthinkable should occur.Shelter.First Aid.Protection.With this book you can outline your survival plan.

Fluent Python: Clear, Concise, and Effective Programming


Luciano Ramalho - 2015
    With this hands-on guide, you'll learn how to write effective, idiomatic Python code by leveraging its best and possibly most neglected features. Author Luciano Ramalho takes you through Python's core language features and libraries, and shows you how to make your code shorter, faster, and more readable at the same time.Many experienced programmers try to bend Python to fit patterns they learned from other languages, and never discover Python features outside of their experience. With this book, those Python programmers will thoroughly learn how to become proficient in Python 3.This book covers:Python data model: understand how special methods are the key to the consistent behavior of objectsData structures: take full advantage of built-in types, and understand the text vs bytes duality in the Unicode ageFunctions as objects: view Python functions as first-class objects, and understand how this affects popular design patternsObject-oriented idioms: build classes by learning about references, mutability, interfaces, operator overloading, and multiple inheritanceControl flow: leverage context managers, generators, coroutines, and concurrency with the concurrent.futures and asyncio packagesMetaprogramming: understand how properties, attribute descriptors, class decorators, and metaclasses work"

The Twelve-Factor App


Adam Wiggins - 2012
    The twelve-factor app is a methodology for building software-as-a-service apps that: - Use declarative formats for setup automation, to minimize time and cost for new developers joining the project; - Have a clean contract with the underlying operating system, offering maximum portability between execution environments; - Are suitable for deployment on modern cloud platforms, obviating the need for servers and systems administration; - Minimize divergence between development and production, enabling continuous deployment for maximum agility; - And can scale up without significant changes to tooling, architecture, or development practices.The twelve-factor methodology can be applied to apps written in any programming language, and which use any combination of backing services (database, queue, memory cache, etc).

Site Reliability Engineering: How Google Runs Production Systems


Betsy Beyer - 2016
    So, why does conventional wisdom insist that software engineers focus primarily on the design and development of large-scale computing systems?In this collection of essays and articles, key members of Google's Site Reliability Team explain how and why their commitment to the entire lifecycle has enabled the company to successfully build, deploy, monitor, and maintain some of the largest software systems in the world. You'll learn the principles and practices that enable Google engineers to make systems more scalable, reliable, and efficient--lessons directly applicable to your organization.This book is divided into four sections: Introduction--Learn what site reliability engineering is and why it differs from conventional IT industry practicesPrinciples--Examine the patterns, behaviors, and areas of concern that influence the work of a site reliability engineer (SRE)Practices--Understand the theory and practice of an SRE's day-to-day work: building and operating large distributed computing systemsManagement--Explore Google's best practices for training, communication, and meetings that your organization can use

What It Takes To Be Free


Darius Foroux - 2019
    It is never cheap; it is made difficult because freedom is the accomplishment and perfectness of man.” — Ralph Waldo EmersonThis book is for people who also believe personal freedom is the most important thing in life. In our free world, we can do what want, spend time with people we like, and have a career that gives us joy. And yet, we don’t use our freedom. Why is that?The problem is that we’re held captive by ourselves. On a deeper level, we all strive for the same thing: To be free. It’s in our nature.Every human has the desire and the need to be free. What It Takes To Be Free will lead you on the path to personal freedom. It’s a highly practical guide that’s based on timeless wisdom and personal experience.You’re the ruler of your own kingdom. You can do anything you want, spend time with people you like, and have a career that you love. If you’re willing to do what it takes, you will be free to do those things.

The Classroom Management Secret: And 45 Other Keys to a Well-Behaved Class


Michael Linsin - 2013
    Based on the popular blog, Smart Classroom Management, the book progresses step-by-step through 45 time-tested strategies, showing you how to manage your classroom in a way that inspires students to want to behave. Binding these strategies together is a little-known secret shared by the most exceptional teachers, those remembered and beloved for a lifetime. By the end of the book, you'll have the knowledge to free your classroom of misbehavior and disrespect, build easy rapport with your students, and teach with a spirit of joy and passion that you've always longed for.

The Learning Rainforest: Great Teaching In Real Classroom


Tom Sherrington - 2017
    Aimed at teachers of all kinds, busy people working in complex environments with little time to spare, it is a celebration of great teaching - the joy of it and the intellectual and personal rewards that teaching brings.The core of the book is a guide to making teaching both effective and manageable; it provides an accessible summary of key contemporary evidence-based ideas about teaching and learning and the debates that all teachers should be engaging in. It's a book packed with strategies for making great teaching attainable in the context of real schools.The Learning Rainforest metaphor is an attempt to capture various different elements of our understanding and experience of teaching. Tom's ideas about what constitutes great teaching are drawn from his experiences as a teacher and a school leader over the last 30 years, alongside everything he has read and all the debates he's engaged with during that time.An underlying theme of this book is that a career in teaching is a process of continual personal development and professional learning as is engaging in fundamental debates rage on about the kind of education we value. As you meet each new class and move from school to school, your perspectives shift; your sense of what seems to work adjusts to each new context.In writing this book, Tom is trying to capture some of the journey he's been on. He has learned that it is ok to change your mind. More than that - sometimes it is simply necessary to get your head out of the sand, to change direction; to admit your mistakes.

Pro JavaScript Design Patterns


Ross Harmes - 2007
    But there is more power waiting to be unlockedJavaScript is capable of full objectoriented capabilities, and by applyingobject-oriented principles, best practices, and design patterns to your code, you can make it more powerful, more efficient, and easier to work with alone or as part of a team.With Pro JavaScript Design Patterns, you'll start with the basics of objectoriented programming in JavaScript applicable to design patterns, including making JavaScript more expressive, inheritance, encapsulation, information hiding, and more. With that covered, you can kickstart your JavaScript development in the second part of the book, where you'll find detail on how to implement and take advantage of several design patterns in JavaScript, including composites, decorators, facades, adapters, and many more.Each chapter is packed with realworld examples of how the design patterns are best used and expert advice on writing better code, as well as what to watch out for. Along the way you'll discover how to create your own libraries and APIs for even more efficient coding.Master the basics of objectoriented programming in JavaScript, as they apply to design patterns Apply design patterns to your kickstart your JavaScript development Work through several realworld examples What you'll learn How to apply objectoriented programming techniques in JavaScript How to take advantage of inheritance, interfaces, and encapsulation and information hiding to kickstart your JavaScript development How to implement several design patterns in your JavaScript projects, including factory, facade, bridge, composite, adapter, decorator, flyweight, proxy, command, observer, and chain of responsibility How to make your code easier to manage in a team environment, as well as on your own How to create your own libraries and APIs Who this book is forThis book will be an invaluable learning tool for any experienced JavaScript developer. Table of Contents Expressive JavaScript Interfaces Encapsulation and Information Hiding Inheritance The Singleton Pattern Chaining The Factory Pattern The Bridge Pattern The Composite Pattern The Facade Pattern The Adapter Pattern The Decorator Pattern The Flyweight Pattern The Proxy Pattern The Observer Pattern The Command Pattern The Chain of Responsibility Pattern