Browse Results

Showing 28,351 through 28,375 of 61,884 results

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 Bruce Tate Jose Valim Chris McCord

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 Bruce A. Tate James Edward Gray II

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 Todd Miller Ryan Ripley

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 James O. Coplien Jeff Sutherland

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.

Programming Machine Learning: From Coding to Deep Learning

by Paolo Perrotta

You've decided to tackle machine learning - because you're job hunting, embarking on a new project, or just think self-driving cars are cool. But where to start? It's easy to be intimidated, even as a software developer. The good news is that it doesn't have to be that hard. Master machine learning by writing code one line at a time, from simple learning programs all the way to a true deep learning system. Tackle the hard topics by breaking them down so they're easier to understand, and build your confidence by getting your hands dirty. Peel away the obscurities of machine learning, starting from scratch and going all the way to deep learning. Machine learning can be intimidating, with its reliance on math and algorithms that most programmers don't encounter in their regular work. Take a hands-on approach, writing the Python code yourself, without any libraries to obscure what's really going on. Iterate on your design, and add layers of complexity as you go. Build an image recognition application from scratch with supervised learning. Predict the future with linear regression. Dive into gradient descent, a fundamental algorithm that drives most of machine learning. Create perceptrons to classify data. Build neural networks to tackle more complex and sophisticated data sets. Train and refine those networks with backpropagation and batching. Layer the neural networks, eliminate overfitting, and add convolution to transform your neural network into a true deep learning system. Start from the beginning and code your way to machine learning mastery. What You Need: The examples in this book are written in Python, but don't worry if you don't know this language: you'll pick up all the Python you need very quickly. Apart from that, you'll only need your computer, and your code-adept brain.

Real-Time Phoenix: Build Highly Scalable Systems with Channels

by Stephen Bussey

Give users the real-time experience they expect, by using Elixir and Phoenix Channels to build applications that instantly react to changes and reflect the application's true state. Learn how Elixir and Phoenix make it easy and enjoyable to create real-time applications that scale to a large number of users. Apply system design and development best practices to create applications that are easy to maintain. Gain confidence by learning how to break your applications before your users do. Deploy applications with minimized resource use and maximized performance. Real-time applications come with real challenges - persistent connections, multi-server deployment, and strict performance requirements are just a few. Don't try to solve these challenges by yourself - use a framework that handles them for you. Elixir and Phoenix Channels provide a solid foundation on which to build stable and scalable real-time applications. Build applications that thrive for years to come with the best-practices found in this book. Understand the magic of real-time communication by inspecting the WebSocket protocol in action. Avoid performance pitfalls early in the development lifecycle with a catalog of common problems and their solutions. Leverage GenStage to build a data pipeline that improves scalability. Break your application before your users do and confidently deploy them. Build a real-world project using solid application design and testing practices that help make future changes a breeze. Create distributed apps that can scale to many users with tools like Phoenix Tracker. Deploy and monitor your application with confidence and reduce outages. Deliver an exceptional real-time experience to your users, with easy maintenance, reduced operational costs, and maximized performance, using Elixir and Phoenix Channels. What You Need:You'll need Elixir 1.9+ and Erlang/OTP 22+ installed on a Mac OS X, Linux, or Windows machine.

Practical Microservices: Build Event-Driven Architectures with Event Sourcing and CQRS

by Ethan Garofolo

MVC and CRUD make software easier to write, but harder to change. Microservice-based architectures can help even the smallest of projects remain agile in the long term, but most tutorials meander in theory or completely miss the point of what it means to be microservice-based. Roll up your sleeves with real projects and learn the most important concepts of evented architectures. You'll have your own deployable, testable project and a direction for where to go next. Much ink has been spilled on the topic of microservices, but all of this writing fails to accurately identity what makes a system a monolith, define what microservices are, or give complete, practical examples, so you're probably left thinking they have nothing to offer you. You don't have to be at Google or Facebook scale to benefit from a microservice-based architecture. Microservices will keep even small and medium teams productive by keeping the pieces of your system focused and decoupled. Discover the basics of message-based architectures, render the same state in different shapes to fit the task at hand, and learn what it is that makes something a monolith (it has nothing to do with how many machines you deploy to). Conserve resources by performing background jobs with microservices. Deploy specialized microservices for registration, authentication, payment processing, e-mail, and more. Tune your services by defining appropriate service boundaries. Deploy your services effectively for continuous integration. Master debugging techniques that work across different services. You'll finish with a deployable system and skills you can apply to your current project.Add the responsiveness and flexibility of microservices to your project, no matter what the size or complexity.What You Need:While the principles of this book transcend programming language, the code examples are in Node.js because JavaScript, for better or worse, is widely read. You'll use PostgreSQL for data storage, so familiarity with it is a plus. The books does provide Docker images to make working with PostgreSQL a bit easier, but extensive Docker knowledge is not required.

