Book picks similar to
Lightness by Adriaan Beukers
design
architecture
engineering
arquitetura
Green from the Ground Up: Sustainable, Healthy, and Energy-Efficient Home Construction
David R. Johnston - 2008
It starts with clear explanations of the concepts and fundamentals of green, healthy and energy-efficient construction and walks the reader through the entire construction process, injecting expert advice at every decision point. Construction techniques, materials, and products are thoroughly explained, making the often vaguely understood concepts cleanly understandable. The book gives builders and architects the tools to respond to growing requests from homeowners for green and energy-efficient houses, whether new or remodeled. Homeowners can use the book to understand the concepts, process, and options, whether they're doing it themselves or working with a professional.
Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement
Eric Redmond - 2012
As a modern application developer you need to understand the emerging field of data management, both RDBMS and NoSQL. Seven Databases in Seven Weeks takes you on a tour of some of the hottest open source databases today. In the tradition of Bruce A. Tate's Seven Languages in Seven Weeks, this book goes beyond your basic tutorial to explore the essential concepts at the core each technology. Redis, Neo4J, CouchDB, MongoDB, HBase, Riak and Postgres. With each database, you'll tackle a real-world data problem that highlights the concepts and features that make it shine. You'll explore the five data models employed by these databases-relational, key/value, columnar, document and graph-and which kinds of problems are best suited to each. You'll learn how MongoDB and CouchDB are strikingly different, and discover the Dynamo heritage at the heart of Riak. Make your applications faster with Redis and more connected with Neo4J. Use MapReduce to solve Big Data problems. Build clusters of servers using scalable services like Amazon's Elastic Compute Cloud (EC2). Discover the CAP theorem and its implications for your distributed data. Understand the tradeoffs between consistency and availability, and when you can use them to your advantage. Use multiple databases in concert to create a platform that's more than the sum of its parts, or find one that meets all your needs at once.Seven Databases in Seven Weeks will take you on a deep dive into each of the databases, their strengths and weaknesses, and how to choose the ones that fit your needs.What You Need: To get the most of of this book you'll have to follow along, and that means you'll need a *nix shell (Mac OSX or Linux preferred, Windows users will need Cygwin), and Java 6 (or greater) and Ruby 1.8.7 (or greater). Each chapter will list the downloads required for that database.
The Laws of Simplicity: Design, Technology, Business, Life
John Maeda - 2006
We're rebelling against technology that's too complicated, DVD players with too many menus, and software accompanied by 75-megabyte "read me" manuals. The iPod's clean gadgetry has made simplicity hip. But sometimes we find ourselves caught up in the simplicity paradox: we want something that's simple and easy to use, but also does all the complex things we might ever want it to do. In The Laws of Simplicity, John Maeda offers ten laws for balancing simplicity and complexity in business, technology, and design—guidelines for needing less and actually getting more.Maeda—a professor in MIT's Media Lab and a world-renowned graphic designer—explores the question of how we can redefine the notion of "improved" so that it doesn't always mean something more, something added on.Maeda's first law of simplicity is "Reduce." It's not necessarily beneficial to add technology features just because we can. And the features that we do have must be organized (Law 2) in a sensible hierarchy so users aren't distracted by features and functions they don't need. But simplicity is not less just for the sake of less. Skip ahead to Law 9: "Failure: Accept the fact that some things can never be made simple." Maeda's concise guide to simplicity in the digital age shows us how this idea can be a cornerstone of organizations and their products—how it can drive both business and technology. We can learn to simplify without sacrificing comfort and meaning, and we can achieve the balance described in Law 10. This law, which Maeda calls "The One," tells us: "Simplicity is about subtracting the obvious, and adding the meaningful."
Building Microservices: Designing Fine-Grained Systems
Sam Newman - 2014
But developing these systems brings its own set of headaches. With lots of examples and practical advice, this book takes a holistic view of the topics that system architects and administrators must consider when building, managing, and evolving microservice architectures.Microservice technologies are moving quickly. Author Sam Newman provides you with a firm grounding in the concepts while diving into current solutions for modeling, integrating, testing, deploying, and monitoring your own autonomous services. You'll follow a fictional company throughout the book to learn how building a microservice architecture affects a single domain.Discover how microservices allow you to align your system design with your organization's goalsLearn options for integrating a service with the rest of your systemTake an incremental approach when splitting monolithic codebasesDeploy individual microservices through continuous integrationExamine the complexities of testing and monitoring distributed servicesManage security with user-to-service and service-to-service modelsUnderstand the challenges of scaling microservice architectures
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
Architecting the Cloud: Design Decisions for Cloud Computing Service Models (Saas, Paas, and Iaas)
Michael J. Kavis - 2013
However, before you can decide on a cloud model, you need to determine what the ideal cloud service model is for your business. Helping you cut through all the haze, Architecting the Cloud is vendor neutral and guides you in making one of the most critical technology decisions that you will face: selecting the right cloud service model(s) based on a combination of both business and technology requirements.Guides corporations through key cloud design considerations Discusses the pros and cons of each cloud service model Highlights major design considerations in areas such as security, data privacy, logging, data storage, SLA monitoring, and more Clearly defines the services cloud providers offer for each service model and the cloud services IT must provide Arming you with the information you need to choose the right cloud service provider, Architecting the Cloud is a comprehensive guide covering everything you need to be aware of in selecting the right cloud service model for you.
Building Evolutionary Architectures: Support Constant Change
Neal Ford - 2017
Over the past few years, incremental developments in core engineering practices for software development have created the foundations for rethinking how architecture changes over time, along with ways to protect important architectural characteristics as it evolves. This practical guide ties those parts together with a new way to think about architecture and time.
Exploring CQRS and Event Sourcing
Dominic Betts - 2012
It presents a learning journey, not definitive guidance. It describes the experiences of a development team with no prior CQRS proficiency in building, deploying (to Windows Azure), and maintaining a sample real-world, complex, enterprise system to showcase various CQRS and ES concepts, challenges, and techniques.The development team did not work in isolation; we actively sought input from industry experts and from a wide group of advisors to ensure that the guidance is both detailed and practical.The CQRS pattern and event sourcing are not mere simplistic solutions to the problems associated with large-scale, distributed systems. By providing you with both a working application and written guidance, we expect you’ll be well prepared to embark on your own CQRS journey.
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
Gregor Hohpe - 2003
The authors also include examples covering a variety of different integration technologies, such as JMS, MSMQ, TIBCO ActiveEnterprise, Microsoft BizTalk, SOAP, and XSL. A case study describing a bond trading system illustrates the patterns in practice, and the book offers a look at emerging standards, as well as insights into what the future of enterprise integration might hold. This book provides a consistent vocabulary and visual notation framework to describe large-scale integration solutions across many technologies. It also explores in detail the advantages and limitations of asynchronous messaging architectures. The authors present practical advice on designing code that connects an application to a messaging system, and provide extensive information to help you determine when to send a message, how to route it to the proper destination, and how to monitor the health of a messaging system. If you want to know how to manage, monitor, and maintain a messaging system once it is in use, get this book.
The High Cost of Free Parking
Donald C. Shoup - 2004
The resulting cost? Today we see sprawling cities that are better suited to cars than people and a nationwide fleet of motor vehicles that consume one-eighth of the world's total oil production. Donald Shoup contends in The High Cost of Free Parking that parking is sorely misunderstood and mismanaged by planners, architects, and politicians. He proposes new ways for cities to regulate parking so that Americans can stop paying for free parking's hidden costs.
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).
Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives
Nick Rozanski - 2005
This practical, practitioner-oriented guide explains how to design successful architectures for information systems and to see these through to their successful implementation.
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.
The Art of Multiprocessor Programming
Maurice Herlihy - 2008
To leverage the performance and power of multiprocessor programming, also known as multicore programming, programmers need to learn the new principles, algorithms, and tools.The book will be of immediate use to programmers working with the new architectures. For example, the next generation of computer game consoles will all be multiprocessor-based, and the game industry is currently struggling to understand how to address the programming challenges presented by these machines. This change in the industry is so fundamental that it is certain to require a significant response by universities, and courses on multicore programming will become a staple of computer science curriculums.This book includes fully-developed Java examples detailing data structures, synchronization techniques, transactional memory, and more.Students in multiprocessor and multicore programming courses and engineers working with multiprocessor and multicore systems will find this book quite useful.
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