Recent Posts

Google’s Firebase – First Impressions

For those of you who like me have been shying away from looking at serverless architecture because “how the hell do you run a web server without a server?” only to realize serverless means something completely different, I wanted to write a very short first impressions take on Google Cloud’s Firebase platform. So what is it? Well, you can read the official feature list and explanation on their website but I’d summarize it as a cloud-powered way (set of tools and platform) to have a backend for your web or mobile app without needing to really code any aspect of the backend yourself. In that suite of tools there’s capabilities for realtime client/server communication, a database, file storage, and many other things I didn’t bother to use for my pet project.

(more…)

Skinning Bootstrap in Angular

So you’ve decided to make an Angular (2+, 5 at the time of writing) website and are set on using bootstrap (version 4.0.0 beta 3 at the time of writing) for your styling baseline, but want to spruce it up with some custom styles? You’ve come to the right place! Let’s begin…

(more…)

Angular: Observables, async/await, and Promises, oh my!

Coming from the pre-Angular2 Angular.js world, Angular (which is already at version 5 at the time of writing) can seem daunting with its insistence of using the Observer/Observable design pattern. Everywhere you look, things seem to return an RxJS Observable instead of that nice familiar promise we all know (and maybe even love?). When trying to pick up Angular, this was super frustrating and my gut reaction was to use the very-handy toPromise() method that Observables provide and take the easy way out, but I convinced myself to learn it since I was sure there was a reason for all this madness. After days of research, I think I finally understand it (at least to a pragmatic degree) and I’d like to share my knowledge here. (more…)

Unit Testing Strategies in Node.js

In the world of JavaScript development, it’s easy to get lost and do things wrong, especially when it comes to unit testing. JavaScript is a powerful language, but it is also one where it is incredibly easy to do things the wrong way, and the utmost care must be taken to ensure you don’t end up with a situation where you have no hope to correct yourself. In this article, I’ll explain my experiences with unit testing in Node.js, specifically for a web application using express and MongoDB via mongoose, what I’ve learned and what I believe is the “right” philosophy of how to organize your code to make it testable.

(more…)

65535 files is one too many

Back in March I was working with Visual Studio, developing an ASP.NET MVC project, and everything was going fine until one day I tried to load the solution I was working on, and when loading one specific project I started seeing an error.

Just given the error, it leads one to believe that the problem has to do with SQL or Azure or Databases, or anything similar. I googled around, and couldn’t find any kind of resolution. Most advice said to re-install various components of Visual Studio like the Azure SDK which I tried multiple times to no avail. Another bit of advice was to delete the *.suo files, and try re-cloning the repository. Deleting the *.suo files didn’t help but when re-cloning the repository I started having even more problems because suddenly SourceTree was bugging out and crashing for me too (remember this fact, it becomes relevant later in the article)! At this point I knew something had to be up, something really bizarre – I dug deeper.

(more…)

Azure Storage Emulator

If you’ve done some work with Azure then you may have wondered if it is possible to run a local version of Azure for development and testing instead of having to go to the cloud for those needs. The answer is that it’s not only possible, but (surprisingly?) easy and painless.

Azure Storage Explorer (Screenshot) (more…)

Git introduction for CVS/SVN/TFS users

Today we’re going to cover version control with Git from the perspective of someone coming from a second-gen source control tool like CVS, SVN, or TFS. If you’re depending on how familiar you are with source control you may want to skip around through this article. We’re going to cover the following:

  • What is a VCS?
  • Version Control history
  • What makes Git different
  • Git Flow
  • Clients
  • Basics of Git
  • Useful Links

So without further ado, let’s begin as I take a biiiig step back and start with…

(more…)

Making Node.JS Work With Apache

While I’m on a roll with node-related posts, I would like to take a moment to discuss how to run Node with Apache. Now, this might seem counter-intuitive at first glance; I am sure you are asking yourself “why the heck would I need to run apache with node if a node web app itself runs its own HTTP server?” but that’s the wrong question to be asking. The right question is “What kind of advantages do I gain by using the two together?” and the answer may surprise you. (more…)

Basic Scaffolding for a Node.JS Powered Website Project

UPDATE: This project has been deprecated. You can still use it if you want, but I’d recommend using something like Yeoman instead

As a node.js enthusiast, I have made multiple small to medium size web apps using node and its many various useful libraries like Express.JS. Previously I made a blog post about how to get started with making a node.js powered website and it has become one of the post popular entries on my blog however the feedback I got was that I need to include an example. I originally didn’t include one because I felt like there wasn’t really enough code to actually make it worthwhile, especially since some excerpts were already in the post. However, I have since realized that even if not used as an example, a basic scaffolding would help me (and thus probably others) with getting started on making their node website. Consequently, I introduce to you my “Node Website Scaffolding” project! Getting started is as easy as going into your terminal and typing

This will download everything you need except the dependencies. It comes with the latest (at the time of me writing this) bootstrap which is version 3.1.1. Let me run you through the ropes of this project… (more…)