Wednesday, October 19, 2016

The Geek's Guide to Dieting, Part 2: Diet-friendly Foods

In Part 1, I shared my diet plan. Here in Part 2, I'll share some of the foods I've found that make my reduced-calorie diet work.

Breakfast: Dannon Light & Fit Yogurt (80 cals), Coffee with Creamer (40 cals)

If I wasn't dieting, I'd be enjoying a Jimmy Dean sausage, egg and crossant sandwich most mornings for breakfast. But I am dieting, so that's out. Breakfast is the most challenging meal of the day for me: I'm only allowing 120 calories for it, and there's a long stretch between it and lunchtime.

What works best is yogurt, but which one? The craze right now is Greek yogurt--which I really don't like. Fortunately, Dannon's Light & Fit Greek yogurt (80 calories) tastes great. In fact, they've done something remarkable with the huge variety of delicious flavors they offer. It comes in Banana Cream, Blackberry, Blueberry, Caramel Macchiato, Cherry, Cherry Chocolate, Citrus Blend, Key Lime, Peach, Pineapple, Pomegranate Berry, Raspberry, Raspberry Chocolate, Salted Caramel, Strawberry, Strawberry Banana, Strawberry Cheesecake, Toasted Coconut Vanilla, and Vanilla. They're always experimenting with new flavors too, so it doesn't stop there. I've recently seen limited edition flavors as well such as Pumpkin Pie. I've tried about half of these so far, and nearly all of them are really delicious.

But it doesn't stop there. There's also Dannon Light & Fit Yogurt Mousse (also 80 calories), which tastes more like a dessert. These come in Cherry Cheesecake, Coconut Cream, French Vanilla, Lemon Meringue, Blueberry Tart, Raspberry & White Chocolate, and Salted Caramel flavors.

You can buy Dannon Light & Fit Yogurt in packs of 6 or individually.

With my yogurt I'll have a cup of Breakfast Blend coffee (2 calories) from my Keurig and some creamer (30-40 calories).

Snack: Pickles (0 calories) or Tangerine (40)

Pickles have a special place in the world of dieting because most varieties have zero calories. Don't believe me? Check out the nutrition facts label on a jar of pickles and see for yourself. How can this be? Well, it turns out the energy it takes to digest pickles offsets the calories, coming out to a net of 0 calories. For me, pickles are a welcome snack in that long morning stretch between breakfast and lunch.

Pickles: 0 calories

Another good snack are cuties (tangerines), only about 40 calories each.
Cuties: 40 calories

Lunch: Lean Cuisine Microwave Meals

I work from home most days, so microwave meals are typically what I have for lunch. If dieting were not a concern, I'd favor meals from Stouffers and Marie Callenders. But I am dieting, so I need leaner choices. Lean Cuisine to the rescue! Lean Cuisine has a large offering of meals with low calories and many of them are quite good. I'm especially fond of their under-200 calorie meals such as Herb Roasted Chicken and Steak Portabella, because these leave me enough calories for a mid-afternoon follow-up meal. Also good from Lean Cuisine are their Chicken Parmesan (310 calories), Ranchero Braised Beef (250) and Fiesta Grilled Chicken (250). Another note in Lean Cuisine's favor is honest labeling. I can't tell you how many times I've bought a microwave meal from some other brand only to find out the calories on the front were misleading due to how they figure portion size. With Lean Cuisine, they're very clear with their calorie labeling.

Good meals under 200 cals from Lean Cuisine

Very good from Lean Cuisine in the 250-310 cal range


Boston Market Turkey Medallions--a good portion of food (Turkey, Mashed Potatoes, Gravy, Vegetables), only 230 calories.

With one of these meals for lunch, I'm satisfied until my mid-afternoon meal.

Lunch Part 2: Mid-Afternoon Meal: Ready-Pac Bistro Bowl Salad

By 2:30 or 3:00pm I'm getting hungry again, but I have room for another meal because I kept my lunch to 200-300 calories. Ready-Pac Bistro Bowl Salads make a great follow up. They have a large variety in the 210-330 calorie range and most of them are quite good. There's a good variety and they are easy to prepare: just mix the toppings and dressing and stir.

Bistro Bowl Salads

