All Posts By

Falafel Posts

Falafel Software

Articles

Redis Caching in the Google Cloud Platform

By | .NET, Cloud Platform | One Comment

This is post 15 of 17 in the series “Google Cloud for the .NET Developer” Caching is one of those solutions that is often added after you realize that there is a performance problem with your system. For example, fetching records from a database may be fast when you are developing locally as the only user. But, in production with hundreds or thousands of simultaneous requests taking place, that disk-based database will soon become a bottleneck. If the data is slowly changing, then there is really no need to hit the database itself after the first read: simply save the data to…

Read More

Cloud Storage Options Part 2

By | .NET, Cloud Platform, Google | One Comment

This is a continuation of Cloud Storage Options Part 1, which covers Google Cloud Storage and Google Cloud SQL, both from a .NET developer’s perspective. Part 2 includes the two remaining structured storage solutions offered in GCP: Cloud Datastore and Cloud BigTable, and again focuses on how .NET developers can get started leveraging these storage options for themselves.

Read More

Cloud Storage Options Part 1

By | .NET, Cloud Platform, Google | 2 Comments

If you are a .NET developer looking to integrate with Google Cloud, one of the most basic decisions will be what Google Cloud Storage options make sense for you? When you think cloud storage, don’t just think blob storage, because Google Cloud Platform storage is really much more diverse than that, from basic blob to fully managed MySQL services to different flavors of NoSQL.

Read More

SQL Server in the Google Cloud

By | Cloud Platform, Google, SQL Server | No Comments

If you are planning to or even considering jumping in to Google Cloud Platform and you work with .NET technologies, you’ll almost certainly want to know how to run SQL Server in the Google Cloud. Google Cloud has made a big effort lately to more fully support the .NET stack, including SQL Server. This is good news for everyone, because more options means more chances to find the right fit for your development project!

Read More
Big ear man listening

Understanding Natural Language

By | Cloud Platform, Google | No Comments

This is post 8 of 17 in the series “Google Cloud for the .NET Developer” Isaac Asimov speculated that you could plug a politician’s speech into a mathematical model, zero out the equation, and prove that the politician had said nothing. We know this intuitively, but I never thought you could actually do it. The Natural Language API from the Google Cloud Platform comes close by measuring sentiment found in text. The Natural Language API sentiment score ranges from –1.0 (negative emotion) to 1.0 (positive emotion). Ever watch HGTV? This may sound familiar: “The kitchen is so cramped. I really…

Read More

Porting Azure Web Apps to Google Cloud Platform (GCP)

By | Cloud Platform, Google | No Comments

This is post 7 of 17 in the series “Google Cloud for the .NET Developer” Introduction So you’ve decided to port your ASP.NET 4.x Azure Web Apps to the Google Cloud Platform (GCP). The only option available today for hosting non-Core ASP.NET in GCP is with Windows Server VMs in Compute Engine. Let’s start by acknowledging that this is a move from a Platform as a Service (PaaS) to Infrastructure as a Service (IaaS), with all the typical tradeoffs: in short, you sacrifice rich features in exchange for increased granularity of control. With that in mind, let’s take a look…

Read More

Google Cloud Platform (GCP) Compute Engine – Windows Server VMs

By | Cloud Platform, Google | No Comments

This is post 6 of 17 in the series “Google Cloud for the .NET Developer” Intro to GCP Compute Engine If you’re a Windows .NET developer, then when you think cloud, your first thought is probably Microsoft Azure. However, Google Cloud Platform (GCP) has a very strong offering for Windows developers as well, starting with one of the most fundamental building blocks of cloud computing: the Virtual Machine (VM). The Google Cloud Platform’s name for VMs in the cloud is Compute Engine. It might be intimidating to step into an arena largely populated by unfamiliar Linux servers and enough foreign…

Read More

Google Cloud Platform (GCP) Overview

By | Cloud Platform, Google | No Comments

