Browse Results

Showing 25,176 through 25,200 of 53,402 results

Xcode Treasures: Master the Tools to Design, Build, and Distribute Great Apps

by Chris Adamson

Learn the critical tips and techniques to make using Xcode for the iPhone, iPad, or Mac easier, and even fun. Explore the features and functionality of Xcode you may not have heard of. Go under the hood to discover how projects really work, so when they stop working, you'll know how to fix them. Explore the common problems developers face when using Xcode, and find out how to get the most out of your IDE. Dig into Xcode, and you'll discover it's richer and more powerful than you might have thought. Get a huge productivity boost by working with Xcode instead of against it. Instead of hacky code fixes and manual processes, once you know the the why and how of Xcode's process, you'll discover that doing things Xcode's way makes your app development more elegant and less aggravating. Explore the major features of Xcode: project management, building UIs with storyboards, code editing, compiling apps, fixing bugs and performance problems, unit- and UI testing, and source code management. Go beyond the basics and explore tasks that professionals deal with when they're working on big projects. Create storyboards that many developers can work on at once, even as projects grow to hundreds or thousands of files. Find the tools that make the code editor pleasant to work with, even in long coding sessions. Discover the right way to find and fix bugs when you have lots of code that's not always playing nicely together.Dig into specific and little-discussed features that help developers on Apple's other platforms: macOS, watchOS, and tvOS. When you're ready to distribute your app, learn how Apple's code-signing system really works. Find out when to let Xcode handle it automatically, and how to do it manually when needed. Discover how much easier and more fun iOS development is when you know the secrets of the tools. What You Need:This book requires Xcode 9 and a Mac running macOS High Sierra (10.13.2) or later. Additionally, an iOS device is recommended for on-device testing but not required.

Build Reactive Websites with RxJS: Master Observables And Wrangle Events

by Randall Koutnik

Upgrade your skillset, succeed at work, and above all, avoid the many headaches that come with modern front-end development. Simplify your codebase with hands-on examples pulled from real-life applications. Master the mysteries of asynchronous state management, detangle puzzling race conditions, and send spaceships soaring through the cosmos. When you finish this book, you'll be able to tame the wild codebeasts before they ever get a chance to wreck your day. The front-end world can be fraught with complexity. The RxJS library offers a solution: Observables. Observables merge other JavaScript asynch mechanisms such as callbacks and promises into a new way of looking at data. Instead of dealing with objects and keeping track of their state, Observables view asynchronous events as a stream. RxJS provides you the tools to manage, manipulate, and process Observables to simplify and speed up your front-end applications. Never fear, you're in exactly the right place. Don't worry about getting stuck in a mire of theory. Start off with the basics, building small applications that illustrate deeper points. Take those building blocks and apply them to much more complex problems like handling asynchronous state and dodging race conditions before they happen. Once you've got a handle on complex problems, take a leap into architecture, discovering how to structure an Observable-based application both without a framework and in the land of Angular 2. After mastering Observables, switch gears to building a canvas-based game, demonstrating your deep understanding of the flexibility of Observables. Master the Observable with RxJS, and make your asynchronous JavaScript code that much cleaner and simpler. What You Need: Any major browser and text editor, as well as the current versions of git, NodeJS, and npm.

Property-Based Testing with PropEr, Erlang, and Elixir: Find Bugs Before Your Users Do

by Fred Hebert

Property-based testing helps you create better, more solid tests with little code. By using the PropEr framework in both Erlang and Elixir, this book teaches you how to automatically generate test cases, test stateful programs, and change how you design your software for more principled and reliable approaches. You will be able to better explore the problem space, validate the assumptions you make when coming up with program behavior, and expose unexpected weaknesses in your design. PropEr will even show you how to reproduce the bugs it found. With this book, you will be writing efficient property-based tests in no time. Most tests only demonstrate that the code behaves how the developer expected it to behave, and therefore carry the same blind spots as their authors when special conditions or edge cases show up. Learn how to see things differently with property tests written in PropEr. Start with the basics of property tests, such as writing stateless properties, and using the default generators to generate test cases automatically. More importantly, learn how to think in properties. Improve your properties, write custom data generators, and discover what your code can or cannot do. Learn when to use property tests and when to stick with example tests with real-world sample projects. Explore various testing approaches to find the one that's best for your code. Shrink failing test cases to their simpler expression to highlight exactly what breaks in your code, and generate highly relevant data through targeted properties. Uncover the trickiest bugs you can think of with nearly no code at all with two special types of properties based on state transitions and finite state machines. Write Erlang and Elixir properties that generate the most effective tests you'll see, whether they are unit tests or complex integration and system tests. What You Need Basic knowledge of Erlang, optionally ElixirFor Erlang tests: Erlang/OTP >= 20.0, with Rebar >= 3.4.0For Elixir tests: Erlang/OTP >= 20.0, Elixir >= 1.5.0

