Tuesday, 23 August 2016

Damo's Podcast Highlights 2016 #33

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] Moving from Scrum to Kanban http://www.thisagilelife.com/117/
  • What is Kanban and how does it compare to scrum
  • Scrum vs. Kanban
  • Kanban board
  • WIP limiting
  • Flow of work
  • Pull versus push work-flow

[Developer Tea] Focus https://spec.fm/podcasts/developer-tea/6528
  • how to cultivate focus

[The Static Void Podcast] .NET Core RTM https://www.staticvoidpodcast.com/net-core-rtm-jeff-fritz-explains-why-it-could-be-awesome-after-all
  • Jeff Fritz from Microsoft joins Jess, Todd, and Chris to talk about .NET Core and we challenge our discussion of .NET Core RTM in the previous episode.

[The School of Greatness with Lewis Howes] 8 Lessons the Olympics taught me about greatness http://lewishowes.com/podcast/8-lessons-olympics/
  1. Vision is the beginning of the journey.
  2. Develop your talent.
  3. Have obsession with your passion.
  4. Don’t try to do it alone – have coaches and a team.
  5. Embrace pain and adversity.
  6. Play for something bigger than yourself.
  7. Understand that all we can do is our very best.
  8. Acknowledge and appreciate your accomplishments.

[The Ruby Rogues] Contempt Culture with Aurynn Shaw https://devchat.tv/ruby-rogues/273-rr-contempt-culture-with-aurynn-shaw

Thursday, 18 August 2016

Damo's Podcast Highlights 2016 #32

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] The Version One 10th Annual State of Agile™ report. Pt 2. http://www.thisagilelife.com/116/

[Eat Sleep Code] JavaScript Messaging Patterns http://developer.telerik.com/products/javascript-messaging-patterns/
  • How to use messaging patterns like RabbitMQ to create scale-able applications.
  • We also learn how messaging promotes asynchronous behavior throughout an application.

[.Net Rocks] Data on DocumentDB with Ryan CrawCour http://www.dotnetrocks.com/?show=1197
  • Ryan talks about how DocumentDB provides a fast, scalable place to store objects and write your queries any way you like. You write the rules for how your data partitions between collections, as well as the performance of each of those collections, and you can change them on the fly. More sophisticated than a simple key-value-pair store, but less structured that a relational database, DocumentDB sits in a great spot in your data storage needs. 

[audiobookpodcast.Programming] Software Craftsmanship by Sandro Mancuso http://audiobookpodcast.azurewebsites.net/AudioBooks/Programming/2016-06-17%20-%20Software%20Craftsmanship%20by%20Sandro%20Mancuso_2016.06.17.mp3
  • video - https://www.youtube.com/watch?v=jMPEPwMltC4
  • After over ten years since the Agile summit, software projects are still failing and developers are still behaving and being treated as factory workers. The software development industry is still very amateur when compared to other professions. How can we change this? Why Agile was not sufficient? Why so many clients are unhappy with their software projects? Why is it so difficult to find good developers? Our industry needs more professionalism and that's what Software Craftsmanship brings to the table

[.Net Rocks] Building Multi-Tenant Applications with Paul Stovell http://www.dotnetrocks.com/default.aspx?ShowNum=1332
  • What does it take to make an application support multiple customers?
  • As with most things, making multi-tenant apps is more complicated than it seems! Paul talks about making architectural decisions around separation between various customers - do they each get their own database? What about web server and/or app-pool? What about customizations and deployment. Do customers get new features immediately, or do they have the option to wait? How does the cloud impact your decision making? It's a complicated subject with a variety of trade-offs!

[Devnology Podcast] David Anderson - Kanban http://devnology.org/podcasts/devnology-podcast-011-david-anderson
  • From the Theory of Constraints to Kanban and the benefits of visualizing the workflow and limiting Work-in-Progress

[OnBooks] Ego Is The Enemy by Ryan Holiday https://www.acast.com/onbooks/ego-is-the-enemy-by-ryan-holiday
  • Early in our careers, it impedes learning and the cultivation of talent.
  • With success, it can blind us to our faults and sow future problems.
  • In failure, it magnifies each blow and makes recovery more difficult.

Wednesday, 10 August 2016

Damo's Podcast Highlights 2016 #31

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.

[Software engineering radio] James Phillips on Service Discovery with consul http://www.se-radio.net/2016/08/se-radio-episode-264-james-phillips-on-service-discovery/
  • what is service discovery and how can consul help?

