Skip to content

Commit

Permalink
Use HTTPS for all my links
Browse files Browse the repository at this point in the history
Former-commit-id: 035588f
Former-commit-id: 6a7eaa0
Former-commit-id: 8073c07ac759580dcdf2b14bd24b777b2c4ae586 [formerly 7a9d57c198e4d6084d1e0b77b7c5ddbcf6fbd35a]
Former-commit-id: 0143287f56f9c41c68d2420fb319f3ddfb195664
  • Loading branch information
haacked committed Sep 22, 2017
1 parent d30f1c0 commit 68caf47
Show file tree
Hide file tree
Showing 1,070 changed files with 2,521 additions and 3,332 deletions.
2 changes: 1 addition & 1 deletion _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#
author: Phil Haack
description: You've been Haacked and you like it
url: http://haacked.com
url: https://haacked.com
title: You've Been Haacked
subtitle: ...and you like it
gravatar_url: https://2.gravatar.com/avatar/cdf546b601bf29a7eb4ca777544d11cd
Expand Down
4 changes: 2 additions & 2 deletions _includes/banner.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<div class="container">
<ul class="feed"></ul>
</div>
<small><a href="http://twitter.com/{{ site.twitter_user }}">{{ site.twitter_user }}</a> @ <a href="http://twitter.com">Twitter</a></small>
<small><a href="https://twitter.com/{{ site.twitter_user }}">{{ site.twitter_user }}</a> @ <a href="https://twitter.com">Twitter</a></small>
<div class="loading">Loading...</div>
</div>
<script src="{{ root_url }}/javascripts/twitter.js"></script>
Expand All @@ -12,4 +12,4 @@
$('#banner').getTwitterFeed('{{ site.twitter_user }}', {{ site.twitter_tweet_count }}, {{ site.twitter_show_replies }});
})(jQuery);
</script>
{% endif %}
{% endif %}
6 changes: 3 additions & 3 deletions _includes/disqus.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@
var disqus_script = 'embed.js';
{% endif %}
(function () {
{% if page.comments == true %}
{% if page.comments == true %}
var embedScript = document.createElement('script');
embedScript.type = 'text/javascript';
embedScript.async = true;
embedScript.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
embedScript.src = 'https://' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(embedScript);
{% endif %}
var countScript = document.createElement('script');
countScript.type = 'text/javascript';
countScript.async = true;
countScript.src = 'http://' + disqus_shortname + '.disqus.com/count.js';
countScript.src = 'https://' + disqus_shortname + '.disqus.com/count.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(countScript);
}());
</script>
Expand Down
6 changes: 3 additions & 3 deletions _includes/footer.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<p>
Copyright &copy; {{ site.time | date: "%Y" }} - {{ site.author }} Blog content licensed under the Creative Commons <a href="http://creativecommons.org/licenses/by/2.5/">CC BY 2.5</a>
| Unless otherwise stated or granted, code samples licensed under the <a href="http://sm.mit-license.org/">MIT license</a>.
| Site design based on the <a href="https://github.com/shashankmehta/greyshade">Greyshade theme</a> under the <a href="http://sm.mit-license.org/">MIT license</a>
Copyright &copy; {{ site.time | date: "%Y" }} - {{ site.author }} Blog content licensed under the Creative Commons <a href="https://creativecommons.org/licenses/by/2.5/">CC BY 2.5</a>
| Unless otherwise stated or granted, code samples licensed under the <a href="http://sm.mit-license.org/">MIT license</a>.
| Site design based on the <a href="https://github.com/shashankmehta/greyshade">Greyshade theme</a> under the <a href="https://sm.mit-license.org/">MIT license</a>
| <a href="/privacy">privacy</a>
| <a href="/articles/blogtegrity">blogtegrity</a>
</p>
Expand Down
3 changes: 1 addition & 2 deletions _includes/head.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,14 @@
<head>
<meta charset="utf-8">

<!-- http://t.co/dKP3o1e -->
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="viewport" content="width=device-width, initial-scale=1">

