Write code that writes code with Elixir macros. Macros make metaprogramming possible and define the language itself. In this book, you’ll learn how to use macros to extend the language with fast, maintainable code and share functionality in ways you never thought possible. You’ll discover how to extend Elixir with your own first-class features, optimize performance, and create domain-specific languages.

Whether you’re a designer or not, you make design decisions every day. Successful design projects require equal participation from both the client and the design team. Yet, for most people who buy design, the process remains a mystery. In his follow-up to Design Is a Job, Mike Monteiro demystifies the design process and helps you prepare for your role. Ensure you’re asking the right questions, giving effective feedback, and hiring designers who will challenge you to make your product the best it can be. Mike Monteiro is the co-founder and design director of Mule Design, an interactive design studio whose work has been called "delightfully hostile" by The New Yorker. In early 2011, he gave a Creative Mornings talk entitled "F- You, Pay Me" that not only uplifted the downtrodden the world over, but fueled his first book, Design Is a Job. In 2014 he won .net’s Talk of the Year award for "How Designers Destroyed the World," a screed about designers taking responsibility for their work. He can be heard weekly as the co-host of Let’s Make Mistakes.

LOOKING BACK at the evolution of computer languages, it seems every dozen years or so a new layer of abstraction is added. “Ones and zeros” leveled up into assembly instructions, which leveled up into compiled languages. Those compiled languages evolved and we used them to create web browsers. Web browsers digest languages like HTML, CSS, and JavaScript. Now we’re ready to level up again.

The Pragmatic Programmers classic is back! Freshly updated for modern software development, Pragmatic Unit Testing in Java 8 With JUnit teaches you how to write and run easily maintained unit tests in JUnit with confidence. You’ll learn mnemonics to help you know what tests to write, how to remember all the boundary conditions, and what the qualities of a good test are. You’ll see how unit tests can pay off by allowing you to keep your system code clean, and you’ll learn how to handle the stuff that seems too tough to test.

The Wired mission is to tell the world something they’ve never heard before in a way they’ve never seen before. It’s about turning new ideas into everyday reality. It’s about seeding our community of influencers with the ideas that will shape and transform our collective future. Wired readers want to know how technology is changing the world, and they’re interested in big, relevant ideas, even if those ideas challenge their assumptions-or blow their minds.

Write powerful Ruby code that is easy to maintain and change. With metaprogramming, you can produce elegant, clean, and beautiful programs. Once the domain of expert Rubyists, metaprogramming is now accessible to programmers of all levels. This thoroughly revised and updated second edition of the bestselling Metaprogramming Ruby explains metaprogramming in a down-to-earth style and arms you with a practical toolbox that will help you write your best Ruby code ever.

Teams working on the JVM can now say goodbye forever to misunderstood requirements, tedious manual acceptance tests, and out-of-date documentation. Cucumber – the popular, open-source tool that helps teams communicate more effectively with their customers – now has a Java version, and our bestselling Cucumber Book has been updated to match. The Cucumber for Java Book has the same great advice about how to deliver rock-solid applications collaboratively, but with all code completely rewritten in Java. New chapters cover features unique to the Java version of Cucumber, and reflect insights from the Cucumber team since the original book was published.

Your software needs to leverage multiple cores, handle thousands of users and terabytes of data, and continue working in the face of both hardware and software failure. Concurrency and parallelism are the keys, and Seven Concurrency Models in Seven Weeks equips you for this new world. See how emerging technologies such as actors and functional programming address issues with traditional threads and locks development. Learn how to exploit the parallelism in your computer’s GPU and leverage clusters of machines with MapReduce and Stream Processing. And do it all with the confidence that comes from using tools that help you write crystal clear, high-quality code.

In the 1970s, while their contemporaries were protesting the computer as a tool of dehumanization and oppression, a motley collection of college dropouts, hippies, and electronics fanatics were engaged in something much more subversive. Obsessed with the idea of getting computer power into their own hands, they launched from their garages a hobbyist movement that grew into an industry, and ultimately a social and technological revolution. What they did was invent the personal computer: not just a new device, but a watershed in the relationship between man and machine. This is their story.

Google Glass is the wearable computer that everyone’s talking about–a head-mounted optical display with a camera that responds to voice and gesture controls. You can use the Mirror API and Glass Development Kit (GDK) to build custom Glassware for yourself and others, from social networks and geolocated maps to immersive video games and more. This new edition, with an all-new part covering the GDK, kick-starts your Glassware development by showing you how to write real-world functional applications that you can deploy and run. It’s the book to read for a shortcut to this new world.

The first edition of this book used the Bukkit modding server and library, which was taken down due to a legal dispute in September 2014. This new edition has been completely revised to replace Bukkit with the CanaryMod library.

Dreamweaver remains the most powerful and versatile web authoring tool on the market. The new Creative Suite 6 release offers even more functionality to create dynamic, state-of-the-art websites for more platforms.