Genetic Algorithms and Machine Learning for Programmers

by Frances Buontempo

Self-driving cars, natural language recognition, and online recommendation engines are all possible thanks to Machine Learning. Now you can create your own genetic algorithms, nature-inspired swarms, Monte Carlo simulations, cellular automata, and clusters. Learn how to test your ML code and dive into even more advanced topics. If you are a beginner-to-intermediate programmer keen to understand machine learning, this book is for you. Discover machine learning algorithms using a handful of self-contained recipes. Build a repertoire of algorithms, discovering terms and approaches that apply generally. Bake intelligence into your algorithms, guiding them to discover good solutions to problems. In this book, you will: Use heuristics and design fitness functions.Build genetic algorithms.Make nature-inspired swarms with ants, bees and particles.Create Monte Carlo simulations.Investigate cellular automata.Find minima and maxima, using hill climbing and simulated annealing.Try selection methods, including tournament and roulette wheels.Learn about heuristics, fitness functions, metrics, and clusters. Test your code and get inspired to try new problems. Work through scenarios to code your way out of a paper bag; an important skill for any competent programmer. See how the algorithms explore and learn by creating visualizations of each problem. Get inspired to design your own machine learning projects and become familiar with the jargon. What You Need: Code in C++ (>= C++11), Python (2.x or 3.x) and JavaScript (using the HTML5 canvas). Also uses matplotlib and some open source libraries, including SFML, Catch and Cosmic-Ray. These plotting and testing libraries are not required but their use will give you a fuller experience. Armed with just a text editor and compiler/interpreter for your language of choice you can still code along from the general algorithm descriptions.

Programming Crystal: Create High-Performance, Safe, Concurrent Apps

by Ivo Balbaert Simon St. Laurent

Crystal is for Ruby programmers who want more performance, or for developers who enjoy working in a high-level scripting environment. Crystal combines native execution speed and concurrency with Ruby-like syntax, so you will feel right at home. This book, the first available on Crystal, shows you how to write applications that have the beauty and elegance of a modern language, combined with the power of types and modern concurrency tooling. Now you can write beautiful code that runs faster, scales better, and is a breeze to deploy. Crystal is elegant to read and easy to program like Ruby, allowing full object-oriented development. Its compiler is powerful enough to nearly always infer the type of your variables. So you get the benefits of a statically typed language: more robust code, safety and execution speed, while still reaching high productivity in development. Null pointer exceptions as in JavaScript, Java or C#, are a thing of the past: Crystal annihilates them, just like Rust. Explore the building blocks and design of the language, and how you can use the Crystal tool-chain to build and manage powerful applications. Harness the power of the macro system, as well as how to work with fibers and channels, making concurrency as easy as possible. Learn how to use the Kemal web framework and access databases, and how to tap the potential of existing Crystal libraries. Find the spot that Crystal fills in today's software world with real-world examples. With Crystal, you can combine the best of both worlds: the high-level coding of dynamic languages, and the safety and blazing performance of a natively compiled language. What You Need: To develop in Crystal, you only need Crystal v 0.26 the latest version, a common text editor and a browser.

Practical Security: Simple Practices for Defending Your Systems

by Roman Zabicki

Most security professionals don't have the words "security" or "hacker" in their job title. Instead, as a developer or admin you often have to fit in security alongside your official responsibilities - building and maintaining computer systems. Implement the basics of good security now, and you'll have a solid foundation if you bring in a dedicated security staff later. Identify the weaknesses in your system, and defend against the attacks most likely to compromise your organization, without needing to become a trained security professional. Computer security is a complex issue. But you don't have to be an expert in all the esoteric details to prevent many common attacks. Attackers are opportunistic and won't use a complex attack when a simple one will do. You can get a lot of benefit without too much complexity, by putting systems and processes in place that ensure you aren't making the obvious mistakes. Secure your systems better, with simple (though not always easy) practices. Plan to patch often to improve your security posture. Identify the most common software vulnerabilities, so you can avoid them when writing software. Discover cryptography - how it works, how easy it is to get wrong, and how to get it right. Configure your Windows computers securely. Defend your organization against phishing attacks with training and technical defenses. Make simple changes to harden your system against attackers. What You Need: You don't need any particular software to follow along with this book. Examples in the book describe security vulnerabilities and how to look for them. These examples will be more interesting if you have access to a code base you've worked on. Similarly, some examples describe network vulnerabilities and how to detect them. These will be more interesting with access to a network you support.

Docker for Rails Developers: Build, Ship, and Run Your Applications Everywhere

by Rob Isenberg

