Don’t Bet Against Language Features

Remember when all the blogs in PHP land were telling you to use single quotes because double quotes are slow? I was a heavy PHP user at the time, and man I sure do. The advice was actually factually correct at the time, but has long been fixed in PHP, and it would never have mattered in your application anyways. I have seen this scenario play out again – this time with JavaScript Promises.

Be wary anytime you hear something along the lines of “use X instead of Y, because Y is slow” – where Y is a built-in programming language feature. This argument crops up from time to time, but it is almost always a complete non-issue in the long run. Continue reading

Stronger Encryption and Decryption in Node.js

If your encryption method produces the same encrypted result given the same original text input, your encryption is broken. Yet this is what I see in most other examples around the web on how to do encryption in Node.js. Strong encryption should always produce a different output, even given the same exact input. Continue reading

Disposeamail.com Re-launch: The Spam Never Stops

Over the holidays, I spent about 20 hours spread out over a few days to build and launch the new Disposeamail.com. Go check out how an inbox looks (in this case, asdf@disposeamail.com).

But wait. Why would I launch a new project when I just recently committed to concentrating on a single project? Because I wanted to learn and experiment with a few things that will ultimately help me with my main project. Namely: New methods of Node.js scaling and deployment, and experimenting with some new JavaScript features and build systems. I have already learned a lot on those two fronts just making and deploying Disposeamail that will get integrated back into ChurchMint and other projects over the next few weeks. Continue reading

Speaking at Confoo Vancouver 2016

I was happy to be invited to speak at Confoo Vancouver 2016. I have spoken at Confoo Montreal in the past (2011, 2012), and it is always a very informative and well run conference.

You Don’t Know Node.js

Node.js can be a powerful platform used in the right situations, but it also has more footguns than PHP does for new developers. Asynchronous programming style, concurrency issues, error handling, the event loop, and no default timeouts for HTTP requests or network calls will give new developers more than their fair share of troubles. This talk gives a thorough introduction to node.js and the event loop model, and covers common pitfalls to avoid.

Source: https://github.com/vlucas/presentation-slides-you-dont-know-nodejs/
Slides: https://vlucas.github.io/presentation-slides-you-dont-know-nodejs/

Effective Browser JavaScript Debugging

Did you know that your web browser has a full suite of built-in JavaScript debugging tools? With the developer tools in Chrome, Firefox, and Safari, you can debug JavaScript on the fly with breakpoints, watch expressions, an interactive REPL with autocomplete, and much more. Learn how to troubleshoot bugs and memory leaks like a pro, armed with the same web browser you already use everyday – no extra plugins or downloads required.

Content: https://github.com/vlucas/presentation-slides-js-browser-debugging/
Slides: https://vlucas.github.io/presentation-slides-js-browser-debugging/

Selling My Passive Income Stream: JSCompress.com

I recently sold JSCompress.com – a website that I created, and have owned and operated since 2008. Over the years, it has gained a lot of traction and popularity, and is heavily trafficked – the most heavily and consistently trafficked website I have ever owned (about 3,500 uniques per weekday). It was a really tough decision selling the website, but in the end – it was the right time to do it.

Continue reading

Return Field Errors in Your JSON Error Response

While developing the new Job board for Techlahoma (soon to launch), I decided to customize the JSON error response to include a field_errors key with a dictionary of the field names submitted, and the error message that maps to that field. This allows me to more easily create in-context error validation feedback for users without having to implement additional client-side validation. A huge win for productivity, and a really nice feature for anyone implementing the JSON API. Continue reading

Disabled Comments

After switching back to WordPress from a static blog that did not have any comments, I left comments on out of curiosity to see what would happen. Sure enough, within a few days, I already had over 20 spam comments to moderate. I just switched comments back off, and don’t plan on turning them on anytime soon. They are too much of a hassle a police. There are lots of ways to contact me if you need help or clarification on any of my posts.