In a recent blog, we showed off some examples of Angular pipes we use in our code base. Now, we’d like to talk about directives. Angular directives allow you to attach behavior to elements in the DOM and reuse it across your project. The framework already comes with a number…

Dashboards are a powerful way to communicate data to your team. One use for dashboards is tracking the progress of key performance indicators (KPIs). One KPI tracked at Lucid is the ranking and performance of our products in third-party marketplaces. Although there are enterprise-grade products to gather and visualize this…

So you want to build an add-on for Google Docs, Sheets, or Slides, but you’re worried about ending up on the highway to development hell? You’ve come to the right place, then. As someone who has been down that road before, I’d like to share some of the mistakes, missteps,…

Sometimes it seems like functional programmers are a totally different breed. Even by programmer standards, they seem more nerdy than the rest. They use weird terms, such as "monad," "for-comprehension," and "lambda." They use languages that don’t end every line with a semicolon. And, no matter how uneasy Java programmers…

Background Users have been using Lucidchart for a long time to make their diagrams, since 2010 and IE6. And for nearly that long, Lucid has used Google’s Closure Compiler to manage its increasingly sophisticated code base. Closure Compiler is a typechecker and minifier that uses JSDoc annotations in comments to…

Pipes are a useful feature in Angular. They are a simple way to transform values in an Angular template. There are some built in pipes, but you can also build your own pipes. A pipe takes in a value or values and then returns a value. This is great for…

The dangers of garbage-collected languages Any programmer that has had to manually manage memory knows the value of automatic memory management, also known as garbage collection. Garbage collection prevents several potential bugs that occur in manually managed memory, such as dangling pointers, double free errors, and several types of memory…

Every company operates around objectives and uses key performance indicators (KPIs) to track progress towards those objectives. For each goal, there are two main questions teams should easily be able to answer at any time: How much progress have we made so far? Are we on track to hit the…

About a month ago, I attended my first Atlassian Connect Week in Austin, Texas. If you haven’t heard about Connect Week before, you’re not alone. It’s a relatively new event series that Atlassian started in 2016. These events are targeted at Atlassian Marketplace developers: if you have an app idea,…