2017 tech thoughts

It's close to the end of the year and I've had a few things I've used this year that I don't want to forget about.

Vagrant

I've used virtualization before but what's new is that I've set up a development environment for my own tinkering that I can use on multiple machines. In a professional setting I've set up development environments with Vagrant because it saves a lot of time for a team but I only just got around to doing it with my own personal projects recently. Now that I set up another desktop machine at home this effort has payed off very nicely, I got up and running much faster than ever before on a fresh install.

I've found that this has made certain types of development on Windows systems bearable (by running a linux box), but has not worked well for anything needing symlinks. I had a LOT of troubles with symlinks using Vagrant on windows with VirtualBox as the provider. More on that in another article.

Yarn

I've had a really good experience shifting to Yarn from NPM.

So far it seems noticeably faster and the other various improvements have been great. I did have a really annoying time getting the symlinking that's needed to install packages to work with Virtualbox on Windows with Vagrant but that's not Yarn's fault. It works great on the Linux box I just set up, more on that in another article.

Hypothesis

This is a really good unit testing library that helps you write better tests.

https://github.com/HypothesisWorks/hypothesis-python

Specifically I've found this has been good for increasing coverage work and has helped me find a few edge edge case bugs much faster. Would highly recommend, being able to write better test cases has a very high ROI.

Drupal

A while back I wrote a CMS for video tutorials with the sport Footbag from scratch with Django (there are multiple posts on here about that experience). The whole point of the project was to make it easier to find the information that existed for the sport and to enable users that are non-developers to contribute to this knowledge base While this was an amazing learning experience for learning Django, and ultimately was why I chose Django, that said if I were to approach such a task as a professional job I'd just use a CMS like Drupal (or maybe Django + Wagtail depending on use case). A project like that really fits well with the strengths of Drupal, I’d want a very compelling reason to attempt to write a CMS from scratch for a project when Drupal works well. Specifically the Taxonomy concept in Drupal would have been very useful in the Footbag project context.

Overall I've liked working with Drupal, and I don't say this just because I had to deal with some crappy WordPress issues lately, [1] I enjoy Drupal in it's own right. Deployment has been easier that I initially expected which is nice.

Sometime soon I might do some more experimenting with headless Drupal, would be nice to write some front ends in React while maintaining all the nice CMS power of Drupal in the back end.

Text mesh pro

I've been doing some work in Unity3d and the default text renderer isn't all that great. In the asset store there's a much better text package called Text Mesh Pro which I have been using.

The quality of the text that is rendered is much higher and because the software is well made it doesn't come at a performance hit over the inbuilt text.

I wouldn't be remotely surprised if this ends up being included in a later Unity3d install. https://blogs.unity3d.com/2017/03/20/textmesh-pro-joins-unity/

[1]A recurring theme is that I try to like WordPress because of the business value it can provide (unfortunately somewhat via externalities) but when I put my developer hat on I can't help seeing excessive technical debt (those same externalities) getting created. I find the plugin ecosystem with WordPress can let you get up and running exceedingly quickly but it also creates deployment and security issues. The inability to roll back an install is especially annoying which then leads you to have to jump through hoops in order to support a more sane installation and upgrade work-flow. Specifically I have found myself making isolated VMs for WordPress to try to avoid the issues with reverting conflicting changes from plugins, especially the issues arising from upgrades. I also like keeping WordPress sites more isolated from the other content that is being served from the same machines. But the realization is that after jumping though excessive hoops you aren't really saving any overall time, its mostly beneficial in the way in which it reduces the time to get a site to market.

blogroll

social