Rails Antipatterns: Best Practice Ruby on Rails Refactoring


Chad Pytel - 2010
     Rails(TM) AntiPatterns identifies these widespread Rails code and design problems, explains why they're bad and why they happen--and shows exactly what to do instead.The book is organized into concise, modular chapters--each outlines a single common AntiPattern and offers detailed, cookbook-style code solutions that were previously difficult or impossible to find. Leading Rails developers Chad Pytel and Tammer Saleh also offer specific guidance for refactoring existing bad code or design to reflect sound object-oriented principles and established Rails best practices. With their help, developers, architects, and testers can dramatically improve new and existing applications, avoid future problems, and establish superior Rails coding standards throughout their organizations.This book will help you understand, avoid, and solve problems withModel layer code, from general object-oriented programming violations to complex SQL and excessive redundancy Domain modeling, including schema and database issues such as normalization and serialization View layer tools and conventions Controller-layer code, including RESTful code Service-related APIs, including timeouts, exceptions, backgrounding, and response codes Third-party code, including plug-ins and gems Testing, from test suites to test-driven development processes Scaling and deployment Database issues, including migrations and validations System design for "graceful degradation" in the real world

Professional Excel Development: The Definitive Guide to Developing Applications Using Microsoft Excel and VBA


Stephen Bullen - 2005
    It has become adevelopment platform in it own right. Applications written using Excel are partof many corporations' core suites of business-critical applications. In spite ofthis, Excel is too often thought of as a hobbyist's platform. While there arenumerous titles on Excel and VBA, until now there have been none thatprovide an overall explanation of how to develop professional-quality Excel-basedapplications. All three authors are professional Excel developers who runtheir own companies developing Excel-based apps for clients ranging fromindividuals to the largest multinational corporations. In this book they showhow anyone from power users to professional developers can increase thespeed and usefulness of their Excel-based apps.

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

PYTHON: PROGRAMMING: A BEGINNER’S GUIDE TO LEARN PYTHON IN 7 DAYS


Ramsey Hamilton - 2016
    Python is a beautiful computer language. It is simple, and it is intuitive. Python is used by a sorts of people – data scientists use it for much of their number crunching and analytics; security testers use it for testing out security and IT attacks; it is used to develop high-quality web applications and many of the large applications that you use on the internet are also written in Python, including YouTube, DropBox, and Instagram. Are you interested in learning Python? Then settle in and learn the basics in just 7 days - enough for you to be comfortable in moving on to the next level without any trouble.Are you interested in learning Python? Then settle in and learn the basics in just 7 days - enough for you to be comfortable in moving on to the next level without any trouble. In this book you'll learn: Setting Up Your Environment Let’s Get Programming Variables and Programs in Files Loops, Loops and More Loops Functions Dictionaries, Lists, and Tuples The “for” Loop Classes Modules File Input/Output Error Handling and much more! Now it's time for you to start your journey into Python programming! Click on the Buy Now button above and get started today!

Pearls of Functional Algorithm Design


Richard S. Bird - 2010
    These 30 short chapters each deal with a particular programming problem drawn from sources as diverse as games and puzzles, intriguing combinatorial tasks, and more familiar areas such as data compression and string matching. Each pearl starts with the statement of the problem expressed using the functional programming language Haskell, a powerful yet succinct language for capturing algorithmic ideas clearly and simply. The novel aspect of the book is that each solution is calculated from an initial formulation of the problem in Haskell by appealing to the laws of functional programming. Pearls of Functional Algorithm Design will appeal to the aspiring functional programmer, students and teachers interested in the principles of algorithm design, and anyone seeking to master the techniques of reasoning about programs in an equational style.

Data Structures and Algorithms Made Easy in Java: 700 Data Structure and Algorithmic Puzzles


Narasimha Karumanchi - 2011
    Success key books for: Programming puzzles for interviews Campus Preparation Degree/Masters Course Preparation Instructor's GATE Preparation Big job hunters: Microsoft, Google, Amazon, Yahoo, Flip Kart, Adobe, IBM Labs, Citrix, Mentor Graphics, NetApp, Oracle, Webaroo, De-Shaw, Success Factors, Face book, McAfee and many more Reference Manual for working people

SQL (Visual QuickStart Guide)