This is post 2 of 17 in the series “Google Cloud for the .NET Developer” The list of products available in Google Cloud Platform, while shorter than the lists from Azure or AWS, can still seem quite daunting. Here’s a quick overview of what’s available in the Google Cloud Platform (GCP) specifically for .NET applications. Compute GCP offers many products under the Compute umbrella, but most are not easily accessible to the Windows Server + IIS + .NET developer. The two main offerings of interest are Compute Engine and App Engine. Compute Engine Compute Engine is the family of services focused…

Read More

Why Organizations should choose GCP – A Business Perspective

By | Cloud Platform, Google | No Comments

Cloud services reduce the effort needed to manage infrastructure, provision servers and configure networks. Today the cloud market is primarily dominated by Amazon Web Services, followed by Microsoft Azure. As the new kid on the block, GCP is the newest entrant to a highly profitable and competitive landscape. In this blog series, the team will discuss GCP services and implementation differences between GCP, AWS, and Azure. This post explores GCP from a business point of view — what to consider when making an informed decision for your organization.

Read More

Breakpoints in Auto-Properties in Visual Studio 2015

By | Visual Studio | No Comments

This tip falls squarely into the category of simple, yet oh so useful. Visual Studio 2015 isn’t exactly new, but I am still discovering things that make it so nice for debugging. That’s where I’ve spent a lot of my time this week, and one thing that has saved me is using Actions on breakpoints to print messages to the console. And surprise! You can do the same thing even when using auto-properties in Visual Studio 2015 without backing fields.

Read More

One-Time Passwords (OTP)

By | .NET, node.js | No Comments

Years ago, I worked for a customer who provided me with a RSA SecurID device to access their VPN. This was a plastic fob that would display a six digit number on a LCD screen. Every 30 seconds, the numbers changed to a different random six digits. To log into their VPN, I had to provide my username and password, plus the current six digit number displayed on the device. So, even if my password was compromised, an attacker still could not get into their VPN without also having that SecurID device. Today, we simply call this Two-Factor Authentication, or 2FA. While plastic fobs…

Read More

Awesome, Text-Based Diagrams with Mermaid

By | Visual Studio Code | No Comments

A picture is worth a thousand words. Plain text can convey high levels of detail, but when there are multiple entities involved, text fails to communicate the relationships between them well. In a recent incident, I needed to explain to myself and others how information flowed between four different actors in a transaction. Oral and written attempts would quickly become confusing because of the difficulty of keeping the state of all the different actors in our heads at once. In comparison, once the transaction was laid out in a diagram, the flow of information immediately become far easier to understand for…

Read More

Is an 80 Character Code Line Length Still Relevant?

By | C#, CSS, JavaScript, TypeScript, Visual Studio | No Comments

If you’ve spent any time reading about coding standards on the internet, you’ve probably come across the suggestion to limit lines of code to 80 characters and wondered if it’s still relevant today. The advise to limit lines to 80 characters is often connected to the historical limit of 80 characters in terminal windows. But what if your team is not subject to this constraint? Are there still any benefits to adopting this limitation? I tried living with it for a while and here are my takeaways. Growing pains Indentation When I first set out to try this style out,…

Read More

Quick Tip for Showing JSFiddles in Your WordPress Blog

By | Blogs | No Comments

I know for a fact I have shared this tip with colleagues multiple times over the last year, because it always seems to be just tricky enough to trip someone up when writing a WordPress blog post that would benefit from a live JSFiddle in an iframe. And I realize that there are plugins for this also, but you might not have access to them, or maybe you just want a simple solution.

Read More

Kendo DataSource: Grouping then Sorting

By | Kendo UI, Telerik | No Comments

It seems that Kendo DataSource (and, thus, the Kendo Grid) cannot do both Grouping and Sorting. When sorting is defined without grouping, then everything works fine. But, when records are grouped, then the sorting within each groups does not work at all. Consider this simple example: http://jsfiddle.net/jfollas/z3297jtx/

