Just like in the Messaging app, pressing send no longer dismisses the keyboard, which should make communicating much less of a hassle.

Performance and reliability improvements.

Along with a minor update to the Windows Phone 8.1 version, the app has also been updated for Windows 10! Version 2.0 is built on the Universal Windows Platform (UWP), which means not only an updated look and feel for Windows 10 phones, but you can now also use it on your Windows 10 PC and tablet!

I know I said previously that the Windows 10 version would be ready in early 2016, but due to issues surrounding the rollout of, and support for, Windows 10 Mobile (which probably every Windows Phone user is aware of), it ended up taking a little longer than expected. The update itself was rescheduled for the last week of September, yet even then I ran into issues with the submission process. But at least it didn’t end up being another giant delay, which probably would have put the update all the way to 2017!

If Emergency Chat for Windows has helped you during a time of need, or if there’s something that you think can be improved, we’d love to hear from you! Please rate and review our app (you can do this from within the app by going to Settings > About, or if you’re reading this on Windows 10 you can use this handy direct link!).

The full version history will be available on the product page for reference, but I’ll still publish a blog post every time an update is released to document my experiences working on the update, and so your RSS feed reader (and Live Tile, if you’ve actually pinned my site, to which I say thanks!) will receive timely updates. In fact, I have a little something from this update that I’ll share in a separate blog post, and it’s pretty sweet!

Many people in the developer community know me as a moderator on Stack Overflow. So it’s only natural that a certain portion of my site’s traffic will comprise those who use SO. Now, as I’m sure some of you know, the site has grown large enough that one of our biggest problems is the constant influx of just plain bad questions (and answers). And, frankly, that’s perfectly normal. SO has very strict standards when it comes to asking questions, and contrary to popular belief, not every kind of programming question is on-topic for the site. For the average developer, it takes a concerted amount of attention and effort to figure out how the site works and how to contribute effectively. Not everybody is willing or able to expend such effort. And that is why some get turned away. For the rest of us who take the time to learn the ropes and are able to ask constructively, great! Thanks for helping make the Internet a better place.

But some may have questions that either don’t quite fit the scope of the site (as mentioned above), or that they’d rather ask in private. And it is for this reason I’m happy to take such questions through my contact form (as in the “just want to talk shop” part of the introductory text). Having said that, however, motive is everything; I will only answer questions that were asked in good faith. If you honestly just have a question that you want me to answer personally, that’s fine! In fact, just several weeks ago I had the pleasure of clarifying a number of doubts someone had about the CSS box model after they’d seen some of my answers on Stack Overflow.

On the other hand, if you’re using my contact form as simply a substitute for when you have been blocked from asking questions on Stack Overflow, I will delete your message on sight. And I will know just by looking at the message that’s sent to my inbox based on numerous telltale signs. (One such telltale sign, in fact, is which inbox you even try to send to — over the weekend I had someone send a message to my support inbox, probably because it says “support requests take priority over general stuff” in the form. Well, it certainly went to the trash pretty expediently.)

The reason for this is simple: if Stack Overflow doesn’t accept your questions because they are of low quality, then chances are neither will I. Furthermore, if you’re just using my contact form as a way to try and get your desperate plea for help answered with no regard for who I am as a human being, you’re not going to earn any respect from me. Remember that my contact form is a way for you to get in touch with me. It is not just another form in which you can paste the same question as you probably have on at least one other site if not more, in hopes of getting a response from just “anybody” (as in “anybody please help me”). On the flip side, if you’re contacting me specifically because I’m a moderator… then I don’t know what you expect me to do other than ignore you.

If you haven’t seen it yet, my contact form has a number of instructions and guidelines listed, along with some specific rules on the kind of stuff I don’t accept:

You’ll notice that I mention not taking job offers, as well as not taking inquiries about my actions of moderation on Stack Overflow. These are things that need to be stated explicitly, and that’s fine. You’ll also notice that I don’t mention anything that I’ve discussed here, and in fact that’s completely on purpose. You generally expect good faith from interactions with others; it doesn’t really need to be said. I’m not going to update the form to link to this blog post either; I’m blogging about this simply for the information and enlightenment of those inclined to read my blog (most of whom, let’s face it, aren’t going to be the same people who just want a solution to their problem ASAP — they’re going to be disappointed either way).

If you have any questions about this particular post, feel free to leave a comment right here (or, well, use my contact form if you’re so inclined!). Again, if you’re going to waste my time with nonconstructive comments, don’t bother. I’ll just delete them. I like to keep things nice and happy around here.

Happy February! No announcements today, but I just wanted to write up something quick about an interesting realization I had. I just answered this Stack Overflow question about CSS vendor prefixes. Here’s an excerpt:

The idea was that authors who wanted to “try” out these experimental features locally could do so with the prefixed properties on shipping browsers, rather than having to deal with nightly builds or even downloading and compiling the source manually, because shipping buggy behavior unprefixed was akin to shipping beta software as production-quality.

