I have suggested to all my software engineering colleagues that a lack of git command line experience does not have to be a deterrent to diving into open source. Developers who are familiar with Visual Studio can quickly get up to speed with branching, merging and pull requests. My blog has been built around learning so I acknowledge up front that this gap is me being purposefully obtuse.
So you have no command line experience and someone has sent you a pull request at GitHub, here is what you do.
On GitHub click on your list of Pull request (PR) and click on the PR you want to review, you should have the opportunity to click on the “..open this GitHub Desktop…”.
Edge, in this instance, will attempt to open GitHub for Desktop.
Click Yes and you will open up the cross platform Electron based Desktop app, it is a wonderful UX.
If you open up the Visual Studio project associated with this repo it will have also switched to the PR automagically! Now you have the opportunity to test and review all the changes outside of the GitHub site within the more familiar settings of Visual Studio.
GitHub Visual Studio Extension
To take this to the next level I strongly recommend the use of GitHub for Visual Studio Extension which further allows you to view, check out, and review pull requests right within Visual Studio. Once installed this extension creates a new tab next to your solution explorer with a list of pull requests.
By clicking on the pull request you get full access to a list of the changed files and you even get to do diff on the changes right there!
Just like at the GitHub site you can also put inline comments on each file and of course you can Add your review while Approving or Requesting changes. Frankly this extension allows you to completely manage your entire Github life cycle without the command line.
Politics and technology share some of the same flaws in that they both rely on everyone involved being fundamentally decent. Technology unlike politics should be immediately prepared for the moment when the actions and habits of bad actors metastasizes through the system in an irreversible and permanent way.
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...