Sunday, 30 October 2016

Damo's Podcast Highlights 2016 #43

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] Barry O’Reilly on Lean Enterprise
  • A lean enterprise is a large organization that manages to keep innovating while keeping its existing products in the market.
  • O’Reilly talks about the idea of scientific experiments and the build-measure-learn loop popularized by the lean-startup method. He shares his experiment of an online wine seller using Twitter. He further discusses the challenges for enterprises trying to do something similar and introduce the three-horizon model, to manage innovative, growing, and new products.
  • As an example of a successful lean enterprise, O’Reilly talks about GOV.UK, the British government’s new website.

[Parent Programming] Episode 1 - Kent C. Dodds
  • Kent talks about what it's like to raise two young kids, going over the highs and lows of parenting.
  • He also mixes in a little bit of "leaky abstraction" humor in regards to figuring out how to work with his children.

[Developer On Fire] The learning mindset with Linda Rising
  • Linda Rising, Kendall Rael, and Dave Rael have a conversation about the pitfalls of talent and the importance of effort and share an empowering message
  • Falling down, getting back up and the frustrations of learning

[Software Engineering Daily] Monitoring Architecture
  • Building a monitoring system is a complex distributed systems problem
  • Events are produced from different points in an application and must be aggregated in order to form metrics
  • These events are often ingested by a time series database, which forms the backbone of the monitoring system

Wednesday, 26 October 2016

Node development on CentOS for .Net devs

I'm about to start a new role which entails Node, Angular, Mongo and linux (CentOS) so ive set about learning the above. Quite a bit of a shift from the previous number of years which have been pretty much exclusively Microsoft and .Net. But im really excited about it and the new learning I need to embark upon. Today it was the turn of getting a CentOS development environment up and running on virtual box with npm, node and webstorm.

Creating the development environment

Install virtual box (5.1 at time of writing)
download the dvd image of centOS (7 at time of writing)

Create a VM of the image,
On software selection i used KDE Plasma with internet tools and 
i used the KDE desktop with internet and KDE applications and development Tools
enable the network
create a user as well as set the super user password

To enable higher resolution
once set up, from the VM menu: device > insert guest additions CD image
this will act as if a cd was inserted into the VM
in the VBOXADDITIONS drive double click and enter your superuser password

Installing npm, node and webstorm

Within a terminal window
su -
yum install epel-release
yum install npm
npm --version
node --version

Download webstorm
Extract the folder to the place you want to install webstorm
double click to install
remember to chose a dark theme ;-)

Create your first hello world node app with express

In a terminal (not as root)
cd /home/username/
mkdir code
cd code
mkdir express01
cd express01

npm init
take all the defaults
npm install express --save

Im not going to go into the the how to create a basic express app to echo something to the console and to the browser, there are so many tutorials about that out there.

Enjoy your new development environment.

Major learnings. I.e. Don't do this at work...

When you enter sudo for the first time you get the apt warning:

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

The first time I created the hello world app from the guide above I used su for everything, including creating the folders and npm init. This resulted in files and folders that i could not write to from webstorm so i tried to fix the permissions with chmod. But I used it very very wrongly and the interwebs advised me to reinstall everything. Which as it happens, this time was not a big deal for me.
So what did i do?
Whilst i was su i think i ran:
chmod 777 /. -R
In powershell .\ is the current directory, I thought ./ would be the same in linux but i did a typo and so i ended up making all the files and folders (on the whole VM) 777 rather than just the new code folders. Apparently this is very hard to fix.
The symptom is you type the command su - you get the error:
su -
su: cannot set groups: Operation not permitted

It can make things rather difficult if you cant get root access anymore.

Should it be this easy to screw your entire VM? or was there actually an easy fix? if you know id love to hear about it.

Sunday, 23 October 2016

Damo's Podcast Highlights 2016 #42

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 Daily] DevOps Handbook with Gene Kim
  • The intent of the DevOps movement is to get organizations moving faster and more effectively by breaking down siloes, and improving communication. Gene Kim’s book The Phoenix Project illustrated this by telling the fictional story of a company adopting a DevOps mentality. Although that book was fiction, Gene is an experienced engineer, having worked as founder and CTO of Tripwire, a software company that makes security and compliance automation software.
  • In his new book The DevOps Handbook, Gene presents a practical companion to The Phoenix Project. Together with his co-authors, Gene has written a guide for how to move an organization toward DevOps, and in this episode we explore some of the topics from his book

[Hanselminutes] Orchestrating and automating deployments with Octopus Deploy
  • We first interviewed Paul Stovell a few years back when he started a micro-ISV he was calling "Octopus Deploy." Now it's a fully formed and successful company whose flagship product Octopus Deploy is used all over. Damian Brady joins Scott and explains why deployment is more subtle then you think.

