Concepts, Techniques, and Models of Computer Programming


Peter Van Roy - 2004
    The book focuses on techniques of lasting value and explains them precisely in terms of a simple abstract machine. The book presents all major programming paradigms in a uniform framework that shows their deep relationships and how and where to use them together.After an introduction to programming concepts, the book presents both well-known and lesser-known computation models ("programming paradigms"). Each model has its own set of techniques and each is included on the basis of its usefulness in practice. The general models include declarative programming, declarative concurrency, message-passing concurrency, explicit state, object-oriented programming, shared-state concurrency, and relational programming. Specialized models include graphical user interface programming, distributed programming, and constraint programming. Each model is based on its kernel language—a simple core language that consists of a small number of programmer- significant elements. The kernel languages are introduced progressively, adding concepts one by one, thus showing the deep relationships between different models. The kernel languages are defined precisely in terms of a simple abstract machine. Because a wide variety of languages and programming paradigms can be modeled by a small set of closely related kernel languages, this approach allows programmer and student to grasp the underlying unity of programming. The book has many program fragments and exercises, all of which can be run on the Mozart Programming System, an Open Source software package that features an interactive incremental development environment.

Elements of Clojure


Zachary Tellman - 2019
    This is necessary because, in the words of Michael Polanyi, "we can know more than we can tell." Our design choices are not the result of an ineluctable chain of logic; they come from a deeper place, one which is visceral and inarticulate.Polanyi calls this "tacit knowledge", a thing which we only understand as part of something else. When we speak, we do not focus on making sounds, we focus on our words. We understand the muscular act of speech, but would struggle to explain it.To write software, we must learn where to draw boundaries. Good software is built through effective indirection. We seem to have decided that this skill can only be learned through practice; it cannot be taught, except by example. Our decisions may improve with time, but not our ability to explain them. It's true that the study of these questions cannot yield a closed-form solution for judging software design. We can make our software simple, but we cannot do the same to its problem domain, its users, or the physical world. Our tacit knowledge of this environment will always inform our designs.This doesn't mean that we can simply ignore our design process. Polanyi tells us that tacit knowledge only suffices until we fail, and the software industry is awash with failure. Our designs may never be provably correct, but we can give voice to the intuition that shaped them. Our process may always be visceral, but it doesn't have to be inarticulate.And so this book does not offer knowledge, it offers clarity. It is aimed at readers who know Clojure, but struggle to articulate the rationale of their designs to themselves and others. Readers who use other languages, but have a passing familiarity with Clojure, may also find this book useful.

ANSI Common Lisp


Paul Graham - 1996
    Beginners will find that its careful explanations and interesting examples make Lisp programming easy to learn. Professional programmers will appreciate its thorough, practical approach.FEATURES:• An up-to-date reference manual for ANSI Common Lisp.• An in-depth look at object-oriented programming. Explains the Common Lisp Object System (CLOS), and also shows how to write your own object-oriented language.• Over 20 substantial examples, including programs for ray-tracing, text generation, pattern-matching, logical inference, generating HTML, sorting and searching, file I/O, compression, and date arithmetic.• Special attention to critical concepts, including prefix syntax, code vs. data, recursion, functional programming, types, implicit pointers, dynamic allocation, closures, macros, class precedence, and generic functions vs. message-passing.• A complete guide to optimization.• The clearest and most thorough explanation of macros in any introductory book.• Examples that illustrate Lisp programming styles, including rapid prototyping, bottom-up programming, object-oriented programming, and embedded languages.• An appendix on debugging, with examples of common errors.

The Dirtbag's Guide to Life: Eternal Truth for Hiker Trash, Ski Bums, and Vagabonds


Tim Mathis - 2019
    I'd love to just get this guide out there in response!” - Heather "Anish" Anderson. 2019 National Geographic Adventurer of the Year, and author of Thirst: 2600 Miles to Home“Have you read Rolf Potts' Vagabonding? It feels a bit like the American Vagabonding.” - Six2 - Pacific Crest and Appalachian Trail Alum.“Gosh I love your book! I'm trying to read it, but for some reason I can't stop crying!!! It resonates so much and I feel so emotional about it.” - Kathy Vaughan, Team UltraPedestrian and co-author of 98 Days of Wind: The Greatest Fail of Our Life“You’re going to have to change the name if you want anyone to pick up your book who doesn’t consider themselves a “dirtbag,” “trash,” or a “bum.”” - Random stranger on Facebook who is not impressed with the title.Screw picket fences. Live your best life. Sleep in the dirt. While a life of adventure has traditionally been reserved for the rich and the sponsored, to the dirtbag, it's a birthright for the masses. Partly a celebration of an underappreciated subculture of hiker trash, ski bums, and vagabonds, and partly a "how to" guide for adventure on the cheap, The Dirtbag's Guide to Life is the first solid attempt to define an outdoor movement that has taken root in backpacker hostels, long trails, and climbing crags around the world.Distilling personal wisdom and practical lessons from dozens of the world’s most dedicated dirtbags, this book is for anyone who dreams of hitchhiking trips through Patagonia and summers spent trail running in Montana, but who can’t be bothered by mainstream frivolities like expensive clothes and basic hygiene.The book answers important logistical questions about the major barriers to a life centered on adventure, and covers practical topics like financial planning and career strategies. It also digs into the big philosophical questions that long-term dirtbags all eventually wrestle with - like how to manage your most important relationships, how to live as a responsible human being, and how to find meaning when you develop a life centered on playing outside.

