I’m going to come right out and say it: prototyping is the most powerful tool in your UI/UX tool belt. Let me clarify. I still think of prototyping as one of the many ways to extract valuable information and iterate on a design–like user research or card sorting–but I now put prototyping at the top […]
Mapping is hard, but spinning up a new app that renders maps doesn’t have to be. Here’s how you can easily get started working with maps in a new React app. Not that AAA map under your car seat Maps have been around for thousands of years, but they’ve become more complex and powerful within […]
The JAMstack generally has become ubiquitous as a solid and reliable architecture for building applications for the web. As much as we didn’t know it, the JAMstack has been part of E84’s blood before the term was coined, as we worked through application challenges focusing on serving static applications and websites using AWS S3 and […]
Intro Dealing with type on the web can be a challenge, especially when you have to account for the ever-changing range of screen sizes. Ultimately the font size(s) you use for headings, body copy, and whatever else directly effects the layout of you page, and when you’re dealing with dozens, or even hundreds of pages […]
I have always used a REPL driven approach to Clojure development and this has been very productive, but at times I have really missed the old school approach of setting break points and stepping through code, examining variables along the way. While there are some very capable solutions that get me part of the way there (proto-repl, etc.), I…
In the previous installment of our introduction to functional programming we looked at reading values from nested data structures.nIn this final post we look at the flip side of working with nested data structures, updating them. If you have not read the previous post yet and are not familiar Elixir, you might want to read it now, as this post builds on that one.
If you are using VCR to record/playback HTTP requests for your Rails tests, you may run into problems if your cassettes use tokens to authenticate with those services. VCR uses a RequestMatcher to determine if an outgoing request (and response) already exist in a cassette. Upon finding a match, the test will use the response pre-recorded in the cassette.
In the last post we looked at functional approaches to solving problems typically solved using loops in imperative languages. These problems centered around list-like data structures such as arrays or vectors. In this post we will look at more complicated nested data structures.