Programming in Lua


Roberto Ierusalimschy - 2001
    Currently, Lua is being used in areas ranging from embedded systems to Web development and is widely spread in the game industry, where knowledge of Lua is an indisputable asset. "Programming in Lua" is the official book about the language, giving a solid base for any programmer who wants to use Lua. Authored by Roberto Ierusalimschy, the chief architect of the language, it covers all aspects of Lua 5---from the basics to its API with C---explaining how to make good use of its features and giving numerous code examples. "Programming in Lua" is targeted at people with some programming background, but does not assume any prior knowledge about Lua or other scripting languages. This Second Edition updates the text to Lua 5.1 and brings substantial new material, including numerous new examples, a detailed explanation of the new module system, and two new chapters centered on multiple states and garbage collection.

Understanding Exposure: How to Shoot Great Photographs with a Film or Digital Camera


Bryan Peterson - 1990
    Peterson stresses the importance of metering the subject for a starting exposure, and then explains how to use various exposure meters and different kinds of lighting. The book contains lessons on each element of the exposure-aperature, shutter speed, iso-and how it relates to the other two in terms of depth of field, freezing and blurring action, and shooting in low light or at night. A section on special techniques explores such options as deliberate under- and overexposures, how to produce double exposures, bracketing, shooting the moon, and the use of filters. Understanding Exposure demonstrates that there are always creative choices about how to expose a picture-and that the decision is up to the photographer, not the camera.

Robert Frost's Poems


Robert Frost - 2002
    Here are "Birches," "Mending Wall," "Stopping by Woods on a Snowy Evening," "Two Tramps at Mudtime," "Choose Something Like a Star," and "The Gift Outright," which Frost read at the inauguration of John F. Kennedy." An essential addition to every home library, Robert Frost's Poems is a celebration of the New England countryside, Frost's appreciation of common folk, and his wonderful understanding of the human condition. These classic verses touch our hearts and leave behind a lasting impression.* Over 100 poems* All Frost's best known verses from throughout his life

1,000 Places to See Before You Die


Patricia Schultz - 2003
    Sacred ruins, grand hotels, wildlife preserves, hilltop villages, snack shacks, castles, festivals, reefs, restaurants, cathedrals, hidden islands, opera houses, museums, and more. Each entry tells exactly why it's essential to visit. Then come the nuts and bolts: addresses, websites, phone and fax numbers, best times to visit. Stop dreaming and get going.This hefty volume reminds vacationers that hot tourist spots are small percentage of what's worth seeing out there. A quick sampling: Venice's Cipriani Hotel; California's Monterey Peninsula; the Lewis and Clark Trail in Oregon; the Great Wall of China; Robert Louis Stevenson's home in Western Samoa; and the Alhambra in Andalusia, Spain. Veteran travel guide writer Schultz divides the book geographically, presenting a little less than a page on each location. Each entry lists exactly where to find the spot (e.g. Moorea is located "12 miles/19 km northwest of Tahiti; 10 minutes by air, 1 hour by boat") and when to go (e.g., if you want to check out The Complete Fly Fisher hotel in Montana, "May and Sept.-Oct. offer productive angling in a solitary setting"). This is an excellent resource for the intrepid traveler.Copyright 2003 Reed Business Information, Inc.

Ex Libris: 100+ Books to Read and Reread


Michiko Kakutani - 2020
    It can give us an understanding of lives very different from our own, and a sense of the shared joys and losses of human experience." Readers will discover novels and memoirs by some of the most gifted writers working today; favorite classics worth reading or rereading; and nonfiction works, both old and new, that illuminate our social and political landscape and some of today’s most pressing issues, from climate change to medicine to the consequences of digital innovation. There are essential works in American history (The Federalist Papers, The Writings and Speeches of Martin Luther King, Jr.); books that address timely cultural dynamics (Elizabeth Kolbert's The Sixth Extinction, Margaret Atwood's The Handmaid's Tale); classics of children's literature (the Harry Potter novels, Where the Wild Things Are); and novels by acclaimed contemporary writers like Don DeLillo, William Gibson, Chimamanda Ngozi Adichie, and Ian McEwan.With richly detailed illustrations by lettering artist Dana Tanamachi that evoke vintage bookplates, Ex Libris is an impassioned reminder of why reading matters more than ever.

Twentieth-Century Harmony: Creative Aspects and Practice