Become an Effective Software Engineering Manager: How To Be The Leader Your Development Team Needs

by Dr James Stanier

Software startups make global headlines every day. As technology companies succeed and grow, so do their engineering departments. In your career, you'll may suddenly get the opportunity to lead teams: to become a manager. But this is often uncharted territory. How can you decide whether this career move is right for you? And if you do, what do you need to learn to succeed? Where do you start? How do you know that you're doing it right? What does "it" even mean? And isn't management a dirty word? This book will share the secrets you need to know to manage engineers successfully. Going from engineer to manager doesn't have to be intimidating. Engineers can be managers, and fantastic ones at that. Cast aside the rhetoric and focus on practical, hands-on techniques and tools. You'll become an effective and supportive team leader that your staff will look up to. Start with your transition to being a manager and see how that compares to being an engineer. Learn how to better organize information, feel productive, and delegate, but not micromanage. Discover how to manage your own boss, hire and fire, do performance and salary reviews, and build a great team. You'll also learn the psychology: how to ship while keeping staff happy, coach and mentor, deal with deadline pressure, handle sensitive information, and navigate workplace politics. Consider your whole department. How can you work with other teams to ensure best practice? How do you help form guilds and committees and communicate effectively? How can you create career tracks for individual contributors and managers? How can you support flexible and remote working? How can you improve diversity in the industry through your own actions? This book will show you how. Great managers can make the world a better place. Join us.

Build Websites with Hugo: Fast Web Development With Markdown

by Brian P. Hogan

Database-driven sites bring complexity you might not need, but building a site by hand is too much work. Hugo is a static site generator and web development framework that creates content sites quickly without the overhead or dependencies of a dyanmic web framework. With Hugo, you use HTML templates and Markdown to build static sites you can host anywhere, letting you use the skills you already have. Develop your own theme using standard HTML and CSS, using Hugo’s powerful templating features to organize your site’s components. Create your site’s content with HTML or Markdown and use Hugo’s content templating features to build new content quickly. Build a fully-featured blog with archive pages, tagging, and pagination, and integrate an external commenting system to provide interactivity. Use data from front-matter, site-wide configuration, and external JSON sources to add content, and generate JSON others can use. Integrate JavaScript with your site to create a search engine. Get Hugo working with Webpack so you can leverage the wider web development ecosystem, and explore ways to publish your site to various services. Finally, learn how you can move your existing content site to Hugo. Dive in and build your next site with Hugo!

iOS Unit Testing by Example: Xctest Tips And Techniques Using Swift

by Jon Reid

Fearlessly change the design of your iOS code with solid unit tests. Use Xcode's built-in test framework XCTest and Swift to get rapid feedback on all your code - including legacy code. Learn the tricks and techniques of testing all iOS code, especially view controllers (UIViewControllers), which are critical to iOS apps. Learn to isolate and replace dependencies in legacy code written without tests. Practice safe refactoring that makes these tests possible, and watch all your changes get verified quickly and automatically. Make even the boldest code changes with complete confidence. Manual code and UI testing get slower the deeper your navigation hierarchy goes. It can take several taps just to reach a particular screen, never mind the actual workflow tests. Automatic unit testing offers such rapid feedback that it can change the rules of development. Bring testing to iOS development, even for legacy code. Use XCTest to write unit tests in Swift for all your code. iOS developers typically reserve unit tests for their model classes alone. But that approach skips most of the code common to iOS apps, especially with UIViewControllers. Learn how to unit test these view controllers to expand your unit testing possibilities. Since good unit tests form the bedrock for safe refactoring, you're empowered to make bold changes. Learn how to avoid the most common mistakes Swift programmers make with the XCTest framework. Use code coverage to find holes in your test suites. Learn how to identify hard dependencies. Reshape the design of your code quickly, with less risk and less fear.

Build Location-Based Projects for iOS: Gps, Sensors, And Maps

by Dominik Hauser

