Software Architecture: Perspectives on an Emerging Discipline


Mary Shaw - 1996
    But, although they use these patterns purposefully, they often use them informally and nearly unconsciously. This book organizes this substantial emerging "folklore" of system design -- with its rich language of system description -- and closes the gap between the useful abstractions (constructs and patterns) of system design and the current models, notations and tools. It identifies useful patterns clearly, gives examples, compares them, and evaluates their utility in various settings -- allowing readers to develop a repertoire of useful techniques that goes beyond the single-minded current fads. KEY TOPICS: Examines the ways in which architectural issues can impact software design; shows how to design new systems in principled ways using well-understood architectural paradigms; emphasizes informal descriptions, touching lightly on formal notations and specifications, and the tools that support them; explains how to understand and evaluate the design of existing software systems from an architectural perspective; and presents concrete examples of actual system architectures that can serve as models for new designs. MARKET: For professional software developers looking for new ideas about system organization.

PostgreSQL 9.0 High Performance


Gregory Smith - 2010
    You could spend years discovering solutions to them all, step by step as you encounter them. Or you can just look in here. All successful database applications are destined to eventually run into issues scaling up their performance. Peek into the future of your PostgreSQL database's problems today. Know the warning signs to look for, and how to avoid the most common issues before they even happen. Surprisingly, most PostgreSQL database applications evolve in the same way: Choose the right hardware. Tune the operating system and server memory use. Optimize queries against the database, with the right indexes. Monitor every layer, from hardware to queries, using some tools that are inside PostgreSQL and others that are external. Using monitoring insight, continuously rework the design and configuration. On reaching the limits of a single server, break things up; connection pooling, caching, partitioning, and replication can all help handle increasing database workloads. The path to a high performance database system isn't always easy. But it doesn't have to be mysterious with the right guide. This book is a clear, step-by-step guide to optimizing and scaling up PostgreSQL database servers. - Publisher.

Introduction to Data Communications and Networking


Wayne Tomasi - 2004
    KEY TOPICS: Topics explored include wireless and wireline telecommunications systems, basic data communications networks and systems, local area networks, internetworks, and the Internet including TCP/IP protocol suite. MARKET: For professionals with a career or interest in electronic communications, data communications, and/or networking, as well as ECT, EET, and CET technologists.

The Nomadic Developer: Surviving and Thriving in the World of Technology Consulting


Aaron Erickson - 2009
    More and more often, those companies look to technology consultants to fulfill their needs. There are real advantages to being a consultant. You make contacts with a lot of different people; you get exposure to many industries; and most important, unlike a software developer in the IT department for a brick-and-mortar company, as a technology consultant, you are the profit center…so long as you are billing. Consulting can be hugely rewarding—but it’s easy to fail if you are unprepared. To succeed, you need a mentor who knows the lay of the land. Aaron Erickson is your mentor, and this is your guidebook. Erickson has done it all—from Practice Leadership to the lowest level project work. In The Nomadic Developer, he brings together his hardwon insights on becoming successful and achieving success through tough times and relentless change. You’ll find 100% practical advice and real experiences—his own and annotations from those in the trenches. In addition, renowned consultants—such as David Chappell, Bruce Eckel, Deborah Kurata, and Ted Neward—share some of their hard-earned lessons. With this useful guidebook, you can Objectively assess whether the consultant’s life makes sense for you Break into thebusiness and build a career path that works Avoid the Seven Deadly Firms by identifying unscrupulous technology consultancies and avoiding their traps and pitfalls Understand the business models and mechanics that virtually all consulting firms use Master secret consulting success tips that are typically left unstated or overlooked Gain a competitive advantage by adding more value than your competitors Continue your professional development so you stay billable even during bad times Profit from both fixed-bid and time-and-materials projects Build a personal brand that improves your resiliency no matter what happens

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 Nostalgia Nerd's Retro Tech: Computer, Consoles & Games


Peter Leigh - 2018
    Remember what a wild frontier the early days of home gaming were? Manufacturers releasing new consoles at a breakneck pace; developers creating games that kept us up all night, then going bankrupt the next day; and what self-respecting kid didn't beg their parents for an Atari or a Nintendo? This explosion of computers, consoles, and games was genuinely unlike anything the tech world has seen before or since.This thoroughly researched and geeky trip down memory lane pulls together the most entertaining stories from this dynamic era, and brings you the classic tech that should never be forgotten.

HTML, XHTML & CSS for Dummies


Ed Tittel - 2008
    Now featuring more than 250 color illustrations throughout, this perennially popular guide is a must for novices who want to work with HTML or XHTML, which continue to be the foundation for any Web site The new edition features nearly 50 percent new and updated content, including expanded coverage of CSS and scripting, new coverage of syndication and podcasting, and new sample HTML projects, including a personal Web page, an eBay auction page, a company Web site, and an online product catalog The companion Web site features an eight-page expanded Cheat Sheet with ready-reference information on commands, syntax, colors, CSS elements, and more Covers planning a Web site, formatting Web pages, using CSS, getting creative with colors and fonts, managing layouts, and integrating scripts

Business Analysis for Dummies


Kupe Kupersmith - 2013
    Those engaged in business analysis are charged with identifying the activities that enable the company to define the business problem or opportunity, define what the solutions looks like, and define how it should behave in the end. As a BA, you lay out the plans for the process ahead."Business Analysis For Dummies" is the go to reference on how to make the complex topic of business analysis easy to understand. Whether you are new or have experience with business analysis, this book gives you the tools, techniques, tips and tricks to set your project's expectations and on the path to success.Offers guidance on how to make an impact in your organization by performing business analysisShows you the tools and techniques to be an effective business analysis professionalProvides a number of examples on how to perform business analysis regardless of your roleIf you're interested in learning about the tools and techniques used by successful business analysis professionals, "Business Analysis For Dummies" has you covered.