[Adventures in Angular] New Developer Problems https://devchat.tv/adv-in-angular/103-aia-new-developer-problems
  • Getting Setup to Develop in Angular 2, how hard should it be? and why does the default quick start contain 40,000+ files?

[Planet Money : NPR] Episode 548: Project Eavesdrop http://www.npr.org/sections/money/2016/07/29/487970769/episode-548-project-eavesdrop
  • Planet Money's Steve Henn wanted to know just how much someone could learn about him by just sitting back and watching his internet traffic slide by. So he invited a couple hacking experts to bug his internet connection for a week.

[MS Dev Show] .Net Core with Scott Hunter https://channel9.msdn.com/Shows/msdevshow/Episode-115-Net-Core-with-Scott-Hunter
  • A talk with Scott Hunter about the amazing things going on with .NET core and ASP.NET.

[.NET Rocks!] State of DevOps at DevTeach http://www.dotnetrocks.com/default.aspx?ShowNum=1329
  • The conversation focuses first and foremost on culture - the chant of People, Process and Products around DevOps is not accidental, without a commitment in culture, nothing much can happen. 
  • How do we create organizations that are willing to admit failure and make improvements? 
  • Does it always have to come from the top? 
  • How do you get started down the DevOps path?

[Quiet: The Power of Introverts with Susan Cain] Episode 1: The Long runway http://www.quietrev.com/susan-cain-quiet-podcast/
  • The first in a 10 part series. Susan Cain introduces you to the neuroscience of introversion and shares tips on how to help quiet kids navigate the world at their own pace.

[Start ups for the rest of us] Ten Lessons Every Startup Founder Should Learn from Bill Walsh http://www.startupsfortherestofus.com/episodes/episode-299-5-ten-lessons-every-startup-founder-should-learn-from-bill-walsh
  • From the book ‘The Score Takes Care of Itself: My Philosophy of Leadership.’ by Bill Walsh who was the head coach of the San Francisco 49ers, one of the greatest football coaches of all time.
  1. Everything starts with work ethic.
  2. Blame yourself for poor team performance.
  3. Don’t win by fluke.
  4. Make friends not enemies.
  5. Take pride in your effort as an entity. Separate yourself from the result of that effort.
  6. Demonstrate respect for each person in the organization.
  7. Be deeply committed to learning and teaching.
  8. Demonstrate and prize loyalty.
  9. Know what constitutes greatness for every role.
  10. Control what you can control then let the score take care of itself.

[Blinkist] David Epstein on the Olympics and Why 10,000 Hours Won’t Make You Great https://www.blinkist.com/magazine/posts/david-epstein-olympics-10000-hours-wont-make-great

Monday, 1 August 2016

Damo's Podcast Highlights 2016 #30

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.

[The Cognicast] Michael Nygard - The new normal, failure is a good thing http://blog.cognitect.com/cognicast/106
Blog series the new normal http://blog.cognitect.com/blog/2016/2/3/the-new-normal-failure-is-a-good-thing
  • "What we need is a new approach where “continuous partial failure” is the normal state of affairs"
  • "Instead of expecting everything to run like clockwork, we should anticipate the opposite. We must embrace failure as a means to build IT infrastructures and organizations that not only withstand threats but profit from them."
  • Everything breaks. It's just a question of when and how badly.

[Scrum Master Toolbox Podcast] Yves Hanoulle - How systems influence individual and team performance http://www.scrum-master-toolbox.com/2016/07/podcast/yves-hanoulle-on-how-systems-influence-individual-and-team-performance/

[This Agile Life] You Can’t Handle the Truth http://www.thisagilelife.com/114/
  • Constructive criticism as a gift
  • How have we (the hosts) established safety (trust) on teams?
  • Can we have trust without transparency?
  • Can we have safety without trust?

[This Agile Life] The Version One 10th Annual State of Agile™ report http://www.thisagilelife.com/115/
The team discuss the bottom 10 of the agile techniques employed on page 10 of the 'Version One 10th Annual State of Agile™ report' http://info.versionone.com/state-of-agile-report-thank-you.html
Can you be 'Agile' with out TDD, BDD, refactoring, and pairing?