Chris Fehily - 2002
    With SQL and this task-based guide to it, you can do it too—no programming experience required!After going over the relational database model and SQL syntax in the first few chapters, veteran author Chris Fehily launches into the tasks that will get you comfortable with SQL fast. In addition to explaining SQL basics, this updated reference covers the ANSI SQL:2003 standard and contains a wealth of brand-new information, including a new chapter on set operations and common tasks, well-placed optimization tips to make your queries run fast, sidebars on advanced topics, and added IBM DB2 coverage.Best of all, the book's examples were tested on the latest versions of Microsoft Access, Microsoft SQL Server, Oracle, IBM DB2, MySQL, and PostgreSQL. On the companion Web site, you can download the SQL scripts and sample database for all these systems and put your knowledge to work immediately on a real database..

Smashing Node.Js: JavaScript Everywhere


Guillermo Rauch - 2012
    With more traditional web servers becoming obsolete, having knowledge on servers that achieve high scalability and optimal resource consumption using Node.js is the key to your app development success. Teaching you the essentials to making event-driven server-side apps, this book demonstrates how you can use less space and take less time for communication between web client and server.Contains numerous hands-on examples Explains implementation of real-time apps including Socket.IO and HTML5, and WebSockets Addresses practical Node.js advantages from specific design choices Demonstrates why knowledge and use of JavaScript is beneficial Includes an interactive online component with sample chapters Explains components of stand out apps including brevity and benchmarks Looking to enhance your abilities even further? Smashing Node.js: JavaScript Everywhere makes developing server-side apps accessible with its focus on JavaScript, open source, and easy-to-use language.

The Photoshop Cs2 Book for Digital Photographers


Scott Kelby - 2005
    You'll learn the tricks for fixing common problems, retouching secrets, how to colour correct any photo, and a whole chapter is dedicated to Photoshop special effects.

Web Development with Clojure: Build Bulletproof Web Apps with Less Code


Dmitri Sotnikov - 2013
    Web Development With Clojure shows you how to apply Clojure programming fundamentals to build real-world solutions. You'll develop all the pieces of a full web application in this powerful language. If you already have some familiarity with Clojure, you'll learn how to put it to serious practical use. If you're new to the language, the book provides just enough Clojure to get down to business.You'll learn the full process of web development using Clojure while getting hands-on experience with current tools, libraries, and best practices in the language. You'll develop Clojure apps with both the Light Table and Eclipse development environments. Rather than frameworks, Clojure development builds on rich libraries. You'll acquire expertise in the popular Ring/Compojure stack, and you'll learn to use the Liberator library to quickly develop RESTful services. Plus, you'll find out how to use ClojureScript to work in one language on the client and server sides.Throughout the book, you'll develop key components of web applications, including multiple approaches to database access. You'll create a simple guestbook app and an app to serve resources to users. By the end, you will have developed a rich Picture Gallery web application from conception to packaging and deployment.This book is for anyone interested in taking the next step in web development.Q&A with Dmitri SotnikovWhy did you write Web Development with Clojure?When I started using Clojure, I found that it took a lot of work to find all the pieces needed to put together a working application. There was very little documentation available on how to organize the code, what libraries to use, or how to package the application for deployment. Having gone through the process of figuring out what works, I thought that it would be nice to make it easier for others to get started.What are the advantages of using a functional language?Over the course of my career, I have developed a great appreciation for functional programming. I find that it addresses a number of shortcomings present in the imperative paradigm. For example, in a functional language any changes to the data are created via revisions to the existing data. So they only exist in the local scope. This fact allows us to safely reason about individual parts of the program in isolation, which is critical for writing and supporting large applications.Why use Clojure specifically?Clojure is a simple and pragmatic language that is designed for real-world usage. It combines the productivity of a high-level language with the excellent performance seen in languages like C# or Java. It's also very easy to learn because it allows you to use a small number of concepts to solve a large variety of problems.If I already have a preferred web development platform, what might I get out of this book?If you're using an imperative language, you'll get to see a very different approach to writing code. Even if you're not going to use Clojure as your primary language, the concepts you'll learn will provide you with new ways to approach problems.Is the material in the book accessible to somebody who is not familiar with Clojure?Absolutely. The book targets developers who are already familiar with the basics of web development and are interested in learning Clojure in this context. The book introduces just enough of the language to get you productive and allows you to learn by example.

CoffeeScript