The sorting is all over the place! One workaround (there are probably many more) is to perform a sort AFTER the DataSource has already grouped the data. For a data-bound Kendo Grid, this can be done in the DataBound event handler. However, there is a Chicken-and-Egg situation when doing this: performing a .sort()…

Read More

What’s it Like to Take an Online Proctored Microsoft Certification Exam?

By | Microsoft | No Comments

Each year for the past several years, I have set a personal goal to get developer certified or trained in something new. Sometimes that is a Microsoft Exam, sometimes it is some other certification, such as Kendo UI certification. In previous years, I have had to travel to a test center to take certain Microsoft Exams, but the test center closest to me closed in 2014. The next closest location is over 2 hrs away, which was pretty much a deal breaker for me, and I had almost given up this year on meeting my goal for 2016. But, instead I decided to try something new: an Online Proctored Microsoft Certification Exam.

Read More
Scout Promise

A Brief Introduction to Promises

By | JavaScript | No Comments

It took me a while to get used to working with Promises in JavaScript. I fundamentally knew how the jQuery Deferred object worked from years ago, so some of the concepts were familiar to me. But, the beauty of the newer Promise implementations is in how it really cleans up your code by breaking it up into blocks that can then be chained and executed asynchronously. Consider the following:

The process is kicked off at the bottom with a call to doSomething() . Notice that doSomething()  calls fetchSomething() , and all that fetchSomething()  does is return the results of someHttpClient.get() . But, in…

Read More

Web API Route Design for Non-CRUD Routes

By | ASP.NET, Web API | 2 Comments

Introduction I’ve been finding myself thinking a lot about route design for the web APIs I’ve been building lately. For your basic CRUD (Create, Read, Update, Delete) controllers, everyone knows that the POST HTTP verb maps to create/insert; GET maps to read/select; PUT maps to update; and DELETE maps to–brace yourself–delete. But what about routes that represent things beyond these fundamental but basic data manipulations? I’ve done a bit of reading and thinking about the subject, and these are a distillation of the lessons I’ve learned. URLs represent resources I mean, it’s right in the name: Uniform Resource Locator. But what…

Read More

How I Optimize My Focus and Productivity

By | Tools, Work | No Comments

Whether you work in an office or from your home, distractions can be a huge problem. They yank you out of the nearly trance-like state of focused productivity and bring you crashing back into your body in meatspace. Some distractions are external, and I think it’s common sense for most people to defend against these sorts of distractions by trying to mitigate them. Phone calls interrupting you? Silence your phone. Distracted by email and/or chat notifications? Mute them during certain hours and check them only at specific times. Distracting noises or conversations nearby? Wear some comfortable noise-suppressing headphones and play something…

Read More

Building Mobile UI Tests using REPL

By | Android, Testing, UITest, Xamarin | No Comments

This is post 4 of 4 in the series “Xamarin Test Cloud” Building Mobile UI Tests using REPL REPL builds a list of methods to automate a mobile app for use in a UI test. The typical workflow starts with the tree command to list elements in the current view. Next, app methods wait for elements, enter text, tap buttons and so on. Then the copy command saves your REPL activity to the clipboard. Finally, you paste REPL commands into your test method. Once you paste the REPL output, you can clean it up and add assertions.

The screenshot shows the Android emulator on the left, and…

Read More
Xamarin UITest Word Cloud

Mobile Testing in the Xamarin Test Cloud

By | Android, Android, C#, iOS, Testing, UITest, Visual Studio, Xamarin, Xamarin Test Cloud | No Comments

Mobile UI testing requires the same power as web UI testing. Certainly we need the basics: identify on-screen elements, automate, and make assertions. But that’s not going to be enough for teams building mobile apps under rapidly changing conditions; not with hundreds of new, evolving technology combinations. So what are the new rules? Here’s what we need, right-out-of-the-box…

Read More