My favorite is the Chef Salad (240 calories). If I need to stay on the lower side of calories, I'll go with the Caprese Salad with Balsamic Dressing or the Walnut Cranberry salad with Raspberry dressing (each 210 calories). The Santa Fe, Bacon Blue Wedge and Turkey & Bacon Cobb are also good, but I'll have those less often because they are 290 calories.

With my mid-afternoon salad, it's smooth coasting till dinner time.

Dinner: Home Cooking

My wife usually cooks for dinner, so it could be something different each time.  Fortunately, she's good at helping me figure out the calories. On my diet plan, I've kept 600 calories (half my daily allowance) reserved so I can have a satisfying dinner.

Dessert: Sugar-free Jello and Diet Snapple

In the evening, I may have a sugar-free Jello (10 calories) or a Diet Peach Snapple (10 calories).

Well, there's my default meal plan. Of course, I sometimes eat out or have to drive in to the office, which changes things. In Part 3, we'll explore survivor tips for eating lunch at fast food places.

Saturday, October 15, 2016

Azure SQL Database Cross Database Joins with Local Databases

Organizations that make use of the cloud sometimes have to integrate that information with local databases. If you have a need to do cross-database joins including an Azure SQL Database, you might be wondering how that can be accomplished. One solution that works is to go to a local database and add a linked server to your Azure database.

Defining a Linked Server with sp_addlinkedserver

To add a linked server, open your local database in SQL Server Management Studio and execute a sp_addlinkedserver statement. You'll need to specify a number of parameters:
  • @server : the name you want to use to refer to the database in queries. Use a simple, memorable name. In our example, we'll use abc.
  • @datasrc : the data source (Azure database server), such as
  • @catalog : the database to connect to. We'll use ABC_PROD in our example.
  • @provider : set to SQLNCLI.
  • @srvproduct : set to empty string.
sp_addlinkedserver @server='abc', @datasrc=N'', @catalog=N'ABC_PROD', @provider=N'SQLNCLI', @srvproduct=N''

Defining a Linked Server Login

To go with your Azure linked server you'll need to define a login for it. Use a sp_addlinkedsrvlogin statement with these parameters:
  • @rmtsrvname : name of the linked server (same value you used for @server in the previous section). Example: abc
  • @useself : set to 'false'
  • @rmtuser : username. Example: dbrpt
  • @rmtpassword : password. Example: s4ssafr4ss!
sp_addlinkedsrvlogin @rmtsrvname='abc', @useself='false', @rmtuser='dbrpt', @rmtpassword='s4ssafr4ss!'

Viewing Linked Server in SSMS Object Explorer

After performing the above steps, refresh your SSMS Object Explorer and you should see your linked server. If you defined everything correctly, you'll also see the database objects available, such as tables and views.

For troubleshooting, there's also a handy Test Connection option if you right-click the linked server name.

Querying the Azure Linked Server

To query your linked database, use the prefix [server][database] before specifying schema/table, where server is the value your used for @server and database is the value you used for @catalog in the first step above. For example,

SELECT * FROM [abc].[ABC_PROD].[dbo].person

Including Azure Linked Server in Cross-Database Queries

Now that you have a working linked server, you can include it in database queries that join to the local database or other linked databases. In the query below, the Azure linked database is joined to a local database table.

There you have it: queries that combine cloud and local data through the use of a Linked Server.

Saturday, October 8, 2016

The Geek's Guide to Dieting, Part 1

I started dieting 3 4 months ago, and as of today I've lost over 30 40 lbs. I thought I'd share some tips on how I've been able to reduce weight and stick to my diet plan. In Part 2, I'll also discuss some of the diet-friendly (yet tasty) foods I've latched on to.

I've lost more than 2 bowling balls of weight

Let me begin with some words of encouragement: you can do this! If I can do it, anyone can. As you'll read below, I'm about the worst candidate for weight loss you can imagine, yet I'm doing it. You can too.

The Geek's Dilemma: A Sedentary Lifestyle

I've certainly attempted diets before, usually ending in failure. One thing I learned from those experiences is that temporary diets are destined to fail, because when they're over you revert back to life as usual. Instead, you've got to make permanent lifestyle changes that you can stick with. This time around, I've been able to do that and that's why it's been working. 

