Artwork

Content provided by Pat and Craig. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by Pat and Craig or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://player.fm/legal.
Player FM - Podcast App
Go offline with the Player FM app!

TG #23: Antipatterns

35:45
 
Share
 

Archived series ("Inactive feed" status)

When? This feed was archived on December 15, 2020 16:09 (3+ y ago). Last successful fetch was on June 05, 2019 03:18 (5y ago)

Why? Inactive feed status. Our servers were unable to retrieve a valid podcast feed for a sustained period.

What now? You might be able to find a more up-to-date version using the search function. This series will no longer be checked for updates. If you believe this to be in error, please check if the publisher's feed link below is valid and contact support to request the feed be restored or if you have any other concerns about this.

Manage episode 152036961 series 1046757
Content provided by Pat and Craig. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by Pat and Craig or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://player.fm/legal.

This Tweak and Geek episode has us discussing antipatterns — that is, things you shouldn’t do, like programming poorly or NOT listening to Tweak and Geek. We also bring our Lame News feature out again.

Anti Patterns

Recently, Craig has become interested in software design patterns. They’re time-tested solutions to general problems. Although they do not, by themselves, deliver guaranteed results, they are good tools.

However, I’ve also noticed that bad habits are much easier to adopt than good habits. These bad habits, “antipatterns”, are “a commonly occurring solution to a problem that generates decidedly negative consequences”. Antipatterns can represent a lesson learned, rather than just a bad thing. The interesting thing is that using antipatterns don’t necessarily lead to failure, rather, they may lead to a bad solution to a problem. Think about when you first learned about exception handling in Java or C#. Say you’re performing a division. You get two numbers as input, and perform your division inside a try block. If the divisor is 0, your program will throw an exception. Well, that’s great, because you can just recover from it in the catch block. However, using the exception handling as a normal part of program flow is an example of something that works, but is a poor solution. Exception handling is a costly operation and can degrade the performance of your program.

Antipatterns don’t only exist in software. They exist anywhere that problems need to be solved. Wikipedia has a pretty good article on antipatterns, as does a consulting company’s wiki. Sometimes it seems that antipatterns are just an opportunity for someone to give an insoluble problem a funny name.

At www.antipatterns.com there are several books (Antipatterns in Project Management, Antipatterns and Patterns in Software Configuration Management and AntiPatterns – Refactoring Software, Architecture and Projects in Crisis).

Here are some interesting management antipatterns from Wikipedia:

  • Design by Committee: Many contributors but no unifying vision. Too much consensus and not enough leadership.
  • Crisis Mode: Deal with things only when there is a crisis. Being reactive rather than proactive.
  • Analysis Paralysis: The inability to take action due to the over analysis of a problem.
  • Death March (SuperHero): Employees are expected to bear the brunt of a failing project with unreasonable expectations (deadlines or budgets).
  • Escalation of Commitment: The failure to rescind a wrong decision

Interesting Software Design and Programming Antipatterns

  • Gold Plating – Working on a project beyond its worth (i.e. 90% of effort in last 10%)
  • Magic Numbers and Strings – Hard coded values
  • Copy and Paste Programming – Copying and modifying existing code instead of implementing a general purpose solution (who hasn’t done this?)
  • Programming By Accident – Trying things until something works (html/css)
  • God Object – Having too much functionality in one object.

Lamest News of the Week

Craig
Kids With Nazi Names Taken From Home
Adolf Hitler Campbell, JoyceLynn Aryan Nation Campbell and Honszlynn Hinler Jeannie Campbell were taken into state custody. No comment on why, but this came to everyone’s attention when, last month (I remember this), a grocery store refused to put Adolf’s name on a birthday cake. Lameness?

  • Lame parents would name their children such
  • Lame grocery store taking editorial liberty with their birthday cakes.

Pat
Need your pr0n fix without that annoying captcha? Automate the captcha with a Javascript neural network! This is actually a nicely-written neural net… but it sure is odd to apply such high-tech to this sort of problem!

  continue reading

50 episodes

Artwork
iconShare
 

