Community Content

At the Tabs and spaces podcast we so dearly value our community and we're so amazed at how smart and talented they all are. We're frequently sent some amazing feedback and have conversations with our audience via email and twitter that we feel selfish keeping all to ourselves. So, here, you'll find all the best conversations we've had with our audience so you too can be benefit from the genius of other members in the community!

As with everything else, in brownfield development, size matters!

By: Drew Mayo
In Response to Season: 2 Episode: 5
Sent to us on: 2021-05-18

Hey Tabs and Spaces, just listening to your brownfield development ep and I'm going to have to take issue with a few things...

First off, great ep, lots of great stuff. But it's pretty easy to be blinded by the difference in scope or scale from what you're used to vs what someone else is used to.

Running "all" your unit tests in 500ms is a great theory, until there's 80,000 of them and they take two-to-three hours to run parallelized 10 ways. Some stuff is just big.

That's not to say they couldn't be made much faster, but in brownfields, patterns and decisions made on .net 1.2 can cast a hell of a long shadow.

Secondly, Jamie talked about brown/green coming from architecture but said most of the time new architects would come in and bulldoze the place to build anew.

Once again, true for your house or the local pub, but scale it up a bit to your local mall, shopping centre, stadium or airport and you'll find *bits* of them are 30+ years old and still totally functional, and now almost impossible to remove without a full bulldozing.

Here's my local shopping centre in 1970 and 2020. Notice the natty office tower standing proud in 1970 is now inside the car park.

There's a whole world out there of stuff that iceberg-like is hiding beneath the surface, and the difference in scale can be pretty mind-blowing.

Keep up the good work, looking forward to more banter :)

Drew Mayo

Principal developer at Workday in Brisbane

https://www.linkedin.com/in/drewpetermayo/


"Hardware is not standardized"

By: MadVikingGod
In Response to Season: 2 Episode: 4
Sent to us on: 2021-04-12

Howdy everyone,

On the last episode, someone, I think Zac, mentioned:

"They have been trying to standardized hardware, and it's still not a thing". 

Are you sure?! I mean I'm, listening to this podcast on bluetooth headphones.  But you know, if I was sitting at my computer, I could plug in my 3.5mm Jack and listen there.  I could see that I was listening to tabs and spaces via my monitor hooked up with Display Port,  which is connected to my videocard, hooked into its PICe slot, which is sitting next to my raid controller, which has a bunch of SATA drives connected with a SAS cable. 

Oh and, my os boots off an M2 drive, also connected via PICe.  My computer is also running a lot better after upgrading my DDR4 memory.  That doesn't even take into account the million USB and Thunderbolt bits and bobs I have connected, the case the computer sits in, the power supply it uses, the network its connected to, or the wireless adapter it could use.

You don't have to worry if your components work with your computer, just that you got the right version. This is the super power that IBM stumbled upon, and Intel really took off with.  Having the ISA bus, an open standard, allowed so many manufactures to build things that were both obvious, like sound cards, and less obvious like video cards. 

I also think that if apple doesn't open its hardware platform, it doesn't matter how much better it is in the short term; its competitors will leapfrog it.  This is exactly what happened with the PPC, and it will happen again with the M1.

It's also crazy that we have abstracted this even further.  Now you don't have to worry about what hardware you have in your cloud provider, just how many CPUs and memory.  Or, for serverless, how long you need to run this process.  

MadVikingGod


If this tech gig doesn't work, there's always Rock 'n Roll...

By: Jim Humelsine
In Response to Season: 1 Episode: 12
Sent to us on: 2020-12-06

I just listened to your most recent podcast. You mentioned rockers changing careers. I have a story for you.

My wife works at AT&T. Several years ago during a round of layoffs the guy two office down was let go. She commented to a friend, "I wonder what A.J.'s going to do now?" He replied, "Maybe he'll go back to his old job as drummer for Twisted Sister."

The guy down the hall was A.J. Pero, drummer for the legendary metal/hair rock band Twister Sister. Pero has since passed away in 2015. Here's a 2003 interview where he discusses his career.  Here's the part where he discusses his career after he left rock & roll and some businesses he tried:

I opened up my own business. I opened up some different businesses and did that for a long time.

... Car stereos, alarms, cell-phones, part-owner of a night club, I did that for a while. That didn't work out so I went to work for X first I went back to school, got a degree, and then I went to work for AT&T which I still continue to do. I'm into architecture and engineering for the network. We test and do trials and develop the network. Anything that has to do with AT&T. I'm in a lab situation where we get this equipment in and we come up with ideas, better ways to do things and we put them through the tests. That's basically what I have been doing for the past five years.

I don't know if or how AJ landed on his feet after AT&T.

Jim Humelsine (AKA Design Pattern Evangelist)


Uncle Bob and Programming Paradigms

By: Jim Humelsine
In Response to Season: 1 Episode: 10
Sent to us on: 2020-10-06

I enjoyed your most recent tabsANDspaces episode about Programming Paradigms. Uncle Bob Martin presented a webinar recently on the same topic. He posted it to YouTube as well: 

https://www.youtube.com/watch?v=ya1xDCCMh7g

TL;DW - Here's a summary of the long video.

There are only 3 known programming paradigms. They were all invented/defined by the early to mid 1960s. Everything else has been style.   They are:

  • Structured programming - i.e., no GOTO statements.

  • Object-Oriented programming - i.e., no function pointers ... or polymorphism, done right. 

  • Functional programming - i.e., no assignments.

Notice how each paradigm takes something away. It doesn't add. These restrictions give us structure and discipline. Ever work with spaghetti code with GOTO statements hopping all over the place? I have. It's impossible to keep track of what you're doing or what's going on. It's too much flexibility.   Bob proposes that these are the only three paradigms with several arguments: 

  • The first 3 paradigms took about 20 years. It's been another 50 years, and no new ones have been invented.

  • These paradigms are based upon taking stuff away. What more could be taken away? Not much.

  • We probably won't/can't create a new paradigm by adding something. There's nothing left to add. All general-purpose programming languages are Turing complete. They implement all known computation. There's nothing else to be added.

As for the future of programming languages, Bob proposed his following constraints:  

  • It enforces all three paradigms. They are not mutually exclusive.  

  • It should use dynamic runtime strong type checking.  

  • It should be syntax light. For example, Java and C++ are very wordy. Just look at how much is needed for "Hello World!"  

  • It should be homoiconic, which means that the language is a data structure itself. Lisp is a good example of this. Lisp processes lists (LIStProcessor). But Lisp's language structure is also in the form of a list. 

Bob ended with the only language he knows of that matches all of these bullets - Clojure.

Jim Humelsine (AKA Design Pattern Evangelist)