The Joys of Hashing
Build working implementations of hash tables, written in the C programming language. This book starts with simple first attempts devoid of collision resolution strategies, and moves through improvements and extensions illustrating different design ideas and approaches, followed by experiments to validate the choices.
Hash tables, when implemented and used appropriately, are exceptionally efficient data structures for representing sets and lookup tables, providing low overhead, constant time, insertion, deletion, and lookup operations.
The Joys of Hashing walks you through the implementation of efficient hash tables and the pros and cons of different design choices when building tables. The source code used in the book is available on GitHub for your re-use and experiments.
Master the basic ideas behind hash tables; Carry out collision resolution, including strategies for handling collisions and their consequences for performance; Resize or grow and shrink tables as need ...
Advanced R Statistical Programming and Data Models
Carry out a variety of advanced statistical analyses including generalized additive models, mixed effects models, multiple imputation, machine learning, and missing data techniques using R. Each chapter starts with conceptual background information about the techniques, includes multiple examples using R to achieve results, and concludes with a case study.
Written by Matt and Joshua F. Wiley, Advanced R Statistical Programming and Data Models shows you how to conduct data analysis using the popular R language. You'll delve into the preconditions or hypothesis for various statistical tests and techniques and work through concrete examples using R for a variety of these next-level analytics. This is a must-have guide and reference on using and programming with the R language.
Conduct advanced analyses in R including: generalized linear models, generalized additive models, mixed effects models, machine learning, and parallel processing; Carry out regression modeling ...
Developing Games on the Raspberry Pi
Learn to set up a Pi-based game development environment, and then develop a game with Lua, a popular scripting language used in major game frameworks like Unreal Engine (BioShock Infinite), CryEngine (Far Cry series), Diesel (Payday: The Heist), Silent Storm Engine (Heroes of Might and Magic V) and many others. More importantly, learn how to dig deeper into programming languages to find and understand new functions, frameworks, and languages to utilize in your games.
You'll start by learning your way around the Raspberry Pi. Then you'll quickly dive into learning game development with an industry-standard and scalable language. After reading this book, you'll have the ability to write your own games on a Raspberry Pi, and deliver those games to Linux, Mac, Windows, iOS, and Android. And you'll learn how to publish your games to popular marketplaces for those desktop and mobile platforms.
Whether you're new to programming or whether you've already published to market ...
Get Programming with Node.js
Vertically Integrated Architectures
Understand how and why the separation between layers and tiers in service-oriented architectures holds software developers back from being truly productive, and how you can remedy that problem.
Strong processes and development tools can help developers write more complex software, but large amounts of code can still be directly deduced from the underlying database model, hampering developer productivity. In a world with a shortage of developers, this is bad news. More code also increases maintenance costs and the risk of bugs, meaning less time is spent improving the quality of systems.
You will learn that by making relationships first-class citizens within an item/relationship model, you can develop an extremely compact query language, inspired by natural language. You will also learn how this model can serve as both a database schema and an object model upon which to build business logic. Implicit services free you from writing code for standard read/write operations, while s ...
Write Your Way To Success
Learn how to make an impact in the web world. This short book shows you that the best way to become an expert and a thought leader is to thoroughly research a topic and then publish a book on it.
The great thing about writing a book is that you don't have to risk anything - all you need is a few hours of writing per week and in no time you can have your own book that you can sell, give away at conferences, and prominently feature on your resume.
Since author Azat Mardan published his first book, several high profile tech companies have tried to recruit him and his experience is not an exception! Write Your Way To Success covers everything that he has learned through publishing - see how you can do the same!
Create passive income; Review the process of a ProgWriter; Examine practical tips about publishing and marketing. ...
Beginning Programming Using Retro Computing
Learn programming using the Commodore 16/Plus 4 system. Following this book, you and your children will not only learn BASIC programming but also have fun emulating a retro Commodore system. There are many ways to bring the fun of learning to program in the 1980s back to life. For example, downloading the VICE emulator to a Raspberry Pi allows for the classic "turn on and program" experience and also provides some retro computing project fun. Many parents learned programming in this same way and can have fun helping their children follow the same path.
You can also use this book as an opportunity to dust off your computing skills or learn programming concepts for the first time on a system that's easy, approachable, and fun with a nostalgic twist.
Commodore computers were the most sold computing devices before the iPhone. Nowadays, the Commodore system can be run using freely available emulation on modern computers. This book uses VICE, which is availa ...
Building Telegram Bots
Learn about bot programming using all the latest and greatest programming languages, including Python, Go, and Clojure, so you can feel at ease writing your Telegram bot in a way that suits you.
This book shows how you can use bots for just about everything: they connect, they respond, they enhance your job search chances, they do technical research for you, they remind you about your last train, they tell the difference between a horse and a zebra, they can tell jokes, and they can cheer you up in the middle of the night.
Bots used to be hard to set up and enhance, but with the help of Building Telegram Bots you'll see how the Telegram platform is now making bot creation easier than ever. You will begin by writing a simple bot at the start and then gradually build upon it. The simple yet effective Telegram Bot API makes it very easy to develop bots in a number of programming languages. Languages featured in the book include Node.js, Java, Rust, and Elixir. ...
Explore Twisted, the Python-based event-driven networking engine, and review several of its most popular application projects. It is written by community leaders who have contributed to many of the projects covered, and share their hard-won insights and experience.
Expert Twisted starts with an introduction to event-driven programming explaining it in the context of what makes Twisted unique. It shows how Twisted's design emphasizes testability as a solution to common challenges of reliability, debugging, and start-to-finish causality that are inherent in event-driven programming. It also explains asynchronous programming and the importance of functions, deferreds, and coroutines. It then uses two popular applications, treq and klein, to demonstrate calling and writing Web APIs with Twisted.
The second part of the book dives into Twisted projects, in each case explaining how the project fits into the Twisted ecosystem and what it does, and offers several examples to ...
Developing 2D Games with Unity
Follow a walkthrough of the Unity Engine and learn important 2D-centric lessons in scripting, working with image assets, animations, cameras, collision detection, and state management. In addition to the fundamentals, you'll learn best practices, helpful game-architectural patterns, and how to customize Unity to suit your needs, all in the context of building a working 2D game.
While many books focus on 3D game creation with Unity, the easiest market for an independent developer to thrive in is 2D games. 2D games are generally cheaper to produce, more feasible for small teams, and more likely to be completed. If you live and breathe games and want to create them then 2D games are a great place to start.
By focusing exclusively on 2D games and Unity's ever-expanding 2D workflow, this book gives aspiring independent game developers the tools they need to thrive. Various real-world examples of independent games are used to teach fundamental concepts of developing 2D games in Unity, ...
Raspbian OS Programming with the Raspberry Pi
Master the command line and Raspbian Linux as well as the physical connections of the Pi. With this book you'll develop skills applicable to other real world applications in both hardware and software development all while working on simple and fun IoT projects that you can do yourself.
You'll learn to build programs on the top of Raspbian OS in Raspberry Pi boards. Start by using Raspbian shells to develop programs.Then follow projects and samples step-by-step to get new experiences in Raspbian OS development. You'll also learn the Wolfram Language and Mathematica, Scratch, IoT programs and IoT middleware, Node-RED, Interactive Data Visualization with Jupyter Notebook, and more.
There are many features in Raspbian OS and on Raspberry Pi boards perfect for building an IoT program to suite various scenarios. The GPIO pins on your Raspberry Pi allow it to scale further to accomplish all kinds of projects and tasks. Raspbian OS Programming with the Raspberry Pi is your pathw ...