[{"content":"At the recent dotNetConf 2021, amongst all the other goodies released and presented ( .NET 6 ; VS2022 ), there was a session covering Testing tools for .NET.\nOne in particular caught my eye. Playwright\nThis one merits further investigation.\nTesting Tools for .NET and cross-platform apps\nhttps://playwright.dev/dotnet/\n","permalink":"/post/2021-11-18-using-playwright/","summary":"\u003cp\u003eAt the recent dotNetConf 2021, amongst all the other goodies released and presented ( .NET 6 ; VS2022 ), there was a session covering Testing tools for .NET.\u003c/p\u003e\n\u003cp\u003eOne in particular caught my eye. \u003cstrong\u003ePlaywright\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eThis one merits further investigation.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://youtu.be/oPyTZ-HGdn4?t=16394\"\u003eTesting Tools for .NET and cross-platform apps\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/dotnet/\"\u003ehttps://playwright.dev/dotnet/\u003c/a\u003e\u003c/p\u003e","title":"Using Playwright"},{"content":"After recently migrating an application from on-premises to Azure, I have been keeping a close eye on its performance.\nThe application uses Azure SQL. The Azure portal puts forth recommendations to tune the database e.g. create new indices or drop duplicates. That works well.\nHowever I found another SQL query, which provides more recommendations\nThis site \u0026lsquo;Tune your database\u0026rsquo; Tune applications and databases for performance in Azure SQL Database and Azure SQL Managed Instance provided some useful guidance.\nRunning this query on the \u0026lsquo;Master\u0026rsquo;\nSELECT CONVERT (varchar, getdate(), 126) AS runtime , mig.index_group_handle , mid.index_handle , CONVERT (decimal (28,1), migs.avg_total_user_cost * migs.avg_user_impact * (migs.user_seeks + migs.user_scans)) AS improvement_measure , \u0026#39;CREATE INDEX missing_index_\u0026#39; + CONVERT (varchar, mig.index_group_handle) + \u0026#39;_\u0026#39; + CONVERT (varchar, mid.index_handle) + \u0026#39; ON \u0026#39; + mid.statement + \u0026#39; (\u0026#39; + ISNULL (mid.equality_columns,\u0026#39;\u0026#39;) + CASE WHEN mid.equality_columns IS NOT NULL AND mid.inequality_columns IS NOT NULL THEN \u0026#39;,\u0026#39; ELSE \u0026#39;\u0026#39; END + ISNULL (mid.inequality_columns, \u0026#39;\u0026#39;) + \u0026#39;)\u0026#39; + ISNULL (\u0026#39; INCLUDE (\u0026#39; + mid.included_columns + \u0026#39;)\u0026#39;, \u0026#39;\u0026#39;) AS create_index_statement , migs.* , mid.database_id , mid.[object_id] FROM sys.dm_db_missing_index_groups AS mig INNER JOIN sys.dm_db_missing_index_group_stats AS migs ON migs.group_handle = mig.index_group_handle INNER JOIN sys.dm_db_missing_index_details AS mid ON mig.index_handle = mid.index_handle ORDER BY migs.avg_total_user_cost * migs.avg_user_impact * (migs.user_seeks + migs.user_scans) DESC provides a suggestion for an index creation\nCREATE INDEX missing_index_5006_5005 ON [dbo].[missingindex] ([col2]) It also provides a numeric value as an indication of improvement. You can check the before and after Query path as well. I\u0026rsquo;ve tried this on a database I was working on and could see performance jump.\nNote to self: some indexes might take 30-40 mins for creation; so best run after hours :)\n","permalink":"/post/2021-09-30-azure-sql-performance-tuning/","summary":"\u003cp\u003eAfter recently migrating an application from on-premises to Azure, I have been keeping a close eye on its performance.\u003c/p\u003e\n\u003cp\u003eThe application uses Azure SQL. The Azure portal puts forth recommendations to tune the database e.g. create new indices or drop duplicates.\nThat works well.\u003c/p\u003e\n\u003cp\u003eHowever I found another SQL query, which provides more recommendations\u003c/p\u003e\n\u003cp\u003eThis site \u0026lsquo;Tune your database\u0026rsquo; \u003ca href=\"https://docs.microsoft.com/en-us/azure/azure-sql/database/performance-guidance\"\u003eTune applications and databases for performance in Azure SQL Database and Azure SQL Managed Instance\u003c/a\u003e provided some useful guidance.\u003c/p\u003e","title":"Azure SQL performance tuning"},{"content":"Previously I had tried to install oh-my-posh prompts and folder icons. It never quite worked for me and I kept trying to fix it on and off.\nWhen Scott Hanselman posted about it (again) in Aug, I had to have a look.\nHowever even this time around, I did not get it 100% correct. Could be my profile file was corrupted. I did try a few things ( uninstalling the fonts, recreating my profile ), however things did not improve.\nFinally I came across this post by Dejan Stojanovic and followed his instructions to the t.\nAnd it worked ! I can move on now :). Thank you Dejan (added bonus was the folder icons).\n","permalink":"/post/2021-09-04-powershell-prompt/","summary":"\u003cp\u003ePreviously I had tried to install oh-my-posh prompts and folder icons. It never quite worked for me and I kept trying to fix it on and off.\u003c/p\u003e\n\u003cp\u003eWhen \u003ca href=\"https://www.hanselman.com/blog/my-ultimate-powershell-prompt-with-oh-my-posh-and-the-windows-terminal\"\u003eScott Hanselman\u003c/a\u003e posted about it (again) in Aug, I had to have a look.\u003c/p\u003e\n\u003cp\u003eHowever even this time around, I did not get it 100% correct. Could be my profile file was corrupted. I did try a few things ( uninstalling the fonts, recreating my profile ), however things did not improve.\u003c/p\u003e","title":"PowerShell prompt"},{"content":"Finally got around to using Playwright - a tool for UI testing. The official documentation is here https://playwright.dev/ .\nI am using C# and Microsoft has a nuget package. I also wanted to use it in a NUnit project.\nThe two sites that helped me get started were :\nTesting Web Applications with PlayWright and C#\nEnd-To-End Testing With Playwright Sharp\nCreate a new NUnit project in VS2019 (make sure you use .NET 5 and above). Add the Playwright NuGet package.\nUse this command to startup the Recorder, which is a neat way to capture your navigation\nCMD\u0026gt; npx playwright codegen \u0026lt;url_you_want_to_test\u0026gt; Copy the generated code ( C# in my case) from the Recorder clipboard and paste into your C# Test project. Any build errors should be straight forward to fix. In my case I created a simple console application.\nusing System.IO; using System.Threading.Tasks; using Microsoft.Playwright; namespace ConsoleApp1 { class Program { public static async Task Main() { using var playwright = await Playwright.CreateAsync(); await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions { Headless = false, }); var context = await browser.NewContextAsync(); // Open new page var page = await context.NewPageAsync(); // Go to https://www.richardborges.net/ await page.GotoAsync(\u0026#34;https://www.richardborges.net/\u0026#34;); // Click text=Increasing Productivity await page.ClickAsync(\u0026#34;text=Increasing Productivity\u0026#34;); // Assert.Equal(\u0026#34;https://www.richardborges.net/2021-05-30-increasing-productivity/\u0026#34;, page.Url); // Click text=Blog await page.ClickAsync(\u0026#34;text=Blog\u0026#34;); // Assert.Equal(\u0026#34;https://www.richardborges.net/\u0026#34;, page.Url); // Click text=Richard Borges await page.ClickAsync(\u0026#34;text=Richard Borges\u0026#34;); // Click text=About await page.ClickAsync(\u0026#34;text=About\u0026#34;); // Assert.Equal(\u0026#34;https://www.richardborges.net/about/\u0026#34;, page.Url); // Click text=Blog await page.ClickAsync(\u0026#34;text=Blog\u0026#34;); // Assert.Equal(\u0026#34;https://www.richardborges.net/\u0026#34;, page.Url); await File.WriteAllBytesAsync(Path.Combine(Directory.GetCurrentDirectory(), \u0026#34;richardborges.net.png\u0026#34;), await page.ScreenshotAsync()); } } } I could also create a NUnit project and assert my test conditions. The method\nFile.WriteAllBytesAsync(...) will save a screen shot of the test page. The test can be run with a headless browser as well.\n","permalink":"/post/2021-06-12-automated-ui-testing/","summary":"\u003cp\u003eFinally got around to using Playwright - a tool for UI testing. The official documentation is here \u003ca href=\"https://playwright.dev/\"\u003ehttps://playwright.dev/\u003c/a\u003e .\u003c/p\u003e\n\u003cp\u003eI am using C# and Microsoft has a nuget package. I also wanted to use it in a NUnit project.\u003c/p\u003e\n\u003cp\u003eThe two sites that helped me get started were :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://dotnetthoughts.net/testing-web-apps-with-playwright-and-dotnet/\"\u003eTesting Web Applications with PlayWright and C#\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://auth0.com/blog/e2e-testing-with-playwright-sharp/\"\u003eEnd-To-End Testing With Playwright Sharp\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eCreate a new NUnit project in VS2019 (make sure you use .NET 5 and above). Add the Playwright NuGet package.\u003c/p\u003e","title":"Automated UI testing"},{"content":"Since early this year I been reading up on, continuing to improve on how I stay motivated and increase my productivity. This is what is working for me:\nThe book Getting Results the Agile Way. Reading this book and following the J.D.Meier\u0026rsquo;s advice has been a big plus on how I get things done on a daily, weekly and more, basis. In addition to setting a goal for 3 things for the day, 3 things for the week and so on, I have been keeping a focus on these \u0026lsquo;hot\u0026rsquo; areas:\nMind Body Emotions Career Financial Relationships Fun I would recommend you purchase the book and read it cover to cover, then leave it handy to pick up and read ad-hoc.\nYou the go-getter type? Like to keep climbing up the career ladder? Have a read of this Your Professional Decline Is Coming (Much) Sooner Than You Think. It makes for sobering reading and helps you prepare for the next stage of your life. This line hits home \u0026ldquo;The biggest mistake professionally successful people make is attempting to sustain peak accomplishment indefinitely.\u0026rdquo; Read the complete article to see what you could do to improve your odds of being valued and add value in the later years of your life.\nFocus \u0026lsquo;hot\u0026rsquo; areas (read the article to find out more):\nJump Serve Worship Connect Of course some of these are easy to implement, but others require careful consideration and deliberate action. Its a journey I am on.\nThis is something new. I\u0026rsquo;ve started writing in the mornings. Before I login to work. With a cup of tea. Why ? These 3 Pages Might be Your Key to a Clearer Mind, Better Ideas and Less Anxiety. Its still early days. Lets see how long I can keep churning them out. (Oh, these are for personal use only).\nI still follow the regular physical exercise mantra, use the Pomodoro technique and strive for a \u0026lsquo;Deep Work\u0026rsquo; span of at least 4 hours per work day.\n","permalink":"/post/2021-05-30-increasing-productivity/","summary":"\u003cp\u003eSince early this year I been reading up on, continuing to improve on how I stay motivated and increase my productivity. This is what is working for me:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003cstrong\u003ebook\u003c/strong\u003e \u003ca href=\"https://gettingresults.com/getting-results-the-agile-way/\"\u003eGetting Results the Agile Way\u003c/a\u003e. Reading this book and following the J.D.Meier\u0026rsquo;s advice has been a big plus on how I get things done on a daily, weekly and more, basis. In addition to setting a goal for 3 things for the day, 3 things for the week and so on, I have been keeping a focus on these \u0026lsquo;hot\u0026rsquo; areas:\u003c/p\u003e","title":"Increasing Productivity"},{"content":"I have used Scott Hanselman\u0026rsquo;s tips in the past regarding setting up Windows Terminal and then updating to newer fonts.\nHe recently publised a post about using terminal icons . I think they look great.\nI had a small hiccup where my icons were not displaying correctly. A search on Stackoverflow got me here How to get @DevBlackOps Terminal-Icons module working in PowerShell on Windows\nAfter following the tips by snsnsjsn, I got my Windows Terminal ( both Windows Powershell and Powershell ) displaying correctly.\nMy profile (notepad $profile) looks like\nImport-Module posh-git Import-Module oh-my-posh Import-Module Terminal-Icons Set-PoshPrompt -Theme jandedobbeleer And the Windows Terminal \u0026gt; properties \u0026gt; Settings has entires for\n{ \u0026#34;commandline\u0026#34;: \u0026#34;powershell.exe\u0026#34;, \u0026#34;fontFace\u0026#34;: \u0026#34;CaskaydiaCove NF\u0026#34;, \u0026#34;fontSize\u0026#34;: 11, \u0026#34;guid\u0026#34;: \u0026#34;{61c54bbd-c2c6-5271-96e7-009a87ff44bf}\u0026#34;, \u0026#34;hidden\u0026#34;: false, \u0026#34;name\u0026#34;: \u0026#34;Windows PowerShell\u0026#34; }, { \u0026#34;guid\u0026#34;: \u0026#34;{574e775e-4f2a-5b96-ac1e-a2962a402336}\u0026#34;, \u0026#34;hidden\u0026#34;: false, \u0026#34;name\u0026#34;: \u0026#34;PowerShell\u0026#34;, \u0026#34;source\u0026#34;: \u0026#34;Windows.Terminal.PowershellCore\u0026#34;, \u0026#34;fontFace\u0026#34;: \u0026#34;CaskaydiaCove NF\u0026#34;, \u0026#34;fontSize\u0026#34;: 11 }, ","permalink":"/post/2021-04-17-terminal-icons/","summary":"\u003cp\u003eI have used Scott Hanselman\u0026rsquo;s tips in the past regarding setting up Windows Terminal and then updating to newer fonts.\u003c/p\u003e\n\u003cp\u003eHe recently publised a post about using \u003ca href=\"https://www.hanselman.com/blog/take-your-windows-terminal-and-powershell-to-the-next-level-with-terminal-icons\" title=\"terminal icons\"\u003eterminal icons\u003c/a\u003e . I think they look great.\u003c/p\u003e\n\u003cp\u003eI had a small hiccup where my icons were not displaying correctly. A search on Stackoverflow got me here \u003ca href=\"https://gist.github.com/markwragg/6301bfcd56ce86c3de2bd7e2f09a8839#gistcomment-3535519\" title=\"How to get @DevBlackOps Terminal-Icons module working in PowerShell on Windows\"\u003eHow to get @DevBlackOps Terminal-Icons module working in PowerShell on Windows\u003c/a\u003e\u003c/p\u003e","title":"Terminal Icons"},{"content":"Its been over 12 months since I have been working remotely. I have been interested in working remotely (Working from home WFH) for some time. I would try to WFH a day here and there, but not consistently.\nAfter about 3 weeks of being asked to WFH ( due to the coronavirus restrictions) I had to make a few adjustments to make me productive. I already had a place in my study with a decent work table and chair. The new additions were :\nimproved lighting ( brighter overhead lights to brighten up the study ) better monitor ( work lent me one, so I had dual screens ) regular hours ( start and stop work at near about the same time every work day ) Pros:\ntime and costs saving with not having to travel to the office time for a morning work 2 or 3 times a week time for study in the evening able to run errands during the day or early evening not catching the winter flu in 2020 able to accommodate late night and early morning meetings Cons:\nmiss the office buzz and hallway chats. A MS Teams meeting does not really cut it when compared to in-person not taking regular breaks during the work day, led to eye strain increase in energy costs less inclined to stop work even if its late or not feeling 100% ","permalink":"/post/2021-04-17-working-remote/","summary":"\u003cp\u003eIts been over 12 months since I have been working remotely. I have been interested in working remotely (Working from home WFH) for some time. I would try to WFH a day here and there, but not consistently.\u003c/p\u003e\n\u003cp\u003eAfter about 3 weeks of being asked to WFH ( due to the coronavirus restrictions) I had to make a few adjustments to make me productive. I already had a place in my study with a decent work table and chair. The new additions were :\u003c/p\u003e","title":"Working remote"},{"content":"This blog richardborges.net, has been running on GitHub (and Jekyll) since July 2018.\nAs the number of posts increased, I felt the need for a search feature. Elasticsearch is one of my favourite tools, but that would be an overkill for this static site. I wanted something small and easy.\nI have been following Jeremy Likness for a while and was quite impressed by his journey, migrating from \u0026ldquo;Medium\u0026rdquo; to \u0026ldquo;Hugo\u0026rdquo;. In particular Dynamic Search in a Static Hugo Website - Jeremy Likness.\nThen there was a post by Scott Hanselman Penny Pinching in the Cloud: Azure Static Web Apps are saving me money which covered how he crams his multiple sites into the Azure Static Web Apps offering.\nIn addition I was always facing issues with running the site locally e.g. ruby issues in Windows Subsystem for Linux (WSL)\nSo I was ready to migrate the site to Hugo. For my use, these are the positives:\nHugo is easy to run locally. Seriously it is. The required files are in one Subdirectory and you add its path to $Path env variable I move the site from running in github to github + Azure Static App hosted Use Cloudflare ToDo: Implement search Running Hugo locally Visit Install Hugo on Windows to download and run Hugo locally. It is self contained and once you add the binary path to $path env, you are good to go. It uses Markdown and active reload which allows you to see your latest updates.\nSo far so good.\nThe following steps were used to migrate from Jekyll to Hugo. I have to resolve one issue with the theme i.e. open link in the a new tab\n# migrate from source to target DOS \u0026gt; hugo import jekyll d:\\richardborges.github.io\\ d:\\richardborges-hugo-static-site-app\\ # cd to target D:\\richardborges-hugo-static-site-app\u0026gt; git init # include the theme as a submodule so that future theme upgrades are easier D:\\richardborges-hugo-static-site-app\u0026gt; git submodule add https://github.com/thegeeklab/hugo-geekblog.git themes/geekblog update the config.toml https://hugo-geekblog.geekdocs.de/posts/getting-started/#option-1-download-pre-build-release-bundle theme = \u0026#34;hugo-geekblog\u0026#34; # initialise git D:\\richardborges-hugo-static-site-app\u0026gt; git add -A D:\\richardborges-hugo-static-site-app\u0026gt; git commit -m \u0026#34;initial commit\u0026#34; D:\\richardborges-hugo-static-site-app\u0026gt; git remote add origin https://github.com/richardborges/richardborges-hugo-static-site-app D:\\richardborges-hugo-static-site-app\u0026gt; git push --set-upstream origin main To run the site locally, use\n# # render *.md which contain drafts i.e. draft: true. D:\\richardborges-hugo-static-site-app\u0026gt; hugo server -D # or D:\\richardborges-hugo-static-site-app\u0026gt; hugo server -D --disableFastRender In addition I used FavIcon generator to generate and copy over\nD:\\richardborges-hugo-static-site-app\\static\\apple-touch-icon.png D:\\richardborges-hugo-static-site-app\\static\\favicon-16x16.png D:\\richardborges-hugo-static-site-app\\static\\favicon-32x32.png To override the link behaviour i.e. to open a link in a new tab I used the tip provided here Override a Hugo Theme. Thank you Zachary Wade Betz.\nRunning as an Azure Static Web App To get started I used Tutorial: Publish a Hugo site to Azure Static Web Apps Preview to get the site running in Azure\nNext, I setup the custom domain using Configure a root domain where linked to this How to configure a root domain in an Azure Static Web App\nThe final step was completing the \u0026ldquo;Custom Domain\u0026rdquo; step in the Azure portal.\nSo my workflow is:\nEdit a post in VS Code i.e. D:\\richardborges-hugo-static-site-app\u0026gt; code . Commit the change to my GitHub repository. I use the beautifully made and paid for Fork git client. Run Hugo locally to check the post for language and content The commit to GitHub, kicks off a GitHub Action, which builds and releases a static version of the site in Azure Static Web App The newly build site can be viewed at www.richardborges.net Whew.\nQuite happy with the outcome. This setup means I have fewer hurdles when writing and publishing a blog post.\n","permalink":"/post/2021-04-03-jekyll-to-hugo/","summary":"\u003cp\u003eThis blog \u003ca href=\"https://www.richardborges.net\" title=\"richardborges.net\"\u003erichardborges.net\u003c/a\u003e, has been running on GitHub (and Jekyll) since July 2018.\u003c/p\u003e\n\u003cp\u003eAs the number of posts increased, I felt the need for a search feature. Elasticsearch is one of my favourite tools, but that would be an overkill for this static site. I wanted something small and easy.\u003c/p\u003e\n\u003cp\u003eI have been following Jeremy Likness for a while and was quite impressed by his journey, migrating from \u0026ldquo;Medium\u0026rdquo; to \u0026ldquo;Hugo\u0026rdquo;. In particular \u003ca href=\"https://blog.jeremylikness.com/blog/dynamic-search-in-a-static-hugo-website/\" title=\"Dynamic Search in a Static Hugo Website\"\u003eDynamic Search in a Static Hugo Website - Jeremy Likness\u003c/a\u003e.\u003c/p\u003e","title":"Jekyll to Hugo"},{"content":"Here is an opportunity to learn new skills in 30 days, investing about an hour a day (give or take a few week ends)\nMicrosoft 30 days learn\nI am planning to invest time in these three:\nDevOps Engineer\nDesign and implement DevOps processes and practices. Develop an instrumentation strategy with logging, telemetry, and monitoring. Manage source control with GitHub to foster collaboration and automate build and deployment processes. Azure Developer\nParticipate in all phases of cloud development to create end-to-end solutions. Design, build, test, and maintain cloud applications using compute, storage, management, and security services on Azure. Azure Solutions Architect\nDiscover how to use Azure Infrastructure to improve your applications and become an Azure Solution Architect. Advise stakeholders and translate business requirements into cloud solutions. I plan to stick with the daily learning. It helps that I am already familiar with the material.\n","permalink":"/post/2021-03-21-30-day-to-learn-it/","summary":"\u003cp\u003eHere is an opportunity to learn new skills in 30 days, investing about an hour a day (give or take a few week ends)\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"Microsoft 30 days learn\" loading=\"lazy\" src=\"/images/2021/03/Microsoft30DayLearn.PNG\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://developer.microsoft.com/en-gb/offers/30-days-to-learn-it?ocid=AID3028423_PersonalCSC_Corp_HQ_Blog#segment-2\" title=\"Microsoft 30 days learn\"\u003eMicrosoft 30 days learn\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eI am planning to invest time in these three:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eDevOps Engineer\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDesign and implement DevOps processes and practices.\u003c/li\u003e\n\u003cli\u003eDevelop an instrumentation strategy with logging, telemetry, and monitoring.\u003c/li\u003e\n\u003cli\u003eManage source control with GitHub to foster collaboration and automate build and deployment processes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eAzure Developer\u003c/strong\u003e\u003c/p\u003e","title":"Microsoft's 30 days to learn it"},{"content":"So. Its been a while since my last post. I really should make, posting at regular intervals, a habit. What\u0026rsquo;s my comfortable cadence? I\u0026rsquo;ll try a few things to find what suits me best.\nI\u0026rsquo;ve been following/reading Scott Galloway, some thought provoking insights on life, relationships and wealth\nand listening to Scott Hanselman podcasts, especially this one, where Scott says\n\u0026hellip; I blog twice a week consistently for 20 years. And I podcast every Thursday for the last 15 years, 14 years. And the reason that that works is that I\u0026rsquo;m not doing it five days a week..\nSomething for me to aspire to.\nI\u0026rsquo;ve had my eye on this book for a while Designing Data-Intensive Applications\nThis is just a short note to myself. More soon.\n","permalink":"/post/2021-02-21-whats-the-holdup/","summary":"\u003cp\u003eSo. Its been a while since my last post. I really should make, posting at regular intervals, a habit.\nWhat\u0026rsquo;s my comfortable cadence? I\u0026rsquo;ll try a few things to find what suits me best.\u003c/p\u003e\n\u003cp\u003eI\u0026rsquo;ve been following/reading \u003ca href=\"https://twitter.com/profgalloway\" title=\"Scott Galloway\"\u003eScott Galloway\u003c/a\u003e, some thought provoking insights on life, relationships and wealth\u003c/p\u003e\n\u003cp\u003eand listening to \u003ca href=\"https://hanselminutes.com/719/myself-its-not-weird-at-all\" title=\"myself-its-not-weird-at-all\"\u003eScott Hanselman podcasts\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e, especially this one, where Scott says\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u0026hellip; I blog twice a week consistently for 20 years. And I podcast every Thursday for the last 15 years, 14 years. And the reason that that works is that I\u0026rsquo;m not doing it five days a week..\u003c/p\u003e","title":"What's the holdup ?"},{"content":"I was working on a Web App which uses a SQL database and EntityFramework. The app is hosted in Azure. I spent some time fixing up the csproj file so that the build and release pipelines work correctly i.e. once the code is committed to the repository, a build is kicked off and deployment takes place.\nSo far so good. However on visiting the site I see this error:\nError : The underlying provider failed on Open. Stack Trace : at System.Data.Entity.Core.EntityClient.EntityConnection.Open() at System.Data.Entity.Core.Objects.ObjectContext.EnsureConnection(Boolean shouldMonitorTransactions)\nHmmm. The code runs perfectly locally, where is this error coming from? I updated the web.config and eventually added the connection strings to Azure App Service \u0026gt; Configuration No luck.\nThen I found the Azure App Service \u0026gt; Diagnose and solve problems \u0026gt; Diagnostic Tools \u0026gt; Profiler Then selected the \u0026ldquo;Check Connection String\u0026rdquo;, et voila the error is seen in a web.config under the Views. That saved the day for me. There are a few other tools on that page which I will investigate down the track. For now this was a good find !\n","permalink":"/post/2020-04-15-underlying-provider-failed-on-open/","summary":"\u003cp\u003eI was working on a Web App which uses a SQL database and EntityFramework. The app is hosted in Azure.\nI spent some time fixing up the csproj file so that the build and release pipelines work correctly i.e. once the code is committed to the repository, a build is kicked off and deployment takes place.\u003c/p\u003e\n\u003cp\u003eSo far so good. However on visiting the site I see this error:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eError        : The underlying provider failed on Open.\nStack Trace    : at System.Data.Entity.Core.EntityClient.EntityConnection.Open()\nat System.Data.Entity.Core.Objects.ObjectContext.EnsureConnection(Boolean shouldMonitorTransactions)\u003c/p\u003e","title":"Underlying provider failed on open"},{"content":"New Year\u0026rsquo;s resolutions don\u0026rsquo;t always seem to stick, when you visit them in February. So this year I\u0026rsquo;ve waited till the end of January to make mine. I was inspired by this post The Ultimate Guide to your best year ever which breaks it down real nice. Here are a few gems:\ndecide this will be your best year\u0026hellip;ever. Will you do your life\u0026rsquo;s work (programming) starting this year? adopt a growth mindset, adopt an abundance mindset, adopt a mastery mindset \u0026ldquo;Who do you need to become, to be the kind of person you want to be?\u0026rdquo; \u0026ldquo;Who do you want to be, and what experiences do you want to create?\u0026rdquo; Word for the Year: Epic Daily habits, set Goals and Inspired actions A attitude of Gratitude \u0026ldquo;Don\u0026rsquo;t Let Yesterday Take Up Too Much of Today\u0026rdquo; - Will Rogers What a fantastic post, and it is written by none other than J.D.Meier of Getting Results the Agile Way fame. I purchased that one a while ago.\nAlso this post by Scott Hanselman Advice to my 20 year old self helped especially:\nAvoid drama, in relationships and friends Network your butt off. Talk to everyone nice. Make sure they aren’t transactional networkers Nice people don’t keep score They generously share their network And ask for nothing in return but your professionalism My own catch phrases are:\nSmile Calm Down Let it go Be nice In short order, in 2020 I will focus on getting fitter, study with deliberate practice and become mindful of my work life balance. I\u0026rsquo;ve got plans\u0026hellip;\n","permalink":"/post/2020-01-31-epic-year/","summary":"\u003cp\u003eNew Year\u0026rsquo;s resolutions don\u0026rsquo;t always seem to stick, when you visit them in February. So this year I\u0026rsquo;ve waited till the end of January to make mine. I was inspired by this post \u003ca href=\"http://sourcesofinsight.com/the-ultimate-guide-to-your-best-year-ever/\" title=\"The Ultimate Guide to your best year ever\"\u003eThe Ultimate Guide to your best year ever\u003c/a\u003e which breaks it down real nice. Here are a few gems:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003edecide this will be your best year\u0026hellip;ever. Will you do your life\u0026rsquo;s work (programming) starting this year?\u003c/li\u003e\n\u003cli\u003eadopt a growth mindset, adopt an abundance mindset, adopt a mastery mindset\u003c/li\u003e\n\u003cli\u003e\u0026ldquo;Who do you need to become, to be the kind of person you want to be?\u0026rdquo;\u003c/li\u003e\n\u003cli\u003e\u0026ldquo;Who do you want to be, and what experiences do you want to create?\u0026rdquo;\u003c/li\u003e\n\u003cli\u003eWord for the Year: Epic\u003c/li\u003e\n\u003cli\u003eDaily habits, set Goals and Inspired actions\u003c/li\u003e\n\u003cli\u003eA attitude of Gratitude\u003c/li\u003e\n\u003cli\u003e\u0026ldquo;Don\u0026rsquo;t Let Yesterday Take Up Too Much of Today\u0026rdquo; - Will Rogers\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat a fantastic post, and it is written by none other than J.D.Meier of \u003ca href=\"http://sourcesofinsight.com/getting-results-the-agile-way/\" title=\"Getting Results the Agile Way\"\u003eGetting Results the Agile Way\u003c/a\u003e fame. I purchased that one a while ago.\u003c/p\u003e","title":"Epic year"},{"content":"[Updated 14 Feb 2020] In addition to weight loss and mental clarity, some people have reported being able to reverse type 2 diabetes with a keto lifestyle. My personal benefits have been:\nhigher energy levels mental clarity I have been on this journey since Aug 2016 and have benefitted from non-scale victories.\nTo get started with keto [a low carbohydrate high fat diet], begin by listening to this podcast Getting started. There are over a hundred episodes in this podcast, so take your time and at a minimum, listen to the first 13.\nThere is also plenty of reading to do. Each episodes contains show notes where you can delve deeper into the science.\nWhat do I eat ? I hear you ask.\nIn my view to embrace keto you have to learn to cook for yourself. Here are a few recipes. Scroll down to the bottom for the easier ones, my go-to being the Fathead pizza.\nGot some questions? have a look here https://www.ketogenicforums.com/ or ask me about my experiences. Please consult your doctor as well.\nWelcome to the ketogenic lifestyle.\n","permalink":"/post/2020-01-17-keto/","summary":"\u003cp\u003e\u003cem\u003e[Updated 14 Feb 2020]\u003c/em\u003e In addition to weight loss and mental clarity, some people have reported being able to reverse type 2 diabetes with a keto lifestyle. My personal benefits have been:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ehigher energy levels\u003c/li\u003e\n\u003cli\u003emental clarity\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI have been on this journey since Aug 2016 and have benefitted from \u003ca href=\"https://www.ketogenicforums.com/c/progress/non-scale-victories\"\u003enon-scale victories\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eTo get started with keto [a low carbohydrate high fat diet], begin by listening to this podcast \u003ca href=\"http://2ketodudes.com/show.aspx?episode=1\"\u003eGetting started\u003c/a\u003e. There are over a hundred episodes in this podcast, so take your time and at a minimum, listen to the first 13.\u003c/p\u003e","title":"Keto"},{"content":"For a while, I have been using the Windows bash shell to run the blog locally while I edit and then used the bash shell to commit my changes to Github. I\u0026rsquo;ve now started using VS Code to edit and deploy my blog, all from VS Code. How do I do this?\nLaunch VS Code ( Visual Studio Code) and open up the folder of the blog e.g. D:\\RichardBorges.github.io In the terminal window ( in VSCode ) ensure that you have a wsl terminal ( Windows Subsystem for Linux). I\u0026rsquo;m running Windows 10, i.e. a Windows bash shell. Read more here Type bundle exec jekyll serve in the terminal window and this will build and launch the site locally at http://127.0.0.1:4000. Once you have finished editing, its time to use the \u0026lsquo;Source control\u0026rsquo; tools to add (stage the changes) and commit to git hub. All within VS Code. Commit and push to GitHub. This generates the latest blog post at GitHub ","permalink":"/post/2019-05-27-using-vscode-as-my-ide/","summary":"\u003cp\u003eFor a while, I have been using the Windows bash shell to run the blog locally while I edit and then used the bash shell to commit my changes to Github. I\u0026rsquo;ve now started using VS Code to edit and deploy my blog, all from VS Code. How do I do this?\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eLaunch VS Code ( Visual Studio Code) and open up the folder of the blog e.g. D:\\RichardBorges.github.io\u003c/li\u003e\n\u003cli\u003eIn the terminal window ( in VSCode ) ensure that you have a wsl terminal ( Windows Subsystem for Linux). I\u0026rsquo;m running Windows 10, i.e. a Windows bash shell. Read more \u003ca href=\"https://code.visualstudio.com/docs/editor/integrated-terminal\" title=\"Integrated Terminal\"\u003ehere\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eType\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ebundle exec jekyll serve\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003ein the terminal window and this will build and launch the site locally at http://127.0.0.1:4000.\n\u003cimg alt=\"screenshot\" loading=\"lazy\" src=\"/images/2019/05/vscodeeditor.png\"\u003e\u003c/p\u003e","title":"Using VS Code for editing and publishing"},{"content":"On my DevOps learning journey, I came across this useful resource azuredevopsdemogenerator containing templates with pre-made build and release pipelines. Once the selected project is loaded into your Azure Devops organisation ( I created my own personal organisation there, separate from the work one, as a sandbox in Azure Devops) you can see the prepopulated Boards, Pipelines, Repos etc. You can now build and deploy to your own instance. Bonus: They even have a Parts Unlimited package of \u0026lsquo;The Phoenix Project\u0026rsquo; fame. So if you have read the book, this makes it real. Nice.\n","permalink":"/post/2019-05-25-azuredevopsdemogenerator/","summary":"\u003cp\u003eOn my DevOps learning journey, I came across this useful resource \u003ca href=\"https://azuredevopsdemogenerator.azurewebsites.net\"\u003eazuredevopsdemogenerator\u003c/a\u003e containing templates with pre-made build and release pipelines. Once the selected project is loaded into your Azure Devops organisation ( I created my own personal organisation there, separate from the work one, as a sandbox in Azure Devops) you can see the prepopulated Boards, Pipelines, Repos etc. You can now build and deploy to your own instance.\n\u003cimg alt=\"Generate a prepopulated project into Azure Devops\" loading=\"lazy\" src=\"/images/2019/05/azuredevopsdemogenerator.templates.PNG\"\u003e\n\u003cstrong\u003eBonus\u003c/strong\u003e: They even have a \u003cstrong\u003eParts Unlimited\u003c/strong\u003e package of \u0026lsquo;The Phoenix Project\u0026rsquo; fame. So if you have read the book, this makes it real. Nice.\u003c/p\u003e","title":"Azure Devops Templates"},{"content":"Who would have thought DevOps could be so interesting? I read a version of this about 5 years ago and recently found that there is a Kindle version avaialble. The book is\nThe Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win Kindle Edition by Gene Kim (Author), Kevin Behr (Author), George Spafford (Author) A wonderful read and very relatable.\n","permalink":"/post/2019-05-12-devops-thriller/","summary":"\u003cp\u003eWho would have thought DevOps could be so interesting? I read a version of this about 5 years ago and recently found that there is a Kindle version avaialble.\nThe book is\u003c/p\u003e\n\u003ch4 id=\"the-phoenix-project-a-novel-about-it-devops-and-helping-your-business-win-kindle-edition\"\u003eThe Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win Kindle Edition\u003c/h4\u003e\n\u003ch5 id=\"by-gene-kim-author-kevin-behr-author-george-spafford-author\"\u003eby Gene Kim (Author), Kevin Behr (Author), George Spafford (Author)\u003c/h5\u003e\n\u003cp\u003eA wonderful read and very relatable.\u003c/p\u003e","title":"DevOps Thriller"},{"content":"Read. Ponder. Think. Create.\nBe nice.\n","permalink":"/about/","summary":"\u003cp\u003eRead. Ponder. Think. Create.\u003c/p\u003e\n\u003cp\u003eBe nice.\u003c/p\u003e","title":"About"},{"content":"Macrium Reflect Free Edition to clone an existing disk\nThis helped me immensely, when I added an additional 1TB SSD to my rig.\n","permalink":"/post/2018-11-27-new-ssd/","summary":"\u003cp\u003e\u003ca href=\"https://en.wikipedia.org/wiki/Macrium_Reflect\"\u003eMacrium Reflect Free Edition\u003c/a\u003e to clone an existing disk\u003c/p\u003e\n\u003cp\u003eThis helped me immensely, when I added an additional 1TB SSD to my rig.\u003c/p\u003e","title":"Disk cloning software"},{"content":"These are my notes on upgrading elasticseach from v5.3 to v6.4.2. This was done on Windows Server 2016 with 32GB RAM and 500GB hdd. The source data was about 300GB in size.\nSteps Download elasticsearch + kibana from downloads. After extracting to my local drive, I used NSSM to run these as windows services. You should now be able to visit http://localhost:9200 (elasticsearch) and http://localhost:5601 ( kibana ) Copy across the 5.3 data using robcopy. Install elasticsearch 5.3 ( update elasticsearch.yml ) to run 5.3 at http://localhost:8200 ( as 6.4.2 is running on port 9200) Create the new indices on 6.4.2 Migrate the data from 5.3 to 6.4.2 using reindex Additional resources Upgrade Elasticsearch ","permalink":"/post/2018-10-13-elasticsearch-upgrade/","summary":"\u003cp\u003eThese are my notes on upgrading \u003ca href=\"https://elastic.co\"\u003eelasticseach\u003c/a\u003e from v5.3 to v6.4.2. This was done on Windows Server 2016 with 32GB RAM and 500GB hdd. The source data was about 300GB in size.\u003c/p\u003e\n\u003ch3 id=\"steps\"\u003eSteps\u003c/h3\u003e\n\u003cp\u003e\u003cimg alt=\"elastic.co\" loading=\"lazy\" src=\"/images/2018/10/elastic.co.png\"\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eDownload elasticsearch + kibana from \u003ca href=\"https://www.elastic.co/downloads\"\u003edownloads\u003c/a\u003e. After extracting to my local drive, I used \u003ca href=\"https://nssm.cc/\"\u003eNSSM\u003c/a\u003e to run these as windows services. You should now be able to visit http://localhost:9200 (elasticsearch) and http://localhost:5601 ( kibana )\u003c/li\u003e\n\u003cli\u003eCopy across the 5.3 data using robcopy. Install elasticsearch 5.3 ( update elasticsearch.yml ) to run 5.3 at http://localhost:8200 ( as 6.4.2 is running on port 9200)\u003c/li\u003e\n\u003cli\u003eCreate the new indices on 6.4.2\u003c/li\u003e\n\u003cli\u003eMigrate the data from 5.3 to 6.4.2 using reindex\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"additional-resources\"\u003eAdditional resources\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003eUpgrade \u003ca href=\"https://www.elastic.co/guide/en/elasticsearch/reference/6.4/setup-upgrade.html\"\u003eElasticsearch\u003c/a\u003e\u003c/li\u003e\n\u003c/ol\u003e","title":"Elasticsearch upgrade"},{"content":"Attended NDC sydney and quite enjoyed it. This is a 3 day conference held at the Hilton in Sydney CBD. They even organise a childrens coding camp before the start of the conference. Thats a nice touch.\nAttended quite a few talks over the 3 days.\nThe sessions The ones that stand out for me were\nASP.Net Core 2.1 - the out of the box benefits Using Async-Await correctly in C# Team culture ( e.g. no blame retrospectives ) React + GraphQL + Docker ","permalink":"/post/2018-09-21-ndc-sydney-2018/","summary":"\u003cp\u003eAttended NDC sydney and quite enjoyed it. This is a 3 day conference held at the Hilton in Sydney CBD. They even organise a childrens coding camp before the start of the conference. Thats a nice touch.\u003c/p\u003e\n\u003cp\u003eAttended quite a few talks over the 3 days.\u003c/p\u003e\n\u003ch3 id=\"the-sessions\"\u003eThe sessions\u003c/h3\u003e\n\u003cp\u003eThe ones that stand out for me were\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eASP.Net Core 2.1 - the out of the box benefits\u003c/li\u003e\n\u003cli\u003eUsing Async-Await correctly in C#\u003c/li\u003e\n\u003cli\u003eTeam culture ( e.g. no blame retrospectives )\u003c/li\u003e\n\u003cli\u003eReact + GraphQL + Docker\u003c/li\u003e\n\u003c/ul\u003e","title":"NDC Sydney 2018"},{"content":"I had some binary data in a table in SQL and wanted to save it locally. The data was emails (msg files). I could have done this using powershell and the Invoke-SqlCmd commandlet, but for whatever reason, invoke-sqlcmd refused to work on my machine. After spending a few hours trying to get that to work, I gave up and jumped on stackoverflow to find another solution.\nLinqpad to the rescue I happened on this link Script to save varbinary data to disk which was just the solution I was looking for. Download LinqPad 5 (the free version is fine) and then\n/* This LinqPad script saves data stored in a VARBINARY field to the specified folder. 1. Connect to SQL server and select the correct database in the connection dropdown (top right), the \u0026#39;this\u0026#39; in the C# code 2. Change the Language to C# Program 3. Change \u0026#34;Attachments\u0026#34; to the name of your table that holds the VARBINARY data 4. Change \u0026#34;AttachmentBuffer\u0026#34; to the name of the field that holds the data 5. Change \u0026#34;Id\u0026#34; to the unique identifier field name 6. Change \u0026#34;1090\u0026#34; to the identity of the record you want to save 7. Change the path to where you want to save the file. Make sure you choose the right extension. 8. Think of \u0026#39;ci\u0026#39; in the C# code as a placeholder Notes: Windows 10 may give you \u0026#34;Access Denied\u0026#34; error when trying to save directly to C:\\. Rather save to a subfolder. */ void Main() { var context = this; var query = from ci in context.Attachments where ci.Id == 1090 select ci.AttachmentBuffer ; byte[] result = query.Single().ToArray(); File.WriteAllBytes(@\u0026#34;c:\\DEV\\dumpfile.xlsx\u0026#34;, result); Console.WriteLine(\u0026#34;Done\u0026#34;); } Thanks to SO user Altron Seige for his valuable explanation.\n","permalink":"/post/2018-04-15-download-binary-data-to-file/","summary":"\u003cp\u003eI had some binary data in a table in SQL and wanted to save it locally. The data was emails (msg files). I could have done this using powershell and the Invoke-SqlCmd commandlet, but for whatever reason, invoke-sqlcmd refused to work on my machine. After spending a few hours trying to get that to work, I gave up and jumped on stackoverflow to find another solution.\u003c/p\u003e\n\u003ch3 id=\"linqpad-to-the-rescue\"\u003eLinqpad to the rescue\u003c/h3\u003e\n\u003cp\u003eI happened on this link \u003ca href=\"https://stackoverflow.com/questions/4056050/script-to-save-varbinary-data-to-disk/40520791#40520791\"\u003eScript to save varbinary data to disk\u003c/a\u003e which was just the solution I was looking for. Download \u003ca href=\"https://www.linqpad.net/Download.aspx\"\u003eLinqPad 5\u003c/a\u003e (the free version is fine) and then\u003c/p\u003e","title":"Download binary data to file"},{"content":"To come to grips with react, I completing a few courses on react at PluralSight, which helped me get a better understanding of react.\nI also found the facebook maintained react page worth a visit.\nCreate React App Visit Create React App which contains step by step instructions.\nAdditional resources I was trying to add a react component to an ASP.Net MVC page. This page The Minimal React + Webpack 4 + Babel Setup proved very helpful.\n","permalink":"/post/2018-04-14-learning-react/","summary":"\u003cp\u003eTo come to grips with react, I completing a few courses on react at PluralSight, which helped me get a better understanding of react.\u003c/p\u003e\n\u003cp\u003eI also found the facebook maintained react page worth a visit.\u003c/p\u003e\n\u003ch3 id=\"create-react-app\"\u003eCreate React App\u003c/h3\u003e\n\u003cp\u003eVisit \u003ca href=\"https://github.com/facebook/create-react-app/blob/master/README.md#getting-started\"\u003eCreate React App\u003c/a\u003e which contains step by step instructions.\u003c/p\u003e\n\u003ch3 id=\"additional-resources\"\u003eAdditional resources\u003c/h3\u003e\n\u003cp\u003eI was trying to add a react component to an ASP.Net MVC page. This page  \u003ca href=\"https://www.robinwieruch.de/minimal-react-webpack-babel-setup/\"\u003eThe Minimal React + Webpack 4 + Babel Setup\u003c/a\u003e proved very helpful.\u003c/p\u003e","title":"Learning react"},{"content":"[updated] 13 Oct 2018\nI was finally prodded into action when my wordpress blog site certificate expired.\nUsing a few excellent resources available on the interwebs, I was able to run (generate in jekyll) the site locally on a Windows 10 machine and then push it to github (richardborges.github.io), which hosts for free !\nRunning the site locally. The main steps where 0. Make sure you have Bash on Ubuntu on Windows and have visited jekyll on Windows\nInstall jekyll on Windows 10 bash ( Bash on Ubuntu on Windows ) using instructions at https://jekyllrb.com/docs/windows/ I used my d drive to create a directory for my blog site (appears in mnt in bash) I liked the Cayman theme so downloaded it from github How to run locally ? Open a bash shell window ( not git bash, the desktop app, but bash, the command). You can now mount the drive where your blog is saved (locally) cd /mnt/d/RichardBorges.github.io ==\u0026gt; i.e. my local directory on d drive where the cayman theme has been unzipped 3. bundle exec jekyll serve, this starts up the website locally 4. browse to http://127.0.0.1:4000 5. add new posts 6. rinse and repeat Running the site at richarborges.github.io Commit your local changes to your local github repository. As the site is generated locally by jekyll, I only commit the fully built site to github. The fully build website is found at _site/ In bash shell cd _site/ git add . git commit -m \u0026#34;This is the initial commit of my blog\u0026#34; git remote add origin https://github.com/richardborges/richardborges.github.io.git git push -u origin master If the remote repository ( at github ) has not been setup, check using git remote -v git config --global user.name \u0026#34;richardborges\u0026#34; git config --global user.email \u0026#34;richardborges@company.com\u0026#34; git remote -v push your changes to remote git push -u origin master You should now be able to see your site at richardborges.github.io\nPointing richardborges.net to richardborges.github.io Firstly I added https://github.com/richardborges/richardborges.github.io.git . Go to settings \u0026raquo; custom domain\nThis creates a CNAME file in the remote repository ( remember to pull it to local later on)\nWe need to find the IP address of the remote, so use dig in bash shell\ndig richardborges.github.io 3. Now we need to update our DNS record ( at the the DNS hoster to point to the github.io IP address) Also see Setting up an apex domain 4. Now I can use richardborges.net to visit my blog. Yay.\nThese websites proved invaluable\u0026hellip; Build A Blog With Jekyll And GitHub Pages\nSetting up a Jekyll blog using Windows 10 Bash and hosting on GitHub Pages • Keerat Singh • Aug 5, 2016\nJekyll on Windows\nHow to install Jekyll on Windows 10 with “Windows subsystem for Linux”\nDevelopers can run Bash Shell and user-mode Ubuntu Linux binaries on Windows 10 Windows Subsystem for Linux out of Beta!\nTransform your plain text into static websites and blogs.\nUsing Jekyll as a static site generator with GitHub Pages\nHow-to: Migrating Blog from WordPress to Jekyll, and Host on Github\n","permalink":"/post/2018-01-07-moving-from-wordpress-to-github-pages/","summary":"\u003cp\u003e[updated] 13 Oct 2018\u003c/p\u003e\n\u003cp\u003eI was finally prodded into action when my wordpress blog site certificate expired.\u003c/p\u003e\n\u003cp\u003eUsing a few excellent resources available on the interwebs, I was able to run (generate in jekyll) the site locally on a Windows 10 machine and then push it to github (richardborges.github.io), which hosts for free !\u003c/p\u003e\n\u003ch3 id=\"running-the-site-locally\"\u003eRunning the site locally.\u003c/h3\u003e\n\u003cp\u003eThe main steps where\n0. Make sure you have \u003ca href=\"https://docs.microsoft.com/en-us/windows/wsl/install-win10\"\u003e Bash on Ubuntu on Windows\u003c/a\u003e and have visited \u003ca href=\"https://jekyllrb.com/docs/windows/\"\u003ejekyll on Windows\u003c/a\u003e\u003c/p\u003e","title":"Moving from Wordpress to github pages"},{"content":"I\u0026rsquo;ve been listening to podcasts about electron apps at DotNetRocks (episode 1336 )\nas well as Scott Hanselmans podcast Creating cross-platform Electron apps with Jessica Lord.Both are very informative. Jessica also has an interesting blog post at essential electron. So I picked up a course on Pluralsight by Rob Connery.\nFirst impressions : using node server to create a desktop application was quite new to me and I had to get my head around having a node server running locally to serve up content in a chromium browser. All local.\nWe can create apps for Windows, Mac and Linux. Although I used CSS , Jquery and quite a bit of JavaScript for the node server libraries, I had to stop myself thinking in the web paradigm. This is a desktop app after all and you can use Ctrl+D to debug your JavaScript. You can use file dialog ! Fascinating. I enjoyed using my web development experience to create a windows app.\n","permalink":"/post/2016-08-23-taking-electron-for-a-spin/","summary":"\u003cp\u003eI\u0026rsquo;ve been listening to podcasts about electron apps at \u003ca href=\"https://www.dotnetrocks.com/\"\u003eDotNetRocks\u003c/a\u003e (episode 1336 )\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"DotNetRocks.Electron\" loading=\"lazy\" src=\"/images/2016/08/DotNetRocks.Electron-1024x66.png\" title=\"DotNetRocks.Electron\"\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003eas well as Scott Hanselmans podcast \u003ca href=\"http://www.hanselminutes.com/534/creating-cross-platform-electron-apps-with-jessica-lord\"\u003eCreating cross-platform Electron apps with Jessica Lord\u003c/a\u003e.Both are very informative. Jessica also has an interesting blog post at \u003ca href=\"http://jlord.us/essential-electron/\"\u003eessential electron\u003c/a\u003e. So I picked up a course on Pluralsight by Rob Connery.\u003c/p\u003e\n\u003cp\u003eFirst impressions : using node server to create a desktop application was quite new to me and I had to get my head around having a node server running locally to serve up content in a chromium browser. All local.\u003c/p\u003e","title":"Taking Electron for a spin"},{"content":"I have used an Azure Virtual Machine (Win 2008 Server, standard DS1 1core-3.5GB memory) for this.\nDownload JetBrains TeamCity on the server. I planned to install both the server and the build agent on the one box. This will do for now. I will look at moving the build agent to another server if there is demand. Accepted the default settings during installation.\nI wanted to connect to bitbucket to retrieve the latest source using SSH. I added a new user (called BuildUser) to Bitbucket and added an SSH public key (bit bucket has good documentation on creating SSH keys. I used my bash shell to create these for the BuildUser user). One gotcha was that the Username had to be \u0026lsquo;git\u0026rsquo;.\nI created the build steps:\nInstalling nuget packages\nBuild the VS2015 solution\nTo use the MSBuild, I had to download and install Build tools and install agents for Visual Studio 2015.\nThese [videos](https://www.youtube.com/watch?v=gQAuHWgSJ_o - build Zen Digital) by Zen Digital proved useful.\n","permalink":"/post/2016-08-09-setting-up-ci-with-teamcity/","summary":"\u003cp\u003eI have used an Azure Virtual Machine (Win 2008 Server, standard DS1 1core-3.5GB memory) for this.\u003c/p\u003e\n\u003cp\u003eDownload JetBrains TeamCity on the server. I planned to install both the server and the build agent on the one box. This will do for now. I will look at moving the build agent to another server if there is demand. Accepted the default settings during installation.\u003c/p\u003e\n\u003cp\u003eI wanted to connect to bitbucket to retrieve the latest source using SSH. I added a new user (called BuildUser) to Bitbucket and added an SSH public key (bit bucket has good documentation on creating SSH keys. I used my bash shell to create these for the BuildUser user). One gotcha was that the Username had to be \u0026lsquo;git\u0026rsquo;.\u003c/p\u003e","title":"Setting up CI with TeamCity"},{"content":"The wonderful people at Syncfusion have offered a community license for free which gives you over 650+ controls. Head over here.\nAfter a bit of fiddling using their online documentation, I’ve finally been able to use the chart control in my ASP.Net MVC5 code. The 3 main dlls , I needed of the chart control are (changes to the web.config):\n\u0026lt;pre class=\u0026#34;wp-code-highlight prettyprint linenums:1\u0026#34;\u0026gt;\u0026amp;lt;assemblies\u0026amp;gt; \u0026amp;lt;add assembly=\u0026#34;Syncfusion.EJ, Version=14.2460.0.26, Culture=neutral, PublicKeyToken=3d67ed1f87d44c89\u0026#34; /\u0026amp;gt; \u0026amp;lt;add assembly=\u0026#34;Syncfusion.Linq.Base, Version=14.2460.0.26, Culture=neutral, PublicKeyToken=3d67ed1f87d44c89\u0026#34; /\u0026amp;gt; \u0026amp;lt;add assembly=\u0026#34;Syncfusion.EJ.Mvc, Version=14.2500.0.26, Culture=neutral, PublicKeyToken=3d67ed1f87d44c89\u0026#34; /\u0026amp;gt; \u0026amp;lt;/assemblies\u0026amp;gt; \u0026lt;/pre\u0026gt; To get around a Visual Studio build error, I had to add the following to the web.config\n\u0026lt;pre class=\u0026#34;wp-code-highlight prettyprint linenums:1\u0026#34;\u0026gt;\u0026amp;lt;dependentAssembly\u0026amp;gt; \u0026amp;lt;assemblyIdentity name=\u0026#34;Syncfusion.EJ\u0026#34; culture=\u0026#34;neutral\u0026#34; publicKeyToken=\u0026#34;3d67ed1f87d44c89\u0026#34; /\u0026amp;gt; \u0026amp;lt;bindingRedirect oldVersion=\u0026#34;0.0.0.0-14.2460.0.26\u0026#34; newVersion=\u0026#34;14.2460.0.26\u0026#34; /\u0026amp;gt; \u0026amp;lt;/dependentAssembly\u0026amp;gt; \u0026amp;lt;dependentAssembly\u0026amp;gt; \u0026amp;lt;assemblyIdentity name=\u0026#34;Syncfusion.Linq.Base\u0026#34; culture=\u0026#34;neutral\u0026#34; publicKeyToken=\u0026#34;3d67ed1f87d44c89\u0026#34; /\u0026amp;gt; \u0026amp;lt;bindingRedirect oldVersion=\u0026#34;0.0.0.0-14.2460.0.26\u0026#34; newVersion=\u0026#34;14.2460.0.26\u0026#34; /\u0026amp;gt; \u0026amp;lt;/dependentAssembly\u0026amp;gt; \u0026lt;/pre\u0026gt; And lastly one javascript library, ej.widgets.all.min (8,466 kb), which after using their tool csg, � (for the chart control only) reduced it to (ej.chart.min.js) 909kb.\nIn _layout.cshtml, added:\n\u0026lt;pre class=\u0026#34;wp-code-highlight prettyprint linenums:1\u0026#34;\u0026gt;\u0026amp;lt;script src=\u0026#34;~/Scripts/ej/ej.chart.min.js\u0026#34;\u0026amp;gt;\u0026amp;lt;/script\u0026amp;gt; @RenderSection(\u0026#34;scripts\u0026#34;, required: false) @Html.EJ().ScriptManager() \u0026lt;/pre\u0026gt; and in viewname.cshtml, added\n\u0026lt;pre class=\u0026#34;wp-code-highlight prettyprint linenums:1\u0026#34;\u0026gt;@(Html.EJ().Chart(\u0026#34;presentationReport\u0026#34;)) \u0026lt;/pre\u0026gt; Quite happy with the end-result.\n","permalink":"/post/2016-07-15-third-party-ui-controls-asp-net-mvc-5/","summary":"\u003cp\u003eThe wonderful people at Syncfusion have offered a community license for free which gives you over 650+ controls. Head over \u003ca href=\"https://www.syncfusion.com/products/communitylicense\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eAfter a bit of fiddling using their \u003ca href=\"http://help.syncfusion.com/aspnetmvc/chart/getting-started\"\u003eonline documentation\u003c/a\u003e, I’ve finally been able to use the chart control in my ASP.Net MVC5 code.  The 3 main dlls , I needed of the chart control are (changes to the web.config):\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\u0026lt;pre class=\u0026#34;wp-code-highlight prettyprint linenums:1\u0026#34;\u0026gt;\u0026amp;lt;assemblies\u0026amp;gt;\n      \u0026amp;lt;add assembly=\u0026#34;Syncfusion.EJ, Version=14.2460.0.26, Culture=neutral, PublicKeyToken=3d67ed1f87d44c89\u0026#34; /\u0026amp;gt;\n      \u0026amp;lt;add assembly=\u0026#34;Syncfusion.Linq.Base, Version=14.2460.0.26, Culture=neutral, PublicKeyToken=3d67ed1f87d44c89\u0026#34; /\u0026amp;gt;\n      \u0026amp;lt;add assembly=\u0026#34;Syncfusion.EJ.Mvc, Version=14.2500.0.26, Culture=neutral, PublicKeyToken=3d67ed1f87d44c89\u0026#34; /\u0026amp;gt;\n\u0026amp;lt;/assemblies\u0026amp;gt;\n\u0026lt;/pre\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eTo get around a Visual Studio build error, I had to add the following to the web.config\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\u0026lt;pre class=\u0026#34;wp-code-highlight prettyprint linenums:1\u0026#34;\u0026gt;\u0026amp;lt;dependentAssembly\u0026amp;gt;\n     \u0026amp;lt;assemblyIdentity name=\u0026#34;Syncfusion.EJ\u0026#34; culture=\u0026#34;neutral\u0026#34; publicKeyToken=\u0026#34;3d67ed1f87d44c89\u0026#34; /\u0026amp;gt;\n     \u0026amp;lt;bindingRedirect oldVersion=\u0026#34;0.0.0.0-14.2460.0.26\u0026#34; newVersion=\u0026#34;14.2460.0.26\u0026#34; /\u0026amp;gt;\n\u0026amp;lt;/dependentAssembly\u0026amp;gt;\n\u0026amp;lt;dependentAssembly\u0026amp;gt;\n    \u0026amp;lt;assemblyIdentity name=\u0026#34;Syncfusion.Linq.Base\u0026#34; culture=\u0026#34;neutral\u0026#34; publicKeyToken=\u0026#34;3d67ed1f87d44c89\u0026#34; /\u0026amp;gt;\n    \u0026amp;lt;bindingRedirect oldVersion=\u0026#34;0.0.0.0-14.2460.0.26\u0026#34; newVersion=\u0026#34;14.2460.0.26\u0026#34; /\u0026amp;gt;\n\u0026amp;lt;/dependentAssembly\u0026amp;gt;\n\u0026lt;/pre\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eAnd lastly one javascript library, ej.widgets.all.min (8,466 kb), which after using their tool \u003ca href=\"http://csg.syncfusion.com/\"\u003ecsg\u003c/a\u003e, � (for the chart control only) reduced it to (ej.chart.min.js) 909kb.\u003c/p\u003e\n\u003cp\u003eIn _layout.cshtml, added:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\u0026lt;pre class=\u0026#34;wp-code-highlight prettyprint linenums:1\u0026#34;\u0026gt;\u0026amp;lt;script src=\u0026#34;~/Scripts/ej/ej.chart.min.js\u0026#34;\u0026amp;gt;\u0026amp;lt;/script\u0026amp;gt;    \n@RenderSection(\u0026#34;scripts\u0026#34;, required: false)    \n@Html.EJ().ScriptManager()\n\u0026lt;/pre\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eand in viewname.cshtml, added\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\u0026lt;pre class=\u0026#34;wp-code-highlight prettyprint linenums:1\u0026#34;\u0026gt;@(Html.EJ().Chart(\u0026#34;presentationReport\u0026#34;))\n\u0026lt;/pre\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e","title":"Third party UI controls - ASP.Net MVC 5"},{"content":"Here is my development setup list of tools.\nVS 2015 community edition Jet Brains Resharper ( paid ) Productivity Power Tools 2015 (free plugin to VS2015) Web Essentials 2015.5 (free plugin for VS2015) automapper.org bootbox.js make your pop-over front and centre. Bootbox.js is a small JavaScript library which allows you to create programmatic dialog boxes using Bootstrap modals, without having to worry about creating, managing or removing any of the required DOM elements or JS event handlers. animate.css for nice bouncy effects Templating engine underscore.js momentjs.com moment.js library to format date time in javascript Less to css or use http://css2less.co for legacy css to less conversion (makes my css� code clearner in my VS project). Bootstrap , input group , components -\u0026gt; search button to the right of the text box Organize your javascript library http://requirejs.org Dependency Injection library: NinJect.MVC5 ver: 3.2.1.0 Use convention over configuration PM\u0026gt;install-package Ninject.extensions.conventions Unit Testing tools (add to Test project): Moq PM\u0026gt; install-package moq -version:4.2.1510.2205 Unit Testing tools (add to Test project): FluentAssertions PM\u0026gt; install-package FluentAssertions -version:3.3.0 Unit Testing a repository. google.com.au search for \u0026lsquo;mock dbset\u0026rsquo; to get code from MSDN. https://msdn.microsoft.com/en-us/library/dn314429.aspx. Use that code to populate my DBSet for testing. Integration Test: (Integration Test project) use nUnit because it has a feature to initialization databases that MSTest does not have.\nPM\u0026gt; install-package nunit -version:2.6.3 DotCover by JetBrains - to find how much of our code is covered by our tests ","permalink":"/post/2016-07-01-my-setup-and-tools-july-2016/","summary":"\u003cp\u003eHere is my development setup list of tools.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVS 2015 community edition\u003c/li\u003e\n\u003cli\u003eJet Brains Resharper ( paid )\u003c/li\u003e\n\u003cli\u003eProductivity Power Tools 2015 (free plugin to VS2015)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://visualstudiogallery.msdn.microsoft.com/ee6e6d8c-c837-41fb-886a-6b50ae2d06a2\"\u003eWeb Essentials\u003c/a\u003e 2015.5 (free plugin for VS2015)\u003c/li\u003e\n\u003cli\u003eautomapper.org\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://bootboxjs.com/\"\u003ebootbox.js\u003c/a\u003e make your pop-over front and centre. Bootbox.js is a small JavaScript library which allows you to create programmatic dialog boxes using Bootstrap modals, without having to worry about creating, managing or removing any of the required DOM elements or JS event handlers.\u003c/li\u003e\n\u003cli\u003eanimate.css for nice bouncy effects\u003c/li\u003e\n\u003cli\u003eTemplating engine \u003ca href=\"https://underscorejs.org\" title=\"underscore.js\"\u003eunderscore.js\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emomentjs.com moment.js library to format date time in javascript\u003c/li\u003e\n\u003cli\u003eLess to css or use \u003ca href=\"http://css2less.co\"\u003ehttp://css2less.co\u003c/a\u003e for legacy css to less conversion (makes my css� code clearner in my VS project).\u003c/li\u003e\n\u003cli\u003eBootstrap , input group , components -\u0026gt; search button to the right of the text box\u003c/li\u003e\n\u003cli\u003eOrganize your javascript library \u003ca href=\"http://requirejs.org\"\u003ehttp://requirejs.org\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDependency Injection library: NinJect.MVC5 ver: 3.2.1.0\u003c/li\u003e\n\u003cli\u003eUse convention over configuration PM\u0026gt;install-package Ninject.extensions.conventions\u003c/li\u003e\n\u003cli\u003eUnit Testing tools (add to Test project): Moq PM\u0026gt; install-package moq -version:4.2.1510.2205\u003c/li\u003e\n\u003cli\u003eUnit Testing tools (add to Test project): FluentAssertions PM\u0026gt; install-package FluentAssertions -version:3.3.0\u003c/li\u003e\n\u003cli\u003eUnit Testing a repository. google.com.au search for \u0026lsquo;mock dbset\u0026rsquo; to get code from MSDN.  \u003ca href=\"https://msdn.microsoft.com/en-us/library/dn314429.aspx\"\u003ehttps://msdn.microsoft.com/en-us/library/dn314429.aspx\u003c/a\u003e. Use that code to populate my DBSet for testing.\u003c/li\u003e\n\u003cli\u003eIntegration Test: (Integration Test project) use nUnit because it has a feature to initialization databases that MSTest does not have.\u003cbr\u003e\n\u003ccode\u003ePM\u0026gt; install-package nunit -version:2.6.3\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDotCover by JetBrains - to find how much of our code is covered by our tests\u003c/li\u003e\n\u003c/ul\u003e","title":"My Setup and Tools - July 2016"},{"content":"Recently while creating a unit test (MSTest VS2015) to test my repository pattern, I hit a snag. Despite having defined the database in my app.config of the Test project, I could not locate my newly created database.\nTurns out I needed to initialise my db in the test class , like so:\n\u0026lt;pre class=\u0026#34;wp-code-highlight prettyprint linenums:1\u0026#34;\u0026gt;// Declare this property - this is set by MSTest public TestContext TestContext { get; set; } // In test initialization [ClassInitialize] public static void SetUp(TestContext context) { AppDomain.CurrentDomain.SetData(\u0026#34;DataDirectory\u0026#34;, Path.Combine(context.TestDeploymentDir, string.Empty)); }\u0026lt;/pre\u0026gt; Saw this useful tip at Stackoverflow, which also talks about the differences between sdf (Server Explorer does not show table schema) and mdf (Server Explorer displays table schema).\nAlso came across this interesting article on locating your LocalDB.\n","permalink":"/post/2016-06-10-testing-testing-where-is-my-database/","summary":"\u003cp\u003eRecently while creating a unit test (MSTest VS2015) to test my repository pattern, I hit a snag. Despite having defined the database in my app.config of the Test project, I could not locate my newly created database.\u003c/p\u003e\n\u003cp\u003eTurns out I needed to initialise my db in the test class , like so:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\u0026lt;pre class=\u0026#34;wp-code-highlight prettyprint linenums:1\u0026#34;\u0026gt;// Declare this property - this is set by MSTest\n public TestContext TestContext { get; set; }\n\n // In test initialization \n [ClassInitialize]\n public static void SetUp(TestContext context)\n {\n AppDomain.CurrentDomain.SetData(\u0026#34;DataDirectory\u0026#34;, Path.Combine(context.TestDeploymentDir, string.Empty));\n }\u0026lt;/pre\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eSaw this useful tip at \u003ca href=\"http://stackoverflow.com/questions/12450515/when-to-use-mdf-and-when-sdf\"\u003eStackoverflow\u003c/a\u003e, which also talks about the differences between sdf (Server Explorer does not show table schema) and mdf (Server Explorer displays table schema).\u003c/p\u003e","title":"Testing Testing - where is my database?"},{"content":"I\u0026rsquo;m attending 🙂\nDDD Sydney\n[Update] DDD Sydney was fun. Quite a bit of learning , caught up with old friends and met new people. The organiser Aaron Powell has written about this experience with organising DDD Sydney.\n","permalink":"/post/2016-05-25-ddd-sydney-2016/","summary":"\u003cp\u003eI\u0026rsquo;m attending 🙂\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"DDD Sydney\" loading=\"lazy\" src=\"/images/2016/05/DDDSydney2016-300x105.png\" title=\"DDD Sydney 2016\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://dddsydney.com.au/\"\u003eDDD Sydney\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e[Update] DDD Sydney was fun. Quite a bit of learning , caught up with old friends and met new people. The organiser Aaron Powell has \u003ca href=\"http://www.aaron-powell.com//posts/2016-06-01-dddsydney-what-i-learnt-organising-the-conference.html\"\u003ewritten\u003c/a\u003e about this experience with organising DDD Sydney.\u003c/p\u003e","title":"DDD Sydney 2016"},{"content":"what3words.com\nFrom their website\nwhat3words is a global grid of 57 trillion 3mx3m squares. Each square has a 3 word address that can be communicated quickly, easily and with no ambiguity.� Our geocoder turns geographic coordinates into these 3 word addresses and vice-versa.� Using words means non-technical people can accurately find any location and communicate it more quickly, more easily and with less ambiguity than any other system like street addresses, postcodes, latitude \u0026amp; longitude or mobile short-links. e.g. gazed.across.like\ngazed.across.like\nInteresting concept, however I wonder if the takeup is \u0026lsquo;global\u0026rsquo;. Need to find more!.\n","permalink":"/post/2016-05-25-what3words-com-an-interesting-take-on-finding-a-location/","summary":"\u003cp\u003ewhat3words.com\u003c/p\u003e\n\u003cp\u003eFrom their website\u003c/p\u003e\n\u003cp\u003ewhat3words is a global grid of 57 trillion 3mx3m squares. Each square has a 3 word address that can be communicated quickly, easily and with no ambiguity.� Our geocoder turns geographic coordinates into these 3 word addresses and vice-versa.� Using words means non-technical people can accurately find any location and communicate it more quickly, more easily and with less ambiguity than any other system like street addresses, postcodes, latitude \u0026amp; longitude or mobile short-links. e.g. gazed.across.like\u003c/p\u003e","title":"what3words.com : an interesting take on finding a location"},{"content":"Recently I used getglimpse to have a look at diagnostics information. Its available as a NuGet package. Helpful information in addition to using F12 and other tools.\n","permalink":"/post/2016-04-01-open-source-diagnostics-platform-of-the-web/","summary":"\u003cp\u003eRecently I used \u003ca href=\"http://getglimpse.com/\"\u003egetglimpse\u003c/a\u003e to have a look at diagnostics information. Its available as a NuGet package. Helpful information in addition to using F12 and other tools.\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"GlimpseEnabled\" loading=\"lazy\" src=\"/images/2016/04/GlimpseEnabled-300x180.png\"\u003e\u003c/p\u003e","title":"Open source diagnostics platform of the web"},{"content":"I am still coming to grips with the power of SignalR. In this demo (from PluralSight.com “ASP.NET MVC 5 Fundamentals ” by Scott Allen), performance monitoring data is streamed to a browser client. SignalR is used in ASP.Net with MVC5. In this case windows authentication was used to authenticate the user on the client (understandably so). http://smoothiecharts.org/ javascript was used to display the graphs. All very nice.\n","permalink":"/post/2016-04-01-using-signalr-to-stream-performance-data/","summary":"\u003cp\u003eI am still coming to grips with the power of SignalR. In this demo (from PluralSight.com “ASP.NET MVC 5 Fundamentals ” by Scott Allen), performance monitoring data is streamed to a browser client. SignalR is used in ASP.Net with MVC5. In this case windows authentication was used to authenticate the user on the client (understandably so). \u003ca href=\"http://smoothiecharts.org/\"\u003ehttp://smoothiecharts.org/\u003c/a\u003e javascript was used to display the graphs. All very nice.\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"PerfmonSignalR\" loading=\"lazy\" src=\"/images/2016/04/PerfmonSignalR-300x251.png\"\u003e\u003c/p\u003e","title":"Using SignalR to stream performance data"},{"content":"Been reading the wonderful tips and tricks in C# by Jason Roberts , bought to you by LeanPub .\nAlso created a web project using signalR and Akka.net following the Jason Roberts course in Pluralsight. SignalR takes care of the communications between the (browser) client and (web) server, while Akka.net takes care of the (heavy) message processing. All very fascinating and works well under load.\n","permalink":"/post/2016-03-28-getting-deeper-into-c-and-akka-net/","summary":"\u003cp\u003eBeen reading the wonderful tips and tricks in C# by Jason Roberts , bought to you by \u003ca href=\"https://leanpub.com/book_search?search=Jason+Roberts\"\u003eLeanPub\u003c/a\u003e .\u003c/p\u003e\n\u003cp\u003eAlso created a web project using signalR and Akka.net following the Jason Roberts course in \u003ca href=\"%22https://www.pluralsight.com/courses/\"\u003ePluralsight\u003c/a\u003e. SignalR takes care of the communications between the (browser) client and (web) server, while Akka.net takes care of the (heavy) message processing. All very fascinating and works well under load.\u003c/p\u003e","title":"Getting deeper into C# and Akka.net"},{"content":"For testing APIs, I use a tool called Postman. Its free and available on the Chrome Webstore. Install and launch the app. To test an api call which requires authentication, turn on the Interceptor in Postman\nThis will prompt for a plugin to be installed in Chrome.\nOnce you do that, login to your application in Chrome. The login credentials will be passed on to Postman and you can proceed with the API call testing.\n","permalink":"/post/2016-03-18-supplying-credentials-for-an-api-call/","summary":"\u003cp\u003eFor testing APIs, I use a tool called Postman. Its free and available on the \u003ca href=\"https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en\"\u003eChrome Webstore\u003c/a\u003e. Install and launch the app. To test an api call which requires authentication, turn on the Interceptor in Postman\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"Postman.Interceptor\" loading=\"lazy\" src=\"/images/2016/03/Postman.Interceptor-300x98.png\"\u003e\u003c/p\u003e\n\u003cp\u003eThis will prompt for a plugin to be installed in Chrome.\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"Chrome.Interceptor\" loading=\"lazy\" src=\"/images/2016/03/Chrome.Interceptor-300x11.png\"\u003e\u003c/p\u003e\n\u003cp\u003eOnce you do that, login to your application in Chrome. The login credentials will be passed on to Postman and you can proceed with the API call testing.\u003c/p\u003e","title":"Supplying credentials for an API call"},{"content":"From http to https.\nToday I went from here (http): to (https:)\nThanks to Troy Hunt in providing the instructions. That post was written in Sep 2013. I had to conduct a few trial and errors to get https working for my site.\nBackground: My blog ( richardborges.net ) is hosted on Azure site (richardborgesblog.azurewebsites.net). I have pointed richardborgesblog.azurewebsites.net to richardborges.net. Visit the excellent PluralSight course by Troy Hunt on how to do this.\nI have used startssl.com to obtain the certificate for richardborges.net. I used the free option. Firstly create a login. Startssl.com will ask you to verify yourself by emailing you a verification code. Use the verification code to generate a client certificate for your browser and import into your browser. ( In \u0026gt; google chrome , I used the import certificates option in advanced settings). Once that is done revisit startssl.com and click on authenticate.\nTo create a new certificate, I used the certification wizard: Next, I validated the domain (a verification code was sent by startsll.com to my domain email address.)\nI then used the PKI system to generate the private key. Saved that password :).\nThe submit button then generated a private key. I downloaded Private Key as ssl.key.\nOnce that was done, I created the certificate, which was issued immediately.\nI download the zip (richardborges.net.zip) file which containted the certificate, the intermediate certificate and the root CA certificate. There is also an option to retrieve the issued certificate at “Tool Box” – “Certificate List” .\nNext I generated the pfx (Microsoft Azure requires a pfx file) file using the Tool Box. Used the same password as one for the Private Key. Pasted the contents of ssl.key in the private key text box and the content of “2_richardborges.net.cert” in the certificate text box.\nThis generated the PFX file, which I downloaded and the used in Microsoft Azure portal, under custom domains and ssl.\nThat’s it. The certificate is valid for one year. Thank you startSSL.com.\n[Update] : Images were not being displayed in Google Chrome under https (and rightly so, however IE11 played along). Updated Settings in WordPress general settings :\n","permalink":"/post/2016-02-10-how-i-went-from-http-to-https/","summary":"\u003cp\u003eFrom \u003cstrong\u003ehttp\u003c/strong\u003e to \u003cem\u003e\u003cstrong\u003ehttps\u003c/strong\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003cp\u003eToday I went from here (http):\n\u003cimg alt=\"no cert\" loading=\"lazy\" src=\"/images/2016/02/http.richardborges.net_.png\"\u003e\u003c/p\u003e\n\u003cp\u003eto (https:)\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"https\" loading=\"lazy\" src=\"/images/2016/02/https.richardborges.net_.png\"\u003e\u003c/p\u003e\n\u003cp\u003eThanks to Troy Hunt in providing the \u003ca href=\"%5Bhttp://www.troyhunt.com/2013/09/the-complete-guide-to-loading-free-ssl.html\"\u003einstructions\u003c/a\u003e. That post was written in Sep 2013. I had to conduct a few trial and errors to get https working for my site.\u003c/p\u003e\n\u003ch3 id=\"background\"\u003eBackground:\u003c/h3\u003e\n\u003cp\u003eMy blog ( richardborges.net ) is hosted on Azure site (richardborgesblog.azurewebsites.net). I have pointed richardborgesblog.azurewebsites.net to richardborges.net. Visit the excellent PluralSight course by Troy Hunt on how to do this.\u003c/p\u003e","title":"How I went from http to https"},{"content":"Troy Hunt very informative article on how to load a free SSL certificate onto your Azure website. Thank you Troy. Written in 2013, but still relevant.\n","permalink":"/post/2016-02-08-ssl-certificate-for-an-azure-website/","summary":"\u003cp\u003e\u003ca href=\"http://www.troyhunt.com/\"\u003eTroy Hunt\u003c/a\u003e very informative article on how to load a \u003ca href=\"http://www.troyhunt.com/2013/09/the-complete-guide-to-loading-free-ssl.html\"\u003efree SSL certificate onto your Azure website\u003c/a\u003e.\nThank you Troy. Written in 2013, but still relevant.\u003c/p\u003e","title":"SSL certificate for an Azure website"},{"content":"Get Stuff Done !\nGot a whole lot of \u0026ldquo;to-dos\u0026rdquo; on my plate, covering : personal development, career growth, fulfilling some long outstanding dreams. amongst others. How exciting. Its going to be fun.\n","permalink":"/post/2016-02-08-year-2016/","summary":"\u003cp\u003eGet Stuff Done !\u003c/p\u003e\n\u003cp\u003eGot a whole lot of \u0026ldquo;to-dos\u0026rdquo; on my plate, covering : personal development, career growth, fulfilling some long outstanding dreams. amongst others. How exciting. Its going to be fun.\u003c/p\u003e","title":"Year 2016"},{"content":"With all the different frameworks to be found for Web development, I came across this top-must-know-frameworks-for-net-web-developers (Ugo Lattanzi), by Ugo Lattanzi, which offers a good summary. The ASP.MVC link therein links on to free PluralSight courses. Good learning. BTW I have re-newed with Pluralsight. Great value for money IMHO.\n","permalink":"/post/2014-07-02-frameworks-for-net-web-developers/","summary":"\u003cp\u003eWith all the different frameworks to be found for Web development, I came across this \u003ca href=\"http://tostring.it/2014/06/30/top-must-know-frameworks-for-net-web-developers/\" title=\"top-must-know-frameworks-for-net-web-developers (Ugo Lattanzi)\"\u003etop-must-know-frameworks-for-net-web-developers (Ugo Lattanzi)\u003c/a\u003e, by Ugo Lattanzi, which offers a good summary. The ASP.MVC link therein links on to free PluralSight courses. Good learning. BTW I have re-newed with Pluralsight. Great value for money IMHO.\u003c/p\u003e","title":"Frameworks for .Net Web developers"},{"content":"Reading about Roy Osherove\u0026rsquo;\u0026rsquo;s views on Development Team Leadership. Quite interesting.\n","permalink":"/post/2014-06-26-17-team-leadership/","summary":"\u003cp\u003eReading about Roy Osherove\u0026rsquo;\u0026rsquo;s views on \u003ca href=\"http://5whys.com/\"\u003eDevelopment Team Leadership\u003c/a\u003e. Quite interesting.\u003c/p\u003e","title":"Team Leadership"},{"content":"Inspired by ASP.Net MVC, Silicon Beach Sydney, Udemy and Guitar Online!\nMicrosoft 30 days learn\nAlso this speech by Tim Minchin UWA Address (2013) - YouTube\n","permalink":"/post/2014-05-27-what-else-is-new-today/","summary":"\u003cp\u003eInspired by ASP.Net MVC, Silicon Beach Sydney, Udemy and Guitar Online!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://developer.microsoft.com/en-gb/offers/30-days-to-learn-it?ocid=AID3028423_PersonalCSC_Corp_HQ_Blog#segment-2\"\u003eMicrosoft 30 days learn\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eAlso this speech by \u003ca href=\"http://www.youtube.com/watch?v=yoEezZD71sc\u0026amp;feature=kp\"\u003eTim Minchin UWA Address (2013) - YouTube\u003c/a\u003e\u003c/p\u003e","title":"What else is new today?"}]