Docker does for DevOps what Rails did for web development--it gives you a new set of superpowers. Gone are "works on my machine" woes and lengthy setup tasks, replaced instead by a simple, consistent, Docker-based development environment that will have your team up and running in seconds. Gain hands-on, real-world experience with a tool that's rapidly becoming fundamental to software development. Go from zero all the way to production as Docker transforms the massive leap of deploying your app in the cloud into a baby step. Docker makes life as a Ruby and Rails developer easier. It helps build, ship, and run your applications, solving major problems you face every day. It allows you to run applications at scale, adding new resources as needed. Docker provides a reliable, consistent environment that's guaranteed to work the same everywhere. Docker lets you do all things DevOps without needing a PhD in infrastructure and operations. Want to spin up a cluster to run your app? No problem. Scale it up or down at will? You bet. Start by running a Ruby script without having Ruby installed on the local machine. Then Dockerize a Rails application and run it using containers, including creating your own custom Docker images tailored for running Rails apps. Describe your app declaratively using Docker Compose, specifying the software dependencies along with everything needed to run the application. Then set up continuous integration, as well as your deployment pipeline and infrastructure. Along the way, find out the best practices for using Docker in development and production environments. This book gives you a solid foundation on using Docker and fitting it into your development workflow and deployment process. What You Need:All you need is a Windows, Mac OS X or Linux machine to do development on. This book guides you through the process of installing Docker. Some basic familiarity with Linux/Unix is recommended even if you're using a Windows machine.

Programming WebAssembly with Rust: Unified Development For Web, Mobile, And Embedded Applications

by Kevin Hoffman

WebAssembly fulfills the long-awaited promise of web technologies: fast code, type-safe at compile time, execution in the browser, on embedded devices, or anywhere else. Rust delivers the power of C in a language that strictly enforces type safety. Combine both languages and you can write for the web like never before! Learn how to integrate with JavaScript, run code on platforms other than the browser, and take a step into IoT. Discover the easy way to build cross-platform applications without sacrificing power, and change the way you write code for the web. WebAssembly is more than just a revolutionary new technology. It's reshaping how we build applications for the web and beyond. Where technologies like ActiveX and Flash have failed, you can now write code in whatever language you prefer and compile to WebAssembly for fast, type-safe code that runs in the browser, on mobile devices, embedded devices, and more. Combining WebAssembly's portable, high-performance modules with Rust's safety and power is a perfect development combination. Learn how WebAssembly's stack machine architecture works, install low-level wasm tools, and discover the dark art of writing raw wast code. Build on that foundation and learn how to compile WebAssembly modules from Rust by implementing the logic for a checkers game. Create wasm modules in Rust to interoperate with JavaScript in many compelling ways. Apply your new skills to the world of non-web hosts, and create everything from an app running on a Raspberry Pi that controls a lighting system, to a fully-functioning online multiplayer game engine where developers upload their own arena-bound WebAssembly combat modules. Get started with WebAssembly today, and change the way you think about the web. What You Need: You'll need a Linux, Mac, or Windows workstation with an Internet connection. You'll need an up-to-date web browser that supports WebAssembly. To work with the sample code, you can use your favorite text editor or IDE. The book will guide you through installing the Rust and WebAssembly tools needed for each chapter.

Web Development with ReasonML: Type-Safe, Functional Programming for JavaScript Developers

by J. David Eisenberg

ReasonML is a new, type-safe, functional language that compiles to efficient, readable JavaScript. ReasonML interoperates with existing JavaScript libraries and works especially well with React, one of the most popular front-end frameworks. Learn how to take advantage of the power of a functional language while keeping the flexibility of the whole JavaScript ecosystem. Move beyond theory and get things done faster and more reliably with ReasonML today. ReasonML is a new syntax for OCaml, a battle-tested programming language used in industry for over 20 years. Designed to be familiar to JavaScript programmers, ReasonML code compiles to highly readable JavaScript. With ReasonML, you get OCaml's powerful functional programming features: a strong static type system with an excellent type inference engine, pattern matching, and features for functional programming with immutable variables. ReasonML also allows flexibility with opt-in side effects, mutation, and object-oriented programming. ReasonML hits the sweet spot between the pure theoretical world and the laissez-faire approach of JavaScript. Start using ReasonML's powerful type system as you learn the essentials of the language: variables and arithmetic operations. Gain expressive power as you write functions with named parameters and currying. Define your own data types, and integrate all these capabilities into a simple web page. Take advantage of ReasonML's functional data structures with map and reduce functions. Discover new ways to write algorithms with ReasonML's recursion support. Interoperate with existing JavaScript libraries with bindings, and write reactive web applications using ReasonML in tandem with React. Reinforce concepts with examples that range from short, tightly focused functions to complete programs, and practice your new skills with exercises in each chapter.With ReasonML, harness the awesome power of a functional language while retaining the best features of JavaScript to produce concise, fast, type-safe programs.What You Need:You'll need to have node.js (version 10.0 or above) and npm (version 5.6 or above). Once you install the bs-platform package and fire up a text editor, you're ready to go. (There are plugins for many popular editors that will make editing easier.)

