It has been too long since I have taken the time to add some new content here. This blog has always been something I would occasionally hop into and jot something down but not really make a concerted effort to keep up to date. There has always been higher priorities in life like juggling a large consulting project, raising 2 young boys, and perhaps more hobbies than any person should rightly have. Dedicating time to write is important, not just for professional growth but for personal growth as well.
Here is a simple method for adding sorting to any table in Angular 2+. It's a simple approach that allows you to define how the table is filled with data, instead of the table sort forcing you to use either client side or server side.
Web Content Accessibility Guide (WCAG 2.0) is divided into three conformance levels (A, AA, and AAA).
They are organized based on the impact they have on design or visual presentation of the pages. The higher the level, the more restraining it becomes on design. As a rule of thumb, success criteria from level A should be invisible or barely noticeable to the interface. On the other hand, level AAA will have such a high impact on design, that most organizations will not be able to achieve that level (as the compromises on design will be too important).
CAUTION: This article is for Hapi versions older than 17.x. If you are using a newer version of Hapi, please checkout the new setup here.
A good friend of mine wrote an excellent demo of how to use the Serverless framework to build an AWS Lambda function that can serve more than one request. The folks over at Serverless have named this approach the "Monolithic Pattern" and its a great way to move into serverless hosting without having the sprawl of multiple hosted Lambda functions.
Add some spice to git bash to help battle the cubicle blues.
Here is a useful Dockerfile for running Mule ESB EE in Docker. We are currently running this on Red Hat's Openshift (kubernetes-based) container server and it runs quite well.
There are a great many tools available for testing REST Api's by various vendors, open source plugins, browser plugins, and the old classic
The morning standup meeting is a chance for everyone to participate in a conversation that aims to share an understanding of the current objectives, coordinate team efforts, share problems and offer help, and identify potential issues. As a collaboration tool, it offers an opportunity for team members to sync up there work efforts by letting everyone share the work they have been doing and allowing others to ask clarifying questions and offer helpful suggestions. It is invaluable in identifying wasted effort before it happens as team members often gain valuable context during the standup meeting. As a way to coordinate efforts, the standup meeting gives everyone an opportunity to share work that affects other team members in a way that encourages a discussion about the it, which can often alleviate any problems in the upfront.
"This is dynamic! It's great! So Simple! None of that overengineered junk!"
This plugin will add a view handler to Hapi.js routes to serve themeable content. This allows you serve different stylesheets by theme name, serve different layout files, or whatever you need. Content can be themed by url (default), http header, or a custom function.
Here is the family sailing on our boat "Venti" 4th of July weekend. We sailed a short hop from Manitowoc to Sheboygan, WI.
Linqpad is great for writing a quick test or exploring some api features. If you need to write a group of tests, you can use this quick little snippet to run Linqpad like a unit test.
The proliferation of N-Tier architecture has caused a common anti-pattern with the use of interfaces in .NET applications. This anti-pattern often presents itself as a form of dependency injection (DI) with its usage intending to reduce the coupling between applications but often creates the exact opposite situation.
To make glass development easier or just set things up for a presentation, you can mirror the glass display on a desktop or laptop using Android Screen Monitor (ASM).
The Brew Bucket is a winner, hands down. My only real hold up is the price and the amount of beer that could get left behind when you rack, but otherwise this is a real high quality product clearly designed with homebrewers in mind and not just some scaled down version of what the big boys are using. I'm really looking forward to any other products that might be coming out of their shop in the future.
Outside of the traditional method of gathering values from Arduino inputs, there are a couple of other excellent tools in the workshop we can use. Interrupts provide the means to allow hardware devices to trigger a routine in your sketch and perform additional processing outside of the main loop. This trigger usually happens when an input changes state, allowing you to monitor an input pin without having to check it each time the main loop runs. Timers provide a way to run code at predefined intervals outside the main loop. Instead of calling millis() during the loop and constantly checking whether enough time has passed, you can create timers to move that logic outside of the main program execution. Just like hardware interrupts, a timer interrupt runs asynchronously and independent of the main loop.
Microsoft has done an excellent job of building a cloud solution that is downright fun to work with, regardless of the language or toolset you want to use. They are regularly releasing updated API's and new cloud service offerings, have remained competitive in their pricing, and have even (wait for it) been called "visionary". The feature that I enjoy the most is the ease of configuration of their various offerings, most can be configured in a couple clicks and up and running in less than a minute. This really helps ease you into a nice deployment cycle right off the bat, especially if you take advantage of automatic Github or TFS deployments. Enough talk! Show us the code!
It seems that every example on the internet involving Node and web sockets is some sort of chat application. Let's break out of the mold for a bit and do something a little different.
A flexible, easy to configure replacement for the standard WPF Grid control Download WpfAutoGrid from Nuget. AutoGrid lets you reduce the amount of xaml when using grids for layout by allowing you to define rows and columns as simple properties and alleviating you from having to explicitly specify the row and column a child control belongs to. Partially based on work by Rachel Lim.
This is a video board created for DuClaw Brewing Company to display what's on tap at the Maryland Brewer's Oktoberfest. Created to run on Xbox 360 or Windows 7 connected to a big ass Flat Panel television and a set of very loud speakers. The board also plays promotional videos on a set schedule and has a few more animations and effects not shown in this clip. The board actually runs on 3 different screens all with their own content, beer selection, videos, etc. We wrote the original for Oktoberfest 2009 and it gets updated each year. It's pretty much a giant video game written with XNA and C#.
When you're working with WPF or Windows forms one of the common issues that crops up is cross threading in your viewmodels. The following is a simple solution that wraps up a
BackgroundWorker in some standalone classes that can be used with your
DbContext. The nice thing about this solution is it doesn't require you to inherit any classes and you can stick the code in yuo project where you feel it works best.
Anytime I start a new project I’m usually super pumped to dive into some code and get something done. There I am, a cup of coffee and three energy drinks later, translating the latest business requirement into something simply amazing… or more likely, just another contact management application for the CEO of unnamed company X. But I’m happy, delightfully punching keys on the keyboard, slinging abstractions and enterprise patterns like its just another day. Just one more look at the functional spec and, wait, what is this? That’s right, I just realized that this is not a functional spec at all. This is Functional Spaghetti.
A useful extension for developers that don’t shy away from anonymous types in their viewmodels.
The information that follows pertains to an older version of XNA and may not be applicable Imagine an XNA game running two monitors, one for the 3d game, and a second having a full screen tactical map of the game. The easy part is actually splitting the game windows to multiple monitors, the difficult part is synchronizing the two parts to work together (which I will leave up to you). You can create a simple subclass of GraphicsDeviceManager and then create the two game windows on separate threads. When instantiating the Game class, pass in the index of the monitor you want to target (the index is visible in the display options dialog of your pc).