Vincent Persichetti - 1961
    The author examines the nature of intervals in various contexts, discusses the modes and other scales employed in modern music, describes the formation and uses of chords by thirds, by fourths, and by seconds, of added-note chords and polychords; he deals with different types of harmonic motion, with harmonic rhythm and dynamic sand ornamentation, with harmonic behavior in tonality, polytonality, atonality and serial composition.

The Rust Programming Language


Steve Klabnik
    This is the undisputed go-to guide to Rust, written by two members of the Rust core team, with feedback and contributions from 42 members of the community. The book assumes that you’ve written code in another programming language but makes no assumptions about which one, meaning the material is accessible and useful to developers from a wide variety of programming backgrounds.Known by the Rust community as "The Book," The Rust Programming Language includes concept chapters, where you’ll learn about a particular aspect of Rust, and project chapters, where you’ll apply what you’ve learned so far to build small programs.The Book opens with a quick hands-on project to introduce the basics then explores key concepts in depth, such as ownership, the type system, error handling, and fearless concurrency. Next come detailed explanations of Rust-oriented perspectives on topics like pattern matching, iterators, and smart pointers, with concrete examples and exercises--taking you from theory to practice.The Rust Programming Language will show you how to: Grasp important concepts unique to Rust like ownership, borrowing, and lifetimes Use Cargo, Rust’s built-in package manager, to build and maintain your code, including downloading and building dependencies Effectively use Rust’s zero-cost abstractions and employ your ownYou’ll learn to develop reliable code that’s speed and memory efficient, while avoiding the infamous and arcane programming pitfalls common at the systems level. When you need to dive down into lower-level control, this guide will show you how without taking on the customary risk of crashes or security holes and without requiring you to learn the fine points of a fickle toolchain.You’ll also learn how to create command line programs, build single- and multithreaded web servers, and much more.The Rust Programming Language fully embraces Rust’s potential to empower its users. This friendly and approachable guide will help you build not only your knowledge of Rust but also your ability to program with confidence in a wider variety of domains.

Hello, Android: Introducing Google's Mobile Development Platform


Ed Burnette - 2008
    In a few years, it's expected to be found inside millions of cell phones and other mobile devices, making Android a major platform for application developers. That could be your own program running on all those devices.Getting started developing with Android is easy. You don't even need access to an Android phone, just a computer where you can install the Android SDK and the phone emulator that comes with it. Within minutes, "Hello, Android" will get you creating your first working application: Android's version of "Hello, World."From there, you'll build up a more substantial example: an Android Sudoku game. By gradually adding features to the game throughout the course of the book, you'll learn about many aspects of Android programming including user interfaces, multimedia, and the Android life cycle.If you're a busy developer who'd rather be coding than reading about coding, this book is for you. To help you find what you need to know fast, each chapter ends with "Fast forward" section. These sections provide guidance for where you should go next when you need to read the book out of order.

Press Start to Play


Daniel H. WilsonSeanan McGuire - 2015
    The humble, pixelated games of the ‘70s and ‘80s have evolved into the vivid, realistic, and immersive form of entertainment that now rivals all other forms of media for dominance in the consumer marketplace. For many, video games have become the cultural icons around which pop culture revolves.PRESS START TO PLAY is an anthology of stories inspired by video games: stories that attempt to recreate the feel of a video game in prose form; stories that play with the concepts common (or exclusive) to video games; and stories about the creation of video games and/or about the video games—or the gamers—themselves.These stories will appeal to anyone who has interacted with games, from hardcore teenaged fanatics, to men and women who game after their children have gone to bed, to your well-meaning aunt who won’t stop inviting you to join her farm-based Facebook games.At the helm of this project are Daniel H. Wilson—bestselling novelist and expert in artificial intelligence—and John Joseph Adams—bestselling, Hugo Award-nominated editor of more than a dozen science fiction/fantasy anthologies and series editor of Best American Science Fiction & Fantasy (volume one forthcoming from Houghton Mifflin in 2015). Together, they have drawn on their wide-ranging contacts to assemble an incredibly talented group of authors who are eager to attack the topic of video games from startling and fascinating angles.Under the direction of an A.I. specialist and a veteran editor, the anthology will expose readers to a strategically chosen mix of stories that explore novel video game concepts in prose narratives, such as save points, kill screens, gold-farming, respawning, first-person shooters, unlocking achievements, and getting “pwned.” Likewise, each of our authors is an accomplished specialist in areas such as science fiction, fantasy, and techno-thrillers, and many have experience writing for video games professionally.Combining unique viewpoints and exacting realism, this anthology promises to thrill generations of readers, from those who grew up with Atari 2600s to the console and PC gamers of today.

