<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Disqus - Latest Comments for aggieben</title><link>http://disqus.com/by/aggieben/</link><description></description><atom:link href="http://disqus.com/aggieben/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Mon, 17 Aug 2020 23:16:45 -0000</lastBuildDate><item><title>Re: Now The Babylon Bee&amp;#x27;s Been Suspended From Twitter</title><link>https://pjmedia.com/news-and-politics/paula-bolyard/2020/08/17/now-the-babylon-bees-been-suspended-from-twitter-n801640#comment-5034748787</link><description>&lt;p&gt;Guys, they're up to 610k.  I don't think they actually lost any followers.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Mon, 17 Aug 2020 23:16:45 -0000</pubDate></item><item><title>Re: The War on Utility Providers | Chris Hacken</title><link>http://chrishacken.com/the-war-on-utility-providers/#comment-4969959654</link><description>&lt;p&gt;Hi!  I'm pretty deeply involved in a municipality in Texas and am deeply interested in this subject.  After reading stories like these (this is far from the first I've seen), I'm becoming more and more convinced that municipalities should take the responsibility for installing the infrastructure itself.  Every time a road or sidewalk has to be torn up, they should be laying down fiber.  Ultimately, it seems to me that customers would get a fiber connection to their residence or business just like they do currently with the water supply or electrical.  They pay a fee and the municipality (or franchised utility) will come establish the "last 20 feet" connection.  From the perspective of an ISP, would it be better for you to have this last-mile infrastructure maintained as a utility?  My thought is to have the municipality run an interconnect facility where actual internet service could be provided and administered by private parties like yourself, via contract.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Fri, 26 Jun 2020 20:23:10 -0000</pubDate></item><item><title>Re: Creating an authentication scheme in ASP.NET Core 2.0</title><link>https://joonasw.net/view/creating-auth-scheme-in-aspnet-core-2#comment-4751197314</link><description>&lt;p&gt;I figured out that in my case I was using `IOptionsMonitor` incorrectly.  I was trying to do something like:&lt;br&gt;&lt;code&gt;&lt;br&gt;class MyHandler : AuthenticationHandler&amp;lt;myoptions&amp;gt;&lt;br&gt;{&lt;br&gt;    private readonly IOptionsMonitor&amp;lt;myoptions&amp;gt; _options;&lt;br&gt;&lt;br&gt;    public MyHandler(IOptionsMonitor&amp;lt;myoptions&amp;gt; options, ILoggerFactory logger, UrlEncoder encoder,  ISystemClock clock) : base(options, logger, encoder, clock) &lt;br&gt;    {&lt;br&gt;        _options = options;&lt;br&gt;    }&lt;br&gt;&lt;br&gt;    public async Task&amp;lt;authenticateresult&amp;gt; HandleAuthenticateAsync()&lt;br&gt;    {&lt;br&gt;        var options = _options.CurrentValue;&lt;br&gt;        // ... do the rest of the stuff here&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;The fix was to not misuse `IOptionsMonitor` like this, but instead to use the `.Options` property on the `AuthenticationHandler` base class.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Thu, 09 Jan 2020 13:33:45 -0000</pubDate></item><item><title>Re: Creating an authentication scheme in ASP.NET Core 2.0</title><link>https://joonasw.net/view/creating-auth-scheme-in-aspnet-core-2#comment-4728735667</link><description>&lt;p&gt;Thanks for the writeup!  Using this article as a guide, I built a custom scheme, but I'm having a bit of trouble.  When my handler is instantiated, the options object being passed into my constructor isn't the same one that I configured in my `ConfigureServices` method.  Any ideas why that might be?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Wed, 18 Dec 2019 12:24:21 -0000</pubDate></item><item><title>Re: Can Trump End Birthright Citizenship With An Executive Order?</title><link>https://www.dailywire.com/news/37761/can-trump-end-birthright-citizenship-executive-ben-shapiro#comment-4170285083</link><description>&lt;p&gt;Ben, the Howard quote is grammatically incomplete and therefore ambiguous - and in any case not dispositive, but one of several indications of what the phrase "subject to the jurisdiction thereof" was intended to mean.  CIS has done a good job of outlining a pretty balanced assessment of this evidence here: &lt;a href="https://cis.org/Report/Birthright-Citizenship-United-States" rel="nofollow noopener" target="_blank" title="https://cis.org/Report/Birthright-Citizenship-United-States"&gt;https://cis.org/Report/Birt...&lt;/a&gt;.  They came to a different conclusion than you, and explained it with quite a bit more evidence - and I find it more persuasive and plausible.  It seems to me that federal agencies have come to adopt a jus soli approach without direction from Congress and therefore the president would be within his powers to direct them to do otherwise, absent more clear guidance from Congress.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Tue, 30 Oct 2018 12:57:59 -0000</pubDate></item><item><title>Re: Chocolatey Gallery | hugo 0.19.0</title><link>https://community.chocolatey.org/packages/hugo#comment-4058550642</link><description>&lt;p&gt;Yeah, agree here.  I tried to build a site that requires hugo.extended, and I was pretty confused for a while.  Would be nice to have a hugo.extended on chocolatey&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Fri, 24 Aug 2018 17:34:50 -0000</pubDate></item><item><title>Re: 
      GDPR: What You (And Your Store) Need to Know About This New Data Protection Law
    </title><link>http://www.shopify.com/blog/gdpr-ecommerce#comment-3917264624</link><description>&lt;p&gt;Is there a way to simply block all EEA traffic from my Shopify site and present those visitors with a custom 451 error page?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Fri, 25 May 2018 16:23:50 -0000</pubDate></item><item><title>Re: Why Does the Ethereum Ecosystem Use Gas?</title><link>https://nulltx.com/why-does-the-ethereum-ecosystem-use-gas/#comment-3890167517</link><description>&lt;p&gt;I'm just learning about how gas works, and how it decouples the cost of a transaction from the value of Ether.  What I don't understand is this: why wouldn't a system of flat fees, as used in Bitcoin, be sufficient for everything that gas is used for?  If you want your contract executed sooner, you offer a higher fee.  If you don't offer enough of a fee for a highly-complex contract, miners reject it.  I'm having a hard time fully grasping the *necessity* of gas.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Mon, 07 May 2018 17:04:07 -0000</pubDate></item><item><title>Re: 'Dr. Doom' Roubini Joins Wall Street Chorus Calling Bitcoin a Bubble - CoinDesk</title><link>https://www.coindesk.com/dr-doom-roubini-joins-wall-street-chorus-calling-bitcoin-bubble/#comment-3607157848</link><description>&lt;p&gt;It looks to me like he's actually not very well-informed about Bitcoin.  I think he's right (broadly speaking) that one of Bitcoin's biggest risks is that governments will restrict it, but it's far from apparent that this is actually happening.  Case-in-point: China didn't actually ban cryptocurrency exchanges, it banned ICO exchanges (albeit they also shadily asked cryptocurrency exchanges to "voluntarily" shut down).  What looks likely is that China wanted to halt exchange activity while it figured out a licensing regime (&lt;a href="https://www.cryptocoinsnews.com/china-will-likely-resume-cryptocurrency-trading-by-licensing-bitcoin-exchanges/)" rel="nofollow noopener" target="_blank" title="https://www.cryptocoinsnews.com/china-will-likely-resume-cryptocurrency-trading-by-licensing-bitcoin-exchanges/)"&gt;https://www.cryptocoinsnews...&lt;/a&gt;.  Even in the US, ICO exchanges are unlikely to continue to be allowed to operate unfettered (IMO).&lt;/p&gt;&lt;p&gt;Also, whenever someone starts with "bitcoin is used by criminals", I tune out pretty quickly, Nobel laureate or not.  Criminals also use cash, checks, and credit cards.  Bitcoin is no less traceable than check and credit cards, and more traceable than cash.  Any government who actually understands how it works should be anxious to have a public ledger they scan scour (as the IRS is already doing).&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Wed, 08 Nov 2017 17:53:53 -0000</pubDate></item><item><title>Re: Using dependency injection while configuring services</title><link>http://benjamincollins.com/blog/using-dependency-injection-while-configuring-services/#comment-3544370259</link><description>&lt;p&gt;Yes, that's a typo.  Thanks!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Sat, 30 Sep 2017 18:28:22 -0000</pubDate></item><item><title>Re: This is what abortion politics is for</title><link>http://www.patheos.com/blogs/slacktivist/2016/03/11/this-is-what-abortion-politics-is-for/#comment-3496208987</link><description>&lt;p&gt;This is, frankly, an &lt;em&gt;unbelievably&lt;/em&gt; intellectually dishonest misrepresentation of the pro-life (or anti-abortion, if you prefer) stance.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;everyone knows that abortion is not the same thing as “killing babies.”&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;No, "everyone" doesn't.  I can't speak for "everyone", but people who are anti-abortion generally believe that abortion is, in fact, killing babies, and that abortion is an ongoing modern holocaust against the most defenseless members of our society - &lt;em&gt;particularly&lt;/em&gt; those belonging to black and other marginalized communities.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Thu, 31 Aug 2017 14:40:26 -0000</pubDate></item><item><title>Re: Practical Permissions-based Authorization in ASP.NET Core</title><link>http://benjamincollins.com/blog/practical-permission-based-authorization-in-asp-net-core/#comment-3390080455</link><description>&lt;p&gt;The way you suggest would work fine.  There could be a very wide variety of valid approaches.  Loading permissions related to roles from the DB is one way; you could do the same with Redis.  You could also pre-load permissions and keep them in local memory on the application server.  How/when/how often you do that really depends on the needs of your application.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Wed, 28 Jun 2017 13:23:19 -0000</pubDate></item><item><title>Re: a working example of permissions authorization</title><link>http://benjamincollins.com/blog/a-working-example-of-permissions-authorization/#comment-3251251004</link><description>&lt;p&gt;Right.  I think I understand what you're trying to do, but I don't have a great answer to your issues because it looks like there's something wrong not related to authorization itself, so I think you need to troubleshoot first.  The first question to resolve is whether or not you're really setting up the policies that you think you're setting up.&lt;/p&gt;&lt;p&gt;For example, this:&lt;br&gt;&lt;code&gt;&lt;br&gt;foreach (params Permission[] permissions))&lt;br&gt;{&lt;br&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;is not valid C#.  How are you actually adding the policies?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Tue, 11 Apr 2017 14:18:35 -0000</pubDate></item><item><title>Re: a working example of permissions authorization</title><link>http://benjamincollins.com/blog/a-working-example-of-permissions-authorization/#comment-3251153476</link><description>&lt;p&gt;Are you sure that &lt;code&gt;Permission.Teacher&lt;/code&gt; is in the &lt;code&gt;permission&lt;/code&gt; array in your startup class?  Also, are you sure that the result of &lt;code&gt;Permission.Teacher.ToString()&lt;/code&gt; is what you expect it to be?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Tue, 11 Apr 2017 13:25:45 -0000</pubDate></item><item><title>Re: a working example of permissions authorization</title><link>http://benjamincollins.com/blog/a-working-example-of-permissions-authorization/#comment-3240043444</link><description>&lt;p&gt;Your understanding is correct.  You don't have to use the Identity framework in order to use &lt;code&gt;IAuthorizationService&lt;/code&gt;.  I was just trying to say that when you register Identity using &lt;code&gt;app.UseIdentity();&lt;/code&gt; that it would be registered for you, but I was mistaken - actually, it's added when you add Mvc to your project with &lt;code&gt;app.AddMvc();&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;If you're not using either Identity or Mvc, then you have to register the authorization service yourself using &lt;code&gt;app.AddAuthorization();&lt;/code&gt;, which is defined in the Microsoft.AspNetCore.Authorization package.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Tue, 04 Apr 2017 17:42:52 -0000</pubDate></item><item><title>Re: Engineers suck at finding the right jobs - Matt Aimonetti</title><link>https://matt.aimonetti.net/posts/2012/11/14/engineers-suck-at-finding-right-jobs/#comment-3235790614</link><description>&lt;p&gt;I'd be interested in asking you some questions, if you're open at this point.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Sun, 02 Apr 2017 01:15:56 -0000</pubDate></item><item><title>Re: Why Virtual Credit Card Numbers Aren&amp;#8217;t Worth It</title><link>https://staging.mybanktracker.com/news/why-virtual-credit-card-numbers-not-worth-it#comment-3180299606</link><description>&lt;p&gt;These are all non-issues.  All of them.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Tue, 28 Feb 2017 23:15:36 -0000</pubDate></item><item><title>Re: Practical Permissions-based Authorization in ASP.NET Core</title><link>http://benjamincollins.com/blog/practical-permission-based-authorization-in-asp-net-core/#comment-3106422151</link><description>&lt;p&gt;Actually, to be more consistent with the way the documentation describes this method, I should probably just be passing in &lt;code&gt;null&lt;/code&gt; rather than a string describing the resource, which I did as a reflex because I don't like using &lt;code&gt;null&lt;/code&gt; parameters.  In my scenario I don't have a use for a resource object here because the user's authorization doesn't depend on the resource itself, it depends on the permission requirement which is a parameter to the filter.&lt;/p&gt;&lt;p&gt;Does that answer your question?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Wed, 18 Jan 2017 14:21:20 -0000</pubDate></item><item><title>Re: Practical Permissions-based Authorization in ASP.NET Core</title><link>http://benjamincollins.com/blog/practical-permission-based-authorization-in-asp-net-core/#comment-3093064578</link><description>&lt;p&gt;You're right!  Thanks for catching that.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Tue, 10 Jan 2017 16:57:04 -0000</pubDate></item><item><title>Re: a working example of permissions authorization</title><link>http://benjamincollins.com/blog/a-working-example-of-permissions-authorization/#comment-3029824878</link><description>&lt;p&gt;I would only cache permissions for the duration of a single request.  You don't ever want a user to have stale permissions.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Thu, 01 Dec 2016 12:54:48 -0000</pubDate></item><item><title>Re: a working example of permissions authorization</title><link>http://benjamincollins.com/blog/a-working-example-of-permissions-authorization/#comment-3026309695</link><description>&lt;p&gt;Thanks, @Kerry Kip .  &lt;code&gt;HttpContext.User&lt;/code&gt; is a &lt;code&gt;ClaimsPrincipal&lt;/code&gt;, and there are ways to customize the creation of it in ASP.NET.  The reason I left this as a &lt;code&gt;// TODO&lt;/code&gt; is because doing so is pretty well beyond the scope of what I was trying to demonstrate here.&lt;/p&gt;&lt;p&gt;One reason you might want to add a user's permissions to the claims principal is to avoid loading the permissions more than once in a given request (in other words, load them once when the claims principal is constructed, and then thereafter just refer to the in-memory &lt;code&gt;ClaimsPrincipal&lt;/code&gt;).  In the shown code, we load them each time the requirement handler is run, but that could be undesirable depending on the application.  ASP.NET provides the necessary abstractions to allow you to customize the creation of the &lt;code&gt;ClaimsPrincipal&lt;/code&gt;, and that's probably where you'd want to load the permissions (see &lt;code&gt;IUserClaimsPrincipalFactory&lt;/code&gt; in ASP.NET Identity, as well as &lt;code&gt;UserClaimsFactory&amp;lt;,&amp;gt;&lt;/code&gt; in IdentityServer).  I would probably avoid storing them as claims; instead, I might derive from &lt;code&gt;ClaimsPrincipal&lt;/code&gt; and provide them as a separate property.  That might also require you to have a custom &lt;code&gt;HttpContext&lt;/code&gt; so you could expose the custom type for &lt;code&gt;.User&lt;/code&gt; rather than casting everywhere you want to use it.  How far you would take it is up to you.&lt;/p&gt;&lt;p&gt;There are also other approaches to this.  You could load permissions into a local cache, or even a distributed cache, and refer to them there instead of using &lt;code&gt;HttpContext.User&lt;/code&gt; - or if you're confident that the performance cost of loading them on-demand from the database is of no consequence, then you don't have to do this at all.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Tue, 29 Nov 2016 12:15:34 -0000</pubDate></item><item><title>Re: The Second Rule of Implementing IDisposable and Finalizers</title><link>http://blog.stephencleary.com/2009/08/second-rule-of-implementing-idisposable.html#comment-3006077264</link><description>&lt;p&gt;Stephen, how would you compare your sample implementation above to the basic dispose pattern described here?&lt;/p&gt;&lt;p&gt;&lt;a href="https://msdn.microsoft.com/en-us/library/b1yfkh5e(v=vs.110).aspx#Anchor_0:" rel="nofollow noopener" target="_blank" title="https://msdn.microsoft.com/en-us/library/b1yfkh5e(v=vs.110).aspx#Anchor_0:"&gt;https://msdn.microsoft.com/...&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;br&gt;public class DisposableResourceHolder : IDisposable {&lt;br&gt;&lt;br&gt;    private SafeHandle resource; // handle to a resource&lt;br&gt;&lt;br&gt;    public DisposableResourceHolder(){&lt;br&gt;        this.resource = ... // allocates the resource&lt;br&gt;    }&lt;br&gt;&lt;br&gt;    public void Dispose(){&lt;br&gt;        Dispose(true);&lt;br&gt;        GC.SuppressFinalize(this);&lt;br&gt;    }&lt;br&gt;&lt;br&gt;    protected virtual void Dispose(bool disposing){&lt;br&gt;        if (disposing){&lt;br&gt;            if (resource!= null) resource.Dispose();&lt;br&gt;        }&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;If &lt;code&gt;IDisposable&lt;/code&gt; is transitive, then why what benefit does this pattern provide in the case of exclusively managed resources?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Wed, 16 Nov 2016 22:16:03 -0000</pubDate></item><item><title>Re: Podcast #88 - All About Documentation, Mostly – Stack Overflow Blog – A destination for all things related to development at Stack Overflow</title><link>https://stackoverflow.blog/2016/09/podcast-88-all-about-documentation-mostly/#comment-2931505532</link><description>&lt;p&gt;Come on Jon, you know what it is: y'all.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Mon, 03 Oct 2016 14:42:38 -0000</pubDate></item><item><title>Re: Roslyn scripting on CoreCLR (.NET CLI and DNX) and in memory assemblies</title><link>https://www.strathweb.com/2016/03/roslyn-scripting-on-coreclr-net-cli-and-dnx-and-in-memory-assemblies/#comment-2880979709</link><description>&lt;p&gt;Have you tried supporting #r directives?  I'm working on a tool that needs to support it, and I'm not having much luck.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Wed, 07 Sep 2016 12:55:48 -0000</pubDate></item><item><title>Re: Texas Elector May Not Vote for Trump</title><link>https://politicalwire.com/2016/08/25/texas-elector-may-not-vote-for-trump/#comment-2861369267</link><description>&lt;p&gt;Sometimes the will of the voters is ...wrong.  To be charitable.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">aggieben</dc:creator><pubDate>Fri, 26 Aug 2016 16:41:51 -0000</pubDate></item></channel></rss>