Trevor Burnham - 2011
    It provides all of JavaScript's functionality wrapped in a cleaner, more succinct syntax. In the first book on this exciting new language, CoffeeScript guru Trevor Burnham shows you how to hold onto all the power and flexibility of JavaScript while writing clearer, cleaner, and safer code.CoffeeScript: Accelerated JavaScript Development offers a thorough introduction to this new language, starting from the basics. You'll learn to use time-saving features like list comprehensions and splats, organize your code into modules with extensible classes, and deploy your work to multiple environments. Each chapter is example-driven and includes challenging exercises to push your CoffeeScript know-how further. Through the course of the book, you'll build a fast-paced multiplayer word game-writing both the client (with jQuery) and server (with Node.js) in CoffeeScript. And because the two languages are so deeply intertwined, you'll deepen your understanding of JavaScript along the way. CoffeeScript makes it easier than ever to write powerful, standards-compliant JavaScript code. CoffeeScript: Accelerated JavaScript Development lets you start doing it today.

ZooKeeper: Distributed process coordination


Flavio Junqueira - 2013
    This practical guide shows how Apache ZooKeeper helps you manage distributed systems, so you can focus mainly on application logic. Even with ZooKeeper, implementing coordination tasks is not trivial, but this book provides good practices to give you a head start, and points out caveats that developers and administrators alike need to watch for along the way.In three separate sections, ZooKeeper contributors Flavio Junqueira and Benjamin Reed introduce the principles of distributed systems, provide ZooKeeper programming techniques, and include the information you need to administer this service.Learn how ZooKeeper solves common coordination tasksExplore the ZooKeeper API’s Java and C implementations and how they differUse methods to track and react to ZooKeeper state changesHandle failures of the network, application processes, and ZooKeeper itselfLearn about ZooKeeper’s trickier aspects dealing with concurrency, ordering, and configurationUse the Curator high-level interface for connection managementBecome familiar with ZooKeeper internals and administration tools

Learning UML 2.0: A Pragmatic Introduction to UML


Russ Miles - 2006
    Every integrated software development environment in the world--open-source, standards-based, and proprietary--now supports UML and, more importantly, the model-driven approach to software development. This makes learning the newest UML standard, UML 2.0, critical for all software developers--and there isn't a better choice than this clear, step-by-step guide to learning the language."--Richard Mark Soley, Chairman and CEO, OMGIf you're like most software developers, you're building systems that are increasingly complex. Whether you're creating a desktop application or an enterprise system, complexity is the big hairy monster you must manage.The Unified Modeling Language (UML) helps you manage this complexity. Whether you're looking to use UML as a blueprint language, a sketch tool, or as a programming language, this book will give you the need-to-know information on how to apply UML to your project. While there are plenty of books available that describe UML, Learning UML 2.0 will show you how to use it. Topics covered include:Capturing your system's requirements in your model to help you ensure that your designs meet your users' needsModeling the parts of your system and their relationshipsModeling how the parts of your system work together to meet your system's requirementsModeling how your system moves into the real world, capturing how your system will be deployedEngaging and accessible, this book shows you how to use UML to craft and communicate your project's design. Russ Miles and Kim Hamilton have written a pragmatic introduction to UML based on hard-earned practice, not theory. Regardless of the software process or methodology you use, this book is the one source you need to get up and running with UML 2.0.Russ Miles is a software engineer for General Dynamics UK, where he works with Java and Distributed Systems, although his passion at the moment is Aspect Orientation and, in particular, AspectJ. Kim Hamilton is a senior software engineer at Northrop Grumman, where she's designed and implemented a variety of systems including web applications and distributed systems, with frequent detours into algorithms development.

Professional Android 2 Application Development


Reto Meier - 2010
    This update to the bestselling first edition dives in to cover the exciting new features of the latest release of the Android mobile platform.Providing in-depth coverage of how to build mobile applications using the next major release of the Android SDK, this invaluable resource takes a hands-on approach to discussing Android with a series of projects, each of which introduces a new feature and highlights techniques and best practices to get the most out of Android.The Android SDK is a powerful, flexible, open source platform for mobile devices Shares helpful techniques and best practices to maximize the capabilities of Android Explains the possibilities of Android through the use of a series of detailed projects Demonstrates how to create real-world mobile applications for Android phones Includes coverage of the latest version of Android Providing concise and compelling examples, Professional Android Application Development is an updated guide aimed at helping you create mobile applications for mobile devices running the latest version of Android.

Making Games with Python & Pygame


Al Sweigart - 2012
    Each chapter gives you the complete source code for a new game and teaches the programming concepts from these examples. The book is available under a Creative Commons license and can be downloaded in full for free from http: //inventwithpython.com/pygame This book was written to be understandable by kids as young as 10 to 12 years old, although it is great for anyone of any age who has some familiarity with Python.