Core Data in Objective-C, 3rd Edition
Core Data expert Marcus Zarra walks you through a fully developed application based around the Core Data APIs. You'll build on this application throughout the book, learning key Core Data principles such as NSPredicate, NSFetchRequest, thread management, and memory management.
Start with the basics of Core Data and learn how to use it to develop your application. Then delve deep into the API details. Explore how to get Core Data integrated into your application properly, and work with this flexible API to create convenience methods to improve your application's maintainability. Reduce your migration difficulties, integrate your Core Data app with iCloud, and use Core Data in a queue-based environment. By the end of the book, you'll have built a full-featured application, gained a complete understanding of Core Data, and learned how to integrate your application into the iPhone/iPad platform.
This third edition updates all examples for OS X El Capitan and iOS, and gets you up to s ...
Serverless Single Page Apps
You don't need to manage your own servers to build powerful web applications. This book will show you how to create a single page app that runs entirely on web services, scales to millions of users, and costs less per day than a cup of coffee.
Using a web browser, a prepared workspace, and your favorite editor, you'll build a complete single page web application, step by step. Learn the fundamental technologies behind modern single page apps, and use web standards to create lean web applications that can take advantage of the newest technologies. Deploy your application quickly using Amazon S3. Use Amazon Cognito to connect with providers like Google and Facebook to manage user identities. Read and write user data directly from the browser using DynamoDB, and build your own scalable custom microservices with Amazon Lambda.
Whether you've never built a web application before or you're a seasoned web developer who's just looking for an alternative to complex server-side web framewo ...
Designed for Use, 2nd Edition
Interaction design - the way the apps on our phones work, the way we enter a destination into our car's GPS - is becoming more and more important. Identify and fix bad software design by making usability the cornerstone of your design process.
Lukas weaves together hands-on techniques and fundamental concepts. Each technique chapter explains a specific approach you can use to make your product more user friendly, such as storyboarding, usability tests, and paper prototyping. Idea chapters are concept-based: how to write usable text, how realistic your designs should look, when to use animations. This new edition is updated and expanded with new chapters covering requirements gathering, how the design of data structures influences the user interface, and how to do design work as a team. Through copious illustrations and supporting psychological research, expert developer and user interface designer Lukas Mathis gives you a deep dive into research, design, and implementation - the ess ...
Manage Your Project Portfolio, 2nd Edition
All your projects and programs make up your portfolio. But how much time do you actually spend on your projects, and how much time do you spend on emergency fire drills or waste through multitasking? This book gives you insightful ways to rank all the projects you're working on and figure out the right staffing and schedule so projects get finished faster.
The trick is adopting lean and agile approaches to projects, whether they're software projects, projects that include hardware, or projects that depend on chunks of functionality from other suppliers. Find out how to define the mission of your team, group, or department, with none of the buzzwords that normally accompany a mission statement. Armed with the work and the mission, you'll manage your portfolio better and make those decisions that define the true leaders in the organization.
With this expanded second edition, discover how to scale project portfolio management from one team to the entire enterprise, and integrate Cos ...
Behind every programming language lies a vision of how programs should be built. The vision behind Clojure is of a radically simple language framework holding together a sophisticated collection of programming features. Learning Clojure involves much more than just learning the mechanics of the language. To really get Clojure you need to understand the ideas underlying this structure of framework and features. You need this book: an accessible introduction to Clojure that focuses on the ideas behind the language as well as the practical details of writing code.
Clojure attracts developers on the cutting edge and is arguably the best language for learning to program in the functional style without compromise. But this comes with a steep learning curve. Getting Clojure directly addresses this by teaching you how to think functionally as it teaches you the language. You'll learn about Clojure's powerful data structures and high-level functions, but you'll also learn what it means for a ...
Starting from the ground up, learn new syntax (or how to reuse older syntax) to transform code from clunky bug-susceptible scripts to clear and elegant programs that are easy to read and easy to extend.
Create a foundation fo ...
Turn Vim into a full-blown development environment using Vim 8's new features and this sequel to the beloved bestseller Practical Vim. Integrate your editor with tools for building, testing, linting, indexing, and searching your codebase. Discover the future of Vim with Neovim: a fork of Vim that includes a built-in terminal emulator that will transform your workflow. Whether you choose to switch to Neovim or stick with Vim 8, you'll be a better developer.
A serious tool for programmers and web developers, no other text editor comes close to Vim for speed and efficiency. Make Vim the centerpiece of a Unix-based IDE as you discover new ways to work with Vim 8 and Neovim in 28 hands-on tips.
Execute tasks asynchronously, allowing you to continue in Vim while linting, grepping, building a project, or running a test suite. Install plugins to be loaded on startup - or on-demand when you need them - with Vim 8's new package support. Save and restore sessions, enabling you to quit Vim a ...
Finally, a ground-up, quick-start approach to XSLT that teaches not just the language, but XML processing solutions. XSLT Jumpstarter approaches the subject like no other book, using examples that ease you through the basic concepts while demonstrating how to solve common problems. It doesn't unload language elements on you, it shows how to create HTML output, rearrange and modify XML nodes, manipulate text, conditionalize processing, make global changes, perform grouping and sorting, and implement strategies for re-using templates and stylesheets. XSLT Jumpstarter offers a hands-on, jump-in-the-water approach that will launch you over the XSLT learning curve! ...
Java by Comparison
Improve your coding skills by comparing your code to that of expert programmers so you can write code that's clean, concise, and to the point: code that others will read with pleasure and reuse. Get hands-on advice to level up your coding style through small and understandable examples that compare flawed code to an improved solution. Discover handy tips and tricks, as well as common bugs an experienced Java programmer needs to know. Make your way from a Java novice to a master craftsman.
This book is a useful companion for anyone learning to write clean Java code. The authors introduce you to the fundamentals of becoming a software craftsman by comparing pieces of problematic code with an improved version to help you to develop a sense for clean code. This unique before-and-after approach teaches you to create clean Java code.
Learn to keep your booleans in check, dodge formatting bugs, get rid of magic numbers, and use the right style of iteration. Write informative comments wh ...
Seven Databases in Seven Weeks, 2nd Edition
Data is getting bigger and more complex by the day, and so are your choices in handling it. Explore some of the most cutting-edge databases available - from a traditional relational database to newer NoSQL approaches - and make informed decisions about challenging data storage problems. This is the only comprehensive guide to the world of NoSQL databases, with in-depth practical and conceptual introductions to seven different technologies: Redis, Neo4J, CouchDB, MongoDB, HBase, Postgres, and DynamoDB. This 2nd edition includes a new chapter on DynamoDB and updated content for each chapter.
While relational databases such as MySQL remain as relevant as ever, the alternative, NoSQL paradigm has opened up new horizons in performance and scalability and changed the way we approach data-centric problems. This book presents the essential concepts behind each database alongside hands-on examples that make each technology come alive.
With each database, tackle a real-world problem that h ...
Software Design X-Rays
Are you working on a codebase where cost overruns, death marches, and heroic fights with legacy code monsters are the norm? Battle these adversaries with novel ways to identify and prioritize technical debt, based on behavioral data from how developers work with code. And that's just for starters. Because good code involves social design, as well as technical design, you can find surprising dependencies between people and code to resolve coordination bottlenecks among teams. Best of all, the techniques build on behavioral data that you already have: your version-control system. Join the fight for better code!
Use statistics and data science to uncover both problematic code and the behavioral patterns of the developers who build your software. This combination gives you insights you can't get from the code alone. Use these insights to prioritize refactoring needs, measure their effect, find implicit dependencies between different modules, and automatically create knowledge maps of yo ...