Coding Blocks

Coding Blocks

By Allen Underwood, Michael Outlaw, Joe ZackBusinessTechnologyEducationHow ToCareers
Download on the App Store

Coding Blocks episodes

  • Clean Code – How to Write Amazing Functions
    We continue talking our way through Clean Code, taking a deep look at the building blocks of programming in the quest to write the best functions. Oh, and everybody sings. The original version of the show notes can be found at: http://www.codingblocks.net/episode48. Podcast News iTunes Reviews: BrokenDev, Simontheu, Hruncito, TerrenceD, Rich11145, HardCoreRockstar, Bcmsco, FriendofEntropy, Fredstban, […]
    0 min
  • Clean Code - How to Write Amazing Functions

    We continue talking our way through Clean Code, taking a deep look at the building blocks of programming in the quest to write the best functions. Oh, and everybody sings.

    The original version of the show notes can be found at:
    http://www.codingblocks.net/episode48

    2 hr 10 min
  • 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 […]
    1 hr 52 min
  • 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.

    You can see the original show notes and put your own stamp on our survey here:
    http://www.codingblocks.net/episode47

    News

    Samsung 960 Pro
    http://www.anandtech.com/show/10698/samsung-announces-960-pro-and-960-evo-m2-pcie-ssds

    SQL Server 2016 Columnstore for real time operational analytics
    https://msdn.microsoft.com/en-us/library/dn817827.aspx

    Krebs site taken off Akamai
    http://www.zdnet.com/article/krebs-on-security-booted-off-akamai-network-after-ddos-attack-proves-pricey/

    The best Android distribution is iOS?
    Outlaw’s thoughts on various phone OS’s

    Survey

    [yop_poll id="23"]

    Meaningful Names - Clean Code Chapter 2

    “If a name requires a comment, then the name does not reveal its intent”

    • Write explicit code - naming variables and methods can reveal the entire intent of the code
    • Avoid using words that would be confusing like “List” as they refer to programming types and could be misleading : accountList should be accounts
    • Avoid using characters that look like numbers i and L or capital o
    • disinformative vs noninformative
      • noise words “data” “info” - noninformative
    • Types should almost never be in a name “table” “string” “object”
    • Names should be distinguished so a user can look at them and understand the differences
    • Use pronounceable names
    • Use searcheable names - longer names trump shorter names
    • Author’s pref - single letter names should only be used as local variables inside small methods - length of the name should correspond to the size of its scope
    • Avoid encoding names
    • Avoid Hungarian Notation with typing as part of the variable name - simply not needed nowadays
    • Stop prefixing member (instance) variables with m_ or _
    • Decorating Interfaces vs Classes with a prefix / suffix - opinion - he prefers
      • ClassImp or vs IType
    • Don’t force someone to map variable names in their mind - n = username…smart programmer vs professional programmer - clarity is king
    • Class names should be nouns - English 101 - NOT VERBS
    • Method names should be verbs
    • Use get, set, is - javabean standard
    • When constructors are overloaded, use static factory methods with explicit names - liked this one, possibly make the constructors private
    • Don’t get cute with naming by means of jokes (inside or well known)
    • Use consistent naming - Get, Set, Controller - makes it easier to understand and code various parts of an application
    • Avoid puns - add for a collection vs add for setting a value - two different meanings with the same name
    • Use technical names such as pattern names or CS terms in your names - other programmers will understand them better than the problem domain in some cases
    • Fall back to the problem domain for a name if there is no suitable technical name
    • Adding context to naming can clarify their use - prefixes can work but putting variables into classes may work out better

    “Hardest thing about choosing good names is that it requires good descriptive skills and a shared cultural background”

    Renaming things that don’t make sense as you work in code is a good thing.

    Resources we Like

    Clean Code

    Clean Code by Robert C. Martin

    Even though we’re giving our thoughts on the various ideas throughout the book, Clean Code has tons of excellent sample code that really helps drive the points home. We can’t recommend it enough - it’s probably one of the few books EVERY developer should read and revisit from time to time.
    http://amzn.to/2cryvJR

    Tip of the Week

    Allen: Implementing OAuth in ASP.NET for a number of providers
    http://www.oauthforaspnet.com/

    Michael: Get out there! Go to conferences, meetups, do it all!
    http://www.connect.tech/
    https://www.atlantacodecamp.com/2016

    1 hr 52 min
  • Caching in the Application Framework
    Storing smaller subsets of data in a faster, closer memory can make astronomical differences in performance. This episode we’re talking about the caching tools and techniques that application frameworks provide. The original version of the shownotes can be found at: http://www.codingblocks.net/episode46 New Poll! Podcast News Thanks for the reviews! Mr_Automation, Nateve, chubb5000, Travelerbell, LaCaren, ryanwebjackson, […]
    0 min
  • Caching in the Application Framework

    Storing smaller subsets of data in a faster, closer memory can make astronomical differences in performance. This episode we're talking about the caching tools and techniques that application frameworks provide.

    The original version of the shownotes can be found at:
    http://www.codingblocks.net/episode46

    1 hr 57 min
  • Caching Overview and Hardware
    In this episode we give a general overview of caching, where it’s used, why it’s used, and what the differences in hardware implementations mean in terms we can understand.  This will be foundational to understanding caching at a software level in an upcoming episode.  There’s also something about the number 37 that may be the […]
    1 hr 36 min
  • Caching Overview and Hardware

    In this episode we give a general overview of caching, where it's used, why it's used, and what the differences in hardware implementations mean in terms we can understand.  This will be foundational to understanding caching at a software level in an upcoming episode.  There's also something about the number 37 that may be the most important number to remember...ever...

    Podcast News

    You can see all the show notes in their original form by visiting:
    http://www.codingblocks.net/episode45

    Thanks for your patience, we had a couple of rough audio situations - and we appreciate you sticking with us!

    iTunes Reviews
    Hedgehog, Thiagoramos.ai, Btn1992, Jonajonlee, UndeadCodemonkey, zmckinnon, hillsidecruzr, Dibjibjub, ddurose

    Stitcher Reviews
    pchtsp, rafaelh, CK142, TheMiddleMan124, LocalJoost

    • 60 TB SSD!!!
      https://www.engadget.com/2016/08/09/seagate-60tb-ssd/
    • Samsung 950 Pro M.2 PCI SSD

      Samsung 950 PRO Series - 512GB PCIe NVMe
      http://amzn.to/2b0adZt
      Full Review
      http://www.anandtech.com/show/9702/samsung-950-pro-ssd-review-256gb-512gb

    • Ready Player One (fiction book)
      http://amzn.to/2aPaCi3 Ready Player One - Amazing Audio Book

    Clean Code episodes coming soon + book giveaway - Stay Tuned!

    Caching: Turtles all the way down

    Turtles all the way down???
    https://en.wikipedia.org/wiki/Turtles_all_the_way_down

    • Storing a subset of information for faster retrieval
    • The hit ratio dramatically increases as the cache size increases
    • Think about a simple web request…
    • Browser cache
    • DNS cache
    • ISP caching
    • CDN
    • Whatever your application is doing (redis, framework, database, etc)
    • PLUS whatever the various computers are doing
    Why don’t we cache everything?
    • Fast is expensive!
    • Cache Invalidation is hard!
    Caching at the hardware level Interactive Cache Visualization

    Latency Numbers Every Programmer Should Know
    https://gist.github.com/jboner/2841832

    Relative Memory Access Interactive Demo
    http://www.overbyte.com.au/misc/Lesson3/CacheFun.html

    Caching is a strategy that computers use going all the way down to the processor

    L1
    • .5ns
    • As quick as a it gets, how long it takes light to travel 6"
    • Managed by the CPU itself, no assembly available!
    L2
    • 7ns
    • 14 x slower than L1
    • L3 / L4 / Scratch etc
    Main Memory
    • Have numbers for a “reference” and a 1mb sequential read
    • 100ns - 250,000ns
    • 14 - 35,714 x slower than L2
    • 200 - 500,000 x slower than L1
    Network
    • Sending is quick, there are numbers for that
    • In general, a lot of variability here
      Same datacenter
    • 500,000 ns
    • 2 x slower than Main Memory
    • 1 million times slower than L1
    SSD
    • Wait, network faster than the hd??? Yes, but no
    • 1mb sequential
    • 1 million ns
    • 2 x slower than Network
    • 2 million x slower than L1
    Spinning Disk
    • Get your employer to get you an ssd!
    • 1mb sequential read
    • 20 million ns
    • 20 x slower than SSD
    • 40 million x slower than L1
    Internet
    • Rough gauge of internet speeds
    • Highly variable (CDN + ISP caching, for example), but gives you a sense of scale
    • 150 million ns
    • 7.5 x slower than spinning disk
    • 300 million times slower than L1
    In more relatable terms.
    • 1 second for L1 Cache
    • 5 days for memory
    • 11 days for data center
    • 23 days for SSD
    • 15 months for HD
    • Almost 10 years for internet!

    Think about how those numbers cache

    • RAM / Application cache
    • Local Hard drive
    • Network storage
    • Cache Server
    • DB
    Summary

    Hope we gave you a good idea of the importance and scale of caching in computing at the hardware level

    Things we didn’t talk about coming in a future episode:

    • Application / Software caching and caching algorithms
    Resources we Like

    Latency Numbers Every Programmer Should Know
    https://gist.github.com/jboner/2841832

    How L1 and L2 caching work
    http://www.extremetech.com/extreme/188776-how-l1-and-l2-cpu-caches-work-and-why-theyre-an-essential-part-of-modern-chips

    Relative Memory Access Interactive Demo
    http://www.overbyte.com.au/misc/Lesson3/CacheFun.html

    Miscellaneous

    Michael’s Favorite Meetup Ever
    The Atlanta JavaScript Meetup
    http://www.meetup.com/AtlantaJavaScript/events/222696324/?a=cr1_grp&rv=cr1

    Hacking Interviews with:
    Nick Larsen - http://cultureofdevelopment.com/
    Sam Lawrence - http://www.samelawrence.com/

    Tip of the Week Algorithms to Live By

    Joe: Algorithms to Live By
    There's something about the number 37%...
    http://amzn.to/2aX1iJk

    Michael: Use Sublime to replace \n with an actual new line by turning on RegEx search and replace. Or in Michael’s case, replace
    with actual \n\t characters.
    http://stackoverflow.com/questions/20515670/replace-n-with-actual-new-line-in-sublime-text

    Allen: Collaborative Markdown Editor - What?!
    http://www.hackmd.io

     

    1 hr 36 min
  • Stack Overflow Salaries and Landing the Job
    This week on Coding Blocks, Allen says www as best he can, Joe eats the microphone, and Michael does something crazy as we discuss Stack Overflow’s Salary Calculator and our experiences in landing the job – what to do and what not to do. Want to be part of our Slack community? Sign up @ […]
    2 hr 40 min
  • Stack Overflow Salaries and Landing the Job

    This week on Coding Blocks, Allen says www as best he can, Joe eats the microphone, and Michael does something crazy as we discuss Stack Overflow's Salary Calculator and our experiences in landing the job - what to do and what not to do.

    2 hr 40 min

About Coding Blocks

From the publisher's feed

Become the best software developer you can be

More shows like Coding Blocks

The Daily by The New York Times

The Daily

111,708 Listeners