﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Bill Boga's Blog</title><link>http://www.billbogaiv.com/feed/rss</link><description>This is my description</description><language>en-US</language><pubDate>Sun, 26 May 2019 00:00:00 GMT</pubDate><docs>http://blogs.law.harvard.edu/tech/rss</docs><ttl>-2147483648</ttl><copyright>Copyright 2016</copyright><atom:link href="http://www.billbogaiv.com/feed/rss" rel="self" type="application/rss+xml" /><item><title>&lt;p&gt;Using reference objects in Blazor server-side&lt;/p&gt;</title><description><![CDATA[<p><em>This post covers a preview-release of Blazor (preview5). I'm not sure if the behvaior described below is expected or a bug.</em>
<br />
<br />
My example builds on the reference <em>TODO</em>-sample project found <a href="https://github.com/aspnet/AspNetCore.Docs/blob/06900c771b3c002ea066e7626a4968e5dc8e3816/aspnetcore/tutorials/build-your-first-blazor-app/samples_snapshot/3.x/ToDo.razor">here</a> and is part of this <a href="https://github.com/aspnet/AspNetCore.Docs/blob/cff5637dcbfc7dd02e230b3b830f51273616cf54/aspnetcore/tutorials/build-your-first-blazor-app.md">tutorial</a>.</p>]]></description><link>http://www.billbogaiv.com/posts/using-reference-objects-in-blazor-server-side</link><guid>using-reference-objects-in-blazor-server-side</guid><pubDate>Sun, 26 May 2019 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;🎉 2018 review 🎉&lt;/p&gt;</title><description><![CDATA[<p>This is the third installment of personal reflection and I'm marginally neutral about what transpired in 2018 and what 2019 may bring. As before, I will list the original goals and whether they were achieved along with some things that were never listed. There is a bit of personal concern some of these &quot;goals&quot; are just busywork. However, the main challenge to myself is not to become lazy–both mentally and physically. That doesn't mean I won't take a day here and there to just relax and hang out. There's probably a word to describe it, but it's the sense of wanting to get as much done in life and using your abilities to their fullest, especially not knowing what could happen tomorrow. And, with that slightly morbid intro., let's get to the review!</p>]]></description><link>http://www.billbogaiv.com/posts/2018-review</link><guid>2018-review</guid><pubDate>Mon, 19 Nov 2018 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Setting up a Planet Technology VIP-156 ATA with FreePBX&lt;/p&gt;</title><description><![CDATA[<h2 id="background">Background</h2>
<p>I have been using <a href="https://www.vonage.com/personal/customer">Vonage</a> for home phone service since 2007. There are no complaints about service from me. It was never down when I needed it and the price/feature is pretty good (sans taxes that almost double the bill). But, the family only uses it sparingly and mostly as a <em>default</em> number for anything that needs a number. The service is paired with a Linksys <a href="https://support.vonage.com/articles/answer/Linksys-PAP2v2-Telephone-Adapter-876">PAP2v2</a> purchased at the time I originally signed-up for a Vonage account. The unfortunate downside to this pairing is the hardware is locked to Vonage. Fast-forward to mid-2018 and I'm switching <a href="https://en.wikipedia.org/wiki/Session_Initiation_Protocol">SIP</a> providers. I'm looking for lower monthly costs and an opportunity to build my telephony skills via in-house <a href="https://en.wikipedia.org/wiki/Business_telephone_system#Private_branch_exchange">PBX</a> using <a href="https://www.freepbx.org/">FreePBX</a>.</p>]]></description><link>http://www.billbogaiv.com/posts/setting-up-a-planet-technology-vip-156-ata-with-freepbx</link><guid>setting-up-a-planet-technology-vip-156-ata-with-freepbx</guid><pubDate>Mon, 02 Jul 2018 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Don't fall into an &lt;code&gt;interface&lt;/code&gt; extension loop!&lt;/p&gt;</title><description><![CDATA[<p>Extension methods are a great feature of C# (<em>and other .NET languages</em>). But, their usage on interfaces recently caused me some problems. I made an assumption about how the object would be &quot;seen&quot; at runtime and caused a loop. A quick fix was to cast the interface-instance to a known type, but this ultimately wouldn't scale since I needed to manually check the type at runtime and either build <code>if/else</code> or <code>switch</code> logic. Here's a modified form of the initial problem and the solution.</p>]]></description><link>http://www.billbogaiv.com/posts/dont-fall-into-an-interface-extension-loop</link><guid>dont-fall-into-an-interface-extension-loop</guid><pubDate>Wed, 31 Jan 2018 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;.NET Core hosted on subdirectories in Nginx&lt;/p&gt;</title><description><![CDATA[<p>I have a few apps. running on subdirectories at <a href="https://labs.billbogaiv.com/">https://labs.billbogaiv.com/</a>. Each app. runs on a separate port and Nginx is setup to proxy requests to each respective app. The trouble begins when those apps. generate links for things like CSS or images. Those apps. don't inherently know they are running on a subdirectory, so the resulting links are broken from the viewpoint of the browser. Here's a simplified setup to demonstrate this behavior:</p>]]></description><link>http://www.billbogaiv.com/posts/net-core-hosted-on-subdirectories-in-nginx</link><guid>net-core-hosted-on-subdirectories-in-nginx</guid><pubDate>Sun, 28 Jan 2018 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;2017 personal reflection 🤔&lt;/p&gt;</title><description><![CDATA[<p><em>Personal introductory side-note: Today, my wife and I have been together for fifteen-years and married ten of those years. I love what we have accomplished together and wait with eager anticipation those journeys we have yet to fulfill.</em>
<br /><br />
Around this time last year, I wrote how <em><a href="/posts/2016-personal-reflection">2016 was a pretty neutral year</a></em>. 2017 fared better, but I'm still a <strong>90% finisher</strong>. I can't find another word/phrase to describe it, but it means someone who produces something that functions, but doesn't give it the polish that would make it great (they have already moved on to the next thing). For me, it's the challenge of solving a problem. I really enjoy it, but once the problem is solved, my interest wanes. Things like documentation or marketing become interference. So, my main goal for 2018 is to increase my finisher-status. I'll list some quick wins to get me there, but first, let's review 2017 goals and see where I hit the mark and where ambition tanked progress:</p>]]></description><link>http://www.billbogaiv.com/posts/2017-personal-reflection</link><guid>2017-personal-reflection</guid><pubDate>Mon, 04 Dec 2017 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Setting ASP.NET host address in .NET Core 2&lt;/p&gt;</title><description><![CDATA[<h2 id="why-would-i-need-to-set-the-host-address">Why would I need to set the host address?</h2>
<p>If you rely on default behavior, then port 5000 is used (<em>running in VS+IIS Express will give a random port designated by VS</em>). And, only one app. at a time can use the same port (on the same machine/interface). If a second app. is run, this error is thrown:</p>
<pre><code class="language-shell">&gt; dotnet run
crit: Microsoft.AspNetCore.Server.Kestrel[0]
      Unable to start Kestrel.