[AudioBookPodcast.Microservices] Daniel Bryant - The Seven Deadly Sins of Microservices https://www.infoq.com/presentations/7-sins-microservices
https://opencredo.com/the-seven-deadly-sins-of-microservices-redux/
  1. LUST – Using the latest and greatest tech…
  2. GLUTTONY – Excessive communication protocols
  3. GREED – All your service are belong to us…
  4. SLOTH – Creating a distributed monolith
  5. WRATH – Blowing up when bad things happen
  6. ENVY – The shared single domain fallacy
  7. PRIDE – Testing in the world of transience

[Mastering Business Analysis] Addressing Bottlenecks with Theory of Constraints http://masteringbusinessanalysis.com/mba082-addressing-bottlenecks-theory-constraints/
The Theory of Constraints is an approach to improving organizational performance created by Dr. Eli Goldratt and is explained in his book, The Goal.
  • Step 0: Define the Goal
  • Step 1: Identify the Bottleneck
  • Step 2: Exploit the Bottleneck
  • Step 3: Subordinate Decisions to the Bottleneck
  • Step 4: Elevate the Bottleneck
  • Step 5: Repeat


Sunday, 24 July 2016

Damo's Podcast Highlights 2016 #29

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 81] David Hussman - User Story Mapping http://masteringbusinessanalysis.com/mba081-user-story-mapping-david-hussman/
  • A map is simply a collection of information with orientation
  • User stories aren’t just a pile of things to do. There’s an underlying structure that helps you see the big picture from the customer’s point of view.
  • By organizing the story cards into a map, we can better understand the customer journey and identify small slices of value to deliver.
  • User Story Maps are an arrangement in which story cards from left to right follows people’s interaction with the system and top to bottom to decompose that interaction
[Skills Matter] Dan North - Event storming for fun and profit https://skillsmatter.com/skillscasts/8003-event-storming-for-fun-and-profit
[Freakonomics Radio] Is the Internet Being Ruined? http://freakonomics.com/podcast/internet/
[AudioBookPodcasts.Microservices] Adrian Cockcroft - State of the Art in Microservices https://www.youtube.com/watch?v=nMTaS07i3jk
[YouTube] Kent Beck - The Return of the Waterfall https://www.youtube.com/watch?v=w4IncnNVzMA&feature=youtu.be
[ASP.NET Monsters - Channel 9] Configuration From Any Source in ASP.NET Core https://channel9.msdn.com/Series/aspnetmonsters/ASPNET-Monsters-Episode-50-Configuration-From-Any-Source-in-ASPNET-Core
[SE-Radio 263] Camille Fournier - Real-World Distributed Systems http://www.se-radio.net/2016/07/se-radio-episode-263-camille-fournier-on-real-world-distributed-systems/
[Vimeo] Catastrophic Backtracking ‒ When Regular Expressions Explode https://vimeo.com/112065252 http://www.regular-expressions.info/catastrophic.html
  • Limit nested quantifiers
  • Ensure only one way to do the matching
  • Use atomic grouping
  • Use DefaultRegExMatchTimeout in .net apps
  • Always, always consider the failure cases (esp. the almost but not quite matches)

Monday, 18 July 2016

100,000 is todays magic number, sponsored by folding air

Just thought I'd do a really quick post to say thanks to everyone who has ever read my blog, and ever will read it. I hope that I've helped more than a few people out here.

We all as software devs use the internet to find tutorials, examples, solutions to bizarre problems, resources, ideas, and many many more things. I know I have. I don't think a day goes by without searching for something tech that I'm currently working on. I wanted to give a little back and today I've just hit my one hundred thousandth visitor :-)

Here are a few highlights most recent posts at the top

Unique visitor count - Title and URL

416 - From Monolith to Microservices
1170 - Blue green web deployment with powershell and IIS
743 - Visualising the Thoughtworks Go pipline using Cradiator
4909 - Search the whole SVN repository for a given filename
5471 - Personal Backup strategies 
2167 - Debug your android applications by capturing/monitoring their http traffic using wireshark
2013 - Using JMeter to profile the performance of your web application
2018 - A PowerShell script to count your lines of source code  
3059 - Installing node.js on windows 7 machine 
2865 - Kanban inspired card wall. Our example 
13234 - How much does your slow machine cost your company? 
1228 - Unit testing your unity IOC wiring 
2768 - The true cost of TFS, is it really "free"?
1681 - 20 things that are wrong with TFS, and counting 

I remember when I posted the How much does your slow computer cost, all my stats went mad for a week, I even got in some Canadian tech publication as a 'fastidious tech geek', is this a good thing?