<link href="{{ site.subscribe_rss }}" rel="alternate" title="{{site.title}}" type="application/atom+xml">
<!--[if lt IE 9]><script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<!--Fonts from Google"s Web font directory at http://google.com/webfonts -->
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300,400,400italic,600,700,800' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Open+Sans:300,400,400italic,600,700,800' rel='stylesheet' type='text/css'>
<link href="/favicon.ico" rel="shortcut icon">
<link href="/css/screen.css" media="screen, projection" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="/css/code.css" type="text/css">
Expand Down
2 changes: 1 addition & 1 deletion _includes/header.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ <h2>{{ site.subtitle }}</h2>
<a class="email" href="mailto:{{ site.email }}" title="Email">Email</a>
{% endif %}
{% if site.twitter_user %}
<a class="twitter" href="http://twitter.com/{{ site.twitter_user }}" title="Twitter">Twitter</a>
<a class="twitter" href="https://twitter.com/{{ site.twitter_user }}" title="Twitter">Twitter</a>
{% endif %}
{% if site.github_user %}
<a class="github" href="https://github.com/{{ site.github_user }}" title="GitHub">GitHub</a>
Expand Down
2 changes: 1 addition & 1 deletion _includes/post/sharing.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
{% endif %}
<a class="addthis_counter addthis_pill_style"></a>
</div>
<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid={{ site.addthis_profile_id }}"></script>
<script type="text/javascript" src="https://s7.addthis.com/js/250/addthis_widget.js#pubid={{ site.addthis_profile_id }}"></script>
</div>
2 changes: 1 addition & 1 deletion _posts/2013/2013-12-02-dr-jekyll-and-mr-haack.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ It's with heavy heart that I admit publicly what everyone has known for a while.

I don't say dead because the [source code](https://github.com/haacked/subtext) is available on GitHub under a permissive open source license. So anyone can take the code and continue to work on it if necessary. But the truth is, there are much better blog engines out there.