[TEDx] Surprising Lessons From 100 Days of Rejection: Jia Jiang &
  • Jia Jiang knows first-hand how the fear of rejection can hold us back. The tendency to avoid it at all costs can be detrimental to our lives, our careers, our dreams
  • Chasing your dream requires you put everything out there and deal with the consequences. When aspiring entrepreneur Jia Jiang left corporate life to build his dream company, he had no idea it also meant facing crushing rejection. The best way to recover? 100 Days of Rejection Therapy

[CodingBlocks] Clean Code – Writing Meaningful Names
  • In this episode, we take our first dive into the book Clean Code by Robert Martin and specifically we talk about writing meaningful names for all things code related. You’ll be amazed at how following some decent rules that you can start naming things that will help you and fellow coders understand your code at a glance.
  • As always with coding blocks skip skip skip all the news and chit chat to get to the meat of the conversation
  • Lots of good show notes

[YOW! 2015] Adrian Cockcroft - It's Complicated...
  • What does it mean to be complicated?
  • How can we manage complexity when we scale up systems?
  • Why do people find it horrifying when the internal complexity of monolithic apps is replaced by a “death star” diagram of the relationships between microservices?
  • Are many microservices less complicated than one monolith?
  • Why do people expect complex adaptive systems to behave predictably?
  • How does complicated relate to intuitive?
  • How can small fast release processes reduce risk, speed up teams and reduce costs?

[Rocky Mountain Ruby 2016] Kill "Microservices" before its too late by Chad Fowler
  • Keep changing things, even if you don’t need to
  • Microservices make it easier to replace than to change
  • Unit tests are a design smell (tests optimise for permanence, creates coupling)
  • Use metrics instead , esp business metrics. Use alerting around the metrics to perform true testing of the system
  • Small projects vs large projects, success vs failure, stay small, go for impermanence
  • Microservices is not an architecture and small is not the goal, its health longevity
  • Systems that survive are made of components that can change
  • If it hurts do it more often

[Angular Air] 01 ngAir - Hitting the Ground Running with Angular

[Hanselminutes] Infrastructuralism with Truss
  • What is Infrastructuralism and how can it help you think differently about software and large problems? Scott sits down with Everett Harper, CEO of Truss. They talk about how applying some old ideas in new ways helped them fix
  • How we should avoid succumbing to the Black swan theory

Sunday, 16 October 2016

Damo's Podcast Highlights 2016 #41

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 Daily] Continuous Delivery with David Rice
  • In order to move software updates from the development team to production, companies do a variety of things. Some teams might email files to each other or use FTP or even floppy disks. Most companies today at least use version control systems like Git together with separate servers for development and production. When code is ready to move to production, a build that is on the development server gets copied over to the production servers, and the production servers begin serving real users.
  • This process is known as deployment, and over the last few decades companies have started deploying more rapidly (even “continuously”), leading to faster iterations and better feedback loops between the software development team and the users of the product. A particularly effective version of this workflow is known as continuous delivery.
  • In today’s episode, David Rice from ThoughtWorks joins the show to give a short history of continuous delivery, and how continuous delivery actually looks in practice.

[StrangeLoop 2011] Simple Made Easy - Rich Hickey
  • Rich Hickey emphasizes simplicity’s virtues over easiness’, showing that while many choose easiness they may end up with complexity, and the better way is to choose easiness along the simplicity path.

[Telerik] Talking Software Craftmanship with Steve Smith
  • On this episode guests Steve Smith and Sam Basu share their thoughts on software craftsmanship, clean code, and software quality. Are you taking steps to create maintainable, and testable code? Find out what you can do to get started.

[JavaScript Air] Learning and Developing JavaScript with Ashley
[JavaScript Air] Unit Testing JavaScript with Christian Johansen

[Magpie Talk Show] Microservices, cloud and Adrian Cockcroft
  • Few people have done as much to help share the power of the cloud in recent years as Adrian, but he certainly has a career that predates the explosion of Amazon Web Services. In episode 22 of the Magpie Talkshow, he shares is journey so far in the IT industry, from physics to venture capital firm Battery Ventures, with stops at Sun, EBay and Netflix in-between.

[Developer on fire] Jon Skeet - Awesome, Humble, and Human
  • Jon Skeet talks with Dave Rael about community involvement, family and perspective, having outlandish things said about him and the joy of relationships
  • Jon Skeet is a software engineer at Google, working in their London offices. He's best known for his contributions to Stack Overflow and his book "C# in Depth". Jon loves digging into the guts of the language specification, and has an unhealthy fixation with date/time APIs.

[The Cloudcast] Multi-Cloud Serverless Platforms
  • The history of Serverless/Event-Driven/FaaS/Jeff computing, the differences in frameworks in the market, common customer use-cases and the need for multi-cloud platforms.

[Blinkist Podcast] A “How-To-Sleep” Talk with The Sleep Coach – Max Kirsten

Monday, 10 October 2016

Damo's Podcast Highlights 2016 #40

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 Daily] Serverless Architecture
  • “Serverless” usually refers to an architectural pattern where the server side logic is run in stateless compute containers that are event-triggered and ephemeral. Mike Roberts has written a series of articles about serverless computing, in which he discusses theories and patterns around serverless architecture.
  • In this episode, Mike and I discuss how to reimagine our software architecture using functions-as-a-service. We go into the costs, benefits, and modern limitations of current serverless platforms like AWS Lambda.

