Opinion: Size is the last great legal discrimination


I was reading a story about a woman in the US who was removed from a flight because she didn't want to sit in the middle seat between two large people either side of her. When questioned by another passenger, she responded "do you want to sit between those two pigs?"

Now if you replaced weight (which is contrary to common perception a nasty medical situation, not just a result of endless self-indulgence), in that story, with race, religion, other physical disability, etc., the public outrage would be huge.

Let's get something clear here. For a long time, the medical profession and the governments claimed that eating fat was the primary culprit, and that overeating and inactivity was the secondary cause for weight gain. Unfortunately for everyone involved, that's never been true.

There's a perception that overweight people have no willpower, yet I know so many overweight people who have way above average willpower, and it's obvious in every other aspect of their lives.

When inflammation, insulin, and other hormones get involved, telling people to just eat less is like telling someone to just stop growing quite so tall.

Cold hard reality is that the medicos had it wrong for a very long time, and ignored all research to the contrary. The real reasons are now becoming quite apparent, and I'll just note that if you still think people get overweight primarily from overeating, and inactivity, you are both wrong, and you are part of the problem.

This has allowed there to still be a legal discrimination against overweight people, and worse, it allows for people to feel justified in victim shaming. The same people wouldn't be game to blame short kids for being short, tall kids for being tall, Asian kids for being Asian, or blind kids for being blind, etc.

And so we have the woman in the story above, feeling justified in calling the overweight people in her row "pigs". And somehow that's meant to be OK.

It's not.


And now we come to the real culprits of this story, even though they are rarely directly blamed. Airlines have been constantly reducing passenger space on airliners for a long time, at the same time that average passengers have been getting larger.

How is this OK?

Then when people don't fit in the seats any more, somehow it's their own fault?

And yet if you're tall, the airlines cater for you. But not if you're wider.

Note the advert from QANTAS above. Want window or aisle: OK. Want more leg-room: also OK. But want wider? Ah, that's a problem.

I love flying with Virgin Australia, but it's the same issue. Note their page on Economy X.

Again, extra legroom? No problems. Wider? Oh…

Seat Options

Now, you could argue that there are options available. If you want a 50% larger seat, you could buy a business class seat (or in the USA, 1st class seat). Really? For 50% more room, is it fair to need to pay this difference?

So a "normal" person can fly for $244 but a larger person should pay $1432 to get 50% more space? Sorry, but it's not the person that's disgusting, it's those prices.

Now to be fair, some airlines will let you buy two seats. Even that's nasty. For 50% more room, we need to pay twice the fare, because airliners aren't required to allow for wider people?

And worse, I've done this in the past, and I can tell you it isn't easy. Most airlines have no way for you to do this on their online booking sites. Why? That in itself is poor.

I have clients who want to buy airline seats for me. Is there any way for me to make them larger after they or their travel agent has bought them?

That would be No.

I've also regularly had issues after purchasing double seats. It's then almost impossible to change a flight, compared to a normal ticket. I've even had my seating allocated to two separate places in the plane. And I've had flights where they decided that the two seats could no longer be offered. If you've booked a double seat flight on frequent flyer points, and need to change anything, that's into the realm of true challenge.

Why oh why does it need to be like this? And why do airlines put people, who already feel bad about being overweight (from societal pressure), into smaller and smaller spaces within the planes. They are already almost impossible to be comfortable in, and it's not fair to other surrounding passengers either.

I suspect that one day soon, the true nature of weight issues will become clear to the community, and real action will take place on this blatant discrimination. Some compassion will replace the victim shaming.

I'd just love to see the airlines get ahead of the game on this, as they are one of the main culprits causing the issues in the first place by their shrinking of passenger space.



Happy new year to all my Chinese buddies

Just a quick post to say Happy New Year to all my Chinese buddies and family members, and welcome to the year of the pig.

新年快乐 (Xīnnián kuàilè)

is pretty much "Happy New Year" directly translated. It's pronounced pretty much like "shin neean kwai ler", so remember to say that to your Chinese friends.

But you'll often also hear:

恭喜发财 (Gōngxǐ fācái)

which is pretty much "wishing you happiness and prosperity". It's pronounced pretty much like "gong she far tsai".

恭喜恭喜 (Gōngxǐ gōngxǐ)

is a phrase you'll often hear just for "congratulations".

Thank you to all those who've helped me with my continued learning of the Chinese language and culture.

Opinion: Bad news is best delivered promptly and directly – don't BS

In the 1990's I was running a software company. We had a great sales guy who was also a great friend. One of the things that I loved about working with him, is that even if he didn't know how to solve a technical problem, he'd ask the questions that I led me to see a problem differently. I could then solve it. I wish every technical person was lucky enough to have someone like that.

Another thing that I loved about him though, is that he was awesome at delivering bad news. Mind you, I always hope that I don't need to deliver bad news. But sometimes it's inevitable, and it's a skill that we all need to learn. One lesson I clearly remember from him though, was:

Bad news doesn't get better with age.

Delaying telling someone bad news isn't going to ever make things better; and usually it makes things worse, often much worse.