System.IO.IOException: Failed to bind to address http://127.0.0.1:5000: address already in use.
---&gt; Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.Internal.AddressInUseException: Error -4091 EADDRINUSE address already in use
---&gt; Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networking.UvException: Error-4091 EADDRINUSE address already in use
</code></pre>]]></description><link>http://www.billbogaiv.com/posts/setting-aspnet-host-address-in-net-core-2</link><guid>setting-aspnet-host-address-in-net-core-2</guid><pubDate>Tue, 12 Sep 2017 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Maxmizing fuel purchases at the ⛽&lt;/p&gt;</title><description><![CDATA[<p>For the longest time, I would only focus on the cost when putting fuel in my car. However, a <a href="http://gizmodo.com/why-gas-is-priced-in-tenths-of-cents-1697431140">quirk in U.S. fuel pricing</a> means I could be shorting the amount of fuel I get for the same cost. Read on to discover the ease of maximizing fuel purchases and why the potential shortage increases with lower fuel prices.</p>]]></description><link>http://www.billbogaiv.com/posts/maximizing-fuel-purchases-at-the-pump</link><guid>maximizing-fuel-purchases-at-the-pump</guid><pubDate>Wed, 31 May 2017 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Investigating email spam 🔎&lt;/p&gt;</title><description><![CDATA[<p>Most email providers do a decent job of filtering email spam. They're either outright deleted for you or put in a separate spam/junk/clutter folder. But, they're not perfect, and knowing how to spot the fakes becomes important. Submitting personally identifiable information (<a href="https://en.wikipedia.org/wiki/Personally_identifiable_information">PII</a>) to an unknown party allows them to open lines of credit, make purchases, assume your identity, etc. General <a href="https://en.wikipedia.org/wiki/Rule_of_thumb">rule of thumb</a> is the more information given the more personal damage that can arise.</p>]]></description><link>http://www.billbogaiv.com/posts/investigating-email-spam</link><guid>investigating-email-spam</guid><pubDate>Sat, 07 Jan 2017 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;2016 personal reflection&lt;/p&gt;</title><description><![CDATA[<p>I think 2016 might end up being neutral if I just sum up the number of positives and negatives. Starting a personal website had been on my list for years and finally getting it started felt really good. But, I never really thought about the site's overall design. And, I started several new projects, but quickly shifted focus to the &quot;next thing&quot;. Overall, I did not have a clear plan of action. And, it's odd, too, because I generally see myself as someone who prefers to plan ahead. My wife reminded me the other day she has always seen me as someone who &quot;doesn't settle for average&quot;. This year, I did. Although, it's <em>not</em> accurate to say I was lazy. Maybe I took too many things for granted. But, enough of this <a href="http://www.urbandictionary.com/define.php?term=pity%20party">pity party</a>.</p>]]></description><link>http://www.billbogaiv.com/posts/2016-personal-reflection</link><guid>2016-personal-reflection</guid><pubDate>Sat, 17 Dec 2016 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;ASP.NET Core project targeting .NET 4.5.1 running on Raspberry Pi&lt;/p&gt;</title><description><![CDATA[<p>I have been coding a personal project for the past couple weeks. <em>It is a little too soon to unveil, but will say it involves lights, sounds, door switches, and motion sensors</em>. Part of my testing involves running on the intended hardware–<a href="https://en.wikipedia.org/wiki/Raspberry_Pi">Raspberry Pi</a>. However, coding the project in .NET Core left me with a couple stumbling blocks…</p>]]></description><link>http://www.billbogaiv.com/posts/aspnet-core-project-targeting-net-451-running-on-raspberry-pi</link><guid>aspnet-core-project-targeting-net-451-running-on-raspberry-pi</guid><pubDate>Fri, 14 Oct 2016 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Submitting large number of form-values in ASP.NET Core 1.0&lt;/p&gt;</title><description><![CDATA[<h2 id="backstory">Backstory</h2>
<p>Prior to submitting <a href="https://a-k-apart.com/gallery/FAV-Rocks">my entry</a> in this year's <a href="https://a-k-apart.com">10k apart</a> competition, I played-around with the overall board-size to see how well browsers could handle tens of thousands of DOM-elements. The result: not too well. There are just too many styling rules within the grid and performance noticably suffers. For example, a 32x32 grid contains a minimum of 6,144 child-elements (six-elements per &quot;pixel&quot;). The grid is wrapped with a form-tag and when submitted, results in 1,024 values being submitted…</p>]]></description><link>http://www.billbogaiv.com/posts/submitting-large-number-of-form-values-in-aspnet-core-10</link><guid>submitting-large-number-of-form-values-in-aspnet-core-10</guid><pubDate>Wed, 21 Sep 2016 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Compression and static files in ASP.NET Core 1.0 using Kestrel&lt;/p&gt;</title><description><![CDATA[<p>Lately, I have been using the <a href="https://www.nuget.org/packages/WebMarkupMin.AspNetCore1/">Web Markup Minifier</a> package to reduce asset-size as part of <a href="https://a-k-apart.com/gallery/FAV-Rocks">my entry</a> in this year's <a href="https://a-k-apart.com">10k apart</a> competition. Since this is a piece of middleware, I wanted to use it for any asset–not just MVC-things. When the browser queried CSS-files or images, though, no content was returned. The status code was <code>200</code>, however. So, I began to investigate…</p>]]></description><link>http://www.billbogaiv.com/posts/compression-and-static-files-in-aspnet-core-10-using-kestrel</link><guid>compression-and-static-files-in-aspnet-core-10-using-kestrel</guid><pubDate>Mon, 19 Sep 2016 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Identifying an odd Safari styling bug&lt;/p&gt;</title><description><![CDATA[<p>While testing a <a href="https://www.fav.rocks">site</a> on an iPhone, I came across unexpected behavior related to some simple markup and styling. My initial assumption was 'this was a problem due to running an older version of iOS–7, I think'. But, the same behavior was later confirmed running Safari on <a href="https://en.wikipedia.org/wiki/OS_X_El_Capitan">El Capitain</a>. Chrome, Firefox, and IE do not exhibit this behavior on any platform. Below, I explain the scenario and how I &quot;fixed&quot; the Safari bug.</p>]]></description><link>http://www.billbogaiv.com/posts/identifying-an-odd-safari-styling-bug</link><guid>identifying-an-odd-safari-styling-bug</guid><pubDate>Thu, 08 Sep 2016 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Using ASP.NET Core's middleware to modify response body&lt;/p&gt;</title><description><![CDATA[<p><strong>Note: the issue referenced in this post has been fixed and will get released with ASP.NET Core 1.1.0.</strong>
<br />
<br />
While creating a small piece of middleware to modify the response body's content, I had trouble getting anything to appear in my browser. I would get a <code>200</code> response-code, but no content (i.e. <code>Content-Length: 0</code>). Here is an example that creates a similar setup:</p>]]></description><link>http://www.billbogaiv.com/posts/using-aspnet-cores-middleware-to-modify-response-body</link><guid>using-aspnet-cores-middleware-to-modify-response-body</guid><pubDate>Thu, 25 Aug 2016 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Creating a GPS configuration provider for ASP.NET Core 1.0&lt;/p&gt;</title><description><![CDATA[<p>In a previous post, I demonstrated creating a <a href="/posts/creating-a-twitter-configuration-provider-for-aspnet-core-10">Twitter configuration provider</a> for <a href="http://aspnetmonsters.com/2016/07/summerofconfig/">ASP.NET Monster's</a> <a href="https://twitter.com/search?q=%23SummerOfConfig">#SummerOfConfig</a> contest. This post is a follow-up demonstrating how to create a provider leveraging GPS coordinates to create a unique type of progress bar. Source code <a href="https://github.com/billboga/summerofconfig/tree/gps-progress-bar">available on GitHub</a>.</p>]]></description><link>http://www.billbogaiv.com/posts/creating-a-gps-configuration-provider-for-aspnet-core-10</link><guid>creating-a-gps-configuration-provider-for-aspnet-core-10</guid><pubDate>Sat, 20 Aug 2016 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Creating a Twitter configuration provider for ASP.NET Core 1.0&lt;/p&gt;</title><description><![CDATA[<p>This is the first in an eventual series of posts related to <a href="http://aspnetmonsters.com/2016/07/summerofconfig/">ASP.NET Monster's</a> <a href="https://twitter.com/search?q=%23SummerOfConfig">#SummerOfConfig</a> contest. The general idea is to implement zany configuration providers (i.e. not the kind you would expect to use in a production environment 😁 ). For my first entry, Twitter has been enlisted to provide &quot;on-the-fly&quot; configuration values. Imagine having the ability to change aspects of your site just by Tweeting! Read on to see how this jazz comes together.</p>]]></description><link>http://www.billbogaiv.com/posts/creating-a-twitter-configuration-provider-for-aspnet-core-10</link><guid>creating-a-twitter-configuration-provider-for-aspnet-core-10</guid><pubDate>Sun, 24 Jul 2016 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Updates to hybrid model binding in ASP.NET Core 1.0&lt;/p&gt;</title><description><![CDATA[<p>Between the time I initially wrote about <a href="/posts/hybrid-model-binding-in-aspnet-core-10-rc2">hybrid model binding</a>, later about its <a href="/posts/updated-hybrid-model-binding-in-aspnet-core-10-rc2">updated behavior</a>, and now, a series of changes were made to make the binding behavior safer and less verbose to implement.</p>]]></description><link>http://www.billbogaiv.com/posts/updates-to-hybrid-model-binding-in-aspnet-core-10</link><guid>updates-to-hybrid-model-binding-in-aspnet-core-10</guid><pubDate>Sat, 09 Jul 2016 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Disqus discussion links&lt;/p&gt;</title><description><![CDATA[<p>Using <a href="https://disqus.com/">Disqus</a> is an easy way to get a comment-system on your site. Part of its initialization requires passing a unique Id per page so it knows what comments to retrieve. However, if you like to test your sites locally before deploying to production <em>and</em> use the same identifier for both environments, then you will find your production Disqus links reference your local-URI. When someone wants to share a page using Disqus, the link will point to your local site (which <del>probably won't</del> should not work for anyone but you 😉 ). However, there are several ways to keep the links up-to-date.</p>]]></description><link>http://www.billbogaiv.com/posts/disqus-discussion-links</link><guid>disqus-discussion-links</guid><pubDate>Fri, 01 Jul 2016 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Updated hybrid model binding in ASP.NET Core 1.0 RC2&lt;/p&gt;</title><description><![CDATA[<p>In my previous introductory post on <a href="/posts/hybrid-model-binding-in-aspnet-core-10-rc2">hybrid model binding</a>, I demonstrated how a binder could be used with both body and URI content. After receiving feedback (thanks <a href="https://www.twitter.com/buhakmeh">@buhakmeh</a>), it became apparent being greedy by default was not the best option and would most-likely hinder adoption of the binder by the community.</p>]]></description><link>http://www.billbogaiv.com/posts/updated-hybrid-model-binding-in-aspnet-core-10-rc2</link><guid>updated-hybrid-model-binding-in-aspnet-core-10-rc2</guid><pubDate>Sun, 19 Jun 2016 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Hybrid model binding in ASP.NET Core 1.0 RC2&lt;/p&gt;</title><description><![CDATA[<h2 id="current-state-of-model-binding">Current state of model binding</h2>
<p>Imagine you have a REST-<em>ish</em> API and your code follows the <a href="http://codebetter.com/jeremymiller/2008/10/23/our-opinions-on-the-asp-net-mvc-introducing-the-thunderdome-principle/">OMIOMO/Thunderdome</a> principle. <code>GET</code>-endpoints are easy to bind–just decorate the action-parameter with <code>[FromRoute]</code> or <code>[FromQuery]</code>. But, what to do about <code>POST</code> or <code>PUT</code>? Now, there is content coming from the body of the request in addition to properies we want to bind from the URI. The oft-repeated answer is to have two or more parameters:</p>]]></description><link>http://www.billbogaiv.com/posts/hybrid-model-binding-in-aspnet-core-10-rc2</link><guid>hybrid-model-binding-in-aspnet-core-10-rc2</guid><pubDate>Sun, 12 Jun 2016 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;How to fix a lawnmower starter cord&lt;/p&gt;</title><description><![CDATA[<h2 id="introduction">Introduction</h2>
<p>Here is the scenario for those of us who still use a <a href="https://en.wikipedia.org/wiki/Recoil_start">pull-start</a> mower:</p>
<blockquote class="blockquote">
<p>you pull on the starter cord and instead of the usual feeling of the recoil spring being fully unwound, the cord keeps coming towards you. This is the end-result:</p>
</blockquote>]]></description><link>http://www.billbogaiv.com/posts/how-to-fix-a-lawnmower-starter-cord</link><guid>how-to-fix-a-lawnmower-starter-cord</guid><pubDate>Tue, 07 Jun 2016 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Environment name in ASP.NET Core 1.0 RC2&lt;/p&gt;</title><description><![CDATA[<p>So, your new web app. is ready for <a href="https://en.wikipedia.org/wiki/Software_testing">QA</a> and you have all your app. settings neatly separated using <code>appsettings</code> files. But, when you launch the app. on your brand new server, you know <em>something is wrong</em> and quickly realize the app. just loaded production settings. How do you correct this problem? There are several ways and they all involve setting the hosting environment's environment-name.</p>]]></description><link>http://www.billbogaiv.com/posts/environment-name-in-aspnet-core-10-rc2</link><guid>environment-name-in-aspnet-core-10-rc2</guid><pubDate>Sun, 29 May 2016 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Setting host URI in ASP.NET Core 1.0 RC2&lt;/p&gt;</title><description><![CDATA[<h2 id="its-an-rc1-world">It's an RC1 world!</h2>
<p>Back in the RC1 days, you could just pass an argument on the command-line to set the host URI. It went like this:</p>
<pre><code class="language-shell">&gt; dnx web myapp --server.urls=&quot;http://localhost:10000/&quot;
</code></pre>]]></description><link>http://www.billbogaiv.com/posts/setting-host-uri-in-aspnet-core-rc2</link><guid>setting-host-uri-in-aspnet-core-rc2</guid><pubDate>Thu, 26 May 2016 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Partial obscurity is partial security&lt;/p&gt;</title><description><![CDATA[<p>I recently read an article about integrating <a href="https://azure.microsoft.com/en-us/documentation/articles/active-directory-whatis/">Azure Active Directory</a> into an application. This allows the former to host login duties for the latter. The article contained several screenshots showing where to find information to complete the integration. The author obscured sensitive information by using <a href="https://en.wikipedia.org/wiki/Microsoft_Paint">Microsoft's Paint</a> app. and its airbrush effect. One screenshot, in particular, contained a shot of the endpoints needed to handle logins of various technologies (i.e. WS-Federation, SAML-P, OAuth 2.0). However, this shot contained repeating information–a <a href="https://en.wikipedia.org/wiki/Globally_unique_identifier">GUID</a> that is part of a URI. Because the author manually obscured this data, the pattern of the airbrush effect varied between each row of URIs. Individually, the GUID could not be recovered. However, by stacking cropped frames of each row (seven in total), I was able to retrieve eighty-nine percent of the GUID (thirty-two out of thirty-six characters). What follows is a brief tutorial of how this was achieved. In this particular case, knowing the endpoint is not a crucial security leak, but the point that should be remembered is: <em><strong>repeating data intended to be obscured must be fully obscured</strong></em>. A better approach is to just not include the sensitive data in a screenshot–delete the particular section.</p>]]></description><link>http://www.billbogaiv.com/posts/partial-obscurity-is-partial-security</link><guid>partial-obscurity-is-partial-security</guid><pubDate>Fri, 29 Apr 2016 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Namespace changes with Entity Framework migrations&lt;/p&gt;</title><description><![CDATA[<p><strong>Note: this is only applicable for EF versions less than or equal to six. Version seven (part of .NET Core) has a completely different migration strategy.</strong></p>]]></description><link>http://www.billbogaiv.com/posts/namespace-changes-with-entity-framework-migrations</link><guid>namespace-changes-with-entity-framework-migrations</guid><pubDate>Fri, 15 Apr 2016 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Calculate height of objects&lt;/p&gt;</title><description><![CDATA[<p>Here is a <a href="https://www.youtube.com/results?search_query=tree+crash+house">classic scenario</a>: <em>Local would-be lumberjack decides to cut-down tall tree right beside house. Tree falls towards house. Disaster ensues. Others have a laugh at the homeowner's expense.</em> This post will not help if you find yourself in a similar situation. Instead, this post will allow you to make an informed decision when that tree has a little bit of distance between itself and the house and its height makes the outcome a little blurry.</p>]]></description><link>http://www.billbogaiv.com/posts/calculate-height-of-objects</link><guid>calculate-height-of-objects</guid><pubDate>Thu, 31 Mar 2016 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Running ASP.NET Core 1.0 rc1 behind a reverse proxy&lt;/p&gt;</title><description><![CDATA[<p><strong>Update</strong>: this problem has been fixed and is confirmed working as-expected with the release of ASP.NET Core 1.0.</p>]]></description><link>http://www.billbogaiv.com/posts/running-aspnet-core-10-rc1-behind-a-reverse-proxy</link><guid>running-aspnet-core-10-rc1-behind-a-reverse-proxy</guid><pubDate>Mon, 21 Mar 2016 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Expressing relationship between two-numbers as a percentage based on their quotient&lt;/p&gt;</title><description><![CDATA[<p>I love finding relationships in number-sets. A favorite memory from high school deals with a game we would play in Algebra class. The teacher would give us a set of numbers and one target number. The goal was to use the set of numbers and arithmetic operations to get to the target. Here is an example:</p>]]></description><link>http://www.billbogaiv.com/posts/expressing-relationship-between-two-numbers-as-a-percentage-based-on-their-quotient</link><guid>expressing-relationship-between-two-numbers-as-a-percentage-based-on-their-quotient</guid><pubDate>Fri, 18 Mar 2016 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Comparison between quantity and cost of fries&lt;/p&gt;</title><description><![CDATA[<p>Took a short drive with the family to get lunch <abbr title="3/5/2016">today</abbr>. Among other items, we ordered small and medium-sized portions of fries. Everything tasted great, but I thought the amount of fries received between the two-sized boxes looked really similar. I began to think whether getting a medium was really worth the extra fourty-cents. So, I kept one of each and took some measurements to see whether ordering the larger size had any benefit. Ultimately, my interest is quantity per dollar. Keep in mind my method and results have some degree of error, but I will leave what percentage up to you.</p>]]></description><link>http://www.billbogaiv.com/posts/comparison-between-quantity-and-cost-of-fries</link><guid>comparison-between-quantity-and-cost-of-fries</guid><pubDate>Wed, 16 Mar 2016 00:00:00 GMT</pubDate></item><item><title>&lt;p&gt;Starting from scratch&lt;/p&gt;</title><description><![CDATA[<p>First off, Happy <a href="http://www.piday.org/">Pi Day</a>! I have been putting off owning and running a personal website for a long time. It seems weird, too, since I work predominantly with software (see <a href="/about-me">About me</a>). There are many options for hosting and storing content. But, I <s>have</s> had a tendency to over-think solutions to problems (i.e. <a href="https://en.wikipedia.org/wiki/Analysis_paralysis">Analysis paralysis</a>). Over the course of several years, I built up this collection of ideas and never held myself responsible for making deposits into my idea bank (see <a href="https://news.ycombinator.com/item?id=11027684">Idea Debt</a>). While the ideas are varied, most have a writing-part where I want to share the knowledge gained from completing the idea. And in this case, one idea was to create the engine which drove the display of my writings.</p>]]></description><link>http://www.billbogaiv.com/posts/starting-from-scratch</link><guid>starting-from-scratch</guid><pubDate>Mon, 14 Mar 2016 00:00:00 GMT</pubDate></item></channel></rss>