I started Subtext with high hopes [eight years ago](http://haacked.com/archive/2005/05/04/announcing-subtext.aspx). Despite a valiant effort to tame the code, what I learned in that time was that I should have started from scratch.
I started Subtext with high hopes [eight years ago](https://haacked.com/archive/2005/05/04/announcing-subtext.aspx). Despite a valiant effort to tame the code, what I learned in that time was that I should have started from scratch.

I was heavily influenced by this blog post from Joel Spolksy, [Things You Should Never Do](http://www.joelonsoftware.com/articles/fog0000000069.html).

Expand Down
4 changes: 2 additions & 2 deletions _posts/2013/2013-12-03-jekyll-url-extensions.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ comments: true
categories: [jekyll]
---

In [my last post](http://haacked.com/archive/2013/12/02/dr-jekyll-and-mr-haack/) I wrote about migrating my blog to Jekyll and GitHub Pages. Travis Illig, a long time Subtext user asked me the following question:
In [my last post](/archive/2013/12/02/dr-jekyll-and-mr-haack/) I wrote about migrating my blog to Jekyll and GitHub Pages. Travis Illig, a long time Subtext user asked me the following question:

> The only thing I haven't really figured out is how to nicely handle the redirect from old URLs (/archive/blah/something.aspx) to the new ones without extensions (/archive/blah/something/). I've seen some meta redirect stuff combined with JavaScript but... UGH.
Expand All @@ -20,6 +20,6 @@ Jekyll takes the part after the date and before the `.markdown` extension and us

The way it handles extensionless URLs is to create a folder with the slug name (in this case a folder named `declare-dont-tell.aspx`) and creates the blog post as a file named `index.html` in that folder. Simple.

Thus the URL for that blog post is [http://haacked.com/archive/2013/11/20/declare-dont-tell.aspx/](http://haacked.com/archive/2013/11/20/declare-dont-tell.aspx/). But here's the beautiful part. GitHub Pages doesn't require that trailing slash. So if you make a request for [http://haacked.com/archive/2013/11/20/declare-dont-tell.aspx](http://haacked.com/archive/2013/11/20/declare-dont-tell.aspx), everything still works! GitHub simply redirects you to the version with the trailing slash.
Thus the URL for that blog post is [https://haacked.com/archive/2013/11/20/declare-dont-tell.aspx/](/archive/2013/11/20/declare-dont-tell.aspx/). But here's the beautiful part. GitHub Pages doesn't require that trailing slash. So if you make a request for [https://haacked.com/archive/2013/11/20/declare-dont-tell.aspx](/archive/2013/11/20/declare-dont-tell.aspx), everything still works! GitHub simply redirects you to the version with the trailing slash.

Meanwhile, all my new posts from this point on will have a nice clean extensionless slug without breaking any permalinks for my old posts.
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,20 @@ comments: true
categories: [jekyll]
---

In my last post, I wrote about [preserving URLs when migrating to Jekyll](http://haacked.com/archive/2013/12/03/jekyll-url-extensions/). In this post, show how to preserve your Disqus comments.
In my last post, I wrote about [preserving URLs when migrating to Jekyll](https://haacked.com/archive/2013/12/03/jekyll-url-extensions/). In this post, show how to preserve your Disqus comments.

This ended up being a little bit tricker. By default, disqus stores comments keyed by a URL. So if you people create Disqus comments at `http://example.com/foo.aspx`, you need to preserve that _exact_ URL in order for those comments to keep showing up.

In my last post, I showed how to preserve such a URL, but it's not quite exact. With Jekyll, I can get a request to `http://example.com/foo.aspx` to redirect to `http://example.com/foo.aspx/`. Note that trailing slash. To Disqus, these are two different URLs and thus my comments for that page would not load anymore.

Fortunately, Disqus allows you to set a [Disqus Identifier](http://help.disqus.com/customer/portal/articles/472099-what-is-a-disqus-identifier-) that it uses to look up a page's comment thread. For example, if you view source [on a migrated post of mine](http://haacked.com/archive/2013/10/28/code-review-like-you-mean-it.aspx/), you'll see something like this:
Fortunately, Disqus allows you to set a [Disqus Identifier](http://help.disqus.com/customer/portal/articles/472099-what-is-a-disqus-identifier-) that it uses to look up a page's comment thread. For example, if you view source [on a migrated post of mine](https://haacked.com/archive/2013/10/28/code-review-like-you-mean-it.aspx/), you'll see something like this:

```html
<script type="text/javascript">
var disqus_shortname = 'haacked';
var disqus_identifier = '18902';
var disqus_url = 'http://haacked.com/archive/2013/10/28/code-review-like-you-mean-it.aspx/';
var disqus_url = 'https://haacked.com/archive/2013/10/28/code-review-like-you-mean-it.aspx/';
// ...omitted
</script>
Expand Down
6 changes: 3 additions & 3 deletions _posts/2013/2013-12-12-fixing-broken-jekyll-urls.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ categories: [jekyll]
---
Well this is a bit embarrassing.

I recently [migrated my blog to Jekyll](http://haacked.com/archive/2013/12/02/dr-jekyll-and-mr-haack/) and subsequently wrote about my painstaking work to [preserve my URLs](http://haacked.com/archive/2013/12/03/jekyll-url-extensions/).
I recently [migrated my blog to Jekyll](https://haacked.com/archive/2013/12/02/dr-jekyll-and-mr-haack/) and subsequently wrote about my painstaking work to [preserve my URLs](https://haacked.com/archive/2013/12/03/jekyll-url-extensions/).

But after the migration, despite all my efforts, I faced an onslaught of reports of broken URLs. So what happened?

Expand All @@ -19,8 +19,8 @@ This was how I verified that the Jekyll URL would be correct. The problem is tha

Thus requests for the following two URLs would receive the same content:

* `http://haacked.com/archive/0001/01/01/some-post.aspx`
* `http://haacked.com/archive/2013/11/21/some-post.aspx`
* `https://haacked.com/archive/0001/01/01/some-post.aspx`
* `https://haacked.com/archive/2013/11/21/some-post.aspx`

![Picard Face Palm](https://f.cloud.github.com/assets/19977/1738673/ebae7ec0-6388-11e3-8736-a4243298a963.jpg)

Expand Down
8 changes: 4 additions & 4 deletions _posts/2013/2013-12-31-a-very-haacked-2013.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@ As you can see, after shipping a major release of GitHub for Windows, I shifted

My three most popular posts written in 2013 according to Google Analytics are:

1. [Death to the if statement](http://haacked.com/archive/2013/11/08/death-to-the-if-statement.aspx) - more robust code with less control structures with `25,987` page views.
2. [Argue well by losing](http://haacked.com/archive/2013/10/21/argue-well-by-losing.aspx/) - You only learn something when you lose an argument with `21,264` views.
3. [Test Better](http://haacked.com/archive/2013/03/04/test-better.aspx/) - How developers should become better testers with 15,618 views
1. [Death to the if statement](https://haacked.com/archive/2013/11/08/death-to-the-if-statement.aspx) - more robust code with less control structures with `25,987` page views.
2. [Argue well by losing](https://haacked.com/archive/2013/10/21/argue-well-by-losing.aspx/) - You only learn something when you lose an argument with `21,264` views.
3. [Test Better](https://haacked.com/archive/2013/03/04/test-better.aspx/) - How developers should become better testers with 15,618 views

By the way, does anyone know how to easily do a report in Google Analytics for content _created_ in a year? I'd find that useful.

Expand All @@ -57,7 +57,7 @@ This past year, I've had the pleasure to be involved in shipping the following:
1. [GitHub Enterprise support in GitHub for Windows](https://github.com/blog/1628-enterprise-support-in-github-for-windows)
2. [Octokit.net](https://github.com/blog/1676-introducing-octokit-net)
3. [ChooseALicense.com](https://github.com/blog/1530-choosing-an-open-source-license)
4. [RestSharp](http://haacked.com/archive/2013/09/18/restsharp-104-2-0-released.aspx/) - a few releases actually.
4. [RestSharp](https://haacked.com/archive/2013/09/18/restsharp-104-2-0-released.aspx/) - a few releases actually.
5. According to FitBit, I had `4,577,481` steps this year. That's approximately `2,099 `miles. Compare this to the 3.1 million steps I took the year before. That's a huge improvement!

## You People
Expand Down
2 changes: 1 addition & 1 deletion _posts/2014/2014-01-04-duck-typing.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ For static typed languages, I really like the idea of structural typing. It prov
In other words, it's duck typing for static typed languages.

Also in the comments to Eric's post, someone linked to [my blog post about duck typing](http://haacked.com/archive/2007/08/19/why-duck-typing-matters-to-c-developers.aspx/). At the time I wrote that, "structural typing" wasn't in my vocabulary. If it had been, I could have been more precise in my post. For static languages, I find structural typing to be very compelling.
Also in the comments to Eric's post, someone linked to [my blog post about duck typing](https://haacked.com/archive/2007/08/19/why-duck-typing-matters-to-c-developers.aspx/). At the time I wrote that, "structural typing" wasn't in my vocabulary. If it had been, I could have been more precise in my post. For static languages, I find structural typing to be very compelling.



Expand Down
2 changes: 1 addition & 1 deletion _posts/2014/2014-01-06-quack-like-a-duck.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ comments: true
categories: [code]
---

From the topic of this and [my last post](http://haacked.com/archive/2014/01/04/duck-typing/), you would be excused if you think I have some weird fascination with ducks. In fact, I'm starting to question it myself.
From the topic of this and [my last post](https://haacked.com/archive/2014/01/04/duck-typing/), you would be excused if you think I have some weird fascination with ducks. In fact, I'm starting to question it myself.

![Is it a duck? - CC BY-ND 2.0 from http://www.flickr.com/photos/77043400@N00/224131630/](https://f.cloud.github.com/assets/19977/1845502/4d494752-758e-11e3-9c66-8fd6080662fe.jpg)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ But I had this sudden epiphany. What if I were the villain in this story? It did

In this alternative narrative, I was the aggressor. I sped along and did not allow this innocent person make it over to the turn lane. It made me realize that I've been in his shoes before. And many times I label the driver who approaches too fast as the bad guy when I try to change lanes. I couldn't have been in the right in every situation, could I?

This thought experiment mirrors the ideas I wrote about in my post [Argue Well By Losing](http://haacked.com/archive/2013/10/21/argue-well-by-losing.aspx/). The difference is the techniques I wrote about in that post apply when you're in the midst of a debate. This technique is for more contemplative moments.
This thought experiment mirrors the ideas I wrote about in my post [Argue Well By Losing](https://haacked.com/archive/2013/10/21/argue-well-by-losing.aspx/). The difference is the techniques I wrote about in that post apply when you're in the midst of a debate. This technique is for more contemplative moments.

When you change your narrative, you challenge your long held beliefs, biases, and prejudices. You realize that someone who holds a deep belief that's antithetical to your own, is a "good person" in their own mind. And in their narrative, you, who attempts to refute their belief, is "the bad guy."

Expand Down
6 changes: 3 additions & 3 deletions _posts/2014/2014-02-28-ten-years-of-haacked.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ Today Jeff Atwood commemorates [10 years of CodingHorror.com](http://blog.coding

But as I read that a thought occurred to me. Haven't I been blogging as long as Jeff, albeit much less successfully? I mean, just look at the intro to his post and compare it to the intro to this post. His is way better. WAY BETTER!

And sure enough, I started this very blog you are reading (thank you for your patronage!) one day after [CodingHorror posted his first blog post](http://blog.codinghorror.com/recommended-reading-for-developers/). I started on February 3, 2004 with this exciting post about, [well, the blog itself](http://haacked.com/archive/2004/02/03/the-new-digs.aspx/).
And sure enough, I started this very blog you are reading (thank you for your patronage!) one day after [CodingHorror posted his first blog post](http://blog.codinghorror.com/recommended-reading-for-developers/). I started on February 3, 2004 with this exciting post about, [well, the blog itself](https://haacked.com/archive/2004/02/03/the-new-digs.aspx/).

Jeff and I didn't know each other back then but we became friends through blogging and at one point I tried to hire him to a company I co-founded but he wisely said no and went on to great things. __This is why [I love blogging](http://haacked.com/archive/2004/08/18/man-i-love-blogging.aspx/). The community and serendipitous interactions that result have been a big part of my growth in the last decade__.
Jeff and I didn't know each other back then but we became friends through blogging and at one point I tried to hire him to a company I co-founded but he wisely said no and went on to great things. __This is why [I love blogging](https://haacked.com/archive/2004/08/18/man-i-love-blogging.aspx/). The community and serendipitous interactions that result have been a big part of my growth in the last decade__.

Yes, there's nothing more boring than blogging about blogging (other than [blogging about blogging about blogging](http://haacked.com/archive/2005/03/13/Blogging-About-Blogging-AboutBlogging.aspx/)). As I'm doing right now.
Yes, there's nothing more boring than blogging about blogging (other than [blogging about blogging about blogging](https://haacked.com/archive/2005/03/13/Blogging-About-Blogging-AboutBlogging.aspx/)). As I'm doing right now.

But this blog doesn't contain the full extent of my blogging history. I had a blog long before this one. I was reminded about it when Zach Holman wrote a great post entitled [Only 90s Web Developers Remember This](http://zachholman.com/posts/only-90s-developers/). I'm not yet 90 years old, but I do remember the practices he highlights. In fact, my previous blog perpetrated some of them.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ For the most part, these are ugly hacks. What you really want is a way to contro

Here's the good news. When you use Reactive Extensions (Rx), you have such a device at your disposal! Try not to get into too much trouble with it.

In the past, I've written how Rx can [reduce the cognitive load of asynchronous code through a declarative model](http://haacked.com/archive/2013/11/20/declare-dont-tell.aspx/). Rather than attempt to orchestrate all the interactions that must happen asynchronously at the right time, you simply describe the operations that need to happen and Reactive Extensions orchestrates everything for you.
In the past, I've written how Rx can [reduce the cognitive load of asynchronous code through a declarative model](https://haacked.com/archive/2013/11/20/declare-dont-tell.aspx/). Rather than attempt to orchestrate all the interactions that must happen asynchronously at the right time, you simply describe the operations that need to happen and Reactive Extensions orchestrates everything for you.

This nearly eliminates race conditions and deadlocks while also reducing the cognitive load and potential for mistakes when writing asynchronous code.

Expand Down
Loading

0 comments on commit 68caf47

Please sign in to comment.