Programming Ecto: Build Database Apps in Elixir for Scalability and Performance

by Darin Wilson Eric Meadows-Jonsson

Languages may come and go, but the relational database endures. Learn how to use Ecto, the premier database library for Elixir, to connect your Elixir and Phoenix apps to databases. Get a firm handle on Ecto fundamentals with a module-by-module tour of the critical parts of Ecto. Then move on to more advanced topics and advice on best practices with a series of recipes that provide clear, step-by-step instructions on scenarios commonly encountered by app developers. Co-authored by the creator of Ecto, this title provides all the essentials you need to use Ecto effectively. Elixir and Phoenix are taking the application development world by storm, and Ecto, the database library that ships with Phoenix, is going right along with them. There are plenty of examples that show you the basics, but to use Ecto to its full potential, you need to learn the library from the ground up. This definitive guide starts with a tour of the core features of Ecto - repos, queries, schemas, changesets, transactions - gradually building your knowledge with tasks of ever-increasing complexity. Along the way, you'll be learning by doing - a sample application handles all the boilerplate so you can focus on getting Ecto into your fingers. Build on that core knowledge with a series of recipes featuring more advanced topics. Change your pooling strategy to maximize your database's efficiency. Use nested associations to handle complex table relationships. Add streams to handle large result sets with ease. Based on questions from Ecto users, these recipes cover the most common situations developers run into. Whether you're new to Ecto, or already have an app in production, this title will give you a deeper understanding of how Ecto works, and help make your database code cleaner and more efficient. What You Need: To follow along with the book, you should have Erlang/OTP 19+ and Elixir 1.4+ installed. The book will guide you through setting up a sample application that integrates Ecto.

Small, Sharp Software Tools: Harness the Combinatoric Power of Command-Line Tools and Utilities

by Brian P. Hogan

The command-line interface is making a comeback. That's because developers know that all the best features of your operating system are hidden behind a user interface designed to help average people use the computer. But you're not the average user, and the CLI is the most efficient way to get work done fast. Turn tedious chores into quick tasks: read and write files, manage complex directory hierarchies, perform network diagnostics, download files, work with APIs, and combine individual programs to create your own workflows. Put down that mouse, open the CLI, and take control of your software development environment. No matter what language or platform you're using, you can use the CLI to create projects, run servers, and manage files. You can even create new tools that fit right in with grep, sed, awk, and xargs. You'll work with the Bash shell and the most common command-line utilities available on macOS, Windows 10, and many flavors of Linux.Create files without opening a text editor. Manage complex directory strutures and move around your entire file system without touching the mouse. Diagnose network issues and interact with APIs. Chain several commands together to transform data, and create your own scripts to automate repetitive tasks. Make things even faster by customizing your environment, creating shortcuts, and integrating other tools into your environment. Hands-on activities and exercises will cement your newfound knowledge and give you the confidence to use the CLI to its fullest potential. And if you're worried you'll wreck your system, this book walks you through creating an Ubuntu virtual machine so you can practice worry-free.Dive into the CLI and join the thousands of other devs who use it every day.What You Need:You'll need macOS, Windows 10, or a Linux distribution like Ubuntu, Fedora, CentOS, or Debian using the Bash shell.

Test-Driven React: Find Problems Early, Fix Them Quickly, Code with Confidence

by Trevor Burnham

You work in a loop: write code, get feedback, iterate. The faster you get feedback, the faster you can learn and become a more effective developer. Test-Driven React helps you refine your React workflow to give you the feedback you need as quickly as possible. Write strong tests and run them continuously as you work, split complex code up into manageable pieces, and stay focused on what's important by automating away mundane, trivial tasks. Adopt these techniques and you'll be able to avoid productivity traps and start building React components at a stunning pace!

Build Chatbot Interactions: Responsive, Intuitive Interfaces with Ruby

by Daniel Pritchett

The next step in the evolution of user interfaces is here. Chatbots let your users interact with your service in their own natural language. Use free and open source tools along with Ruby to build creative, useful, and unexpected interactions for users. Take advantage of the Lita framework's step-by-step implementation strategy to simplify bot development and testing. From novices to experts, chatbots are an area in which everyone can participate. Exercise your creativity by creating chatbot skills for communicating, information, and fun. Developers of all skill levels can craft user experiences that are natural, easy to use, and most of all, fun. Build chatbots using free, open source tools and launch them to popular chat platforms like Slack and Amazon's Alexa. Use the Ruby programming language and the Lita bot framework to unlock fun and powerful chat abilities such as sending text messages and emails, creating new meme images, driving a robot around the room, and talking out loud on a home speaker. Use frameworks available in Ruby and Node.js to get started quickly. Create simple chatbot skills that respond quickly to basic requests. Chain skills together for more complex interactions. Take advantage of test-driven development techniques to build your bots with confidence. Coordinate tasks with colleagues via bot. Connect with external APIs to provide users with data they need. Extract data information from web pages when an API isn't available. Expand your bot's reach with SMS and e-mail messaging. Deploy a chatbot to a host so users can interact with it on their schedule. Build a more responsive, easy-to-use interface for your users today. What You Need: You don't need much to get started with chatbots. A Mac or Linux computer with a recent version of Ruby is recommended. Windows users can keep up with a free virtual machine running Linux. You'll deploy your chatbots for free (or at least cheaply) on cloud hosting platforms like Heroku and Digital Ocean.