As anyone who's ever made a New Year's resolution knows, lifestyle changes are hard. I think it's even harder for geeks who can't tear themselves away from their work. I'm a software developer with project responsibilities and looming deadlines, and that means a sedentary lifestyle. I spend 12 hours+ a day sitting. There's not a whole lot of exercise going on, other than conjugal visits (heh heh). And realistically, that's not going to change much. I may take an occasional walk but it's been hard to get into a daily exercise routine. That leaves food as the logical area of focus for me, and that's where I've had some success.

Another challenge for me is that I really love food! My wife is an excellent cook. Gourmet cooking is her hobby, so there's lots of good food at home. Half the time Food Network is what we're watching on TV. Plus, we like to dine out. We usually dine out as a family every Sunday.

Lastly, I have Type 2 Diabetes which really complicates things. With diabetes you're needing to eat often, but with a diet you've got to eat less. What prompted me to start dieting again was the realization that I've been putting on a great deal of weight year after year since the onset of diabetes about 5 years ago. 

Limiting Your Daily Calories

But what kind of diet to go on? There are endless diets to choose from, but I had some specific criteria to narrow things down. I needed something that would be:

1. Simple
2. Not expensive
3. Not unpleasant
4. Not disruptive to family dinners

This criteria quickly eliminated many diet approaches. Special diet foods were out: they cost a lot of money, taste foul, and complicate family dinners if I have to eat something different from everybody else. 

I ultimately settled on something very, very simple: limiting the amount of calories I eat each day. Simply eating less has a lot going for it. It doesn't restrict what you eat. When eating with others, you don't have to be eating something different.

I started out at 1800 calories a day, but wasn't seeing much weight loss so I reduced that until I started getting results. Since getting down to 1200 calories a day, weight loss has been around 10 lbs a month. (Note: if you're considering limiting your daily calories, you should set a limit that makes sense for your height and weight. There are online calculators for that, or even better discuss with your doctor.)

Tracking Your Calories

With a firm calorie/day goal in mind, the next question is how to keep track of everything you put into your mouth. These days, that's fairly easy. Many restaurants now display calories on their menu and/or have nutrition information on their web sites. Food products you purchase list calories in their Nutrition Facts labels. For dishes prepared at home, there are apps that let you enter ingredients and calculate calories for the dish.

Speaking of apps, an invaluable tool for tracking calories is My Fitness Pal, a free phone app. It lets you set and track your daily calorie goals and track what you eat (with an enormous database of foods and calories). It also keeps track of your weight goal and lets you enter your weight as it changes. My Fitness Pal is a key element to my diet plan.

Tracking meals in My Fitness Pal

Weight reduction progress in My Fitness Pal

Sticking to a Daily Routine

I settled into a daily eating routine that has become ingrained in me, which is very helpful to sticking to the diet plan. Here it is:

Breakfast (120 calories)
Coffee with creamer

Mid-morning snack (0-40 calories)
Pickles (0) or Tangerine (40)

Lunch, Part 1 - Noon (250 calories)
Microwave meal

Lunch, Part 2 - Mid-afternoon (210 calories)

Dinner (600 calories)
Whatever's being served, but not more than 600 calories

Evening (20 calories)
Diet Snapple
Sugar-free Jello

A big challenge for me is the stretches between eating, hard on me due to my diabetes and fluctuating glucose levels. I decided I would tough out the morning with a small breakfast and a mid-morning snack of pickles (which are 0 calories) or a tangerine (40). The rest of the day is easier as I eat progressively more. For lunch I have two 200-250 calorie items, one at noon and another mid-afternoon. Dinner is best of all, where I still have half of my daily calories available.

Each morning I weigh myself. Often it's good news, and I enter my new reduced weight in My Fitness Pal. Some days my weight stays the same, and sometimes it even jumps up a bit--it's a finicky thing, that scale. But I don't let that bother me: I stay on my routine, and each month I've lost another 10 pounds.

Are there ever exceptions to the daily plan? Sure. Occasionally, I will have dinner out with my wife. On Sundays, I have dinner out with the entire family. On those occasions it's tempting to forego the daily routine, but I've been careful to keep the calories in check. If I eat more calories than usual for lunch, I'll eat fewer for dinner. Sometimes I'll only eat half of what I'm served at a restaurant and take the rest home, where my 13-year old son is happy to take it off my hands.

Well, there you have it. A diet that works for a geek that doesn't cost extra money. Now that I've been doing this for three months, it's become easier. My body has become used to eating less each day.

In Part 2, I'll cover some of my favorite diet-helpful foods.