Monday, October 1, 2018

Episode 82: Reactive programming and the Actor model with Jonas Bonér

Download

We are sponsored by audible! http://www.audibletrial.com/programmingthrowdown

We are on Patreon! https://www.patreon.com/programmingthrowdown

T-Shirts! http://www.cafepress.com/programmingthrowdown/13590693

Reactive programming and the Actor model with Jonas Bonér

  • Tell us about your background
  • What is reactive programming?
  • What is the actor model?  How does it fit with reactive programming?
  • Why would someone use this way of programming?
  • When is it applicable and when it is not a good fit?
  • How does the actor model compare to other distributed programming paradigms (MPI, Map-Reduce)
  • How can the system recover from node failure?
  • What is Akka?
  • What is it like to work at Lightbend?  Are you hiring?

More info:

Follow Jonas Bonér on Twitter: https://twitter.com/jboner
Check out Akka here: https://akka.io/

Thursday, September 6, 2018

Episode 81: 2018 Mailbag

Download

We are sponsored by audible! http://www.audibletrial.com/programmingthrowdown

We are on Patreon! https://www.patreon.com/programmingthrowdown

T-Shirts! http://www.cafepress.com/programmingthrowdown/13590693

Intro

Christmas Gifts

News/Links

Book of the Show

Tool of the Show

Mailbag (29:15)

  • Nathan
    •  PICO-8 and/or the pocketCHIP (if you order one, be warned they are behind on other orders. Check their forums) for simple 2D game development with Lua.
  • Dylan
    • Modding video games?
  • David
  • Jack
    • How do we manage passwords?
  • “A Listener”
    • For job security, as an individual, is it best to have a little knowledge on a lot of languages or to specialise in just a single one
    • Switching programming languages for a whole organization
  • Chris
    • OS X, Windows, Linux? If Linux, what distro? What do you use day to day? What languages? 
    • What's your favorite development platform? Laptop? Battlestation? SMART PHONE?!
  • BSDTech (Discord)
    • I have a question.  As a fairly new programmer how do you best deal with variables changing types and being cast wrong in languages like python (what im working on).  In C it was fairly easy either its the right type all the time or it fails miserably and you didn't have random "its a NoneType this time" errors other than doing a ton of if loops checking for it
  • McGee (Discord)
    • I’m taking a class this semester called Operating Systems. In this class we will be creating a basic operating system in C and apparently some Assembly... what are some things to keep in mind or to expect when writing something like this?
  • Vellor (Discord)
    • Will we ever revisit topics on the show?
  • Apettit9 (Discord)
    • What do you listen to while you work?
  • Peter (Discord)
    • What are some of the best work from home positions? Sometimes it's hard to work remote, but are there any positions that are a good fit? Or does it depend more on company culture/co-workers?
  • ReillyC52 (Discord)
    • Where are some of best places to discover new open source projects and contribute to them ?
  • Grant (Discord)
    • Immutable vs. mutable objects
    • New AI Libraries (tensorflow, keras, pytorch)

Tuesday, July 31, 2018

Episode 80: Concurrency

Download

We are sponsored by audible! http://www.audibletrial.com/programmingthrowdown

We are on Patreon! https://www.patreon.com/programmingthrowdown

T-Shirts! http://www.cafepress.com/programmingthrowdown/13590693

Intro

We are on discord! https://discord.gg/r4V2zpC

News/Links

Book of the Show

Tool of the Show

Concurrency (29:15)

  • Why?
    • Getting more work done
    • Handling asynchronous requests
  • How?
    • Threads vs Processes
    • Message Passing
    • Shared Memory
    • Threadpool
  • Locking/Mutex/Semaphore
    • Coordinating Threads
    • Preventing Threads from modifying the same structure
  • Pitfalls
    • Race conditions
    • Deadlock
  • Advice
    • Don’t do concurrency yourself
      • Gnu parallel
      • Async libraries
      • Basic Linear Algebra System
    • Have a way to actually measure results

Sunday, July 1, 2018

Episode 79: Technical Arguments

Download

We are sponsored by audible! http://www.audibletrial.com/programmingthrowdown

We are on Patreon! https://www.patreon.com/programmingthrowdown

T-Shirts! http://www.cafepress.com/programmingthrowdown/13590693

Intro

Understanding how Blockchain works

News/Links

Book of the Show

Tool of the Show

Technical Arguments (1:00:26)

  • Making progress vs “Doing it Right”
    • Adding/Reclaiming Technical Debt
    • Delivering on time
    • When/how to optimize
  • Language Arguments
    • Which language to use
    • Tabs vs Spaces
    • Style
    • IDE/Text Editor
  • How to make technical arguments
    • Reflect on why you want X
    • What alternatives/substitutes exist?  What compromises?
    • Do not force an argument to complete in a single session
    • In between sessions, reflect on what has changed
    • Pick your battles

Thursday, May 31, 2018

Episode 78: Building and Testing Web Services with Postman

Download

We are sponsored by audible! http://www.audibletrial.com/programmingthrowdown

We are on Patreon! https://www.patreon.com/programmingthrowdown

T-Shirts! http://www.cafepress.com/programmingthrowdown/13590693

Building and Testing Web Services with Postman

  • What is a web service and how is it different from a web page?
  • What is REST?
  • Why would someone use a web service if they aren't building a website?
  • How can we make sure a web service is reliable?
  • What is Postman?  
  • What is it like working at Postman? Is Postman hiring?

More info:

Wednesday, May 2, 2018

Episode 77: Julia

Download

We are sponsored by audible! http://www.audibletrial.com/programmingthrowdown

We are on Patreon! https://www.patreon.com/programmingthrowdown

T-Shirts! http://www.cafepress.com/programmingthrowdown/13590693

Intro

Classic Computer Science

News/Links

Book of the Show

Tool of the Show

Julia (51:10)

  • Scientific Programming
    • Typically slow interpreter, but very fast instructions
    • Optimized instructions
      • BLAS (Basic Linear Algebra System) library
      • FFTW (Fastest Fourier Transform in the West)
      • OpenMP
    • IDE with plotting, visualization support
      • MATLAB IDE
    • Jupyter/ipython
  • Top Features
    • Async (check episode 41 for details)
    • Native multiprocessor and distributed support
    • Completely free and open source (better than Java)
    • Compiled
    • 2017 Used for scientific calculation that reached 1.54 petaflops
      • C, C++, Fortran are only other high level languages to be used at 1+ petaflops so far

Wednesday, April 4, 2018

Episode 76: Code Documentation

Download

We are sponsored by audible! http://www.audibletrial.com/programmingthrowdown

We are on Patreon! https://www.patreon.com/programmingthrowdown

T-Shirts! http://www.cafepress.com/programmingthrowdown/13590693

Intro

How to prepare for System Design & ML Design interviews.

News/Links

Book of the Show

Tool of the Show

  • Jason: iFunny/9GAG
  • Patrick: PUBG Mobile

Code Documentation (52:42)

  • Why Document?
    • More people will read code than write it.
    • Recover context on a piece of code quickly.
    • Avoid unexpected inputs
  • Vanilla code comments
    • At the top
    • At the line
  • Ways to self-document code
    • Function & Variable signatures
    • Extra scope around variables
    • Avoid variable reuse
    • (Sometimes) describe the type in the variable name
  • Generators
    • C/C++/Java
      • Doxygen
      • Javadocs
    • Python
      • Sphinx
    • Javascript
      • JSDoc