Creating a Dynamic Catalog with InDesign Templates & XML Data

My task for a recent project was creating a print catalog. The catalog content was constantly being updated, but each entry needed to have the same visual style. I knew there must be a way to do a majority of the design work and then “data merge” the content to the style, but it sure wasn’t easy to figure out. 

It took a ton of time piecing together a number of blog posts and experiments to find a repeatable process that worked for me. So here is my solution, combining InDesign and XML. Read more on Creating a Dynamic Catalog with InDesign Templates & XML Data…

Modular, Type-safe Metadata with TypeScript

One of the humps I’ve encountered while learning TypeScript is coming to terms with a core tenet of the language—the type definitions you write only exist at compile time, not at runtime.

I’ve bumped into this a few times. Can I generate a predicate function to test for type compatibility? No—use type guards instead. Can I reflect on the properties of a type at runtime? No—with caveats. It turns out that those caveats matter a lot, and you can do some pretty powerful things with the tools TypeScript does provide. Read more on Modular, Type-safe Metadata with TypeScript…

Four Steps To Maintaining a Clean Git History

Git is a very important tool. Not only does it keep a history of a project, but Git also makes it easy for a team to collaborate in a codebase. Although it’s such an important tool, it’s often under-utilized and on occasion, even neglected.

A clean Git history is easy to understand and tells a story about the project. It’s evident when features were added and how they were implemented. I’ve come to cherish a clean Git history on a project. The good news is, it’s not very difficult to keep this history clean. Read more on Four Steps To Maintaining a Clean Git History…

Early Inspiration at Science Olympiad 2017

I recently had the pleasure of stepping in as a coach to help my daughter’s team take part in the 2017 Science Olympiad. It was our first time participating, but likely, not the last. It was great to see junior high kids have so much passion for science and have such a great time participating.
Read more on Early Inspiration at Science Olympiad 2017…

Typesafe Container Components with React-Redux’s Connect and TypeScript

TypeScript is fantastic—you get feedback as you write your code to (mostly) ensure you’re passing valid arguments to functions and props to components. However, when using the connect function, you may find that you are permitted to pass invalid props or omit required props to components. In this post, I’ll discuss how the issue arises, and how to fix it by typing your calls to connect! Read more on Typesafe Container Components with React-Redux’s Connect and TypeScript…

How to Programmatically Remove a Cell From a Static UITableView

There are two different ways to add cells to a UITableView.

The first is by using dynamic prototype cells in your table view. For a dynamic table view, you programmatically arrange the cells and sections of the table view by implementing the UITableViewDataSource protocol in code. Using this method, you can display a variable number of cells and sections at runtime. Read more on How to Programmatically Remove a Cell From a Static UITableView…

Using Decorators to Declaratively Extend Functions

The decorator pattern gained fame in the object-oriented world after being featured in the classic 1994 Gang of Four book, Design Patterns. Since then, it’s been used extensively in traditional object-oriented programming as an alternative to inheritance. What’s really going on behind the scenes though, is composition, which means decorators are also great for cleaning up some functional programming boilerplate.

We’re going to look at decorators in JavaScript, along with some proposed syntax sugar coming in ES2017 that will make it easier to use them. Read more on Using Decorators to Declaratively Extend Functions…

loading…