We have been fortunate enough to get some great contributions to DasBlog, one of the most important contributions was the integration of authentication and authorization, it was a lot of work and one that I would have struggled to complete alone. It has made everything about this project easier from securing Controllers to deciding which parts of a View to display.
However, there is one reoccurring pattern that has emerged that seems to be the result of constantly checking whether I am authorized or not. It goes something like this, you want to show say a login link when you are not logged in, and logout link when you are actually logged in, here is an example:
In the wake of Microsoft's acquisition of GitHub the idea of using someone's public profile as a hiring filter appears to once again be making waves. It seems to be shocking to people who have used it this way, because apparently they have never considered that there are groups of people who have been excluded from basic evaluation just because they had no public programming profile.
So let me state the following for the historic record:
- Being able to find time and energy to program in public for non-work reasons is a privilege that relatively few people can afford to enjoy.
- Your GitHub contribution graph tells me very little about you.
- Looking at random piece of code someone has written on the web devoid of context is only marginally better than nothing at all.
- I could name a dozen developers who are much more adept than me who do not have a public profile.
Let me make this personal for a moment, my LinkedIn profile contains sufficient signals that I pass most tech recruiter filters today. However, I have only very recently found both the time and energy to work on an open source projects, prior to the last 18 months my GitHub profile would have been a negative filter thereby limiting my options.
I have no problem with the idea of a candidate proudly sharing actual code during an interview, or even doing so in lieu of a basic code evaluation. I do have a problem with managers and developers asking or implying that recruiters use it as a primary filter for initial candidate evaluation. In doing so it becomes easy to create monolithic groups and create a perception of a lack of diversity in pipelines.
I had kind of grown use to the fact that bower.json file existed in all the brand new web based projects I would create in Visual Studio. So it was quite a surprise to hear that while Bower will be maintained, for now, they are officially recommending Yarn and Webpack going into the future, they even supply migration tips.
This frankly always the concern to me with any third party framework you decide to integrate into your larger project.
Immediately following a recent Windows 10 upgrade I started getting this message from Windows Explorer every few minutes:
“Low Disk Space You are running out of disk space on Local Disk (D:). Click here to see if you can free space on this drive.”
My first response was, I have a D drive?
It appeared that I did and it only had 49MB free of the available 500MB, however, I could see no content. At this point it started to make sense, what I was looking at was a recovery drive and it was not actually meant to be visible. Windows Explorer had been ignoring the partition right up until the upgrade where I imagine some some process decided to erroneously name the drive.
No big deal we can fix this by simply removing the drive letter, here is how (assuming your OEM drive is labeled D):
- Hit the Windows key and type cmd, right click on the Command Prompt icon and click Run as administrator.
- Click Yes on the User Account Control box to open the command window. Run the following commands. Change the drive letter accordingly based on the list “volume command”, mine happens to be D.
select volume D
- Finally, close the command prompt and restart your device.
The OEM drive should once again be invisible in Windows Explorer and you should no longer get those aggravating messages.
Over the last week we have seen two conferences with two distinct tones and approaches to the idea of AI, these differences are not nearly as simple as good and evil, or right and wrong, there is more nuance to consider. Here is a quote from Satya Nadella:
“We need to ask ourselves not only what computers can do, but what computers should do. That time has come.”
It struck me that this message came before the hype and the demonstrations, it was presented as a foundation of everything related to Artificial Intelligence and Machine Learning. Probably the most impressive demo this week, however, came from Google I/O where they demonstrated an AI assistant (Google Duplex) making a phone call. James Vincent from the Verge described it like this:
“Of course, this was a phone call with a difference. It wasn’t made by a human, but by the Google Assistant, which did an uncannily good job of asking the right questions, pausing in the right places, and even throwing in the odd “mmhmm” for realism.
The crowd was shocked, but the most impressive thing was that the person on the receiving end of the call didn’t seem to suspect they were talking to an AI. It’s a huge technological achievement for Google, but it also opens up a Pandora’s box of ethical and social challenges.”
After the awe and shock of the demo passed a growing and vocal subset of viewers let there concern be heard on social networks, in that it presented such an authentic sounding human voice, with no indication of who it may, or may not, be and that this interaction bordered on a kind of deception.
I must admit as far as social boundaries go I would like to know if and when I am talking to a human or not. Do I need to be polite to AI? I try to be more deliberate and efficient when I know I am talking to AI, but more social and engaging when I am talking to a human. I think I deserve to know when I do not need to bother, but that is currently the limit of my concern.
Build is always an exciting time for developers, we get introduced to new tools and hopefully a fresh vision of what the future workflow might look like with those tools in hand. I have been stealing moments all day to look at the announcements, I have missed a ton of new features and concepts but here are a few of my favorite...
I have written a lot about the conversion of DasBlog Web Forms to ASP.NET Core code, check out some of those posts here:
However, it was not until I started integrating features that would add or delete a blog posts that I realized how much the threading paradigm had changed. In fact I am realizing now that I took for granted the degree to which ASP.NET (as in System.Web) protected me from myself. Let me explain.
At work I spend a great deal of time reviewing hang dumps for a variety of our web platforms, I am usually trying to figure out exactly how this app got into a one in a million state that has slowed the app, caused a CPU spike or excessive memory consumption. Now that I am working on DasBlog Core in my spare time I have been forced to look at a couple of really bizarre scenarios related to ASP.NET Core architecture. I will blog about those scenarios soon but for now I just wanted to take a quick look at the difference between ASP.NET (System.Web) vs ASP.NET Core when it comes to hang dumps.