Technical Blogging: Amplify Your Influence

by Antonio Cangiano

Successful technical blogging is not easy but it's also not magic. Use these techniques to attract and keep an audience of loyal, regular readers. Leverage this popularity to reach your goals and amplify your influence in your field. Get more more users for your startup or open source project, or simply find an outlet to share your expertise. This book is your blueprint, with step-by-step instructions that leave no stone unturned. Plan, create, maintain, and promote a successful blog that will have remarkable effects on your career or business. Successful people often get recognition by teaching what they know. Blogging is a reliable path to do that, while gaining influence in the process. The problem is getting it right. Far too often professionals start a blog with big hopes, only to quickly give up because they don't get speedy results. This book will spare you that fate, by outlining a careful plan of action. A plan that will bring amazing benefits to your career, new job possibilities, as well as publishing, speaking, and consulting opportunities. And if you are blogging for business, you'll attract new customers, partners, and outstanding employees. Understand what blogging is and how it can improve your professional (and personal) life. Devise a plan for your new or existing blog. Create remarkable content that ranks well in Google and is shared by readers. Beat procrastination by employing proven time-management techniques that make you an efficient and effective blogger. Promote your blog by mastering on-page and off-page SEO, as well as social media promotion, without compromising your ethics. Analyze your traffic to understand your audience and measure growth. Build a community around your blog and make the best of your newfound popularity, by maximizing its benefits for your career, business, or simply for extra income. Create and maintain a successful technical blog that will amplify your impact, influence, and reach by following Antonio's step-by-step plan.

Programming Elm: Build Safe, Sane, and Maintainable Front-End Applications

by Jeremy Fairbank

Elm brings the safety and stability of functional programing to front-end development, making it one of the most popular new languages. Elm's functional nature and static typing means that run-time errors are nearly impossible, and it compiles to JavaScript for easy web deployment. This book helps you take advantage of this new language in your web site development. Learn how the Elm Architecture will help you create fast applications. Discover how to integrate Elm with JavaScript so you can update legacy applications. See how Elm tooling makes deployment quicker and easier. Functional programming offers safer applications with decreased runtime errors, but functional solutions that are type safe and easy to use have been hard to find, until the Elm language. Elm has the benefits of functional languages while compiling to JavaScript. This book provides a complete tutorial for the Elm language, starting with a simple static application that introduces Elm syntax, modules, and the virtual DOM, to exploring how to create a UI using functions. See how Elm handles the issues of state in functional languages. You'll continue to build up larger applications involving HTTP requests for communication. Integrate your Elm applications with JavaScript so you can update legacy applications or take advantage of JavaScript resources. Elm also provides built-in tooling to alleviate the tooling creep that's so common in JavaScript. This book covers Elm's deployment and testing tools that ease development confusion. Dive into advanced concepts including creating single-page applications, and creating performance improvements. Elm expert Jeremy Fairbank brings his years of web development experience to teaching how to use Elm for front-end development. Your web UIs will be faster, safer, and easier to develop with Elm and this tutorial. What You Need:You will need the latest version of Elm, 0.19, along with a browser to run the examples in this book.

Programming Kotlin: Create Elegant, Expressive, and Performant JVM and Android Applications

by Venkat Subramaniam