The Go Programming Language


Alan A.A. Donovan - 2015
    It has been winning converts from dynamic language enthusiasts as well as users of traditional compiled languages. The former appreciate the robustness and efficiency that Go's lightweight type system brings to their code; the latter find Go's simplicity and fast tools a refreshing change. Thanks to its well-designed standard libraries and its excellent support for concurrent programming, Go is fast becoming the language of choice for distributed systems. The Go Programming Language is the definitive book on Go for the working programmer. It assumes no prior knowledge of Go, nor any other specific programming language, so you'll find it an accessible guide whether you come from JavaScript, Ruby, Python, Java, or C++. The book will quickly get you started using Go effectively from the beginning, and by the end, you will know how to use it well to write clear, idiomatic and efficient programs to solve real-world problems. You'll understand not just how to use its standard libraries, but how they work, and how to apply the same design techniques to your own projects. The earlier chapters will introduce you to the basic concepts of Go programming---numbers, strings, functions---while at the same time presenting important computer science concepts like recursion, and useful examples of graphics, UTF-8, and error handling. The chapters on methods and interfaces will show you a new way to think about object-oriented programming; the chapter on concurrency explains why concurrency is so important in modern programming, and how Go helps you handle it well. You'll also learn about Go's pragmatic but effective approach to testing; how to build, test, and manage projects using the go tool, and the art of metaprogramming using reflection. The book contains hundreds of interesting and practical examples that cover the whole language and a wide range of applications. The code samples from the book are available for download from gopl.io.

Stuff Matters: Exploring the Marvelous Materials That Shape Our Man-Made World


Mark Miodownik - 2013
    Why is glass see-through? What makes elastic stretchy? Why does a paper clip bend? Why does any material look and behave the way it does? These are the sorts of questions that Mark Miodownik a globally-renowned materials scientist has spent his life exploring In this book he examines the materials he encounters in a typical morning, from the steel in his razor and the graphite in his pencil to the foam in his sneakers and the concrete in a nearby skyscraper.

Player's Handbook


James Wyatt - 2014
    It contains rules for character creation and advancement, backgrounds and skills, exploration and combat, equipment, spells, and much more. Use this book to create exciting characters from among the most iconic D&D® races and classes. Dungeons & Dragons immerses you in a world of adventure. Explore ancient ruins and deadly dungeons. Battle monsters while searching for legendary treasures. Gain experience and power as you trek across uncharted lands with your companions. The world needs heroes. Will you answer the call?

Semicolon: The Past, Present, and Future of a Misunderstood Mark


Cecelia Watson - 2019
    Stephen King, Hemingway, Vonnegut, and Orwell detest it. Herman Melville, Henry James, and Rebecca Solnit love it. But why? When is it effective? Have we been misusing it? Should we even care?In Semicolon, Cecelia Watson charts the rise and fall of this infamous punctuation mark, which for years was the trendiest one in the world of letters. But in the nineteenth century, as grammar books became all the rage, the rules of how we use language became both stricter and more confusing, with the semicolon a prime victim. Taking us on a breezy journey through a range of examples—from Milton’s manuscripts to Martin Luther King Jr.’s “Letters from Birmingham Jail” to Raymond Chandler’s The Big Sleep—Watson reveals how traditional grammar rules make us less successful at communicating with each other than we’d think. Even the most die-hard grammar fanatics would be better served by tossing the rule books and learning a better way to engage with language.Through her rollicking biography of the semicolon, Watson writes a guide to grammar that explains why we don’t need guides at all, and refocuses our attention on the deepest, most primary value of language: true communication.

Music Habits - The Mental Game of Electronic Music Production: Finish Songs Fast, Beat Procrastination and Find Your Creative Flow