Now apart from hesitating to tell people bad news, a trend that's really getting through to me lately is an even worse one.  It's where a layer of BS is added to the news, to try to obscure or soften the bad news.

Don't do this.

This makes the situation far worse. You are seen as being cagey about the bad news, and, you're also treating the customer or other party with contempt. This is never a good thing, yet I see it time and again. Where I see it most today, is from software as a service (SaaS) companies.

Let me give you an example. This week I received an email from a vendor, and it said:

"Based on feedback from customers like you, we’ve learned that the reporting features within the xxx Free plan weren’t easy to use and lacked some of the metrics needed to prove success with social. As these features weren’t being used by most customers, we will be removing analytics from your xxx plan in March 2019. … If you need feature-rich analytics, they’re available in our Professional, Team, Business, and Enterprise plans."

Really? People like me complained about the reporting and analytics in your free offering so much, that you're removing it?

I call BS.

I could be wrong, but I don't think it would take Einstein to decide that what they are really saying is that they don't have a compelling enough story to get people onto paid plans, and they need to make money, and so reporting and analytics won't be in the free offering any more.

So why not just say something like: "Hey, we know that the reporting in our free plan isn't great. We want to do it better but we can't afford to do it for free, so in future, the reporting and analytics will only be in the paid plans, and we hope you'll think they're so great that you'll want to sign up for a paid plan. To give you a taste of it, we'll give you a free trial of those features for the next month".

OK. I might be disappointed by that if I was using them, but I'd accept it.

But instead, how does the vendor couch the discussion? They justify it as being based on feedback from customers like me.

Immediately my internal BS-meter goes haywire. So as well as delivering bad news, I now feel like they think I'm stupid.

Don't do this. Just apologize, deliver the bad news and move on.

I hear this sort of thing all the time, and SaaS companies (large and small) do this regularly. They want to change something they've previously offered, the new option isn't as good for the customer (or at least at the same price), so they try to justify bad news as somehow coming from "feedback from customers like you". Almost every time I hear that phrase I think it's just not true.

Unless almost every customer reading your message would agree with what you're saying the customer feedback was, don't try to pretend that that's why you're making the change.

If you have to deliver bad news, just do it directly, and do it as soon as it's decided (Don't make the customers hear it second hand).


Opinion: Developers, silently swallowing errors is not OK

I don't know if it's considered some sort of modern trend, but what is it with applications now that just swallow errors instead of dealing with them? Is there an edict within these companies that errors should get shown, so they can argue their app doesn't have errors?

I'm working with a SaaS app right now. It does editing. Sometimes when I save, it just doesn't save. No error, just nothing saved. Or every now and then, I find the order of what I've entered just gets changed. Again, no error, but the order was changed.

Worse, sometimes when I then try to correct the order, it shows it as done, but next time I go back to that screen, the order is back the way it was in the first place.

On many occasions, if I close my browser, open it again, and log in, it all works OK again for a while.

But it's not just these types of applications. I've lost count of the number of sites I've been to, where supposedly serious applications are being developed, yet the code is full of try/catch blocks but the catch blocks are empty ie: silently ignoring any errors that occur.

How did we get to the point that this is what passes for application development now? Apps that mostly work and fail silently?

Sorry, but this is not OK.

Happy new year from SQL Down Under and from me

Hi Folks,

Just a short note today to wish everyone a happy new year. I know that new year is a time when many people make resolutions, with the intention of changing something about themselves during the upcoming year. It makes it a time full of hope for fresh starts.

I don't tend to make too many resolutions as I think that needs to happen on an ongoing basis rather than once per year, but I understand why people do.