Pro C# 2010 and the .NET 4 Platform


Andrew Troelsen - 2009
    As expected, .NET 4 brings a wealth of new APIs to the base class libraries and several new syntactical constructs to C#. For example, it is now possible to create C# methods that support optional and named arguments. As well, you are able to resolve types completely at runtime using the new dynamic keyword. As far as APIs are concerned, this edition of Pro C# 2010 and the .NET 4 Platform will cover a number of new details, including:• the Dynamic Language Runtime (DLR)• the Task Parallel Library (TPL, including PLINQ)• the ADO.NET Entity Framework (as well as LINQ to EF)• expanded coverage of the Windows Presentation Foundation (WPF) API• improved support for COM interopIf you're checking out this book for the first time, understand that it targets experienced software professionals and students of computer science—so please don't expect three chapters devoted to "variable scope" here! The mission of this text is to provide you with a rock-solid foundation in the C# programming language (including a full discussion of OOP) and the critical aspects of the .NET 4 platform.Once you digest the information presented in the book you hold in your hands, you'll be in a perfect position to apply this knowledge to your specific programming assignments, and you'll be well-equipped to explore the .NET universe on your own terms.Andrew TroelsenMicrosoft MVP, Visual Developer—Visual C#; Microsoft Certified Trainer (MCT)

Get Your Hands Dirty on Clean Architecture: A hands-on guide to creating clean web applications with code examples in Java


Tom Hombergs - 2019
    

The Simple Six: The Easy Way to Get in Shape and Stay in Shape for the Rest of your Life


Clinton Dobbins - 2018
    Free of all the usual filler and hype, The Simple Six is a real program, for real people, offering real results. The unique programming method found only in The Simple Six is based on the idea that repeating a small amount of work consistently can lead to great changes in the way you look, the way you feel, and the way you think about fitness and exercise.  If you're looking for a simple, straightforward way to build a strong, balanced, and capable physique, then The Simple Six is for you. The Simple Six truly is the easy way to get in shape and stay in shape for the rest of your life!

Programming in Go: Creating Applications for the 21st Century


Mark Summerfield - 2012
    With this guide, pioneering Go programmer Mark Summerfield shows how to write code that takes full advantage of Go's breakthrough features and idioms. Both a tutorial and a language reference, "Programming in Go" brings together all the knowledge you need to evaluate Go, think in Go, and write high-performance software with Go. Summerfield presents multiple idiom comparisons showing exactly how Go improves upon older languages, calling special attention to Go's key innovations. Along the way, he explains everything from the absolute basics through Go's lock-free channel-based concurrency and its flexible and unusual duck-typing type-safe approach to object-orientation. Throughout, Summerfield's approach is thoroughly practical. Each chapter offers multiple live code examples designed to encourage experimentation and help you quickly develop mastery. Wherever possible, complete programs and packages are presented to provide realistic use cases, as well as exercises. Coverage includes:-- Quickly getting and installing Go, and building and running Go programs -- Exploring Go's syntax, features, and extensive standard library -- Programming Boolean values, expressions, and numeric types -- Creating, comparing, indexing, slicing, and formatting strings -- Understanding Go's highly efficient built-in collection types: slices and maps -- Using Go as a procedural programming language -- Discovering Go's unusual and flexible approach to object orientation -- Mastering Go's unique, simple, and natural approach to fine-grained concurrency -- Reading and writing binary, text, JSON, and XML files -- Importing and using standard library packages, custom packages, and third-party packages -- Creating, documenting, unit testing, and benchmarking custom packages

Ruby Best Practices


Gregory T. Brown - 2009
    Written by the developer of the Ruby project Prawn, this concise book explains how to design beautiful APIs and domain-specific languages with Ruby, as well as how to work with functional programming ideas and techniques that can simplify your code and make you more productive. You'll learn how to write code that's readable, expressive, and much more.Ruby Best Practices will help you:Understand the secret powers unlocked by Ruby's code blocks Learn how to bend Ruby code without breaking it, such as mixing in modules on the fly Discover the ins and outs of testing and debugging, and how to design for testability Learn to write faster code by keeping things simple Develop strategies for text processing and file management, including regular expressions Understand how and why things can go wrong Reduce cultural barriers by leveraging Ruby's multilingual capabilities This book also offers you comprehensive chapters on driving code through tests, designing APIs, and project maintenance. Learn how to make the most of this rich, beautiful language with Ruby Best Practices.

