[ Software Engineer ] • 856-419-7654

Image Lazy Loading

7 • 24 • 19 natesymer


Ah yes. Lazy images. Magical content that only loads when you need it. I learned to code with Haskell, so I'm partial to laziness.

Also, my job depends on it. I work with a bunch of talented designers who make graphic-heavy websites. Tens of MB per page, even after JPG optimization! Besides making smaller images and using srcsets, we use lazy loading. It's so useful, I'm surprised that it never found its way into a standard until recently.

The first piece of the puzzle is detecting when the img elements come onscreen. It's not as simple as a listener or callback. We have some hard requirements:

wtf: CS Programs Produce Software Engineers?

1 • 15 • 19 natesymer


Engineering is an art form, like playing guitar or painting. But unlike playing guitar or painting, engineering provides a framework to make a fair wad of cash fairly reliably - for both the engineer and especially for his/her/.*'s employer.

The problem is that most of the people becoming engineers (specifically software engineers) are meek, idealistic brainiacs who love computers, and their educations are not teaching them how to survive post-college in the vicious tech industry. Putting our cute little nerd into the tech industry is like giving the same nerd a Rolex and sending him to a dangerous city like Camden, NJ.

WordPress & the Web

3 • 27 • 18 natesymer


I don't hate WordPress. Sure, there are aspects of it that suck, but any platform has similar limitations. For most sites, WordPress would be suitable - especially if you intend to do something simple. I'll take a look at performance, security, data organization, and developer productivity.

Any web platform will have performance drains. Scripts have to be loaded, processes need to be loaded into memory, OS calls need to be made, etc. The only platform that I know that doesn't suffer from 66% of those is Haskell (this site is Haskell) because Warp is optimized to use as few OS calls as humanly possible and nothing has to be compiled/loaded at runtime.

You don't need a Terabyte!

1 • 6 • 17 natesymer


Honestly, computers are time-consuming money pits - especially for us techy types. Costing thousands of dollars a piece, our computers are no match for the sheer amount of data we throw at them. They always need to be faster, store more, and process our ever-growing mountains of data at a constant speed.

If I received a dime for every time a fellow programmer told me to just buy another drive because "storage is cheap", I'd be a millionaire. Many people I know who follow this philosophy have scores of hard disks and USB drives lying around, largely untouched once filled. The Haskell programmer in me wonders why anyone would accumulate all that data if they were never going to use it.

© 2017, Nathaniel Symer