Programmers don't just use Kotlin, they love it. Even Google has adopted it as a first-class language for Android development. With Kotlin, you can intermix imperative, functional, and object-oriented styles of programming and benefit from the approach that's most suitable for the problem at hand. Learn to use the many features of this highly concise, fluent, elegant, and expressive statically typed language with easy-to-understand examples. Learn to write easy-to-maintain, high-performing JVM and Android applications, create DSLs, program asynchrony, and much more. Kotlin is a highly concise, elegant, fluent, and expressive statically typed multi-paradigm language. It is one of the few languages that compiles down to both Java bytecode and JavaScript. You can use it to build server-side, front-end, and Android applications. With Kotlin, you need less code to accomplish your tasks, while keeping the code type-safe and less prone to error. If you want to learn the essentials of Kotlin, from the fundamentals to more advanced concepts, you've picked the right book. Fire up your favorite IDE and practice hundreds of examples and exercises to sharpen your Kotlin skills. Learn to build standalone small programs to run as scripts, create type safe code, and then carry that knowledge forward to create fully object-oriented and functional style code that's easier to extend. Learn how to program with elegance but without compromising efficiency or performance, and how to use metaprogramming to build highly expressive code and create internal DSLs that exploit the fluency of the language. Explore coroutines, program asynchrony, run automated tests, and intermix Kotlin with Java in your enterprise applications. This book will help you master one of the few languages that you can use for the entire full stack - from the server to mobile devices - to create performant, concise, and easy to maintain applications. What You Need: To try out the examples in the book you'll need a computer with Kotlin SDK, JDK, and a text editor or a Kotlin IDE installed in it.

Programming Phoenix 1.4: Productive |> Reliable |> Fast

by Chris McCord Bruce Tate Jose Valim

Don't accept the compromise between fast and beautiful: you can have it all. Phoenix creator Chris McCord, Elixir creator Jose Valim, and award-winning author Bruce Tate walk you through building an application that's fast and reliable. At every step, you'll learn from the Phoenix creators not just what to do, but why. Packed with insider insights and completely updated for Phoenix 1.4, this definitive guide will be your constant companion in your journey from Phoenix novice to expert, as you build the next generation of web applications. Phoenix is the long-awaited web framework based on Elixir, the highly concurrent language that combines a beautiful syntax with rich metaprogramming. The best way to learn Phoenix is to code, and you'll get to attack some interesting problems. Start working with controllers, views, and templates within the first few pages. Build an in-memory context, and then back it with an Ecto database layer, complete with changesets and constraints that keep readers informed and your database integrity intact. Craft your own interactive application based on the channels API for the real-time applications that this ecosystem made famous. Write your own authentication plugs, and use the OTP layer for supervised services. Organize code with modular umbrella projects. This edition is fully updated for Phoenix 1.4, with a new chapter on using Channel Presence to find out who's connected, even on a distributed application. Use the new generators and the new ExUnit features to organize tests and make Ecto tests concurrent. This is a book by developers and for developers, and we know how to help you ramp up quickly. Any book can tell you what to do. When you've finished this one, you'll also know why to do it. What You Need:To work through this book, you will need a computer capable of running Erlang 18 or higher, Elixir 1.5 or higher, and Phoenix 1.4 or higher. A rudimentary knowledge of Elixir is also highly recommended.

Designing Elixir Systems With OTP: Write Highly Scalable, Self-healing Software with Layers

by James Edward Gray II Bruce A. Tate

You know how to code in Elixir; now learn to think in it. Learn to design libraries with intelligent layers that shape the right data structures, flow from one function into the next, and present the right APIs. Embrace the same OTP that's kept our telephone systems reliable and fast for over 30 years. Move beyond understanding the OTP functions to knowing what's happening under the hood, and why that matters. Using that knowledge, instinctively know how to design systems that deliver fast and resilient services to your users, all with an Elixir focus. Elixir is gaining mindshare as the programming language you can use to keep you software running forever, even in the face of unexpected errors and an ever growing need to use more processors. This power comes from an effective programming language, an excellent foundation for concurrency and its inheritance of a battle-tested framework called the OTP. If you're using frameworks like Phoenix or Nerves, you're already experiencing the features that make Elixir an excellent language for today's demands. This book shows you how to go beyond simple programming to designing, and that means building the right layers. Embrace those data structures that work best in functional programs and use them to build functions that perform and compose well, layer by layer, across processes. Test your code at the right place using the right techniques. Layer your code into pieces that are easy to understand and heal themselves when errors strike. Of all Elixir's boons, the most important one is that it guides us to design our programs in a way to most benefit from the architecture that they run on. The experts do it and now you can learn to design programs that do the same.What You Need:Elixir Version 1.7 or greater.

Software Estimation Without Guessing: Effective Planning in an Imperfect World

by George Dinwiddie

Estimating software development often produces more angst than value, but it doesn't have to. Identify the needs behind estimate requests and determine how to meet those needs simply and easily. Choose estimation techniques based on current needs and available information, gaining benefit while reducing cost and effort. Detect bad assumptions that might sink your project if you don't adjust your plans. Discover what to do when an estimate is wrong, how to recover, and how to use that knowledge for future planning. Learn to communicate about estimates in a healthy and productive way, maximizing advantage to the organization and minimizing damage to the people. In a world where most developers hate estimation and most managers fear disappointment with the results, there is hope for both. It requires giving up some widely held misconceptions. Let go of the notion that "an estimate is an estimate" and estimate for the particular need you, and your organization, have. Realize that estimates have a limited shelf-life, and reestimate frequently if it's important. When reality differs from your estimate, don't lament; mine that disappointment for the gold that can be the longer-term jackpot. Estimate in comparison to past experience, by modeling the work mathematically, or a hybrid of both. Learn strategies for effective decomposition of work and aspects of the work that likely affect your estimates. Hedge your bets by comparing the results of different approaches. Find out what to do when an estimate proves wrong. And they will. They're estimates, after all. You'll discover that you can use estimates to warn you of danger so you can take appropriate action in time. Learn some crucial techniques to understand and communicate with those who need to understand. Address both the technical and sociological aspects of estimation, and you'll help your organization achieve its desired goals with less drama and more benefit. What You Need: No software needed, just your past experience and concern for the outcomes.