Fame, if you can call it that, is nice, but I don't do it for that. I generally don't expect a lot of visitors, I just want to help out others that have similar issues.

Finally It's also a selfish thing. I do it because I forget things and want to remember more, the number of times I've done a search and found my own posts or my own questions on stack overflow, it's surprising.

Thanks to everyone who got me to this milestone, its only taken me 8 years, what humble beginnings.

Blog posts by year to date:

Damo's Podcast Highlights 2016 #28

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.

[All Things Pivotal] .NET and Beyond 12 Factors with Kevin Hoffman http://www.paasmag.com/2016/07/07/net-and-beyond-12-factors-with-kevin-hoffman/
[Agile Coffee] Is QA an inhibitor to agile? Dysfunctional teams, more points please http://agilecoffee.com/episode49/
[Hello tech pros] Why Toyota Doesn't Manage From the Conference Room http://hellotechpros.com/jason-burt-leadership/
[Visual studio live] Async Patterns Deep dive for .NET Development https://www.youtube.com/watch?v=9o-xatqBnn4
[Software Engineering Radio] What is Software Quality with Bill Curtis. Agile, Lean and CMM http://www.se-radio.net/2016/07/se-radio-episode-262-software-quality-with-bill-curtis/

Wednesday, 13 July 2016

First thoughts on asp.net core

I've been playing with asp.net core recently and thought I'd share a few of my findings, good and bad. I always need some sort of little project to keep my interest when learning something new and I had something perfect, small-ish but very useful for work.

We have 4 go servers at work, each manage a different group of microservices which form a business capability. We have ~50 services, each one is built and deployed to different environments via go pipelines of which we have 400+ (we deploy to 3 regions and have prod/preprod/test environments in each). What we need is a way to visualise the state of all the value streams, to easily see if there are any problems and what the deployed versions of each service is. I will blog some more on this when I get an actual working solution, for now I've just being doing project setup and tests. You can find the project here: https://github.com/DamianStanger/go-stats-aggregation

So .net core, what are my findings so far?

dotnet command line

I do all my dev in VS2015 so why do I need this? Often you don't but I've found the command line to be faster than building through VS, and as for running tests, that is no competition.
You can create projects, restore packages, build, run and test all via the command line with ease. Is it too soon to wave goodbye to msbuild?
Checkout the docs on the command line tools and the getting started with .net core.

I do lots of the DevOps work at the office and I can see the command line coming in to its own on the build server. Although I don't see myself running anything on linux anytime soon its nice to know its an option, and its forced a rethinking around the command line which is nice.

Project structure

Its been really interesting to see the evolution of the project structure. No more hefty csproj files where you mix config with project setup, now you have a lightweight xproj file and a number of json files holding your config. I like it, it's moving in the direction of other web technologies in how the contents of the folders form the code base rather than a big file list maintained and merged in a csproj file.
I'm also a big fan of wwwroot, finally you don't have to mix source code with static files.

Kestrel HTTP server

