Monthly Archives

September 2016

Experimental Decorator Warning

Suppressing Experimental Support for Decorators warning in VS Code

By | Angular 2, JavaScript, Mobile, NativeScript, TypeScript | No Comments

When working with TypeScript and Angular 2 in VS Code, you may encounter an Experimental Support for Decorators warning on some of the decorators you wish to use in your code. While it doesn’t affect the compilation or functionality of the application, it is a tad annoying to look at. In this example, I’m working with a NativeScript application.  Here are a couple steps to take in order to suppress this warning. Set the Experimental Decorators Property The first step in suppressing this warning, is to set the “experimentalDecorators” property to “true” in the TypeScript configuration file in the root of the project…

Read More
What Branch Am I On?

What Branch Am I On?

By | .NET, git | No Comments

When working on a project that is leveraging source/version control with branching it is always a good practice to know which branch you are currently on.  There is nothing worse than getting in the coding groove and an hour in thinking “What branch am I on?”, only to find out you are coding directly against master/release.  Of course your version control system of choice has a mechanism for letting you know what branch is active.  How this is accomplished will vary by system and, more likely than not, will require you to leave your beloved IDE.  There must be a…

Read More

Solved: Adding an Office 365 Email Account to Outlook 2016

By | Office365 | No Comments

Today, as part of repaving my laptop, I decided to install Office 2016. Everything was going fine until I tried to add my Office 365 email account to Outlook 2016. It seems that Auto Discover is now a requirement for Exchange email accounts – there is no longer a way to manually configure servers. And, for some reason, the Auto Discover process hung while trying to discover the server settings for my email (eventually erroring out) After a frustrating two hours of troubleshooting, I came across this blog post with a solution that worked for me: In my case, I added three DWORD registry…

Read More

Angular.js: Configuration for Two Environments within one Project

By | AngularJS, node.js | No Comments

One of our recent projects is an Angular.js app that uses Node.js/Express as the application server. During development, we create feature branches that are merged into a “develop” branch for integration testing. Then, the we merge the “develop” branch into the “master” branch for production deployment. One issue that we had to solve was how to keep environment-specific config in source control. That is, our Angular app needed to know the URL for its API server, and the API server for development was different than production. The first attempt was to maintain one version of a config file in the “develop” branch, and a different version of that…

Read More

A Rise in Demand for Xamarin Consultancy

By | Xamarin | No Comments

Since the Microsoft Acquisition of Xamarin, Falafel has seen a major uptick in demand for services on Xamarin Technologies and in the last 3 months, 4 major corporations have hired Falafel to architect and implement Xamarin based solutions for over $1,000,000 in services revenues. When we first heard that Microsoft was acquiring Xamarin back in February this year, we at Falafel Software were both excited and curious. The team here has always loved Xamarin and we are all Microsoft Certified Professionals so this partnership made sense as we work with technologies from both companies. The surprising aspect was since the…

Read More
Two Wheel Robot on the floor

Windows IoT: Basic Control of a Two Wheel Robot

By | C#, Hardware, IoT, Raspberry Pi, Windows, Windows Universal Apps | One Comment

In my last article, we utilized a Raspberry Pi running Windows IoT Core to bi-directionally control a single DC motor with the help of the L293D chip. In this article, we will take things a bit further and have the L293D chip control two motors placed on a chassis to create a Two Wheel Robot. Materials Raspberry Pi 2 running Windows IoT Core Pi Cobbler with Ribbon Cable (optional) L293DNE chip Adafruit 2 Wheel Robot Chassis Kit (contains 2 DC motors) One 4xAA battery pack (to power the motors) Breadboard Various M-M Jumper wire   Wiring Details Wiring Details Cobbler 5v…

Read More

Database Change Management With SQL and BAT Files

By | SQL Server | No Comments

Intro In my previous post I gave an overview of some different approaches to database change management that I’ve had personal experience with, finishing with a teaser about a new strategy that I cooked up for a scenario where I wanted something easy to manage without needing to install anything on the target machine. Using a combination of SQL and BAT files, this strategy is pretty bare-bones, but offers complete control over how scripts are applied, so it has a certain minimalist appeal. It also does not rely on a schema version table, but instead just queries metadata to decide…

Read More

Database Change Management Strategies Compared

By | SQL Server, Visual Studio | 2 Comments

Intro It is a challenging problem to manage database change in any project that uses a database. In this post, I’ll recap some of the approaches I’ve tried in the past and what I like (or don’t like) about them; then in the next post I’ll describe a new one that I recently composed with one BAT file and multiple SQL files and have been quite pleased with. This post assumes that the target database is SQL Server. Some of the techniques described could be modified to apply to other databases, and some are vendor-specific. Comparison of Database Change Management Strategies Monolithic Upgrade Script The…

