I subscribe to many podcasts, you can see the list as it was in 2015 here: Developer podcasts v2 but I thought I would start to keep a weekly log of the episodes that I found interesting or useful in some way.
[Arrested DevOps] Finding Signal In The Noise - modern monitoring, alerting, event streams https://www.arresteddevops.com/finding-signal-in-the-noise/
[yow nights 2016] Event sourcing, Martin Fowler https://www.youtube.com/watch?v=aweV9FLTZkU
[yow nights 2016] Infrastructure as code, Martin Fowler https://www.youtube.com/watch?v=ueAef9tNUck
[Google tech talks] Mary Poppendick the role of management https://www.youtube.com/watch?v=ypEMdjslEOI
[Focus 53] Time Management Tips - No More Excuses http://focus53.libsyn.com/f53-017-time-management-tips-no-more-excuses
[Focus 53] Strategies For Letting Go of Failures & Issues http://focus53.libsyn.com/f53-007-strategies-for-letting-go-of-failures-issues#AzMW0hsBWR4VcfSI.99
[Blinkist] How To Maximize Productivity With Mini-Habits https://www.blinkist.com/magazine/posts/maximize-productivity-mini-habits
[Tim Ferriss] The Truth About 'Homeopathic' Medicine http://fourhourworkweek.com/2014/08/19/homeopathic-medicine/
Sharing knowledge is like lighting a candle from another's flame, it does not cause that flame to burn any less brightly.
Sunday, 26 June 2016
Monday, 20 June 2016
Damo's Podcast Highlights 2016 #24
I subscribe to many podcasts, you can see the list as it was in 2015 here: Developer podcasts v2 but I thought I would start to keep a weekly log of the episodes that I found interesting or useful in some way.
[Soft Skills Engineering] Negotiating offers and dealing with an oblivious boss http://podplayer.net/#/?id=15678547
[Alberto Brandolini] Event Storming https://www.youtube.com/watch?v=veTVAN0oEkQ
[Xamarin Evolve 2016] 5 Soft Skills Every Software Developer Should Know https://www.youtube.com/watch?v=cVC3DQvAAIA
[DevOps Cafe] The changing role of Operations and ChatOps http://devopscafe.org/show/2016/6/8/devops-cafe-episode-67-mark-imbriaco.html
[Agile.Fm] Scrum at its 21st birthday http://www.incrementor.com/agilefm/dave-west/
[Soft Skills Engineering] Negotiating offers and dealing with an oblivious boss http://podplayer.net/#/?id=15678547
[Alberto Brandolini] Event Storming https://www.youtube.com/watch?v=veTVAN0oEkQ
[Xamarin Evolve 2016] 5 Soft Skills Every Software Developer Should Know https://www.youtube.com/watch?v=cVC3DQvAAIA
[DevOps Cafe] The changing role of Operations and ChatOps http://devopscafe.org/show/2016/6/8/devops-cafe-episode-67-mark-imbriaco.html
[Agile.Fm] Scrum at its 21st birthday http://www.incrementor.com/agilefm/dave-west/
- First 1/3 is interesting about the Issues commonly seen with scrum implementations
Tuesday, 14 June 2016
Damo's Podcast Highlights 2016 #23
I subscribe to many podcasts, you can see the list as it was in 2015 here: Developer podcasts v2 but I thought I would start to keep a weekly log of the episodes that I found interesting or useful in some way.
[Mastering business analysis] Slices of Big Truths http://masteringbusinessanalysis.com/mba075-slices-big-truths/
[Agile Weekly Crew] Design Thinking with Jeff Patton http://integrumtech.com/2012/07/episode-67-design-thinking-with-jeff-patton/
[Jeff Patton] Story mapping https://www.youtube.com/watch?v=AorAgSrHjKM
Story Mapping Quick Reference - Jeff Patton & Associates http://jpattonassociates.com/story-mapping-quick-ref/
[Mastering business analysis] User Story Mapping with Jeff Patton http://masteringbusinessanalysis.com/episode-016-user-story-mapping-with-jeff-patton/
[Scrum master toolbox] a Systems Thinking horror story http://www.scrum-master-toolbox.com/2016/06/podcast/vasco-duarte-and-tim-bourguignon-tell-a-systems-thinking-horror-story/
[Mastering business analysis] Slices of Big Truths http://masteringbusinessanalysis.com/mba075-slices-big-truths/
[Agile Weekly Crew] Design Thinking with Jeff Patton http://integrumtech.com/2012/07/episode-67-design-thinking-with-jeff-patton/
[Jeff Patton] Story mapping https://www.youtube.com/watch?v=AorAgSrHjKM
Story Mapping Quick Reference - Jeff Patton & Associates http://jpattonassociates.com/story-mapping-quick-ref/
[Mastering business analysis] User Story Mapping with Jeff Patton http://masteringbusinessanalysis.com/episode-016-user-story-mapping-with-jeff-patton/
[Scrum master toolbox] a Systems Thinking horror story http://www.scrum-master-toolbox.com/2016/06/podcast/vasco-duarte-and-tim-bourguignon-tell-a-systems-thinking-horror-story/
[The Tim Ferriss Show] The Choice-Minimal Lifestyle: 6 Formulas for More Output and Less Overwhelm
http://fourhourworkweek.com/2008/02/06/the-choice-minimal-lifestyle-6-formulas-for-more-output-and-less-overwhelm/The paradox of choice
- The more options you consider the more regret you will have (buyers regret)
- The more options you encounter the less fulfilling the final outcome will be
The choice minimal lifestyle
- Considering options cost attention that can't be spent on action (sense of overwhelm)
- Attention is necessary for productivity and appreciation
Principles
- Set rules to automate decision making
- Don’t provoke deliberation until you can take action
- Don’t postpone decisions just to avoid uncomfortable conversations
- Learn to make non-fatal or non-reversible decisions quickly (Set time limits for decision and options, set financial thresholds)
- Decision fatigue is a thing (we all have a limited amount of decision making power)
- Don’t strive for variation and thus increased options when it is not needed (routine routine routine, daily rituals (book))
- Embrace routine, remove decision making from what you can
- Nutrition vs enjoying food
- exercise vs enjoyment sport
- Regret is past tense decision making
- Stop making complaints (21 day no complaint experiment)
- Remove wasted past tense deliberation
Wednesday, 8 June 2016
Damo's Podcast Highlights 2016 #22
I subscribe to many podcasts, you can see the list as it was in 2015 here: Developer podcasts v2 but I thought I would start to keep a weekly log of the episodes that I found interesting or useful in some way.
[Domain Driven Design Europe] Vaughn Vernon: Challenges in Software Development of Today https://www.youtube.com/watch?v=4UZZjyQDgT8
[On Books] The clock of the long now http://castig.org/the-clock-of-the-long-now-by-stewart-brand/
[Continuous Discussions] CD Automation https://electric-cloud.com/blog/2016/04/continuous-discussions-c9d9-podcast-episode-39-cd-automation/
[Mastering Business Analysis] Lean Business Analysis http://masteringbusinessanalysis.com/mba074-lean-business-analysis/
Having a Lean mindset helps us to avoid some anti-patterns that lead to waste. These eight forms of waste are:
[Domain Driven Design Europe] Vaughn Vernon: Challenges in Software Development of Today https://www.youtube.com/watch?v=4UZZjyQDgT8
[On Books] The clock of the long now http://castig.org/the-clock-of-the-long-now-by-stewart-brand/
[Continuous Discussions] CD Automation https://electric-cloud.com/blog/2016/04/continuous-discussions-c9d9-podcast-episode-39-cd-automation/
[Mastering Business Analysis] Lean Business Analysis http://masteringbusinessanalysis.com/mba074-lean-business-analysis/
Having a Lean mindset helps us to avoid some anti-patterns that lead to waste. These eight forms of waste are:
- Unfinished work – Analysis or requirements completed but not implemented
- Unnecessary features – Features customers don’t need or want
- Silos and hand-offs – Working without a shared understanding and transitioning work items
- Unnecessary processes – Steps that don’t add value
- Context switching – Moving from one task to another without focus
- Waiting – Delays due to waiting for an answer or availability
- Rework – Work that needs to be done over
- Knowledge hording – Keeping knowledge to yourself
- 3-step productivity system that gives him perfect memory and allows him to always know what to do next.
Tuesday, 31 May 2016
Damo's Podcast Highlights 2016 #21
I subscribe to many podcasts, you can see the list as it was in 2015 here: Developer podcasts v2 but I thought I would start to keep a weekly log of the episodes that I found interesting or useful in some way.
[This Agile Life 109] Fallacies of Software Developers - http://www.thisagilelife.com/109/
[On Books] Episode 15 - How to Learn Anything Fast - http://castig.org/the-first-20-hours-by-josh-kaufman/
[On Books] Episode 18 - Growth Mindset vs fixed mindset - http://castig.org/growth-mindset-vs-fixed-mindset/
[RunAs Radio 473] Hacking a Country with Troy Hunt - http://runasradio.com/Shows/Show/473
[Scrum Master Toolbox Podcast] The role of retrospectives on the path to success - http://www.scrum-master-toolbox.com/2016/05/podcast/allison-pollard-on-the-role-of-retrospectives-to-get-us-on-the-path-to-success/
[Continuous Discussions 41] Creating an Internal Dev/Test Cloud - https://electric-cloud.com/blog/2016/05/key-takeaways-continuous-discussions-c9d9-episode-41-creating-internal-devtest-cloud/
[Freakonomics Radio] How to Be Tim Ferriss - http://freakonomics.com/podcast/tim-ferriss/
[Software Engineering Radio 23] The role of software architecture Pt1. - http://www.se-radio.net/2006/07/episode-23-architecture-pt-1/
[This Agile Life 109] Fallacies of Software Developers - http://www.thisagilelife.com/109/
[On Books] Episode 15 - How to Learn Anything Fast - http://castig.org/the-first-20-hours-by-josh-kaufman/
[On Books] Episode 18 - Growth Mindset vs fixed mindset - http://castig.org/growth-mindset-vs-fixed-mindset/
[RunAs Radio 473] Hacking a Country with Troy Hunt - http://runasradio.com/Shows/Show/473
[Scrum Master Toolbox Podcast] The role of retrospectives on the path to success - http://www.scrum-master-toolbox.com/2016/05/podcast/allison-pollard-on-the-role-of-retrospectives-to-get-us-on-the-path-to-success/
[Continuous Discussions 41] Creating an Internal Dev/Test Cloud - https://electric-cloud.com/blog/2016/05/key-takeaways-continuous-discussions-c9d9-episode-41-creating-internal-devtest-cloud/
[Freakonomics Radio] How to Be Tim Ferriss - http://freakonomics.com/podcast/tim-ferriss/
[Software Engineering Radio 23] The role of software architecture Pt1. - http://www.se-radio.net/2006/07/episode-23-architecture-pt-1/
Tuesday, 24 May 2016
Damo's Podcast Highlights 2016 #20
I subscribe to many podcasts, you can see the list as it was in 2015 here: Developer podcasts v2 but I thought I would start to keep a weekly log of the episodes that I found interesting or useful in some way.
[Agile Weekly Crew] Episode #57 – Performance Reviews and one on one feedback
http://integrumtech.com/2012/04/episode-57-performance-reviews-with-kane-mar/
[On books] Thinking fast and slow book review https://www.acast.com/onbooks/episode-11-thinking-fast-and-slow-by-daniel-kahneman-chat-with-alex-miles-younger- and https://www.acast.com/onbooks/episode-12-thinking-fast-and-slow-part-2-on-happiness
[Enterprise devops initiatives] The Importance of Systems Thinking for Cloud Migration (focus more on AWS but still good) http://mikekavis.sys-con.com/node/3386867
[Enterprise devops initiatives] How to Succeed with DevOps? Make Room for Experimentation!
http://www.cloudtp.com/2015/08/27/how-to-succeed-with-devops-make-room-for-experimentation/
[The azure podcast] Azure functions http://azpodcast.azurewebsites.net/post/Episode-128-Azure-Functions
[Agile Weekly Crew] Episode #57 – Performance Reviews and one on one feedback
http://integrumtech.com/2012/04/episode-57-performance-reviews-with-kane-mar/
[On books] Thinking fast and slow book review https://www.acast.com/onbooks/episode-11-thinking-fast-and-slow-by-daniel-kahneman-chat-with-alex-miles-younger- and https://www.acast.com/onbooks/episode-12-thinking-fast-and-slow-part-2-on-happiness
[Enterprise devops initiatives] The Importance of Systems Thinking for Cloud Migration (focus more on AWS but still good) http://mikekavis.sys-con.com/node/3386867
[Enterprise devops initiatives] How to Succeed with DevOps? Make Room for Experimentation!
http://www.cloudtp.com/2015/08/27/how-to-succeed-with-devops-make-room-for-experimentation/
[The azure podcast] Azure functions http://azpodcast.azurewebsites.net/post/Episode-128-Azure-Functions
Sunday, 15 May 2016
Damo's Podcast Highlights 2016 #19
I subscribe to many podcasts, you can see the list as it was in 2015 here: Developer podcasts v2 but I thought I would start to keep a weekly log of the episodes that I found interesting or useful in some way.
Lets see if i can keep going every week shall we :-)
[Hanselminutes] An overview of containers http://www.hanselminutes.com/527/practical-containers-for-developers-with-aja-hammerly
[devchat tv] Motivation, Impact, professionalism https://devchat.tv/ruby-rogues/244-rr-program-like-you-give-a-damn-with-ara-t-howard-at-rails-remote-conf-2015
[London school of economics] Brexit, should we stay or should we go http://www.lse.ac.uk/publicEvents/events/2016/05/20160510t1830vOT.aspx
[Hello tech pros] Productivity, Motivation, Habits http://hellotechpros.com/joe-zack-productivity/
Lets see if i can keep going every week shall we :-)
[Hanselminutes] An overview of containers http://www.hanselminutes.com/527/practical-containers-for-developers-with-aja-hammerly
[devchat tv] Motivation, Impact, professionalism https://devchat.tv/ruby-rogues/244-rr-program-like-you-give-a-damn-with-ara-t-howard-at-rails-remote-conf-2015
[London school of economics] Brexit, should we stay or should we go http://www.lse.ac.uk/publicEvents/events/2016/05/20160510t1830vOT.aspx
[Hello tech pros] Productivity, Motivation, Habits http://hellotechpros.com/joe-zack-productivity/
Sunday, 8 May 2016
Damo's Podcast Highlights 2016 #18
I subscribe to many podcasts, you can see the list as it was in 2015 here: Developer podcasts v2 but I thought I would start to keep a weekly log of the episodes that I found interesting or useful in some way.
Lets see if i can keep going every week shall we :-)
[Software engineering radio] Unit Tests http://www.se-radio.net/2016/05/se-radio-episode-256-jay-fields-on-working-effectively-with-unit-tests/
[Hanselminutes] Management and motivation http://www.hanselminutes.com/526/punishment-driven-development-with-louise-elliott
[Scrum master toolbox] Purpose and management 3.0 http://podplayer.net/#/?id=15224714 from http://www.scrum-master-toolbox.com/
[Devnology] Lean software development http://devnology.nl/podcasts/devnology-podcast-012-mary-and-tom-poppendieck-part-1
[Full stack radio] Git source control tips http://www.fullstackradio.com/41
P.s If you are a little confused about the number in the title its based on the week number. Anyway it looks like I've been doing this longer than i really have ;-)
Lets see if i can keep going every week shall we :-)
[Software engineering radio] Unit Tests http://www.se-radio.net/2016/05/se-radio-episode-256-jay-fields-on-working-effectively-with-unit-tests/
[Hanselminutes] Management and motivation http://www.hanselminutes.com/526/punishment-driven-development-with-louise-elliott
[Scrum master toolbox] Purpose and management 3.0 http://podplayer.net/#/?id=15224714 from http://www.scrum-master-toolbox.com/
[Devnology] Lean software development http://devnology.nl/podcasts/devnology-podcast-012-mary-and-tom-poppendieck-part-1
[Full stack radio] Git source control tips http://www.fullstackradio.com/41
P.s If you are a little confused about the number in the title its based on the week number. Anyway it looks like I've been doing this longer than i really have ;-)
Wednesday, 4 May 2016
Deploying Azure websites and webjobs using your CI system with msbuild and azure powershell cmdlets
There are lots of tutorials detailing how to send web apps and web jobs up to azure as part of your CI pipeline but I've found them all lacking, mainly in that they require you to upload to Azure in the same command as performing your build.
Often this command looks like the following:
This simultaneously builds, configures and publishes the project to azure.
This is unacceptable to me as I want to promote the same built artifact through many environments ci-test-preprod-prod where the only thing to change is the config getting deployed to each. I don't want to keep building the code over and over when I deploy which has many issues ranging from changes in the code between deployments to changes in the environment of the build machine. I want to know that what is getting deployed to prod is exactly the same binaries as was deployed and tested in all previous environments. To achieve this we need to separate the building of the artifact from the deployment.
What follows is the method we are now using to build and deploy our services to Azure. It breaks down into 4 simple steps
Perform the build on the solution
Grab the published website from ./foobar/BUILD_OUTPUT_PATH/_PublishedWebsites/foobar and safe it to your artifact store of choice.
Next zip up the deployable artifact
Prepare the powershell session for the upload to azure
Load in your azure cert
Select the desired subscription
Publish the website using the azure cmdlet
And the cmdlet for creating the webjob
We use GoCd from thoughtworks to orchestrate the above process through the pipelines feature. When all this is combined with staging slots, blue green deployments and the like you get a really robust process, excellent auditability, a solid rollback strategy and not to mention peace of mind when pushing to prod.
Id love to hear how you achieve the same results, whether its through version control strategies, azure deployment slot strategies or something else.
Let me know.
Often this command looks like the following:
msbuild.exe foobar.csproj /p:DeployOnBuild=true /p:PublishProfile="azurePubProfile" /p:Configuration=ReleaseThis simultaneously builds, configures and publishes the project to azure.
This is unacceptable to me as I want to promote the same built artifact through many environments ci-test-preprod-prod where the only thing to change is the config getting deployed to each. I don't want to keep building the code over and over when I deploy which has many issues ranging from changes in the code between deployments to changes in the environment of the build machine. I want to know that what is getting deployed to prod is exactly the same binaries as was deployed and tested in all previous environments. To achieve this we need to separate the building of the artifact from the deployment.
What follows is the method we are now using to build and deploy our services to Azure. It breaks down into 4 simple steps
- Build your solution, firstly restoring any nuget packages if needed
- Configure your service for the target environment and zip up the artifact
- Configure the powershell session for azure
- Publish the zipped artifact to azure
App service (websites)
Build
Firstly build your solution, if using any nuget packages restore these firstnuget restorePerform the build on the solution
msbuild foobar.sln /t:build /p:configuration=release /p:OutDir=BUILD_OUTPUT_PATHGrab the published website from ./foobar/BUILD_OUTPUT_PATH/_PublishedWebsites/foobar and safe it to your artifact store of choice.
Deploy
Firstly apply the correct config for your target environment for this deployment to the artifact saved from the build. there are many ways to do this so i wont go in to it here.Next zip up the deployable artifact
Add-Type -Assembly System.IO.Compression.FileSystem
$compressionLevel = [System.IO.Compression.CompressionLevel]::Optimal
[System.IO.Compression.ZipFile]::CreateFromDirectory($sourcedir, $zipfilename, $compressionLevel, $false)Prepare the powershell session for the upload to azure
Load in your azure cert
Import-AzurePublishSettingsFile azure-credentials.publishsettingsSelect the desired subscription
Select-AzureSubscription 00000000-0000-0000-0000-000000000001Publish the website using the azure cmdlet
Publish-AzureWebsiteProject -Package buildoutput.zip -Name foobar -Slot 'staging'Webjobs
As above except the location of the built artifact foobarjob/BUILD_OUTPUT_PATHAnd the cmdlet for creating the webjob
New-AzureWebsiteJob -Name foobar -JobName foobarjob -JobType Continuous -JobFile .\buildoutput.zipConclusion
It turns out its actually really easy to achieve the result we desired, mainly the repeatable deployment of a known, tested build artifact to any environment we like.We use GoCd from thoughtworks to orchestrate the above process through the pipelines feature. When all this is combined with staging slots, blue green deployments and the like you get a really robust process, excellent auditability, a solid rollback strategy and not to mention peace of mind when pushing to prod.
Id love to hear how you achieve the same results, whether its through version control strategies, azure deployment slot strategies or something else.
Let me know.
Location:
Dorking, Dorking, Surrey, UK
Azure app service error 'An attempt was made to load a program with an incorrect format'
I was deploying a new website today and came across an issue running the site on azure. The site ran fine on my dev machine both running under vs2015 and when setup as a website under my local IIS.
But when running on a freshly created Azure app service i got the error:
Could not load file or assembly 'System.Web' or one of its dependencies. An attempt was made to load a program with an incorrect format.
Exception Details: System.BadImageFormatException: Could not load file or assembly 'System.Web' or one of its dependencies. An attempt was made to load a program with an incorrect format.
[BadImageFormatException: Could not load file or assembly 'System.Web' or one of its dependencies. An attempt was made to load a program with an incorrect format.] System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly ....
After digging around on the interwebs for a while it became apparent it was an issue with either the target architecture or the targetting of the dlls. My solution was built to target 'any cpu' but somehow the version of System.Web that was brought down by nuget was the 64bit version.
So i figured that changing the target architecture would have the desired effect and changed the azure platform from 32 bit (the default for new app services) to 64 bit in the application settings of the azure portal (portal.azure.com).
Problem solved. I hope this will point someone else to a quick resolution in the future.
But when running on a freshly created Azure app service i got the error:
Could not load file or assembly 'System.Web' or one of its dependencies. An attempt was made to load a program with an incorrect format.
Exception Details: System.BadImageFormatException: Could not load file or assembly 'System.Web' or one of its dependencies. An attempt was made to load a program with an incorrect format.
[BadImageFormatException: Could not load file or assembly 'System.Web' or one of its dependencies. An attempt was made to load a program with an incorrect format.] System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly ....
After digging around on the interwebs for a while it became apparent it was an issue with either the target architecture or the targetting of the dlls. My solution was built to target 'any cpu' but somehow the version of System.Web that was brought down by nuget was the 64bit version.
So i figured that changing the target architecture would have the desired effect and changed the azure platform from 32 bit (the default for new app services) to 64 bit in the application settings of the azure portal (portal.azure.com).
Problem solved. I hope this will point someone else to a quick resolution in the future.
Location:
Dorking, Dorking, Surrey, UK
Subscribe to:
Posts (Atom)