Fixing Your Scrum: Practical Solutions to Common Scrum Problems

by Ryan Ripley Todd Miller

A Scrum Master's work is never done. The Development team needs your support, the Product Owner is often lost in the complexities of agile product management, and your managers and stakeholders need to know what will be done, by when, and for how much. Learn how experienced Scrum Masters balance the demands of these three levels of servant leadership while removing organizational impediments and helping Scrum Teams deliver real world value. Discover how to visualize your work, resolve impediments, and empower your teams to self-organize and deliver using the Scrum Values, Agile Principles, and advanced coaching and facilitation techniques. A Scrum Master needs to know when their team is in trouble and understand how to help them get back on the path to delivery. Become a better Scrum master so you can find the problems holding your teams back. Has your Daily Scrum turned in to a meeting? Does your team struggle with creating user stories? Are stakeholders disengaged during Sprint Review? These issues are common. Learn to use empiricism as your guide and help your teams create great products. Scrum is so much more than a checklist of practices to follow, yet that's exactly how many organizations practice it. Bring life back to your Scrum events by using advanced facilitation techniques to leverage the full intelligence of your team. Improve your retrospectives with new formats and exercises. Ask powerful questions that spark introspection and improvement. Get support and buy-in from management. Use Scrum as a competitive advantage for your organization. Create a definition of done that improves quality and fix failing sprints. Take the next step on your journey as a Scrum master. Transform your Scrum practices to help your teams enjoy their work again as they deliver high quality products that bring value to the world. What You Need: A moderate level of experience using the Scrum Framework.

Modern Systems Programming with Scala Native: Write Lean, High-Performance Code without the JVM

by Richard Whaling

Access the power of bare-metal systems programming with Scala Native, an ahead-of-time Scala compiler. Without the baggage of legacy frameworks and virtual machines, Scala Native lets you re-imagine how your programs interact with your operating system. Compile Scala code down to native machine instructions; seamlessly invoke operating system APIs for low-level networking and IO; control pointers, arrays, and other memory management techniques for extreme performance; and enjoy instant start-up times. Skip the JVM and improve your code performance by getting close to the metal. Developers generally build systems on top of the work of those who came before, accumulating layer upon layer of abstraction. Scala Native provides a rare opportunity to remove layers. Without the JVM, Scala Native uses POSIX and ANSI C APIs to build concise, expressive programs that run unusually close to bare metal. Scala Native compiles Scala code down to native machine instructions instead of JVM bytecode. It starts up fast, without the sluggish warm-up phase that's common for just-in-time compilers. Scala Native programs can seamlessly invoke operating system APIs for low-level networking and IO. And Scala Native lets you control pointers, arrays, and other memory layout types for extreme performance. Write practical, bare-metal code with Scala Native, step by step. Understand the foundations of systems programming, including pointers, arrays, strings, and memory management. Use the UNIX socket API to write network client and server programs without the sort of frameworks higher-level languages rely on. Put all the pieces together to design and implement a modern, asynchronous microservice-style HTTP framework from scratch. Take advantage of Scala Native's clean, modern syntax to write lean, high-performance code without the JVM.What You Need:A modern Windows, Mac OS, or Linux system capable of running Docker. All code examples in the book are designed to run on a portable Docker-based build environment that runs anywhere. If you don't have Docker yet, see the Appendix for instructions on how to get it.

Agile Web Development with Rails 6

by Sam Ruby David B. Copeland Dave Thomas