Relationship Grit: A True Story with Lessons to Stay Together, Grow Together, and Thrive Together


Jon Gordon - 2020
    This time, he teams up with Kathryn Gordon, his wife of 23 years, for a look at what it takes to build strong relationships. In Relationship Grit, the Gordons reveal what brought them together, what kept them together through difficult times, and what continues to sustain their love and passion for one another to this day. They candidly share their mistakes, decisions that almost destroyed their marriage, and successes so you can learn from their experiences and make your relationship stronger.If you're a fan of Jon Gordon's work, you will enjoy learning about the man behind the message, as he and Kathryn share the intimate details of their life together. The direct, transparent, and personal style will draw you in and help you see that, if you are dealing with a challenge in your life and relationship, you are not alone. Working, writing, and raising children hasn't always been easy for the Gordons, but by committing to one another and embracing the principles of G. R. I. T., they emerged from their darkest moments and built a deep and lasting love. In Relationship Grit, they speak candidly about what they have learned and how you can develop the grit to build beautiful relationships.Discover--in their own words--what Jon and Kathryn have learned about staying together during their 23-year marriage Learn the four principles of G. R. I. T. that you can embrace today to build the high quality relationships you want and deserve Find the strength you need to confront your past, overcome your flaws, and change for the better to improve you and your relationship. Embrace the Gordons' practical advice including 22 quick tips for a great relationship--11 from Kathryn and 11 from Jon--and start making your relationship the best it can be Relationships--particularly marriages--are about imperfect people coming together to work on their individual flaws and emerge stronger together. Relationship Grit will inspire and motivate you to engage in this remarkable and rewarding process.

Learning React: Functional Web Development with React and Redux


Alex Banks - 2017
    Authors Alex Banks and Eve Porcello show you how to create UIs with this small JavaScript library that can deftly display data changes on large-scale, data-driven websites without page reloads. Along the way, you'll learn how to work with functional programming and the latest ECMAScript features.Developed by Facebook, and used by companies including Netflix, Walmart, and The New York Times for large parts of their web interfaces, React is quickly growing in use. By learning how to build React components with this hands-on guide, you'll fully understand how useful React can be in your organization.Learn key functional programming concepts with JavaScriptPeek under the hood to understand how React runs in the browserCreate application presentation layers by mounting and composing React componentsUse component trees to manage data and reduce the time you spend debugging applicationsExplore React's component lifecycle and use it to load data and improve UI performanceUse a routing solution for browser history, bookmarks, and other features of single-page applicationsLearn how to structure React applications with servers in mind

The Complete Diabetes Cookbook: 400 Kitchen-Tested Carb-Controlled Recipes for Eating What You Love


America's Test Kitchen - 2018
    Meticulously tested recipes limit unhealthy carbs and fats, sodium, and added sugars and maximize nutrition and flavor. Every recipe lists complete nutritional information for easy reference.Cooking and eating healthfully plays a big role in managing diabetes. America's Test Kitchen's mission is to encourage home cooks to get into the kitchen with 400-plus meticulously developed and tested diabetes-friendly recipes. This mission is urgent given that more than 30 million Americans suffer from diabetes. Those with diabetes or those cooking for someone with diabetes know the hurdles that come with this diet. This comprehensive collection of recipes all adhere to strict nutritional guidelines that limit unhealthy carbs and fat, sodium, and added sugars as they maximize nutrition and flavor. There are fresh and creative recipes for every meal: satisfying breakfasts, weeknight-friendly dinners, holiday celebrations, and even snacks and the occasional sweet treat.

Designing Games


Tynan Sylvester - 2013
    You’ll learn principles and practices for crafting games that generate emotionally charged experiences—a combination of elegant game mechanics, compelling fiction, and pace that fully immerses players.In clear and approachable prose, design pro Tynan Sylvester also looks at the day-to-day process necessary to keep your project on track, including how to work with a team, and how to avoid creative dead ends. Packed with examples, this book will change your perception of game design.Create game mechanics to trigger a range of emotions and provide a variety of playExplore several options for combining narrative with interactivityBuild interactions that let multiplayer gamers get into each other’s headsMotivate players through rewards that align with the rest of the gameEstablish a metaphor vocabulary to help players learn which design aspects are game mechanicsPlan, test, and analyze your design through iteration rather than deciding everything up frontLearn how your game’s market positioning will affect your design