Eli Weinstock-Herman
"The best performance improvement is the transition from the nonworking state to the working state."
J. Osterhout

Learning Elixir and Phoenix – Getting a handle on the language

Original post posted on Thursday, March 23, 2017 at LessThanDot.com

Recently I started learning Elixir and the Phoenix framework. I’ve found that mixing hands on programming with reading is the fastest way for me to get up to speed with a new language or framework, so if that’s your style you might find this useful. In this post I started at zero and ended at being able to write small modules, run unit tests, and work with the interactive console.

Previous Post: Learning Elixir and Phoenix – Environments and Editors

As I stated before, my goal is to get from “barely able to read it” to “able to ship readable, idiomatic, testable apps”. This ...

Continue reading

Learning Elixir and Phoenix – Environments and Editors

Original post posted on Wednesday, March 15, 2017 at LessThanDot.com

Recently I started down the path to learn Elixir and the Phoenix framework. This is a language and framework I intend to use quite a bit, so my goal is to get from “barely able to read it” to “able to ship readable, idiomatic, testable apps”.

Having learned a fairly large number of languages, libraries, and frameworks over the years, I know the best way I learn is by combining reading or videos with writing and debugging actual code (some intersection of chasing book smarts + street smarts). This also lets me combine my own experience and expectations with folks that...

Continue reading

Using Azure Functions to add a Contact Form to a Static Site

Original post posted on Friday, January 27, 2017 at LessThanDot.com

My personal website is a static site: 100% HTML, JS, and CSS files with no server-side processing. I have custom code that pulls data from a variety of sources and builds updated versions of the files from templates, which are then deployed to the host. I do this to move the CPU latency of building the pages to my time, instead of charging it to visitors on each page hit. While I have a host, a strategy like this means I could also choose to host for free via github or similar services.

So there’s a great benefit to the reader and our wallet, but no server-side execution makes things...

Continue reading

A Custom Jasmine Runner to find my slowest Specs

Original post posted on Wednesday, December 21, 2016 at LessThanDot.com

I’ve been playing around lately with a pure command-line Jasmine runner that doesn’t rely on a SpecRunner file to run tests. I work daily with a largish application that is well over 100K lines of front-end code and greater than 7000 front-end tests. Over time as the codebase and test count has grown, our Continuous Integration environment has continued to get slower. While build servers like Jenkins and TeamCity provide some analytics around slow tests, there is still some digging involved to identify the best targets for improvement, something I’m hoping a local runner can ...

Continue reading

CSV file to API using Azure Functions (CSVaaS)

Original post posted on Friday, November 25, 2016 at LessThanDot.com

We’re living in the future. During a conversational aside the other day, the CEO recounted a story of someone he met that was willing to throw money at a product to make it easy to save an excel file and have it surface as an API. A few years ago that was server provisioning and a couple days to a couple weeks of work, depending on the level of analytics, authentication, identity management, documentation, data entry system, and so on you wanted. With the explosion of tools and services we’re seeing in the cloud, now we can do this in an a few hours or less, with 200 lines of code ...

Continue reading

Useful Projects