PHP 6 and MySQL 5 for Dynamic Web Sites: Visual Quickpro Guide


Larry Ullman - 2007
    With step-by-step instructions, complete scripts, and expert tips to guide readers, this work gets right down to business - after grounding readers with separate discussions of first the scripting language (PHP) and then the database program (MySQL), it goes on to cover security, sessions and cookies, and using additional Web tools.

Unity in Action


Joseph Hocking - 2015
    You'll master the Unity toolset from the ground up, adding the skills you need to go from application coder to game developer. Based on Unity version 5.About the BookThis book helps readers build successful games with the Unity game development platform. You will use the powerful C# language, Unity's intuitive workflow tools, and a state-of-the-art rendering engine to build and deploy mobile, desktop, and console games. Unity's single codebase approach minimizes inefficient switching among development tools and concentrates your attention on making great interactive experiences.Unity in Action teaches you how to write and deploy games. You'll master the Unity toolset from the ground up, adding the skills you need to go from application coder to game developer. Each sample project illuminates specific Unity features and game development strategies. As you read and practice, you'll build up a well-rounded skill set for creating graphically driven 2D and 3D game applications.You'll need to know how to program, in C# or a similar OO language. No previous Unity experience or game development knowledge is assumed.

Build Awesome Command-Line Applications in Ruby 2: Control Your Computer, Simplify Your Life


David B. Copeland - 2012
    With its simple commands, flags, and parameters, a well-formed command-line application is the quickest way to automate a backup, a build, or a deployment and simplify your life. With this book, you'll learn specific ways to write command-line applications that are easy to use, deploy, and maintain, using a set of clear best practices and the Ruby programming language. This book is designed to make any programmer or system administrator more productive in their job. Now updated for Ruby 2.Writing a command-line application that's self-documenting, robust, adaptable and forever useful is easier than you might think. Ruby is particularly suited to this task, because it combines high-level abstractions with "close to the metal" system interaction wrapped up in a concise, readable syntax. Plus, Ruby has the support of a rich ecosystem of open source tools and libraries.Ten insightful chapters each explain and demonstrate a command-line best practice. You'll see how to use these tools to elevate the lowliest automation script to a maintainable, polished application. You'll learn how to use free, open source parsers to create user-friendly command-line interfaces as well as command suites. You'll see how to use defaults to keep options simple for everyday users, while giving advanced users options for more complex tasks. There's no reason why a command-line application should lack documentation, whether it's part of a help command or a man page; you'll find out when and how to use both. Your journey from command-line novice to pro ends with a look at valuable approaches to testing your apps, and includes some fun techniques for outside-the-box, colorful interfaces that will delight your users.With Ruby, the command line is not dead. Long live the command line.

Androids: The Team That Built the Android Operating System


Chet Haase - 2021
    But they couldn't get investors interested. Today, Android is a large team at Google, shipping an operating system (including camera software) to over three billion devices worldwide.This is the inside story, told by the people who made it happen.“What are the essential ingredients that lead a small team to build software at the sheer scale and impact of Android? We may never fully know, but this first person account is probably the closest set of clues we have.”–Dave Burke, VP of Android Engineering“Androids captures a strong picture of what the early development of Android, as well as the Android team, was like.”–Dianne Hackborn, Android Framework Engineer“Androids is the engaging tale of a motley group of coders with a passion to make insanely great products who banged out the operating system when that idea seemed nuts.True to his geek genes, Chet Haase tells this remarkable tale of technical and business success from the trenches, an inspiring, massive collective effort of dozens of programmers who flipped their seemingly late timing to their advantage, and presaged a generation of platform builders. Read Androids to discover what it takes to create a hot tech team that shipped a product running today on more than 3 billion devices.”–Jonathan Littman, co-author of The Entrepreneurs Faces: How Makers, Visionaries and Outsiders Succeed, and author of The Fugitive Game

Humans vs Computers


Gojko Adzic - 2017
    You'll read about humans who are invisible to computers, how a default password once caused a zombie apocalypse and why airlines sometimes give away free tickets. This is also a book on how to prevent, avoid and reduce the impact of such problems. Our lives are increasingly tracked, monitored and categorised by software, driving a flood of information into the vast sea of big data. In this brave new world, humans can't cope with information overload. Governments and companies alike rely on computers to automatically detect fraud, predict behaviour and enforce laws. Inflexible automatons, barely smarter than a fridge, now make life-changing decisions. Clever marketing tricks us into believing that phones, TV sets and even cars are somehow smart. Yet all those computer systems were created by people - people who are well-meaning but fallible and biased, clever but forgetful, and who have grand plans but are pressed for time. Digitising a piece of work doesn't mean there will be no mistakes, but instead guarantees that when mistakes happen, they'll run at a massive scale. The next time you bang your head against a digital wall, the stories in this book will help you understand better what's going on and show you where to look for problems. If nothing else, when it seems as if you're under a black-magic spell, these stories will at least allow you to see the lighter side of the binary chaos. For people involved in software delivery, this book will help you find more empathy for people suffering from our mistakes, and discover heuristics to use during analysis, development or testing to make your software less error prone. <

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).

Guide to Computer Forensics and Investigations (Book & CD)


Bill Nelson - 2003
    This resource guides readers through conducting a high-tech investigation, from acquiring digital evidence to reporting its findings. Updated coverage includes new software and technologies as well as up-to-date reference sections, and content includes how to set up a forensics lab, how to acquire the proper and necessary tools, and how to conduct the investigation and subsequent digital analysis. It is appropriate for students new to the field, or as a refresher and technology update for professionals in law enforcement, investigations, or computer security. The book features free downloads of the latest forensic software, so readers can become familiar with the tools of the trade.