Coding is awesome. So is being outside. With location-based iOS apps, you can combine the two for an enhanced outdoor experience. Use Swift to create your own apps that use GPS data, read sensor data from your iPhone, draw on maps, automate with geofences, and store augmented reality world maps. You'll have a great time without even noticing that you're learning. And even better, each of the projects is designed to be extended and eventually submitted to the App Store. Explore, share, and have fun. Location-based apps are everywhere. From mapping our jogging path to pointing us to the nearest collectible creature in a location-based game, these apps offer useful and interesting features and information related to where you are. Using real-world maps and places as the environment, they add an extra layer of adventure to exploring the outdoors. If you've ever wanted to make your own location-based apps and games, you can learn how with four simple, Swift-based projects that are easy to code and fun to use. Build four stunning apps that sense the iPhone's surroundings. Use Core Location and MapKit to draw GPS data on maps and share the results to social media. Use the sensor data from the iPhone and draw acceleration graphs using Core Graphics while on a playground swing. Build an app that measures the time you spend outside using geofences. Combine Core Location and ARKit to build an augmented reality scavenger hunt app that you can use and play with other people. Have great time building creative apps you cannot wait to try out.

A Common-Sense Guide to Data Structures and Algorithms, Second Edition: Level Up Your Core Programming Skills

by Jay Wengrow

Algorithms and data structures are much more than abstract concepts. Mastering them enables you to write code that runs faster and more efficiently, which is particularly important for today’s web and mobile apps. Take a practical approach to data structures and algorithms, with techniques and real-world scenarios that you can use in your daily production code, with examples in JavaScript, Python, and Ruby. This new and revised second edition features new chapters on recursion, dynamic programming, and using Big O in your daily work. Use Big O notation to measure and articulate the efficiency of your code, and modify your algorithm to make it faster. Find out how your choice of arrays, linked lists, and hash tables can dramatically affect the code you write. Use recursion to solve tricky problems and create algorithms that run exponentially faster than the alternatives. Dig into advanced data structures such as binary trees and graphs to help scale specialized applications such as social networks and mapping software. You’ll even encounter a single keyword that can give your code a turbo boost. Practice your new skills with exercises in every chapter, along with detailed solutions. Use these techniques today to make your code faster and more scalable.

Quantum Computing: Program Next-gen Computers For Hard, Real-world Applications

by Nihal Mehta

You've heard that quantum computing is going to change the world. Now you can check it out for yourself. Learn how quantum computing works, and write programs that run on the IBM Q quantum computer, one of the world's first functioning quantum computers. Learn a simple way to apply quantum mechanics to computer programming. Create algorithms to solve intractable problems for classical computers, and discover how to explore the entire problem space at once to determine the optimal solution. Get your hands on the future of computing today. Quantum computing overhauls computer science. Problems such as designing life-saving drugs and super-large logistics problems that have been difficult or impossible for classical computers to handle can now be solved in moments. Quantum computing makes it possible to explore all possible solutions simultaneously and determine those that work, instead of iterating through each possibility sequentially. Work with quantum computers directly, instead of talking about them theoretically. Discover a new visual way of looking at quantum bits that makes quantum computing intuitive for computer programmers. Master the special properties that make them different, and more powerful, than classical bits. Control quantum bits with gates and create circuits to model complex problems. Write programs that run on real quantum machines to solve problems that classical computers struggle with. Dive into quantum optimization and cryptography. Get a head start on the technology that will drive computer science into the future. What You Need: Access to the IBM quantum computer, via any internet connection

Programming DSLs in Kotlin

by Venkat Subramaniam

Creating your own domain-specific languages (DSLs) is both challenging and exhilarating. DSLs give users a way to interact with your applications more effectively, and Kotlin is a fantastic language to serve as a host for internal DSLs, because it greatly reduces the pain and effort of design and development. But implementing DSLs on top of Kotlin requires understanding the key strengths of the language and knowing how to apply them appropriately. Learn to avoid the pitfalls and leverage the language while creating your own elegant, fluent, concise, and robust DSLs using Kotlin. Internal DSLs remove the burdens of implementing a full blown language compiler. The host language quickly becomes your ally to creating DSLs, but the syntax you can choose for your DSLs is limited to what the host language allows. You can work around the limitations by tactfully bending the rules and exploiting the language capabilities. Learn the power of Kotlin and ways to design with it, in the context of crafting internal DSLs Start by learning ways to exploit the flexibilities of Kotlin to make your DSLs fluent, expressive, and concise. Then pick up techniques to extend the language with domain specific properties and functions. Quickly move ahead to tie your DSL snippets into the runtime environment and context of execution of your applications. Design to prevent any non-sensical syntax in your DSL that may otherwise be valid in the host language. Finally, learn techniques to gracefully handle errors. Practice using the multiple examples that are included in each chapter. Fire up your editor and follow along each example to become proficient in designing and implementing your own internal DSLs using Kotlin. What You Need: Kotlin version 1.3 or later and your favorite Kotlin IDE or code editor.

Refine Search

Showing 28,351 through 28,375 of 61,884 results