Dear Monitor Manufacturers

​

I recently got a new monitor. Specifically the HP 2311Xi. This thing was a steal for what it is at under $250. Not long ago, it was unheard of to find an IPS panel for this price.

Unsurprisingly, this monitors and others like it (Most notably the Dell U2412M) are flying off the shelves in the "enthusiast-on-a-budget" market. I imagine HP and Dell managed this price point by stripping a few features from more iconic IPS monitors like the U2411 and just the falling costs of IPS technology.

The popularity of these monitors and the fact that some users are even ordering sketchy, yet high-quality Korean monitors from eBay for an inexpensive, feature-light monitor with a spectacular panel shows that there really is a market for these things.

So, monitor manufacturers:

​

On Web Application State

​I've been thinking a bit lately on the tractability of the single-page/client-side/javascript application (or whatever you want to call it) testing problem. When trying to figure out nice ways to set up test suites and catch regressions in Squarespace, I've been kind of at a loss for complete solution. Our first attempts were, in my opinion, illustrative but misguided. Granted, it was just an experiment and not difficult to cook up, but we took the approach of attempting to verify things like animations completing successfully and pixel-perfection after simulating a series of clicks, drags and inputs. This did work for very simple cases, but fell apart when we tried to generalize. 

​However, it was not misguided because it did not produce the correct results. It was misguided because it was testing the wrong thing. At Squarespace, we place a focus on achieving absolute perfection in the beauty of our presentation. We seek to leave a lasting impression and consistently sleek widgets is a big part of that. In the pursuit of such goals it's very easy to lose track of the key elements of the experience that make the application really usable.

If you view your application as an object with multiple layers, where the base layer is just the basic interactions modeled with the final HTML structure you intend to keep, you realize most applications remain surprisingly usable with just basic styling for layout and little 'pizzaz'. Clearly, these are the elements you cannot allow to regress.

​In a complex applicaton, making sure that these elements are on-screen when they need to be and the user's state in your application is always consistent is _key_. Those transitions are often the highest-level state in your application. In an ideal world, your state-management code would be as ignorant of the interface as possible. So much so that you could simply instantiate and 'use' your application from code like the following:

Having your application be just a plain old object that may delegate to sub-components (that can be replaced with mocks/dummy instances for testing) may not always be practical, but it makes things a heck of a lot simpler. Because web apps are just big state-machines, ​In theory, if you had some object that encapsulated the current state of your application (Much like Ember's router), it would be incredibly useful to verify that whenever you call app.navigateTo('library') whatever internal state representation was updated correctly. That seems obvious, but it's never occurred to me so clearly when actually testing this behavior would involve calling the methods, then string matching on 'window.location'.

​I'm aware that decoupling view from state and testing from the bottom up are nothing new, but it's very easy to forget that we can apply the same principles applied in 'regular' development to the occasionally wild world of the front-end.

Decouple your state, test your state, then move on to the pretty stuff.

1 Way You Should Take Advantage of Your 20s

I take issue with lists like these, prescribing ways for me to make the most of my time as a young, reckless, seemingly-invincible 20-something. Not only because their tone is not unlike that of a parent telling you for the ump-teenth time about the Good Old Days, but because it's purely subjective advice presented consciously as objective truth.

​In my opinion, the one way one should take advantage of one's 20s is to do whatever you want, for better or worse. The last thing I want to do is look back on my 20s and realize I didn't do something or have an experience because someone else decided it's a waste of my time. I have no real responsibility to anyone but myself right now ,and it's up to me to make decisions, good or bad. Granted, I don't advise anyone to make catastrophic decisions for the sake of 'having the experience', but I do advise people to think for themselves.