[Developing Up] To get more done as a developer you need a personal task management system
  • In episode two of the Developing Up podcast we cover task management. We discuss the importance of establishing a personal task management system. We then outline the key concepts and methodologies of many systems that we have found helpful ourselves. Finally we discuss the systems we use and how you can build one that works for you.
  • Omnifocus
  • Wunderlist
  • Getting Things Done
  • Pomodoro Technique
  • Personal Kanban

[Software Engineering Daily] Salary Negotiation with Haseeb Qureshi
  • Negotiation is an important skill for software engineers. The salary you negotiate at the beginning of your job could be a difference of tens of thousands of dollars over the course of an engineer’s career, but intimidating recruiters and exploding offers scare many engineers from negotiating at all.
  • Today, Haseeb Qureshi returns to the show to discuss his epic story of salary negotiation. On a previous episode, Haseeb discussed leaving his career as a poker player to join a coding boot camp and start down the path of a software engineer.

[The Tim Ferriss Show] The Art and Science of Learning Anything Faster
  • I explore the tips, tricks, and framework I’ve used to learn just about any skill.
  • This is the meta-skill of meta-learning, or learning how to learn.
  • I’m going to share techniques that can help you — even if you’re sub-par or a rote beginner — take the smartest first steps and use 80/20 analysis to accelerate your progress.
  • This is adapted from The 4-Hour Chef, which is the cookbook that’s not a cookbook — it’s a book on accelerated learning.

[The Tim Ferriss Show] How a Computer Hacker Optimizes Online
  • Samy Kamkar is one of the most innovative and notorious computer hackers in the United States. He’s also a well-known whistleblower. If you want to learn how Samy hacks everything from online dating to car alarms, this episode is for you.
  • He is best known for creating the fastest spreading virus of all time, a MySpace worm named “Samy.” He got raided by the United States Secret Service for that one. More recently, he’s created SkyJack, a custom drone that hacks into any nearby drones, allowing him (or any operator) to control a swarm of devices; and Evercookie, which appeared in top-secret NSA documents revealed by Edward Snowden. He also discovered illicit mobile phone tracking by Apple iPhone, Google Android and Microsoft Windows Phone mobile devices.
  • His research and findings led to a series of class-action lawsuits against these companies and a privacy hearing on Capitol Hill.

Sunday, 2 October 2016

Damo's Podcast Highlights 2016 #39

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.

[Developing Up] Using D.U.M.B goals and S.M.A.R.T goals to grow
  • Goals and goal writing systems
  • Why goals matter for personal and career growth
  • How you can create and write goals using specific goal writing systems
  • How to succeed in your goals
  • S.M.A.R.T Goals
  • D.U.M.B Goals
  • Why SMART goals are Lame

[.NET Rocks!] nServiceBus Update with Udi Dahan
  • SOA, microservices and actors
  • Version 6 of nServiceBus

[Hello Tech Pros] Flight 1549 "Sully" Survivor and Software Architect Ben Bostic on Motivation
  • Life changing events can lead to reflecting on life goals.
  • In survival-mode, your mind filters out things that aren’t helpful.
  • If all your worldly possessions are sinking to the bottom of a river, do you really care?
  • Try to live in the now. Don’t worry about the past or regrets.
  • Have goals and dreams. Focus on building stronger relationships.
  • Get rid of negativity and surround yourself with more positive people.
  • When life flashes before your eyes, will you regret the things you have yet to do?

[Software Engineering Daily] Tech Leadership with Jeff Norris
  • The role of “tech lead” is a combination of a software engineer, a project manager, and an architect

[Soft Skills Engineering] Writing Great Resumes and Pushing Back on Non-Engineering Tasks
  • Do you really need a resume these days?
  • How important is formatting and good design?
  • What content should be on your resume?
  • How and when to push back on non-engineering tasks like powerpoint

[Adventures in Angular] 112 AiA Upgrading from Angular 1.x to Angular 2
  • Should everybody update to Angular 2?
  • Defining migration
  • Is migration worth it?
  • Schedule for rewriting large and small apps
  • Business versus Technology: Rewriting apps
  • Process for migrating from Angular 1 to Angular 2
  • Role of testing in a migration

[Software Engineering Daily] Remote Work with Scott Berkun
  • Thoughts and perspectives on remote work
  • Workplace dynamics

[.NET Rocks!] The Scourge of Multitasking with Ben Day
  • You can't multitask! Carl and Richard talk about the myth and scourge of multitasking, which has been proven again and again to not actually work. Ben talks about how the human brain is not that different from a microcomputer CPU - the context shifts involved in multitasking are expensive, and if you do too much of it, you spend all your time switching contexts, rather than actually getting work done. The conversation digs into all sorts of good discussion around productivity, but first and foremost, it is about getting things done - focus on one task until you're finished, then move on!