What the vendors didn’t see coming was that authors would take the prefixed properties, put them on production sites, and encourage other authors to do the same. As a result the prefixes spread like wildfire to the point where vendors were too afraid to break sites by removing the prefixes after shipping stable, unprefix implementations as originally intended. I mean, just look at what happened when Mozilla dropped support for -moz-opacity, a prefixed property that was relatively little used compared to today’s -webkit- properties, less than 4 years ago. For perspective, -moz-opacity was unprefixed in Firefox 0.9, almost 12 years ago.

(there’s a little more, but these first two paragraphs are the relevant bits)

When writing that bit about Mozilla, I realized this: -moz-opacity was unprefixed before I entered high school, and support for the prefix was dropped after I graduated college.1 I was 12, and 20, respectively.

In other words, in the time it took for me to go through two whole educational milestones in my life, the fellow who submitted the Bugzilla ticket linked above, and who knows how many other CSS authors the world over, didn’t bother to change -moz-opacity to opacity on their websites.

So… yeah. That’s a bit of perspective for you.

Technically, I dropped out in my final year, but that’s not significant. ↩

This came as a shock to me — I’ve been using Tab Groups since 2011, when the feature was introduced in Firefox 4 as Panorama:

And I use it all the time:

Throughout the day, I’ll alternate between two particular groups of tabs: one for general web browsing, and another that consists entirely of Stack Exchange sites.

I have a tab group for my Neopets dailies that I use once a day.

I have a tab group that’s dedicated to my web projects in my development setup.

And finally, I have a couple of groups that I rarely use, though in fairness I ought to move these to bookmark folders instead.

That last item brings up one of the things I like about tab groups. Like tabs, tab groups can:

persist across browsing sessions, and

be lazy-loaded.

If I put all my tab groups into separate windows instead, Firefox has to manage all of these windows throughout the entire browsing session, even when I don’t need to keep them open throughout the day. Not only is this a waste of system resources, but it also adds needless extra tabs to my Alt+Tab.

The good news is that Tab Groups isn’t going away completely, despite what the notice above might suggest. (And that’s why I’ve opted for a less sensationalist and more accurate, yet equally attention-grabbing title here.) Clicking Learn More reveals that all is not lost:

The Tab Groups (Panorama) feature will be removed from Firefox in version 45. We know this may be inconvenient and we apologize. Removing the Tab Group function will make it easier for us to improve Firefox. Thankfully, the Mozilla community has already come through with some great replacements for Tab Groups. This article shows you some of the new options.

It turns out, Tab Groups is being preserved in the form of a separate add-on (a fate not unlike that of the Link Manager in WordPress, which I use on this very blog):

If you want a direct replacement for the Tab Groups feature, try the “Tab Groups” add-on. It was created directly from the Firefox code and works just like the current feature. It will be as if the feature wasn’t removed from Firefox. This add-on aims to fully replace Tab Groups in Firefox, providing a similar and hopefully even enhanced experience. You can install Tab Groups from the add-ons website.

So there you have it. Yes, Tab Groups is being evicted from Firefox core, and I understand if they’re removing it as hardly anyone uses it so they can focus on working on more important features. I’m just a little bit peeved about the poor wording of the removal notice, but it’s a little late now for complaints.

Thankfully, it’ll live on as an extension, otherwise I don’t know what I’d do. Maybe switch to Microsoft Edge. After almost 10 years of using Firefox, change becomes unsurprisingly tempting.

I remember the first time I went online. It was the year 1996. I was 4 years old. The then-current version of Windows was Windows 95. One of the only remaining memories I have of going online back then was spying the ever so curious ship’s wheel icon on the desktop of the family computer1, double-clicking it, and discovering that it was in fact another way to access the World Wide Web.

My initial reaction: complete and utter bewilderment. I knew what websites were, I knew that websites consisted of pages and pages of information, but it blew my mind to learn that there were other programs that could be used to access said websites besides that blue ‘e’ with a ring around it. And one of the first things I noticed, aside from the differences in the UI, were the differences in how pages looked in each program.

Unfortunately, as a 90s kid, I was completely ignorant of such things as the browser wars, HTML, CSS, or any of that jargon. I wasn’t even that much of a computer person myself. I was just your average preschool boy. Nevertheless, watching my dad work on the computer was one of my favorite things to do at home, and one of the things he worked on was — you guessed it — a personal site of his own (which he maintains to this day!), and although I can’t remember for sure, I’d bet his was one of the sites I poked about on back then.

By the age of 8, I was well-versed with the Internet, having heard that blasted dial-up noise a thousand times. I discovered Neopets, and their HTML Guide for helping Neopians design home pages for their pets. And that’s how I got started with HTML, as well as my first experience testing my own pages in differing implementations. A skill that would remain one of the most important for a web designer to have over a decade later.