From a company point of view, these are things you are likely to see from us this year:

  • Many new online and on-demand courses. (I know that many of our customers like in-person courses better but this is the low-cost and fast way to learn some topics, compared to waiting for us to run them in-person. And we've put a lot of effort into making sure the experience is as close to the in-person experience as it can be, with hands-on labs, quizzes, etc.) You'll find them at http://training.sqldownunder.com
  • New podcasts. I try to create a number of podcasts when a new version of SQL Server is about to appear. That gives me a chance to discuss the concepts behind the product features with the people who know about them, right while they're still finalizing them. You'll find the first SQL Server 2019 podcast with Argenis Fernandez here: https://sqldownunder.com/pages/sql-down-under-podcast
  • More in-person classes. Most will be in Melbourne, but it depends upon demand. Query Performance Tuning and Advanced T-SQL is one of our all-time favorites. It's running in Melbourne early next month. Early bird pricing is available now. Would love to see you there. If you can't make the full 5 days, you can do 2 days of Query Performance Tuning or 3 days of Advanced T-SQL separately. You'll find more here: https://sqldownunder.com/pages/sql-server-query-performance-tuning-and-advanced-t-sql-5-days, here: https://sqldownunder.com/pages/queryperformancetuning, and here: https://sqldownunder.com/pages/sql-server-advanced-t-sql-3-days
  • New eBooks. I have a couple of these planned. We'll see how many get out the door this year but if you don't have the current SSMS Tips and Tricks one, you'll find it here: http://ssmsbook.sqldownunder.com
  • Many more of our free developer and DBA tools: SDU Tools. Even if you aren't wanting a full set of tools, these are great examples of how to do things in SQL Server using T-SQL. If you don't have them yet, look here: http://sdutools.sqldownunder.com Version 13 is out now, and we've already got some great additions coming in Version 14.

Regardless, I hope you are all safe and well, and have an awesome new year!


Never lose hope – it's all around you

It's that time of year again when people look philosophically back at the current year, and start to think about how they'll improve their situation in the new year. But for many, this is a very hard time of the year.

I've had a few friends this year who seem to have almost lost hope when they've ended up in poor situations.

I just wanted to make a short post to encourage you all to never lose hope. Alexander Pope said:

Hope springs eternal in the human breast: Man never is, but always to be blest.

No matter how bad you think your situation is. There is hope. It's in you and all around you. I loved the awesome image from Stephen Walker that I've used above. You just need to recognize it.

In many cases, you really just need to talk the situation through with others. Don't be afraid to do so. We're here to listen.

Opinion: Get used to reading traces and logs before you need them

I used to do a lot of work at the operating system and network level. I was always fascinated watching people use network trace tools when they were trying to debug a problem. The challenge was that they had no idea what was normal activity on the network, and what wasn't.

The end result of this is that they'd then spend huge amounts of time chasing down what were really just red herrings.

When you don't know what normal activity looks like, everything looks odd.

Today, I see the same thing with traces of SQL Server activity, either using SQL Profiler (and/or SQL Trace), and Extended Events Profiler. I also see the same thing with insights data sent to Log Analytics, and the outcomes of many expensive SQL Server monitoring tools.

For example, if you are looking at a SQL Server trace, and you see a large number of sp_reset_connection commands. Is that an issue? When would it be an issue, and when is it just normal?

If I see an sp_reset_connection executed on a connection followed by a number of other commands, I know that the application is using connection pooling. If however, I see a bunch of those on the same connection, without any commands executed in between, I know that the application code is opening connections when it doesn't need to. Perhaps it should be opening the connection closer to where it decides if it needs it.

The key point is that it's really important that you learn to use these tools before you have a problem. You need to be able to recognize what's normal, and what isn't.


Using the classic editor in WordPress 5.0

Well today WordPress on my blog site went up to version 5.0. I knew a new editor (Gutenberg) had been coming to replace the classic editor but I hadn't had time to try it. So when it did the upgrade, I happily let it go and install the new editor.

Then I tried to write a post.

Oh my goodness, that was just a horrid, horrid experience. I can see what they've tried to do but it literally took me about five times longer than normal to write a single post.

I actually like change. In fact I tend to thrive on it. I can even imagine how this might help build certain types of pages better. But for someone writing blog posts with a heading, a bunch of text and images, etc. I can't imagine what they were thinking.

Each paragraph has become a "block" and I kept finding the pop-up block headers getting in the way the whole time I'm editing. Perhaps the people who love this don't touch type, or they always write pages in order and don't jump around but I can't tell you how annoying it was.

Worse, it kept deciding that I needed new lines when I didn't ask for them. I'd put the cursor beside an open bracket on a line, click Control-V, and then find it had inserted a newline before the pasted data. I was endlessly editing out things that it pushed in.

And so on and so on.

I kept looking for the "how to get rid of the new editor" posts but the best option now seems to be to use the Classic Editor plugin. Let's just say that's been a godsend. And given the number of installs it already has, I don't think I'm alone on this one.

Recommended !

Opinion: Case sensitivity is a pox on computing

I've been in the IT industry a long, long time. One thing that I've never liked is case sensitivity in application development tools or in database languages.  And it's creeping into more and more places.

I know that will offend some people but hear me out.

I think we're stuck with case sensitivity in languages like C, C#, C++, Java, etc. because that was the easiest way to implement those languages in the first place. As soon as you decide that a language is case insensitive, you also have to decide the internal collation rules. For example, is the letter A the same as the letter a ? But then what about the letter á ?

I get that it's a hassle but humans just don't think in a case sensitive way, and that shouldn't be the basis of designing a language for humans to use. It might be computers that execute it but it's humans that write it, and more importantly, read it.

Now before I have people jump all over me, I'm not talking about case preservation.

It is important to me that if I write CustomerName or customerName, that when the system sends that value back to me, that it shows it the same way that I defined it. That's case preservation, not case sensitivity. I just shouldn't have to request objects or data in a specific case sensitive form. If it's a development tool, just automagically convert it to the defined case. If it's a database, just give me the data.

And I hear the C folk charging along in the background arguing that there's a common standard for backing variables (ie: someProperty) to have the same name as properties, with just a case change (ie: SomeProperty).

Sorry, but that was never a good idea either. There are other ways that we can solve that problem, and I've lost count of the number of times I've seen bugs in code where a property should have been accessed but a variable was accessed instead.

When you break it down to its essence, what case sensitivity does is allow me to have two objects in the same object scope, that differ only by the casing of their names.

You'll have a hard time convincing me that that was ever a good idea.