Learn Rails the way the Rails core team recommends it, along with the tens of thousands of developers who have used this broad, far-reaching tutorial and reference. If you're new to Rails, you'll get step-by-step guidance. If you're an experienced developer, get the comprehensive, insider information you need for the latest version of Ruby on Rails. The new edition of this award-winning classic is completely updated for Rails 6 and Ruby 2.6, with information on system testing, Webpack, and advanced JavaScript. Ruby on Rails helps you produce high-quality, beautiful-looking web applications quickly - you concentrate on creating the application, and Rails takes care of the details. Rails 6 brings many improvements, and this edition is updated to cover the new features and changes in best practices. We start with a step-by-step walkthrough of building a real application, and in-depth chapters look at the built-in Rails features. Follow along with an extended tutorial as you write a web-based store application. Eliminate tedious configuration and housekeeping, seamlessly incorporate Ajax and JavaScript, send and receive emails, manage background jobs with ActiveJob, and build real-time features using WebSockets and ActionCable. Test your applications as you write them using the built-in unit, integration, and system testing frameworks, internationalize your applications, and deploy your applications easily and securely. New in this edition is coverage of Action Mailer, which allows you to receive emails in your app as well as ActionText, a zero-configuration rich text editing feature. Rails 1.0 was released in December 2005. This book was there from the start, and didn't just evolve alongside Rails, it evolved with Rails. It has been developed in consultation with the Rails core team. In fact, Rails itself is tested against the code in this book. What You Need: All you need is a Windows, Mac OS X, or Linux machine to do development on. This book will take you through the steps to install Rails and its dependencies. If you aren't familiar with the Ruby programming language, this book contains a chapter that covers the basics necessary to understand the material in the book.

A Scrum Book: The Spirit of the Game

by Jeff Sutherland James O. Coplien

Building a successful product usually involves teams of people, and many choose the Scrum approach to aid in creating products that deliver the highest possible value. Implementing Scrum gives teams a collection of powerful ideas they can assemble to fit their needs and meet their goals. The ninety-four patterns contained within are elaborated nuggets of insight into Scrum’s building blocks, how they work, and how to use them. They offer novices a roadmap for starting from scratch, yet they help intermediate practitioners fine-tune or fortify their Scrum implementations. Experienced practitioners can use the patterns and supporting explanations to get a better understanding of how the parts of Scrum complement each other to solve common problems in product development. The patterns are written in the well-known Alexandrian form, whose roots in architecture and design have enjoyed broad application in the software world. The form organizes each pattern so you can navigate directly to organizational design tradeoffs or jump to the solution or rationale that makes the solution work. The patterns flow together naturally through the context sections at their beginning and end. Learn everything you need to know to master and implement Scrum one step at a time—the agile way.

Programming Flutter: Native, Cross-Platform Apps the Easy Way

by Carmine Zaccagnino

Work in Flutter, a framework designed from the ground up for dual platform development, with support for native Java/Kotlin or Objective-C/Swift methods from Flutter apps. Write your next app in one language and build it for both Android and iOS. Deliver the native look, feel, and performance you and your users expect from an app written with each platform's own tools and languages. Deliver apps fast, doing half the work you were doing before and exploiting powerful new features to speed up development. Write once, run anywhere. Learn Flutter, Google's multi-platform mobile development framework. Instantly view the changes you make to an app with stateful hot reload and define a declarative UI in the same language as the app logic, without having to use separate XML UI files. You can also reuse existing platform-specific Android and iOS code and interact with it in an efficient and simple way. Use built-in UI elements - or build your own - to create a simple calculator app. Run native Java/Kotlin or Objective-C/Swift methods from your Flutter apps, and use a Flutter package to make HTTP requests to a Web API or to perform read and write operations on local storage. Apply visual effects to widgets, create transitions and animations, create a chat app using Firebase, and deploy everything on both platforms. Get native look and feel and performance in your Android and iOS apps, and the ability to build for both platforms from a single code base. What You Need: Flutter can be used for Android development on any Linux, Windows or macOS computer, but macOS is needed for iOS development.

Competing with Unicorns: How the World's Best Companies Ship Software and Work Differently

by Jonathan Rasmusson

Today's tech unicorns develop software differently. They've developed a way of working that lets them scale like an enterprise while working like a startup. These techniques can be learned. This book takes you behind the scenes and shows you how companies like Google, Facebook, and Spotify do it. Leverage their insights, so your teams can work better together, ship higher-quality product faster, innovate more quickly, and compete with the unicorns. Massively successful tech companies, or Unicorns, have discovered how to take the techniques that made them successful as a startup and scale them to the enterprise level. Amazon, Facebook, Google, and Spotify all work like startups, despite having workforces numbering in the tens of thousands. Ex-Spotify engineer and coach, Jonathan Rasmusson, takes you behind the scenes and shows you how to develop software the way the best companies do it. Learn how to give teams purpose through Missions, empower and trust with Squads, and align large scale efforts through Bets. Create the culture necessary to make it happen. If you're a tech or product lead and you want to ship product better, this is your playbook on how the world's best do it. If you're an engineer, tester, analyst, or project manager, and you suspect there are better ways you could be working, you are correct. This book will show you how. And if you're a manager, Agile coach, or someone just charged with improving how your company ships software, this book will give you the tools, techniques, and practices of the world's most innovative, delivery-focused companies. Don't just admire the top companies - learn from them.

Refine Search

Showing 25,176 through 25,200 of 53,402 results