Recent Posts

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…


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

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

git clone

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…)

Automated Testing of iOS Apps

Today I’d like to talk about automated testing with iOS, and do some reviews as well as share my thoughts on various technologies used to do that. Firstly, I want to mention that in this post I will be talking specifically about regression and functional testing (i.e. going through the various screens of the app, clicking on things, making sure everything is working) of the UI and not performance testing (i.e. not trying to see how many users or actions the application can withstand even though testing that may require automating the UI). The difference is important because in performance testing we do not really care if things show up properly, just as long as they show up within a certain amount of time or show up at all. (more…)

Init.d startup/shutdown script for Node.JS applications via forever

If you are like me and have multiple Node.JS applications running on a *NIX box, each managed by the ‘forever‘ which is described as “A simple CLI tool for ensuring that a given node script runs continuously (i.e. forever)” then chances are you’ve also wanted to add your applications to auto-start via init.d. Additionally, by having an init.d script for each application you’d be able to stop, restart, and check the status of each of your applications without having to get into pathing and changing users. (more…)

Google Chart API

I can’t believe I have never seen this before – Google has a Chart API available publicly to display bar graphs, pie charts, and various other data visualization tools in HTML5. It’s clean, fast and judging from the examples quite easy to use.

Definitely going to use this on any future web projects that require any kind of graphs.



SharePoint Custom WebParts and list views

It looks as though I’m on a sharepoint-roll; this time I will explain how I put together a custom web part which essentially extends the existing functionality of a list view (SPListView) to execute a custom filter, which in my case required the list view to display only items made by the current user AND users in the same group as the current user (based on a group filter). So for example, let’s say you have a list of grades for a class that has group assignments. I want the list view to display only my own grades and my groupmates’ grades but ignore all others (not as a security thing, but as just a filter thing since I’d have read only access to all the grades in this example). (more…)

SharePoint Custom Claims Provider

Recently one of our customers needed a way to move incoming claims from SiteMinder/ADFS into the user properties of the person logging in. In our case, it was critical to have the e-mail claim be passed into the “Work E-mail” user property on a private SharePoint portal. While it is true that there exists built-in functionality in SharePoint 2010 that will map user properties from Active Directory to user properties and synchronize them, it will not work for the ADFS authentication claims. In our case the users we were concerned with were not the users on our customer’s active directory server, but on an external server. For this reason, any incoming claims, including the e-mail claim, were just simply ignored by SharePoint.

Microsoft advised us to develop a custom claims provider, and the task ultimately came down to me. This was entirely alien to me as I had never done anything like this before, but I managed to pull it together in about a week’s time. Given how much documentation I had to search through to achieve this seemingly simple goal, I would like to save someone out there the trouble by disclosing some of the techniques I used to achieve this. (more…)