This was an interesting find for me. I like node (although i don't find much excuse to use it these days) so it's great to see a light weight single threaded HTTP server as part of the core asp.net framework. Lots of options, you can quickly and easily get the app running in iisexpress or in the console with the command "dotnet run".
Added to this, gone are the days where people complain about the performance of IIS, Kestrel has some rather impressive benchmarks behind it.

ReSharper

In general ReSharper is it's usual awesome self whilst developing .net core apps. But, (and there is a theme here, see NCrunch below) testing of a .net core app with a .net core test dll is not supported yet. From the ReSharper blog "One thing to note is that this build does not yet support running tests for DNX projects, this will hopefully be included in a future build". I can only hope this changes soon, come on JetBrains, do it.

NCrunch 

Sad times with NCrunch too I'm afraid. It does not yet support .net core development. Check here for updates to this issue and here for updates and what frameworks are supported

moq.netcore

moq as found on nuget.org is not compatible with .net core :-( but Microsoft have created a version that is :-) it is located on the Microsoft internal nuget feed myget. Instructions can be found here: http://dotnetliberty.com/index.php/2016/02/22/moq-on-net-core/

integration tests

Amazing, I'm so pleased this is now as easy as this. You can spin up an in memory HTTP server and use it to do testing with. Really good. I've not looked at hooking it into selenium or anything that can understand the DOM yet so most of the uses I'm finding right now are with pattern matching and regex. Check out the integration tests I've written and the docs on integration testing.

Testing

So ReSharper has let me down, NCrunch has failed to rise to the challenge which leaves me with the runner in visual studio (It works and i can debug tests but it's so so slow) or the command line. So as of right now for testing I've been mainly using the command line "dotnet test". Ive even written a little powershell script to run all my tests. It's really fast, it could be faster yes but I'm happy with this for now, and compiles your source before running for a bonus.

browser link

Sadly I've not had much luck with this. I think its because asp.net core does not yet support signalR. I've not spent a vast amount of time investigating but other than reloading browsers whilst running I've not had much success.

Docs

I'm liking the new documentation on the new sites: https://docs.asp.net/en/latest/intro.html and https://docs.microsoft.com/en-us/dotnet/index
Well organised, easy to navigate and actually useful, makes a change. I hope they keep it up to date and keep the samples relevant to new versions as they come out.

Finally

I'm really pleased I've begun to dig into this new world of .net core, not because I'm interested in any cross platform abilities but just because it gives some really nice features.

What are your thoughts on the good and bad about .net core and the direction asp is heading right now? I've only been playing with this at home but getting a good feeling bar the tooling which I'm sure will catch up soon enough.

Sunday, 10 July 2016

Damo's Podcast Highlights 2016 #27

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.

[Hello Tech Pros] Why Great Dev Managers are Like Pirate Ship Captains, Jeff Maxwell on Leadership http://hellotechpros.com/jeff-maxwell-leadership/
[Yet Another Podcast] Humanitarian Toolbox with Bill Wagner http://jesseliberty.com/2016/06/30/yet-another-podcast-155-humanitarian-toolbox-with-bill-wagner/
[Hansel Minutes] Building remote-first teams with Karolina Szczur http://www.hanselminutes.com/533/building-remote-first-teams-with-karolina-szczur
[Developer Tea] Becoming a leader http://spec.fm/podcasts/developer-tea/40485
[TED Talks] Why Brexit happened and what to do next https://www.ted.com/talks/alexander_betts_why_brexit_happened_and_what_to_do_next

I've also been playing with .net core a lot this week
[channel 9] overview of asp.net core (previously asp.net 5) https://channel9.msdn.com/Events/Visual-Studio/Connect-event-2015/100
[build 2016] Introducing ASP.NET Core 1.0 https://channel9.msdn.com/Events/Build/2016/B810
[build 2016] ASP.NET Core Deep Dive into MVC https://channel9.msdn.com/Events/Build/2016/B812
[Visual Studio Live] Adam Tuliper ASP.NET Core in All Its Glory https://www.youtube.com/watch?v=xOppi_hsD2E

Tuesday, 5 July 2016

Damo's Podcast Highlights 2016 #26

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.

[Hello Tech Pros] If You're Not Pair Programming You're Wasting Money http://hellotechpros.com/llewellyn-falco-productivity/
[Eat Sleep Code] All In With Three Amigos http://developer.telerik.com/featured/all-in-with-the-three-amigos/
  • Dev + QA + BA story kick-offs. Effective Three Amigos conversations cut confusion, reduce rework, and ensure the entire team clearly understands the why of what they’re building.
  • Teams ensure acceptance criteria are clear, nail down test data, discuss data flows, and clear up a myriad of other potential roadblocks—before a single line of code is written.
[DevOpsEnterpriseSummit-15] DevOps Kaizen Practical Steps to Start & Sustain a Transformation https://www.youtube.com/watch?v=RT542sffJpM
  • Why are so many orgs unable to improve? What do the best orgs do to get to and stay at the top
  • The management illusion of control, complex systems are complex and cant be 'fixed' by command and control
[Enterprise Devops Initiatives] The State of DevOps 2016 Recap http://www.cloudtp.com/2016/06/22/the-state-of-devops-2016-recap/
  • The report separates high performers by key metrics: deploy frequency, lead time for changes, mean to recover, and change failure rate
  • high performers had 200x more frequent deployments than low performers, and 2,555x faster lead times.
[Tim Ferriss] Productivity Tricks for the Neurotic, Manic-Depressive, and Crazy (Like Me) http://fourhourworkweek.com/2013/11/03/productivity-hacks/
[Tim Ferriss] How to 10X Your Results, One Tiny Tweak at a Time http://fourhourworkweek.com/2016/03/04/how-to-10x-your-results/
[London School of Economics] After the EU Referendum: What Next for Britain and Europe? http://www.lse.ac.uk/publicEvents/events/2016/06/20160628t1830vHKT.aspx