Read More
Single DC Motor Control Wiring Diagram

Windows IoT : Bi-Directional DC Motor Control

By | C#, Hardware, IoT, Microsoft, Raspberry Pi | No Comments

In many IoT scenarios, it is possible that automation will be required to physically move something. In order to do this, you will need to utilize some type of motor. In this example, we will control a single DC Motor using the L293DNE chip and the Raspberry Pi 2 running the Windows IoT Core operating system. Materials Required Raspberry Pi 2 running Windows IoT Core Pi Cobbler with Ribbon Cable (optional) L293DNE chip DC Motor (6v motor) One 4xAA battery pack (to power the motor) Breadboard Various M-M Jumper wire Hardware Setup Wiring Details Cobbler 5v to the Breadboard Power Rail #1 Cobbler…

Read More

Microsoft Research Video Commentary – “Towards Better User Interface for 3D”

By | Blogs, Hardware, Microsoft, Multi-Device | No Comments

Being one of those media consumers that have cut the cord with the cable company and consuming media strictly online, I’ve been managing my YouTube subscriptions judiciously. Channels with a low-signal-to-noise ratio get axed quickly. A few months ago hundreds of videos started flooding my feed. The culprit was Microsoft Research. They are publishing videos at a mind-blowing rate. I counted over 1600 videos uploaded during one WEEK in August. Not year, not month, but in one WEEK. The range of the subjects are vast. A random selection of a few are: System Design for Cloud Services – Part 1 GeoS Video…

Read More
Falafel CV Award

Falafel Software awarded Most Innovative Software Development Engineers by CV Magazine

By | News | No Comments

September 9, 2016 – Corporate Vision Magazine has awarded Falafel Software The Most Innovative Software Development Engineers in their 2016 Technology Innovator Awards. The 2016 Technology Innovator Awards recognizes and rewards the firms behind ground-breaking developments that change the way we do business for the better. From CV Magazine, “Falafel Software found itself expanding rapidly on the excellence of its engineers and the incredible sense of teamwork exhibited by everyone in the company. This common mutual respect for each other’s talents has been a major asset for Falafel, causing extraordinary growth, and a level of quality that very few other IT…

Read More

Getting Started With Electron and TypeScript

By | Desktop, Electron, JavaScript, TypeScript, Web | 2 Comments

What is Electron? ElectronJS is a cross-platform app framework that allows you to leverage existing knowledge of JavaScript, HTML, and CSS to build apps for Windows, OSX, and Linux using a shared codebase. It is based on Node.js and Chromium and is used by many popular apps such as Visual Studio Code, Slack, and the Atom editor. If you haven’t already, install the Electron Prebuilt package from npm:

What is TypeScript? TypeScript is a typed superset of JavaScript that compiles into plain JavaScript. It is an easy way to simplify large complex JavaScript codebases or ensure integrity when working…

Read More

Accessing Android Application Context outside Activity in Xamarin

By | Android, Android, Xamarin | No Comments

In Android world, it’s quite common to have a scenario where you want to access Application Context outside Activity or Fragment. One scenario is that if you are building an application that needs Multiple Language support and you want to access Strings from your ViewModels to show Localized strings for error / success messages. Traditionally in Android, the way to get access to Application Context was to hold a Static reference to it when the app launches and then use it later on. The way to achieve this is to inherit from Application in Android and hold your Static Application…

Read More
one does not simply delete the node_modules folder in windows

Remove the node_modules Folder in Windows

By | News | No Comments

If you have been doing node development for any length of time on Windows you will, more than likely, come to a point where you would like delete a node_modules folder.  Unfortunately, removing the node_modules folder in Windows is not always a straight forward task thanks to the way node modules work (a module has dependencies, which in turn have dependencies, which in turn…you get the point) as well as Windows’ path length limitations.  In my experience the method that succeeds most often is to use the rimraf deep deletion module for node. Install the module via npm.  Use -g so…

Read More

Case-sensitive File Naming for NativeScript TypeScript Source Files

By | Android, iOS, JavaScript, NativeScript, TypeScript | No Comments

When working with NativeScript it’s important to pay attention to the casing of filenames for your JavaScript source files, especially when working with TypeScript. When importing classes, interfaces, or other exported TypeScript items from other files, you must make sure that the letter casing in the reference matches the actual source file. More specifically, the letter casing of your reference needs to match the casing of the actual JavaScript (.js) files that will ultimately be loaded by the NativeScript runtime. After all, TypeScript ultimately gets compiled to JavaScript, and you want to make sure everything lines up! To demonstrate this,…

Read More