FREE CONTENT CENTER - Archives
Download any article and take 35% off your next order!
Look for a coupon code in your confirmation email.
What can you do with AWS?
You are able to run any application on AWS by using one or a combination of different services. The four examples we present in this article will give you an idea of what you can do with AWS.
Barcodes with iOS: Introducing Core Image
The Core Graphics framework is written in pure C, meaning that it's impossible to use CGImage instances directly with UIKit. Apple created UIImage as an Objective-C wrapper class around CGImage to bridge the gap. We explore Core Image in this article.
What is vector data, and what is it used for?
Vector data is a representation of the world using points, lines, and polygons. In this article, we'll use a few examples to show you what this means.
Ways to pause thread execution in OCP Java SE 7
Imagine while debugging or testing your code, you need to reproduce a bug and you need to make a thread pause its execution and give up its current use of the processor. In this article, we discuss some methods you can use to do that.
MongoDB: Understanding components of a sharded cluster
To understand how MongoDB's sharding works, you need to know about all the components that make up a sharded cluster and the role of each component in the context of the cluster as a whole. In this article, I'll help you understand the components of a sharded custer.
The big data ecosystem and data science
The big data ecosystem can be grouped into technologies that have similar goals and functionalities. In this article, we'll explore those technologies.
Stream processing in e-commerce
In this article, in order to illustrate cases for stream processing, we use a practical example based around online shopping.
A first look at Spock in action
You know the theory behind a solid testing process and how Spock can test classes written in Java. Now it's time to delve into code! In this article, I'll show you what spock looks like in a minimal, but fully functioning, example.
Hadoop: Understanding MapReduce
In this article, we'll talk about the challenges of scaling a data processing program and the benefits of using a framework such as MapReduce to handle the tedious chores for you.
Docker in Practice: The Docker Daemon
If you want to gain an understanding of all the relevant pieces of Docker, the Docker daemon is the best place to start. In this article, I'll walk you through the daemon and what it does.
What are Volumes and Their Benefits?
Volumes are ways to declare shared state or stateful data with a life cycle independent of a running program. Since containers are segregated in all other ways, volumes provide a mechanism to specify a scope of interaction through file access. In this article, I talk about volumes and their benefits.
Using Browserify to require modules in the browser, just like in Node
Client-side projects can be problematic for many reasons but having no reliable module system is a big one. Browserify solves the module problem by letting you require modules exactly like you would in Node. In this article, we take a look at how Browserify works.
Learning Git: Repository Basics
In this article, we'll use an example to properly introduce the basics of a version control repository.
What is a domain model?
The word domain means the area of interest in the business. The abstractions that you design, the behaviors that you implement, the UI interactions that you build, all reflect the business – together they constitute the model of the domain. In this article, we'll talk abaout the domain model and the challenges of its complexity.
Meteor: Working with the Session object
A dedicated Session object that is only available on the client and lives in memory only is useful for keeping track of current user contexts and actions. In this article, we'll explore the Session object and how to use it.
What is persistence?
When we talk about persistence in Java, we're normally talking about storing data in a database using SQL. In this article, we'll take a brief look at the technology and how we use it with Java.
Solving search problems with Elasticsearch
As a developer, you know that search engines are confronted with challenges. In this article, we'll talk about Elasticsearch's approach to these challenges.
How to Generate Sky Visuals using Texture Images
Visuals are important in a game because you don't want your projects to end up with just blank boxes sliding around. In this article, I'll show you how to create a sky visual using a skybox.
In this overview, I will help you understand the differences between the three build tools I use most often in front-end development workflows: grunt, npm, and Gulp.
AngularJS: Display Stories with ngRepeat
Wouldn't it be nice if we could define a template once and then just repeat it over and over for each item in the collection? This is exactly the role that ngRepeat was designed to play. This article, excerpted from AngularJS in Action, walks you through an example.
Meteor in Action: Authenticating users with 0Auth
Meteor ships with multiple authentication providers. All of them are based on oAuth, a complex way to pass authentication data from one site to another. In this article, excerpted from Meteor in Action, we show you how oAuth works.
Optimizing xy data selection with quadtrees
The following excerpt is from D3.js in Action's chapter on Big Data Visualization. This chapter focuses on techniques for using D3 to represent thousands of points of data rather than the dozens or hundreds typically seen in D3 examples. One of those techniques is to leverage D3's quadtree search function to improve spatial search, which this excerpt explores in detail.
Examining Spring Boot essentials
Spring Boot brings a great deal of magic to Spring application development. But there are four core tricks that it performs. In this article, excerpted from Spring Boot in Action, we introduce those core tricks.
Go in Action: Exploring the Work Package
In this article we share section 7.3 from the Go in Action book. This section explores a package named work that provides a concurrency pattern for pooling a set of goroutines to perform and control work.
Practical Probabilistic Programming: Open universe situations with unknown number of objects
An open universe situation is where you don't know how many objects there are. This article, excerpted from Practical Probabilistic Programming, focuses on number uncertainty, which is addressed by variable size arrays.
Practical Probabilistic Programming: Your First Model
In this article, excerpted from Practical Probabilistic Programming by Avi Pfeffer, we'll build the simplest Figaro model possible.
How does FRP work?
By Stephen Blackheath and Anthony Jones, Functional Reactive Programming. This article introduces functional reactive programming and explains what problems it solves, why those problems need to be solved and how it solves them.
Introduction to Graphs
In this article Aditya Y. Bhargava, Grokking Algorithms introduces graphs (what they are) Hint: they don't involve an X or Y axis). Then he will show you your first graph algorithm.
Thinking about the future: What are your goals?
When it comes to career, most people don't give enough thought to what to focus on and, as a result, their steps lack purpose or direction. This article, excerpted from Soft Skills: The software developer's life manual by John Sonmez, talks about how to set goals and track them.
Congratulations - you're a (horrible) mobile developer!
You may know the fundamentals of building a mobile application, but that doesn't mean you know how to build a good one. Here's good example of bad UI.
Case Study: Moving To The Pull Request Workflow & Integrating Quality Engineers On The Team For Better Software Quality
Here's a real-world scenario that will show you how to apply source control data toward continuous improvement.
Why a build tool?
By Joshua Suereth and Matthew Farwell, authors of SBT in Action.
Most everyone will agree that we need build automation. You can perfectly well automate your build with a shell script (or batch script). But why have a specific tool for this purpose? In this article, we talk about why by providing a couple of real-life examples.
Go: A practical introduction to slices
By Brian Ketelsen, Erik St. Martin, and William Kennedy, authors of Go in Action.
With Go, there are several ways you can store your data in memory. Some of these concepts may be familiar to you already like Arrays, and Maps; although, they may work slightly differently than you're used to. But others, like slices, might be a completely new concept. In this article, we'll introduce slices and talk about what they let you do.
What Probabilistic Programming is and How to Use it
By Avi Pfeffer, author of Practical Probabilistic Programming
Probabilistic programming is a way to create systems that help us make decisions in the face of uncertainty. Probabilistic reasoning combines our knowledge of a situation with the laws of probability to determine those unobserved factors that are critical to the decision. Until recently, probabilistic reasoning systems have been limited in scope, and have been hard to apply to many real world situations. Probabilistic programming is a new approach that makes probabilistic reasoning systems easier to build and more widely applicable.
The pros and cons of SPAs
By Simon Holmes, author of Getting MEAN with Mongo, Express, Angular, and Node.
Coding in SPAs (Single Page Applications) is most likely a vast improvement on what you’ve been doing before, but it may not always be the best solution. Here's a brief look at some things to bear in mind about SPAs when designing a solution, and how to decide whether a full SPA is right for your project.
Arrays vs. lists
By Aditya Bhargava. There are two basic ways to store items in memory--arrays and lists. Arrays and lists are used differently depending on your needs. Which is best if you expect to add an item later? What about if you later want to access an item out of order? In this article, based on chapter 2 of Grokking Algorithms, you'll find out which method is more practical for your programming purposes as we explore the advantages and disadvantages of arrays and lists.
The Marketplace and how to deal with CSP on Firefox OS devices
By Jan Jongboom. For developers Firefox OS is amazing. Like on the normal web, users will have a modern browser that supports all the latest web standards. But if you've decided to develop in Firefox OS, you should know that the marketplace poses some constraints on your application that you will run into when publishing your app. In this article, based on Firefox OS in Action, I'll cover some of those constraints.
A Quick Sweep through C#
Each new version of C# has added significant features to reduce developer angst, but always in a carefully considered way, and with little backward incompatibility. In this greenpaper, based on C# in Depth, Third Edition, author Jon Skeet gives an overview what C# can do.
The Browser Binding with a CMIS Repository
CMIS 1.0 defines two bindings, the Web Services binding and the AtomPub binding; and CMIS 1.1 adds a third, the Browser binding. In this article, based on chapter 11 of CMIS and Apache Chemistry in Action, the authors discuss Browser binding.
Using Throws and Throw Statements in Java
In this article, based on chapter 1 of OCP Java SE 7 Programmer II Certification Guide, author Mala Gupta explains how to define methods that throw exceptions, the different combinations of defining overriding methods, and when the overridden or overriding methods throw checked exceptions.
Posting or Deleting a Status Update
In this article, based on chapter 8 of Redis in Action, author Josiah Carlson talks about Twitter user and status objects, which are the basis of almost all of the information in our application, and then deleting posts, which involves manipulating followers/following lists.
Windows Store App Development: Resources
Brushes and colors are commonly stored as resources in the application or in standard resource dictionary files. In this article, based on chapter 7 of Windows Store App Development, author Pete Brown explains resource management.
Mule Implementation Patterns
Ideally, your Mule applications should exhibit the properties of any other well-architected software application: it should be easy to refactor and test, modular, and decoupled. It should also make some attempt to foresee future needs, making it easy to modify as requirements inevitably change. Mule can function anywhere from a one of integration applications to the central integration fabric for a Fortune 50 enterprise. Architecture of these applications, whether implicit or explicit, will impact their success.In this article based on chapter 7 of Mule in Action, Second Edition, the authors look at some patterns that simplify the implementation of these architectures.
Overloading happens when you provide a new implementation customized to your particular class, which allows you to overload the common operators such as > (greater than) and < (less than). In this article, based on chapter 8 of Dart in Action, author Chris Buckett explains how this function helps you create truly self-documenting code by customizing the meaning built into the standard operators.
Displaying Hierarchical Data with NestedList
Say you are tasked with building a mobile viewer so that anyone in your client's company can search a global address book and find contact information while they are traveling. You likely would want some sort of list that will load the contact list from a remote server. This might sound complicated to do, and it is, but Sencha Touch makes it easy to achieve. This article, based on chapter 7 of Sencha Touch in Action, discusses NestedList, which is a Container extension that uses child Lists to display hierarchical data in a Card layout.
Defining Functional Data Structures (PDF)
Functional programs do not update variables or modify data structures. This raises pressing questions—what sort of data structures we use in functional programming, how do we define them can in Scala, and how do we operate over these data structures? This article, based on chapter 3 of Functional Programming in Scala, explains the concept of a functional data structure and how to define and work with such structures.
Scala/Java Interaction: Be Wary of Implicit Conversions (PDF)
Scala is working on language features to integrate directly with dynamic languages, but even with the 2.9.0 release, these features are considered experimental. This article from chapter 10 of Scala in Depth, focuses on an area of concern when integrating with Java—the overuse of implicit conversions to adapt Java libraries into Scala idioms.
Introducing Scalatra (PDF)
Scalatra is an HTTP micro-framework, written in the up-and-coming new language, Scala. Scalatra is used by LinkedIn, the BBC, the Guardian newspaper, games website IGN, social identity provider JanRain, the Wordnik online dictionary, and the British government's new flagship website. It's fast, battle-tested, and in production. This article based on Scalatra in Action introduces you to the simplicity of Scalatra micro-framework.
Optimizing Website Performance (PDF)
In South Africa, the Zulu tribe has a proverb that says, "Even a small ant can hurt the mighty elephant." Many animals are unable to harm the thick skin of the elephant, but just one ant can crawl into its trunk and cause chaos. Sometimes it may feel as if your website is a slow elephant plodding along and nothing you can do will improve it. This green paper, based on Fast ASP.NET Websites, discusses ways to improve website performance.
What is Akka? (PDF)
Akka is a toolkit and runtime that sets out to achieve better performance results with a simpler programming model. It does not compromise between simplicity and performance; its goal is to attain both at the same time. This green paper, based on Akka in Action shows what Akka is and what it gives you out of the box and then describes the main features of Akka and how these enable you to build powerful concurrent and distributed applications.
What is Solr? (PDF)
Apache Solr, like its non-relational brethren, is optimized for a unique class of problems. Specifically, Solr is a scalable, ready-to-deploy enterprise search engine that is optimized to search large volumes of text-centric data and return results sorted by relevance. In this green paper, based on Solr in Action, the authors discuss Solr components and features.
Introducing T4 (PDF)
Text Template Transformation Toolkit T4 has become quite popular in recent years thanks to a number of factors, most importantly the adoption of T4 by various tool-building teams within Microsoft's developer division. Code generators for ASP.NET MVC, the ADO.NET Entity Framework, and other popular frameworks are based on T4, making it one of the most widely used tool-building frameworks around. In this article based on chapter 6 of Metaprogramming in .NET, authors discuss the T4 templatin basics.
Abstracting URLs (PDF)
The complexity of the web is not just limited to HTML markup. Due to their heavy reliance on external resources like images, other CSS files and fonts, stylesheets can become a serious maintenance burden. This article, based on chapter 7 of Sass and Compass in Action, explains how to use Compass helpers and configuration to generate URLs to your assets in a consistent way that lets you write the code once and then update your configuration as your asset serving needs change during the transition from prototype to production.
Mondrian to the Rescue (PDF)
Business analytics is a process for gaining insight into business performance based on the analysis of historical data. Traditionally the tools used for business analytics have been expensive and difficult to maintain. This green paper, based on Mondrian in Action, explains how Mondrian as an open source business analytics tool enables organizations of any size to give business users access to the data for interactive analysis without needing support from IT or database administrators.
What is Aspect-Oriented Programming? (PDF)
Aspect-oriented programming is a technique that is complementary to object-oriented programming (OOP). This green paper, based on AOP in .NET, shows how AOP reduces repetitive, boilerplate code.
The Expressiveness of Groovy (PDF)
Grails ain't your Grandma's web framework. It's time that Java web app development was fun again! It's time you were able to sit down for an afternoon and crank out something you'd be happy demoing to your boss, client, or the rest of the internet. Grails is that good. This green paper, based on Grails in Action, Second Edition, explore Grails' expressiveness.
Why Extend jQuery? (PDF)
Ruby on Rails Overview (PDF)
Ruby on Rails is known throughout the lands as a powerful web framework that helps developers rapidly build modern web applications. In particular, it provides lots of niceties to help you in your quest to develop a full-featured real-world application and be happy doing it. Great developers are happy developers. This green paper, based on of Rails 4 in Action, introduces you to the fundamental concepts of Ruby on Rails.
How NoSQL Solves Business Problems (PDF)
This green paper, based on Making Sense of NoSQL, looks at the business drivers behind NoSQL and the laws that drive the movement away from traditional systems and thinking to the new NoSQL ideas and technologies.
Composition Techniques with JCascalog (PDF)
The power of these abstractions is in how they promote reuse and composability. In this article based on chapter 5 of Big Data, author Nathan Marz discusses various composition techniques possible with JCascalog.
Sorted Indexes (PDF)
The ability to sort results by referencing data stored in HASHes works well when you have a string or number that represents the actual sort order you are interested in. But what if your sort order could be a composite of a few different scores? In this article based on chapter 7 of Redis in Action, you'll learn about ways to combine multiple scores using SETs and ZSETs, which can offer greater flexibility than calling SORT.
MapReduce Anti-patterns (PDF)
MapReduce patterns help you write effective code and make efficient use of your data and your Hadoop cluster. It can be just as useful to learn from anti-patterns, which are patterns that are commonly used but are either ineffective or worse, detrimental in practice. In this article based on chapter 13 of Hadoop in Practice, you can learn and laugh at mistakes that the author made in MapReduce on production clusters, which range from loading too much data into memory in tasks to going crazy with counters and bringing down the JobTracker.
What is CMIS? (PDF)
Content Management Interoperability Services (CMIS) is a vendor-neutral, language-independent specification for working with Enterprise Content Management (ECM) systems. With CMIS, developers can create solutions that will work with multiple repositories. This green paper, based on CMIS and Apache Chemistry in Action, introduces you to the CMIS standard.
Modern Windows Style (PDF)
With Windows Phone and Windows 8, Microsoft has attempted to bring us all back into the fold of a visual framework we can all understand. Those with design talent will still be able to create applications that outshine what the rest of us do, but all of us can now more effectively learn from each other, and use the same tools and patterns to create applications. In this green paper, based on Windows 8 XAML in Action, author Pete Brown discusses the new framework that accomplishes that—Windows Modern Style.
A Whirlwind Introduction to Internet Information Services (IIS) (PDF)
Have you worked with Exchange, SharePoint, SQL or some other Microsoft enterprise product? Then you might have noticed that almost all of the enterprise servers have a software prerequisite of IIS. Think of this: any application that you want to use over the Internet, whether it is outlook web access for Exchange, a portal system such as SharePoint, or management applications such as System Center—they all use IIS for that communication. This green paper, based on Learn Windows IIS in a Month of Lunches, introduces you to the IIS environment.
Interacting with Messages (PDF)
Mule is a workhorse whose sole purpose in life is to move your messages around. It actually does way more than just moving messages but is also able to transform, enrich, and smartly route them. In this article based on chapter 2 of Mule in Action, Second Edition, the authors look at details of message interactions Mule supports and the set of abstractions that enables these interactions.
Where Do Violations Come from? (PDF)
Violations is a term that covers two Sonar's Seven Axes of Quality: Potential Bugs and Coding Rules. In this article, based on chapter 2 of SonarQube in Action, you'll learn how to work with rule profiles.
Traversing Using Neo4j Traversal Framework (PDF)
Imagine you have a traversal that returns all movies that John's friends have seen but John hasn't. Neo4j Core API, allows you to use the low-level Neo4j data structures to achieve such a goal. In this article based on chapter 3 of Neo4j in Action, you'll see how you can refactor a Core API example using Neo4j Transversal Framework and implement a custom evaluator.
What is Scratch? (PDF)
Have you ever wanted to create your own computer game, animated story, tutorial, or computer simulation of any sort? Scratch is a programming language that makes it easy to create these kinds of applications. You can run your applications on your computer, or upload them to the Scratch Web site, where others can comment on them and remix them into new projects. In this green paper, based on Programming with Scratch, author Majed Marji provides a quick introduction to get you started with learning this exciting tool.
Introducing Play for Java (PDF)
Play isn't really a Java web framework. Java's involved, but that isn't the whole story. The first version of Play may have been written in the Java language, but it also ignored the conventions of the Java platform, providing a fresh alternative to excessive enterprise architectures. Play was not based on Java Enterprise Edition APIs and made for Java developers. Play is for web developers. This green paper based on Play for Java, discusses the features and benefits of Play for Java.
Restoring to a Point in Time (PDF)
There's an old saying in computers, your data is only as good as your last backup. There is a little known corollary to that saying; your backups are only as good as your last restore. In this article based on chapter 7 Learn SQL Server 2012 in a Month of Lunches, author Grant Fritchey shows how to use log backups in order to get your database to a particular point in time as part of an emergency.
Declarative Configuration in XML (PDF)
Imagine that your system administrator doesn't have any Java skills but still needs to adjust the virtual hosts, port numbers and IP addresses for your deployed applications. In those cases, you could use XML as a way to configure your standalone Restlet components. In this article, based on chapter 3 of Restlet in Action, authors introduced alternative ways to configure Restlet components using XML.
Introducing the LilyPad (PDF)
The term "wearable" generally refers to clothing and accessories incorporating computer and advanced electronic technologies. The designs often incorporate practical functions and features as well as making a statement or establishing a technological look. In this article based on chapter 11 of Arduino in Action, the authors examine one of the two available platforms for creating wearable applications: the LilyPad.
Why Go? (PDF)
Go is a new general purpose programming language that aims to be simple and efficient. It's designed with large applications in mind, but also knows that large applications usually begin life as small applications. In short, it's a language that scales. This green paper, based on Go in Action, discusses at a high level how Go helps programmers build software, especially as it compares to other popular languages.
Introducing Sonar (PDF)
Measuring software quality used to be hard, so instead of even trying, people did silly things like measure lines of code instead. Then the creators of Sonar, the SonarSource folks, came along and leveraged existing tools that find problems in software to derive metrics from their output, making it track-able and trend-able. They added their own tools and metrics as well. And they wrapped all those metrics in Sonar's intuitive interface, added review functionality and IDE integration and gave it away. In this green paper, based on SonarQube in Action, you'll be introduced to the benefits and facets of Sonar.
Play for Scala Defined (PDF)
This green paper based on Play for Scala, tells the story of how Play was built by web developers, for web developers—taking good ideas from existing high-productivity frameworks, and adding the JVM's power and rich ecosystem.
Understanding the Basics of Roslyn (PDF)
Roslyn API is a major step forward for developers who want that intimate view of code. In this article based on chapter 12 of Metaprogramming in .NET, authors explain how Roslyn API works through executable code and then go deeper into more of its parts.
PowerShell: What's the Big Idea? (PDF)
This green paper, based on Learn Windows PowerShell in a Month of Lunches, Second Edition, explains what life was like before PowerShell came along and shows some of the advantages of the new shell.
Why Neo4j? (PDF)
Neo4j is one of the most prominent graph databases currently available. In this green paper, based on Neo4j in Action, you'll see how the Neo4j graph database helps you model and solve graph problems in a better performing and more elegant way, even when working with large data sets.
Input from Users: The Prompt and Input Commands (PDF)
With the ability to display text and numbers back to the user, you now need a way to get feedback back from the user in the form of numbers, strings, and other types of data. This article based on chapter 2 from Programming the TI-83 Plus/TI-84 Plus, teaches you two TI-BASIC commands that let you do just that.
Recipe: Creating an Integration-Ready Ticketing System Shell (PDF)
In an enterprise of any size, there may be multiple system monitoring tools, ticketing systems, and knowledge management systems. There are many reasons why the systems in an environment might be a big jumbled mess. Despite the difficulty, the need for systems integration is very much alive and well. In this article, based on chapter 13 of Spring in Practice, the authors show you how to implement a ticketing system in such a way that it's easy to integrate it with other systems.
Big Data - Data Storage in the Batch Layer with Pail (PDF)
Pail enables you to vertically partition a dataset and it provides a dead-simple API for common operations like appends, compression, and consolidation. In this article based on chapter 3, author Nathan Marz shows you how Pail makes it easy to satisfy all of the requirements you have for storage on the batch layer.
Inside PowerShell (PDF)
In its six years of existence, PowerShell has become a great administrative tool for Microsoft and other products. This green paper, based on PowerShell in Depth, covers some of the core PowerShell capabilities.
A Good Unit Test Defined (PDF)
You may have already written some tests, and you may even remember them as being bad, awkward, slow, or unmaintainable. In this green paper, based on The Art of Unit Testing, Second Edition, author Roy Osherove walks you through defining a good unit test.
Setting Up the SOA Registry (PDF)
This article based on chapter 2 of SOA Governance in Action covers some SOA Governance basics by showing how to store a WS-* based service in a registry and then query the registry.
Leveraging the Semantic Web with Linked Data (PDF)
Hypermedia is not only about hypertext media types but also about hyperdata and, more importantly, about interoperability of data. This goal is shared by the Semantic Web, which was initiated by Tim Berners Lee. In this article, based on chapter 10 of Restlet in Action, authors introduce the Semantic Web and its relationship to REST via the new Linked Data trend, which is a great illustration of hyperdata. Then, they will introduce RDF, the core standard for semantic representations, and explain how to expose, consume, and browse linked data with Restlet.
AdaFruit Motor Shield (PDF)
The motor shield from AdaFruit is one of the most popular Arduino shields because of what it enables you to do easily: connect multiple motors and external power sources to the Arduino without worrying about overpowering or overdrawing current from the Arduino. In this article based on chapter 12 of Arduino in Action, author Joshua Noble discusses the features of the AdaFruit motor shield.
What's new in ASP.NET MVC 3/4? (PDF)
This green paper based on ASP.NET MVC 4 in Action, explores a brief history of Microsoft's web platform, introduces the MVC design pattern, and talks about what's new in ASP.NET MVC 3 and 4.
To do big things with Big Data you need to understand some of the powerful features of MapReduce, such as joining, sorting, and sampling. In this article based on chapter 4 of Hadoop in Practice, author Alex Holmes discusses the ins and outs of joining disparate and sparse data.
Aggregated Reporting (PDF)
Integration of services helps to achieve goals that are beyond the goals of a single service, for instance, the collaboration of several services to create a complete business process or creating a report on information from multiple services. This article based on chapter 7 of SOA Patterns takes a look at how to get an integrated view of the data needed for reporting when SOA encourages each service to hold its own data internally.
Making Animations over the Canvas (PDF)
To draw directly on the screen, you can use Android’s Canvas class. In this hack from 50 Android Hacks, the author shows how to use this class to create a box that bounces around screen.
Storing Data (PDF)
It's easier to understand how data is read if you know how it's written. This article based on chapter 2 from HBase in Action shows how OpenTSB stores data using pseudo-code for HBase interactions.
Reservation Pattern (PDF)
Reservation pattern, which is closely related to the saga pattern, is a protocol level pattern that involves exchange of messages between service consumers and services. This article based on chapter 5 of SOA Patterns explains how to implement the reservation pattern.
Creating the Hello World Application with the GPE (PDF)
This article from chapter 2 of GWT in Action, Second Edition explains how to use the Google Plugin for Eclipse to create a Hello World project, add a module, an EntryPoint and web page.
What is Dart? (PDF)
The Semantic Blueprint (PDF)
HTML is, very simply, the tags that surround content delivered to you in your browser. It has gone through several iterations, the latest being HTML 5. This article based on chapter 2 of HTML5 for .NET Developers explains how semantic HTML can make your content more accessible and versatile.
Creating a Table View Project (PDF)
The iPhone, iPod, and iPad are great music playing devices and allow you to create playlists. Creating playlists is useful, but being able to play them is necessary to really make it worthwhile. So using the iPod access to select tracks, CoreData to store the selections, and the music player to play the music makes for a usable app. To start, you need to design a database within Xcode and have the related code generated for you. In this article based on chapter 7 of iOS in Practice, author Bear Cahill shows you how to set up the project to support a table view navigation.
A Sample Shard Cluster (PDF)
MongoDB has been designed to support sharding from the start. In this article, based on chapter 9 of MongoDB in Action, author Kyle Banker demonstrates building a sample cluster to host data from a massive Google Docs-like application.
Redis Close Up and Personal (PDF)
If you are familiar with a relational database, you will no doubt have written SQL queries to relate data between tables. Redis is a type of database that is commonly referred to as noSQL or nonrelational. In this green paper based on Redis in Action, you'll see where Redis fits within the world of databases and why Redis is a useful tool for solving problems in any language (or for helping two languages interact).
Rotational Drawing (PDF)
Do you find like Matt Pearson that all the trig you have ever really needed to know could fit quite easily onto the back of a postcard? In this article, based on chapter 7 of Generative Art, the author shows you how to use a little of that trig to vandalize a circle.
Introducing Canvas (PDF)
The speed of graphics manipulation and code execution in modern browsers has opened up new doors to those intrepid souls who have started developing games using the HTML5 canvas. This article based on chapter 5 of HTML5 for .NET Developers explains the basic drawing process in canvas.
Get Behind Mule (PDF)
Mule frees you from much of the plumbing associated with enterprise application integration, allowing you to focus on your application's requirements. In this green paper based on Mule in Action, Second Edition, the authors give you a high-level understanding of Mule.
Constructing Your User Interface in Interface Builder (PDF)
In this article, based on chapter 3 of MacRuby in Action, the authors Brendan Lim and Paul Crawford show you how to build a nice user interface without writing a single line of code using Interface Builder.
Data Partitioning (PDF)
This article is taken from the book OpenCL in Action. The author discusses data partitioning, an important element in implementing algorithms with OpenCL due to the size of data that has to be processed.
Using Manifests (PDF)
Scala 2.8 formalized the ability to encode type information into implicit parameters. Manifests were added specifically to handle arrays and generalized to be useful in other situations where the type needs to be available at runtime. In this article from chapter 7 of Scala in Depth, author Joshua Suereth shows how Manifests are useful in Scala to create abstract methods whose implementations diverge based on the types they work on, but the resulting outputs do not.
Inside Calculator Programming (PDF)
Graphing calculator programming is a great way to challenge yourself to create fun, immersive games or powerful math and science programs on a relatively limited device. This green paper based on Programming the TI-83 Plus/TI-84 Plus explains why a calculator really is a computer in your pocket and dives right into creating your first program with a Hello World example.
Inside HBase (PDF)
The data management technologies we're used to were not built with the Internet in mind. This network of interconnected people and devices has produced, among other things, an explosion of data far beyond anything the previous generation of technologists imagined. The result is an entire class of datasets for which no technical solution existed. Necessity, it is often said, is the mother of invention. This necessity fuelled the innovation that introduced HBase to the world. This green paper from HBase in Action explains how HBase is used to solve all manner of problems.
window.postMessage Alternatives for Legacy Browsers (PDF)
Welcome to CoffeeScript (PDF)
Introducing Ninja (PDF)
50 Android Hacks - VideoViews and Orientation Changes (PDF)
Landscape is way cooler than portrait when it comes to viewing a video on your cell. To make the video full screen when the device is rotated, you need to tell the system that you'll handle the orientation changes yourself. In this article, based on a technique presented in 50 Android Hacks, the author shows you how to do that by changing the size and position of VideoView.
Hello! Python - Writing a Simple Chat Server (PDF)
In this article from chapter 10 of Hello! Python, author Anthony Briggs talks about extending an application using the Twisted framework to make it interactive over the Internet.
"We are the robots!" (PDF)
In this green paper based on Programming Robots the authors explore the landscape of robots and their future evolution, the barriers holding back their proliferation, and how you can help realize a world of popular robotics.
Developing Your First Master-Detail Application (PDF)
A master-detail application has a table, called the master view and rows in the table can be selected, showing a detail view. This is a very common pattern for iPhone applications and it can be seen in Mail, Contacts, Messages, Music, and countless other iPhone apps. In this article, based on chapter 6 of Quick & Easy iPhone Programming, author Bintu Harwani shows you how to develop a relatively straightforward Master-Detail application without a single line of code.
Adding Device Configuration (PDF)
When selecting devices in the device dropdown configuration list, there may be a device that is missing from the detail list and that you want to add. In this article based on chapter 2 of Flex Mobile in Action, author Jonathan Campos shows you how to add devices to your device list for your simulator.
Content Distribution Formats (PDF)
In this article, based on chapter 4 of Location-Aware Applications, the authors discuss the strengths and weaknesses of three content distribution formats for location-based service (LBS) applications—GeoRSS, GeoJSON, and KML.
Building a Test API for Your Application (PDF)
This article from The Art of Unit Testing shows you how to use inheritance in your test classes, create test utility classes and methods, and how to make your API known to developers.
Creating a Web-Based Rule Editor (PDF)
You want to be able to change the content of a rule without too much hassle so you can have direct influence on the behavior of your business processes. In this article, based on chapter 12 of Activiti in Action, the authors show you how Activiti and Drools integrate nicely together to achieve this flexibility with just a few lines of code.
Going Beyond a Simple User Task (PDF)
Workflow is an important part of developing process applications. In a lot of cases, not all tasks in a process can be executed automatically by invoking web services or other external resources. In this article, based on chapter 10 of Activiti in Action, the authors introduce you to subtasks and task delegation that's supported via the Activiti API and partially via the Activiti Explorer.
Silverlight Effects (PDF)
Effects in Silverlight come in two primary forms: built-in effects, implemented in the native Silverlight hardware-accelerated runtime code; and pixel shaders, implemented by folks like us using a combination of managed code and High Level Shader Language (HLSL) and run in software. In this article, based on chapter 23 of Silverlight 5 in Action, author Pete Brown discusses both types of effects.
Taking the Same Picture Three Different Ways (PDF)
With hardware that would make even James Bond jealous we can take stunning pictures with quality that rivals many cameras on the market. In this article based on chapter 4 of Flex Mobile in Action, author Jonathan Campos discusses three ways to get camera data into your mobile applications.
Inside Silverlight (PDF)
Silverlight is a cross-platform .NET runtime, cross-browser plug-in, and a set of Windows-based developer tools for building RIAs. In this green paper, based on Silverlight 5 in Action, you'll learn about the types of applications Silverlight is well-suited for and check out the features and capabilities introduced since Silverlight 2.
The Building Blocks of Agile ALM (PDF)
Application Lifecycle Management (ALM) brings the best of two worlds together, Agile and ALM. In this green paper, based on Agile ALM, author Michael Hüttermann introduces the concepts essential to understanding the Agile ALM.
A Tour of Arduino (PDF)
Arduino is a microcontroller so small that it fits in the palm of your hand. In this green paper based on Arduino in Action, author Martin Evans discusses Arduino's history, pin layout and main components, and the various versions used in different industries, including fashion.
Introducing the Ext JS framework (PDF)
What is Enterprise Search? (PDF)
In this green paper, based on Enterprise Search in Action, the author discusses the features of Enterprise Search, a solution for searching, finding, and presenting enterprise-related information on a large scale.
HTML5 Right Here Right Now (PDF)
What is Hadoop? (PDF)
Hadoop is a platform that provides both distributed storage and computational capabilities. In this green paper based on Hadoop in Practice, author Alex Holmes provides a look at Hadoop from an architectural perspective, examines how it is being utilized in the industry, discusses some weaknesses, ending with a brief look at some alternative technologies.
Introducing Flex Mobile (PDF)
With the latest release of Flex, we can easily make applications that run on the web, desktop, or wide range of mobile phones and tablets with the same codebase and familiar development techniques between each platform. In this green paper based on Flex Mobile in Action, author Jonathan Campos explains why Flex is wonderful for application development.
Android—the Big Picture (PDF)
In this article based on chapter 5 of Android in Action, Third Edition, the authors introduce the platform and provide context to help you understand Android and where it fits in the global cell phone scene.
Nesting CSS Rules (PDF)
One of the most annoyingly repetitive aspects of CSS is writing selectors. This article, based on chapter 2 of Sass and Compass in Action, explains how Sass enables you to put rules within rules and then unpack these nested rules into CSS, eliminating all of that retyping of selectors.
Foundations of Taming Text (PDF)
This article, based on chapter 2 of Taming Text, shows how content is extracted and how to use tools to identify the syntax and semantics of language and other important elements of digital text.
A Quick Tour of Python (PDF)
In this green paper based on Hello! Python, author Anthony Briggs covers the basics that you'll need to know in order to get started programming in Python. You will learn some high-level details: what programming is and the philosophy of programming.
A Quick Tour of SQL Server (PDF)
In this green paper based on Learn SQL Server 2012 in a Month of Lunches, author Grant Fritchey discuses some of the challenges facing DBAs in enterprise environments and how policy-based management can be used in assisting with such challenges.
The World of SOA Patterns (PDF)
This green paper from SOA Patterns explains patterns that will help you make the right decisions for the particular challenges and requirements you'll face in your SOA projects.
When HTML Meets .NET (PDF)
Introducing the World of BPM (PDF)
In this green paper based on Activiti in Action the authors discuss the topic of business process management (BPM) and then explain why the BPMN 2.0 specification is an important industry standard.
The Premise of Machine Learning (PDF)
This green paper based on Machine Learning in Action explains what machine learning is, where it is already being used, how it might help you in the future, and some common approaches to solving problems with machine learning.
The Node.js Framework (PDF)
Solving Real-World CSS Problems with Compass (PDF)
This green paper, based on Sass and Compass in Action, introduces the Compass framework and takes a look at how Compass can help solve stylesheet challenges you probably face every day.
Scala—a Blended Language (PDF)
Scala is a language that blends various techniques seen from other programming languages. This green paper from Scala in Depth explains how Scala attempts to leap between the worlds by offering its developers object-oriented programming features, functional programming features, a very expressive syntax, statically enforced typing, and rich generics—all on top of the Java Virtual Machine.
Exploring Google Web Toolkit (GWT) (PDF)
Making Your Life Simpler—How Groovy Can Leverage Your Existing Java Skills (PDF)
Java is a large, powerful language, but it's showing its age. In this article, based on chapter 1 of Making Java Groovy, author Kenneth Kousen is not advocating rewriting all your Java code in Groovy; he recommends that you consider adding test cases in Groovy.
Why you should care about SOA governance? (PDF)
When you apply good SOA Governance practices, you can create high-quality services that can be easily used by your consumers and behave exactly as expected. SOA Governance makes it easier for you to create new services, upgrade the existing ones, and monitor the business use of your services. This green paper from SOA Governance in Action explains why SOA Governance is important and the benefits you get once you have SOA Governance in place.
What is Spring Roo? (PDF)
In this green paper based on Spring Roo in Action, the authors show how Roo is accessed via the Roo Shell and then how to configure and run a web-based application. Next, they explain how Roo creates and manages your application. Finally, discuss how using Roo can simplify application code, reducing repetitive tasks.
OSGi and the Enterprise—Why Now? (PDF)
Enterprise OSGi can be thought of as a new way of using the Enterprise Java programming model so that it incorporates OSGi features or a new way of using OSGi so it incorporates Java EE features. In this green paper, based on Enterprise OSGi in Action, the author explains what modularity is and why it is so important in software engineering.
Dipping Your Toes in Clojure (PDF)
As a language, Clojure is arguably the most different from Java. In this article, based on The Well-Grounded Java Developer, the authors show you Clojure's most important conceptual variations from Java—the treatment of state and variables.
RabbitMQ Server Management (PDF)
In RabbitMQ speak, a node is an Erlang node running an Erlang application. Don't get scared off by the mention of Erlang; you don't need to be an Erlang aficionado to understand what's going on. It's very similar to what happens with the Java Virtual Machine (JVM). This article, based on chapter 3 of RabbitMQ in Action, shows you how to start and stop nodes in RabbitMQ.
The Most Popular Collaborative Models (PDF)
Specification by Example is conceptually different from traditional specification or testing processes, especially in the way it relies on collaboration. Manning author Gojko Adzic interviewed a number of teams to see how they approached collaboration on specifications. Their approaches varied greatly, from large all-hands workshops to smaller workshops, and even to informal conversations. In this article, based on chapter 6 of Specification by Example, Adzic describes the most common collaboration models along with specific benefits of each.
JMX Support in Spring Integration (PDF)
Java Management Extensions are a standard way of exposing runtime information about a running Java application to allow monitoring and runtime management of the application. In this article, based on chapter 14 of Spring Integration in Action, the author discusses the out-of-the-box support for exposing information about message channels, message sources, and message handlers and Spring Integration's support for adapting JMX concepts to Spring Integration messages and vice versa.
Choosing a Cloud Vendor (PDF)
Choosing a cloud vendor is a momentous decision. In this article, based on chapter 8 of The Cloud at Your Service, we look at the business considerations important in choosing a cloud provider by examining the key criteria for evaluating various vendor offerings.
A Gentle Introduction to OpenCL (PDF)
OpenCL's data structures and functions are unique. Even the most introductory application is difficult for a newcomer to grasp. You really can't dip your foot in the pool—you either know OpenCL or you don't. In this article based on OpenCL in Action, author Matthew Scarpino explains how host applications work and then shows how kernels execute on a device. Then, he walks us through an example application with a kernel that adds 64 floating-point values together.
How Closures Work (PDF)
Stochastic Gradient Ascent (PDF)
Gradient Ascent uses the whole dataset on each update. This is fine with 100 examples but, with billions of data points containing thousands of features, it is unnecessarily expensive in terms of computational resources. This article, based on chapter 5 of Machine Learning in Action, discusses Stochastic Gradient Ascent and how to make modifications that will yield better results.
Pulling RabbitMQ Out of the Hat (PDF)
Message queuing simply is connecting your applications together with messages that are routed between them by a message broker like RabbitMQ. This green paper, based on chapter 1 of RabbitMQ in Action, introduces the history of messaging and RabbitMQ.
Introducing Sencha Touch (PDF)
In this green paper based on Sencha Touch in Action, the authors take you on a into the world of Sencha Touch, discussing what Sencha Touch is and what problems it intends to solve. You discover the Sencha Touch widgets and some of the ways you should think about developing your mobile application to avoid future performance issues.
Java as a platform and a language (PDF)
This green paper is taken from the book The Well-Grounded Java Developer: Covers Java 7 from Manning Publications. The authors introduce Java 7 and showcase Project Coin, a collection of small yet effective new features. You'll find out about the new syntax, such as an improved way of handling exceptions (multi-catch). You'll also learn about Automatic Resource Management and how it helps you to avoid bugs in the code that deals with files or other resources.
What's in Expression Blend? (PDF)
Blend is a visual design tool that generates XAML, increases your productivity, provides rapid prototyping, and greatly simplifies visual tasks. This green paper from the author of Expression Blend in Action covers the key players involved in this exciting technology and where Blend fits into the mix.
Portable Computer that Makes Calls (PDF)
The iPhone is so much more than a phone that it should hardly be called a phone at all. In this green paper, based on iOS in Practice, author Bear Cahill tells us what makes iPhone development so special.
What's so special about EJB? (PDF)
This green paper is taken from the book EJB 3 in Action, Second Edition from Manning Publications. The authors explain why EJB is considered a groundbreaking technology that raised the standards of server-side development.
Developing the business logic (PDF)
In this article, based on chapter 4 of Activiti in Action, the authors explain business logic tasks involved in a loan request process. To do that, they first take a look at the script task and, then, implement the Java service tasks. At the end of the article, the authors show the BPMN 2.0 XML they created and test the process with Eclipse.
Looping over Databases on a Server (PDF)
In this article from chapter 2 of SQL Server DMVs in Action, author Ian Stirk discusses a quick method of creating temporary tables, which is needed when we want to loop over all databases on a server, extracting the results as we go.
The shared MIME-info database (PDF)
In this article, based on chapter 4 of Tika in Action, the authors discuss Shared MIME-info Database specification, which, among other things, defines an XML format for media type information.
Action Message Format and Data-centric Flex (PDF)
In this article based on chapter 11 of Flex 4 in Action, the authors discuss the different flavors of Action Message Format. They also explain how to build data-centric applications with Flash Builder and using data-centric Flex with ColdFusion.
Extensions: Finding and Adding Modules (PDF)
There are two kinds of extension for PowerShell v2: modules and snapins. In this article, based on chapter 5 of Learn Windows PowerShell in a Month of Lunches, author Don Jones explains how to find and add modules.
Examining functional concepts in Google Collections (PDF)
This article is taken from the book Scala in Depth. The author explains how Google Collections API enhances the standard Java collections through immutable data structures and functional interaction with collections.
The HTML doctype (PDF)
This article is taken from the book Hello! HTML5 and CSS3. The author discusses doctype, which HTML5 doesn't need for validation but still needs to be triggered for legacy browsers to render pages in standards-compliant mode.
Machine Learning with Watson: The Greatest Achievement of Artificial Intelligence to Date (PDF)
This article, related to Machine Learning in Action, discusses the inner workings of Watson, the computer built by IBM to compete in Jeopardy! and beat the two greatest human players the game has ever known. Watson's achievement was building a massive system that could quickly generate an answer or choose not to answer. Watson used the computing power to run multiple natural language processing algorithms on a question and combine the answers from these algorithms.
Collecting payment through PayPal (PDF)
This article is taken from the book Lift in Action. The author explains how Lift's module provides out-of-the-box support for the online payment service provider PayPal.
Clustering Wikipedia articles (PDF)
This article is taken from the book Mahout in Action. The authors show how to run clustering on Wikipedia articles to extract related articles and help the editors group them.
Authentication parameters (PDF)
In this article, Lift in Action author Tim Perrett discusses authentication parameters that allow you do both test for access in a general way and also allow you to use HTTP authentication modes.
Building the Right Scope (PDF)
In this article from chapter 4 of Specification by Example, author Gojko Adzic explains how to work together with business users to come up with the right stories and that the key idea to achieve that is not to start with user stories but with business goals and derive the scope from that.
Build Automation Tools (PDF)
In this article, based on chapter 3 of Continuous Integration in .NET, the authors discuss the tools that help with software build automation, zeroing in on MSBuild as the best choice for the .NET developer using Windows and Visual Studio.
Introducing the Windows Phone (PDF)
This green paper is taken from the book Windows Phone 7 in Action from Manning Publications. The author introduces Windows Phone, which combines a new operating system, a powerful hardware platform, and several web services to provide a great experience for the busy Life Maximizer.
Creating a simple tracer plugin/addon (PDF)
This article is taken from the book Griffon in Action. The authors discuss creating a plugin/addon as an event handler. They use an AOP-like approach to intercept controller actions and model properties, which allows the programmer to find out when and how the data has changed.
Specification by example: key process patterns (PDF)
This article is taken from the book Specification by Example. The author explains the set of process patterns that facilitate change in software products to ensure that the right product is delivered efficiently.
The power of the shell (PDF)
This green paper is taken from the book Learn Windows PowerShell in a Month of Lunches from Manning Publications. The author explains that learning PowerShell helps you do a better job by allowing you take full control of a product's administrative functionality.
Introducing OpenCL (PDF)
This green paper is taken from the book OpenCL in Action from Manning Publications. The author explains the inner workings of OpenCL and uses a card game analogy to explain OpenCL operation.
All for one and one for all: the iOS platform (PDF)
This green paper is taken from the book iOS 4 in Action from Manning Publications. The author introduces the iOS 4, and then goes over the key specifications of the iPhone, iPad, and iPod Touch. Lastly, the author discusses the iPhone and iPad uniqueness and multi-touch interaction.
The cornerstones of iPhone programming (PDF)
This green paper is taken from the book Quick & Easy iPhone Programming from Manning Publications. The authors give you an overview of what you need to get started as a new iPhone programmer.
Introducing MacRuby (PDF)
This green paper is taken from the book MacRuby in Action from Manning Publications. The authors cover the basics of Objective-C and Ruby—the two languages, which together make up MacRuby. Lastly, they discuss the foundations of MacRuby itself.
Conquering Administrative Challenges with Powershell and WMI (PDF)
This green paper is taken from the book PowerShell and WMI from Manning Publications. The author explains how PowerShell and WMI provide a set of tested techniques that will enable you to administer your Windows environment in a faster and easier way.
Reading and writing the product data in Spring Batch (PDF)
This article is taken from the book Spring Batch in Action. The authors show how to configure the Spring Batch flat file ItemReader and how to write our own ItemWriter to handle writing products to the database.
Technique: HTTP the Java way (PDF)
This article is taken from the book Android in Practice. The authors demonstrate how to send simple HTTP requests to a Web server using Java's standard HTTP networking facilities.
Diving into the MongoDB shell (PDF)
Clojure and RabbitMQ (PDF)
We can use the code we wrote in this article as a basis for real applications to handle events in an asynchronous manner. Further, we can expand our event processing capacity simply by starting up more instances of our handlers. This idea forms the basis of using messaging to scale up applications. This article is based on Clojure in Action.
What is Sandboxing? (PDF)
Running applications in full trust is the easiest way to build powerful applications but requires that you and your administrators are in total control of the code that is being deployed. You and your power users can use Sandboxed solutions to deploy applications. This makes sure that your SharePoint farm always is safe and your applications are monitored. This article is based on SharePoint 2010 Web Parts in Action.
Macros combining forms (PDF)
One potential use case for macros is taking one form of an expression and transforming it into another form. This article, based on the book The Joy of Clojure takes a look at using macros to combine forms.
Inter-portlet communication using Portlet 2.0 (PDF)
This article introduces features from both Portlet 1.0 (JSR-168) and Portlet 2.0 (JSR-286). The author shows various features of the Portlet API so that you can begin thinking about how you want to start implementing your own portlets. This article is based on Liferay in Action.
Monetizing IP (PDF)
LBS offers developers great opportunities to capitalize on their efforts by tapping into a burgeoning market for location-aware applications and services. Check out this article to learn more! This article is based on Location Aware Applications.
Ruby on Rails, the framework (PDF)
This green paper is taken from the book Rails 3 in Action from Manning Publications. The authors explain how Ruby on Rails allows rapid application development and describe the core features and terms. For the table of contents, the author forum, and other resources, go to http://www.manning.com/katz.
A document database for the modern web (PDF)
This green paper is taken from the book MongoDB in Action from Manning Publications. The author explains how MongoDB provides a comprehensible representation of a product, with all of its information hierarchically organized in a JSON-like structure, and query capabilities that are designed specifically for manipulating structured documents. For the table of contents, the author forum, and other resources, go to http://www.manning.com/banker.
The case for the digital Babel fish (PDF)
This green paper is taken from the book Tika in Action from Manning Publications. The authors explain how a computer program that uses Tika becomes able to understand a myriad of different program files without the need to maintain the originating applications. For the table of contents, the author forum, and other resources, go to http://www.manning.com/mattmann.
Introducing Spring Batch (PDF)
This green paper is taken from the book Spring Batch in Action from Manning Publications. The authors discuss Spring Batch, a batch-oriented framework, which builds on top of the Spring Framework, a de facto standard for writing enterprise applications on the Java platform.
Deconstructing Android (PDF)
This green paper is taken from the book Android in Practice from Manning Publications. The authors provide an in depth overview of what Android is and the motivation behind it.
Introduction to Apache ActiveMQ (PDF)
The authors of ActiveMQ in Action introduce ActiveMQ, an open source, JMS 1.1 compliant, message-oriented middleware (MOM) from the Apache Software Foundation. ActiveMQ provides high availability, performance, scalability, reliability and security.
Getting Started Taming Text (PDF)
Grant Ingersoll and Thomas S. Morton (authors of Taming Text) provide proven tips and tools for building applications that help users manage the tidal wave of communication that swamps their lives.
Designing and Architecting for Internet Scale: Sharding (PDF)
Jothy Rosenberg and Arthur Mateos (authors of The Cloud at Your Service) discuss the concept of sharding, a concept employed heavily by Google referring to how the practice of partitioning databases so they scale infinitely. Sites like Yahoo!, Flickr, and Facebook employ sharding to manage huge user communities.
The Phrase Object: A List of Chunks with Leading (PDF)
Bruno Lowagie, creator of iText and author of iText in Action, Second Edition, describes the Phrase object, and shows how to create constraints for different fonts and set the leading.
Wrapping Tables in Columns (PDF)
Bruno Lowagie, creator of iText and author of iText in Action, Second Edition, shows how to add a PdfPTable at absolute coordinates by wrapping the table inside a ColumnText object.
Location Based Services Past, Present, and Future (PDF)
The authors of Location-Aware Applications discuss what exactly a Location Based Service (LBS) is, how they're implemented today, and how they will be evolving in the near future.
Homogeneous and Heterogeneous Integration Patterns (PDF)
Debasish Ghosh, author of DSLs in Action, discusses integration in which the involved languages interoperate within the constraints of the underlying virtual machine.
OTP Applications (PDF)
The authors of Erlang and OTP in Action describe how to package up your code and get it to fit nicely into a normal OTP system, which is a common point of confusion for those that are new to the system.
Liferay Is a Different Portal (PDF)
Richard Sezov introduces Liferay Portal, discusses basic portal concepts, and walks you through the portal design process. To learn more about Liferay, you can pick up the Liferay in Action MEAP.
The Range of Scala (PDF)
This green paper, based on Scala in Action, defines Scala and explains how its multiparadigm model provides programmers with the power of abstraction from both functional and object-oriented programming models.
Introducing Lift (PDF)
The author of Lift in Action, Timothy Perrett, discusses the foundation of Scala and Lift and outlines the major conceptual differences between Lift and more traditional frameworks.
Introducing Spring Integration (PDF)
The authors of Spring Integration in Action provide a high-level overview of how the Spring Integration framework extends the Spring programming model into the realm of Enterprise Integration Patterns.
What Is the Natural User Interface? (PDF)
Joshua Blake, author of Multitouch in .NET, defines what a natural user interface is, how it's currently evolving, and how NUIs will be play a role in the devices coming out.
What Is Groovy? (PDF)
The authors of Groovy in Action, Second Edition explain the benefits of Groovy, including its seamless integration with Java, the richness of its features, and the areas of applicability.
SharePoint Workflows for your Business Processes (PDF)
Phil Wicklund discusses a workflow, how it relates to your business processes, and how they function within the SharePoint platform. Learn more by checking out SharePoint 2010 Workflows in Action.
Clojure Philosophy (PDF)
Michael Fogus and Chris Houser explain the philosophy behind Clojure, including the weaknesses of existing languages that Clojure addresses. To learn more, check out The Joy of Clojure.
The Anatomy of Web Parts (PDF)
Wictor Wilen describes Web Parts, a self-contained application that can be used and customized within a SharePoint site. For more on Web Parts, check out Wictor's MEAP, SharePoint 2010 Web Parts in Action.
What Is Cloud Computing? (PDF)
Jothy Rosenberg and Arthur Mateos demystify common misperceptions regarding Cloud technology, and lay out the taxonomy of associated terms. To get more on Cloud computing, check out their book The Cloud at Your Service.
Groovy SwingBuilder and Threading (PDF)
Andres Almiray and Danno Ferrin, authors of Griffon in Action, explain why a lack of proper threading is a problem, show a possible solution, and then take a closer look at SwingBuilder's threading options.
OOP in Clojure (PDF)
Michael Fogus and Chris Houser, authors of The Joy of Clojure, identify the shortcomings of object-oriented programming and show how Clojure, in most cases, improves the techniques.
Generative Art: A Practical Guide Using Processing (PDF)
Matthew Pearson, author of the upcoming book Generative Art, explores the middle ground between programming and art; using the mechanical to create the organic.
Introducing iText (PDF)
Bruno Lowagie, the creator of iText and author of iText in Action 2nd Edition, introduces the iText library. iText enables developers to create PDFs on the fly, based on any number of things including real-time database information, user input, or as a batch process.
Welcome to the DMV Goldmine (PDF)
DMVs are views on SQL Server metadata, which can be used to improve the performance of your SQL queries. In this green paper, Ian Stirk, author of SQL Server DMVs in Action, describes how DMVs can help fix common SQL issues.
Adding a Map to an Application (PDF)
Need to a map to your iPhone app? Brandon Trebitowski, author of iPhone in Action, 2nd Edition, gives you two methods to implement a map and control how it's displayed for your users.
Introducing Unit Testing in Java (PDF)
Lasse Koskela, author of Unit Testing in Java, introduce the essential concepts of unit testing in Java, describe related technologies, and provide real-world examples to illustrate how they work.
Introduction to Portals and Portlets (PDF)
Ashish Sarin, author of Portlets in Action, introduces essential concepts and benefits of Java Portlet technology, and how it can streamline and enrich a web user's experience.
Meet Mahout (PDF)
The authors of Mahout in Action introduce readers to Mahout, a machine learning library that is scalable. You'll see how this Java library provides a fertile framework for testing and deploying new large-scale algorithms. You'll also learn the correct pronunciation of Mahout.
Introduction to Continuous Integration in .NET (PDF)
This green paper from Continuous Integration in .NET introduces essential concepts of CI and examines CI server possibilities. CI is a process that aims at minimizing tedious integration problems, which can sometimes take longer than developing the code.
Flex 4 in Action (PDF)
The authors of Flex 4 in Action introduce readers to the Flex technology and how it fits in with Adobe ecosystem. Flex enables non-Flash programmers to leverage the widespread Flash platform, while not locking out developers from the HTML world.
Distributed Agile (PDF)
The authors of Distributed Agile in Action introduce distributed development and agile development separately, before presenting a Distributed Agile approach that can help resolve many issues and streamline total development.
F# A Multi-Paradigm Language on the .NET Platform (PDF)
Amanda Laucher, author of F# in Action, introduces essential F# concepts and explains why its an important addition to the .NET ecosystem.
Introducing jQuery (PDF)
SpringSource dm Server (PDF)
The dm Server2.0 is a comprehensive platform for running, managing and monitoring modular enterprise applications. Check out this intro to the SpringSource dm Server from the authors of SpringSource dm Server 2.0 in Action book.
Rethinking Web Development with REST and Restlet (PDF)
Based on Restlet in Action, this green paper introduces essential concepts of REST and describes the Restlet technology, which leverages the REST architecture and opens the doors to all the features of the web.
Backup Types (PDF)
In SQL Server 2008, there are various types of server backups: full backup, differential backup, transactional log backup and COPY_ONLY backup. Rod Colledge, author of SQL Server 2008 Administration in Action describes each of these in detail, including time, cost and risk factors.
Injecting Objects in Sealed Code (PDF)
Many third party libraries come in binary form and cannot be altered to work with dependency injectors. So without control of this "sealed code", what can be done to make it work with dependency injection? Dhanji Prasanna, author of Dependency Injection, gives some suggestions in this excerpt.
Building ASP.NET Applications (PDF)
Extracted from ASP.NET 4.0 in Practice, this green paper gives an overview on using the .NET Framework 4.0 and covers ASP.NET architecture, new features of ASP.NET 4.0, and new features of IIS 7.5.
What is Spring DM? (PDF)
Excerpted from Spring Dynamic Modules in Action, this green paper introduces the subject of Spring DM, outlines its benefits for OSGi applications and walks through its initial deployment.
Build Artifacts (PDF)
In Brownfield development, how you arrange your build artifacts can determine how much control you have over your final compiled assemblies. The authors of Brownfield Application Development in .NET offer some helpful recommendations on how to best organize these build artifacts.
Separation of Concerns/Single Responsibility Principle (PDF)
When a class has too many responsibilities it becomes that much harder to maintain. Developing with the Single Responsibility Principle in mind will result in leaner and more manageable code. Learn more in this excerpt from Brownfield Application Development in .NET.
Taking a Domain-Centric Approach (PDF)
As part of a chapter from Brownfield Application Development in .NET on implementing a strong layering scheme in an existing Brownfield application, this segment discusses taking a domain-centric layering approach when refactoring your code.
Welcome to the Future: Introducing JavaFX (PDF)
JavaFX provides programmers with a specialized tool for graphically-rich programing across a variety of devices—desktop and web apps today and PVRs and Blu-Ray disc software tomorrow. For more info, check out JavaFX in Action.
Griffon in Action (PDF)
When building desktop applications on Griffon you'll get high productivity gains and avoid some frustrating obstacles. Take your desktop development to another level as Andres Almiray and Danno Ferrin, authors of Griffon in Action, introduce the core concepts behind Griffon.
Using Plain-Text Files for Data Persistence (PDF)
The authors of Ruby in Practice key in on YAML as the best plain-text data persistence tool that offers the richest combination of complexity on the data-end and "editability" on the text-end.
Windows Powershell (PDF)
Bruce Payette, founding member of the MS PowerShell team and author of Windows Powershell in Action, 2nd Edition, introduces the Powershell language and runtime, which were designed from scratch to be an optimal environment for the modern Windows OS.
Basics of Algorithms for Applying Collective Intelligence (PDF)
In this excerpt from Collective Intelligence in Action, Satnam Alag introduces the fields of content and collaborative filtering, and discusses how intelligence is represented and extracted from text.
Improving Your Results Based on User Clicks (PDF)
This excerpt from Algorithms of the Intelligent Web presents a probablistic technique for conducting user click analysis. The authors discuss how clicks can be leveraged to dynamically optimize search queries and even personalize search queries on web applications.
Event Processing in Action (PDF)
This introductory chapter from Event Processing in Action details various examples of computerized event processing in use, looks at the reasons for using event-driven computing systems, and explains the main concepts of event-driven computing.
OSGi Application Frameworks (PDF)
This green paper is based on OSGi in Depth. Application Frameworks provides developers with the tools and the instructions to build a custom application framework using OSGi.
Erlang and OTP in Action (PDF)
This green paper is based on Erlang and OTP in Action. Erlang is a programming language that runs entirely on processes, so that multiple activities can be running simultaneously, or concurrently without running into event loops or thread pooling.
C++ Concurrency in Action (PDF)
Based on the book C++ Concurrency in Action, this green paper delves into the new C++ standard (referred to as C++0x), which is scheduled to be published in 2010. The new standard will support multi-threaded programs, allowing for concurrent programming in C++. To learn more about multithreading and concurrent programming, check out this green paper.
Introducing Hadoop (PDF)
This green paper is based on Hadoop in Action. Hadoop is an open source framework implementing the MapReduce algorithm behind Google's approach to querying the distributed data sets that constitute the internet. This definition naturally leads to an obvious question, "What are "maps" and why do they need to be "reduced?"
Introducing Apache Tuscany (PDF)
This green paper is based on Tuscany SCA in Action. This overview of the Apache Software Foundation's Tuscany project looks at how Apache Tuscany provides a comprehensive infrastructure for Service Oriented Architecture (SOA) development, deployment and management.
Grails in Action (PDF)
This green paper is based on Grails in Action. It explains how Grails came to be such a popular Java web framework and gives seven big ideas on why Grails is one of the best options out there for your next big application project.
OSGi in Action (PDF)
This green paper is based on the book, OSGi in Action and introduces OSGi, the modularity layer for the Java platform. The authors discuss why such a modularity layer, though, not new, is only just now picking up steam.
Discovering Mule (PDF)
This green paper is based on Mule in Action and introduces the origins and general architecture of Mule, the lightweight and modular solution that could scale from an application-level messaging framework to an enterprise-wide highly distributable object broker.
What Are Domain Specific Languages? (PDF)
This green paper is based on Building Domain Specific Languages in Boo and introduces the essential concepts of DSLs, explains how they provide solutions beyond what standard programming languages can afford, and makes a strong case for using Boo to develop DSLs.
Targeting Android (PDF)
This green paper is based on Unlocking Android and explains the essential concepts of the Android platform, describes the features of the Android stack, and provides practical examples to illustrate how it works.
Intelligent Web Applications: An Overview (PDF)
This green paper is based on Algorithms of the Intelligent Web and discusses real-world examples, provides tips on implementing intelligence in your own applications, and presents a few design guidelines which can help avoid common pitfalls.
Getting Started with the ASP.NET MVC Framework (PDF)
This green paper is taken from ASP.NET MVC in Action and introduces the essential concepts of the ASP.NET MVC framework, dissects the MVC pattern, and provides real-world examples to illustrate how it works.
Dependency Injection: What's All the Hype? (PDF)
This green paper is taken from Dependency Injection and introduces the essential concepts of DI, describes related technologes and earlier solutions and provides real-world examples to illustrate how it works.
Functional Programming in .NET (PDF)
This green paper based on Functional Programming for the Real World looks at several aspects of functional programming and their application in F# and C# 3.0 with LINQ.
Hot Backups with Lucene (Green Paper - html)
This excerpt from the upcoming Lucene in Action Second Edition introduces a new feature of release 2.3 that enables backing up an index without pausing indexing or restarting searches.