Jason Timothy - 2015
    The goal of this book, is to cover music production from many different angles in a way that will change your thinking on the subject and build your confidence. Music making is a very mental and psychological game, and more often than not, all the technical stuff can hold you back from achieving your goals if you don't have the right creative habits in place first. With all the information available with a simple Google search, I wanted to really get to the heart of things that aren't being discussed nearly enough. I want to clear out all the garbage you may have been told and replace it with the essentials you can put to immediate use. Many people new to music may dive into forums and mindlessly watch video tutorials attempting to gather more and more information until they think they have enough to get going (hint: you never feel like you know enough). That would be like reading a whole encyclopedia and then being asked to recall only the important things that will get you from point A to point B. Even worse, much of the information you get will contradict the last thing you read. It's like finding a needle in a haystack only to be told it's the wrong needle. There is a much better approach. It's an approach that doesn't require you to know a lot to get started. You only need to know enough to get to the next step in your process. There is truly nothing stopping you from becoming a music producer. The ones who are successful now are the ones who started from nothing and chipped away at it until they found a way to express their unique voice. There are no gatekeepers making decisions on who is worthy and who isn't. The determining factor is you, your habits and your confidence in yourself. This book can be read from start to finish, or as a “choose your own adventure”, going directly to what you think can help you most right now. Don't get caught up thinking you have to devour everything before getting started. That isn't necessary, and isn't the point of the book. The core concepts in the book will come up time & time again which should help you retain them & be able to recall them when the need arrives. By exploring these concepts from several angles you should gain a broad view of their many uses. My hope is that this book is used as a toolbox. You simply find the right tool that moves you forward and get back to work. So few people, who have more than enough information in their heads, ever start. Of those who do start, even fewer finish what they started and are satisfied with the results. I want you to be in that small group of finishers. Let's get started.

Modern Operating Systems


Andrew S. Tanenbaum - 1992
    What makes an operating system modern? According to author Andrew Tanenbaum, it is the awareness of high-demand computer applications--primarily in the areas of multimedia, parallel and distributed computing, and security. The development of faster and more advanced hardware has driven progress in software, including enhancements to the operating system. It is one thing to run an old operating system on current hardware, and another to effectively leverage current hardware to best serve modern software applications. If you don't believe it, install Windows 3.0 on a modern PC and try surfing the Internet or burning a CD. Readers familiar with Tanenbaum's previous text, Operating Systems, know the author is a great proponent of simple design and hands-on experimentation. His earlier book came bundled with the source code for an operating system called Minux, a simple variant of Unix and the platform used by Linus Torvalds to develop Linux. Although this book does not come with any source code, he illustrates many of his points with code fragments (C, usually with Unix system calls). The first half of Modern Operating Systems focuses on traditional operating systems concepts: processes, deadlocks, memory management, I/O, and file systems. There is nothing groundbreaking in these early chapters, but all topics are well covered, each including sections on current research and a set of student problems. It is enlightening to read Tanenbaum's explanations of the design decisions made by past operating systems gurus, including his view that additional research on the problem of deadlocks is impractical except for "keeping otherwise unemployed graph theorists off the streets." It is the second half of the book that differentiates itself from older operating systems texts. Here, each chapter describes an element of what constitutes a modern operating system--awareness of multimedia applications, multiple processors, computer networks, and a high level of security. The chapter on multimedia functionality focuses on such features as handling massive files and providing video-on-demand. Included in the discussion on multiprocessor platforms are clustered computers and distributed computing. Finally, the importance of security is discussed--a lively enumeration of the scores of ways operating systems can be vulnerable to attack, from password security to computer viruses and Internet worms. Included at the end of the book are case studies of two popular operating systems: Unix/Linux and Windows 2000. There is a bias toward the Unix/Linux approach, not surprising given the author's experience and academic bent, but this bias does not detract from Tanenbaum's analysis. Both operating systems are dissected, describing how each implements processes, file systems, memory management, and other operating system fundamentals. Tanenbaum's mantra is simple, accessible operating system design. Given that modern operating systems have extensive features, he is forced to reconcile physical size with simplicity. Toward this end, he makes frequent references to the Frederick Brooks classic The Mythical Man-Month for wisdom on managing large, complex software development projects. He finds both Windows 2000 and Unix/Linux guilty of being too complicated--with a particular skewering of Windows 2000 and its "mammoth Win32 API." A primary culprit is the attempt to make operating systems more "user-friendly," which Tanenbaum views as an excuse for bloated code. The solution is to have smart people, the smallest possible team, and well-defined interactions between various operating systems components. Future operating system design will benefit if the advice in this book is taken to heart. --Pete Ostenson