Archived series ("Inactive feed" status)

When? This feed was archived on December 15, 2020 16:09 (3+ y ago). Last successful fetch was on June 05, 2019 03:18 (5y ago)

Why? Inactive feed status. Our servers were unable to retrieve a valid podcast feed for a sustained period.

What now? You might be able to find a more up-to-date version using the search function. This series will no longer be checked for updates. If you believe this to be in error, please check if the publisher's feed link below is valid and contact support to request the feed be restored or if you have any other concerns about this.

Manage episode 152036961 series 1046757
Content provided by Pat and Craig. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by Pat and Craig or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://player.fm/legal.

This Tweak and Geek episode has us discussing antipatterns — that is, things you shouldn’t do, like programming poorly or NOT listening to Tweak and Geek. We also bring our Lame News feature out again.

Anti Patterns

Recently, Craig has become interested in software design patterns. They’re time-tested solutions to general problems. Although they do not, by themselves, deliver guaranteed results, they are good tools.

However, I’ve also noticed that bad habits are much easier to adopt than good habits. These bad habits, “antipatterns”, are “a commonly occurring solution to a problem that generates decidedly negative consequences”. Antipatterns can represent a lesson learned, rather than just a bad thing. The interesting thing is that using antipatterns don’t necessarily lead to failure, rather, they may lead to a bad solution to a problem. Think about when you first learned about exception handling in Java or C#. Say you’re performing a division. You get two numbers as input, and perform your division inside a try block. If the divisor is 0, your program will throw an exception. Well, that’s great, because you can just recover from it in the catch block. However, using the exception handling as a normal part of program flow is an example of something that works, but is a poor solution. Exception handling is a costly operation and can degrade the performance of your program.

Antipatterns don’t only exist in software. They exist anywhere that problems need to be solved. Wikipedia has a pretty good article on antipatterns, as does a consulting company’s wiki. Sometimes it seems that antipatterns are just an opportunity for someone to give an insoluble problem a funny name.

At www.antipatterns.com there are several books (Antipatterns in Project Management, Antipatterns and Patterns in Software Configuration Management and AntiPatterns – Refactoring Software, Architecture and Projects in Crisis).

Here are some interesting management antipatterns from Wikipedia:

  • Design by Committee: Many contributors but no unifying vision. Too much consensus and not enough leadership.
  • Crisis Mode: Deal with things only when there is a crisis. Being reactive rather than proactive.
  • Analysis Paralysis: The inability to take action due to the over analysis of a problem.
  • Death March (SuperHero): Employees are expected to bear the brunt of a failing project with unreasonable expectations (deadlines or budgets).
  • Escalation of Commitment: The failure to rescind a wrong decision

Interesting Software Design and Programming Antipatterns

  • Gold Plating – Working on a project beyond its worth (i.e. 90% of effort in last 10%)
  • Magic Numbers and Strings – Hard coded values
  • Copy and Paste Programming – Copying and modifying existing code instead of implementing a general purpose solution (who hasn’t done this?)
  • Programming By Accident – Trying things until something works (html/css)
  • God Object – Having too much functionality in one object.

Lamest News of the Week

Craig
Kids With Nazi Names Taken From Home
Adolf Hitler Campbell, JoyceLynn Aryan Nation Campbell and Honszlynn Hinler Jeannie Campbell were taken into state custody. No comment on why, but this came to everyone’s attention when, last month (I remember this), a grocery store refused to put Adolf’s name on a birthday cake. Lameness?

  • Lame parents would name their children such
  • Lame grocery store taking editorial liberty with their birthday cakes.

Pat
Need your pr0n fix without that annoying captcha? Automate the captcha with a Javascript neural network! This is actually a nicely-written neural net… but it sure is odd to apply such high-tech to this sort of problem!

  continue reading

50 episodes

All episodes

×
 
Loading …

Welcome to Player FM!

Player FM is scanning the web for high-quality podcasts for you to enjoy right now. It's the best podcast app and works on Android, iPhone, and the web. Signup to sync subscriptions across devices.

 

Quick Reference Guide