Wednesday, August 31, 2016

Episode 57: Optimization

Download

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

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

Intro topic: Public Service Announcement: Binomial Distribution

News/Links


Book of the Show

Tool of the Show


Optimization Discussion

  • Architecture
    • SIMD
    • GPU
    • CPU
  • Compiler settings
    • Optimization Settings (Why to turn on or off) (size vs speed)
    • Loop Unrolling
  • Memory
    • Cache Levels vs Main Memory
    • Data Locality/Access Patterns (Matrix multiply optimization)
  • Indexing
    • Trees
    • Hashing (Clustering)
  • Distributed Computing
    • Threading
      • Multi-Thread
      • Multi-Process
      • Thread pools
    • Networking
      • Load Balancing
      • Reliable UDP
  • Algorithmic improvements
    • Big-O notation
    • Approximations





Friday, July 22, 2016

Episode 56: Robotics

Download

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

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

Intro topic: Reddit thread and new microphone

News/Links


Book of the Show

Tool of the Show



Robotics Discussion

  • Controls / Actuators
    • Locomotion
    • Manipulation
    • Closed loop vs open loop
  • Sensors
    • Cameras
    • Accelerometers
  • Planning / Autonomy
    • Teleoperated
    • Supervised
    • Tasked
    • Autonomous
  • Communications 
    • Inter system communication
    • Swarm
  • Human Machine Interaction
    • Input
    • Emotion
  • Examples
    • FIRST Robotics
    • Robotwars
    • Robocup
    • Self driving car





Friday, June 24, 2016

Episode 55: Editor Wars

Download

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

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

Intro topic: Mandatory Vacation
https://text.sourcegraph.com/why-vacation-at-tech-companies-should-be-mandatory-better-code-happier-people-d1b549681291#.imcvd6xem

News/Links


Book of the Show

Tool of the Show



Editor Discussion

  • Philosophy
    • Customized
    • Searchable/Ability to go from usage to definition
    • Integrated vs roll your own (The stack)
  • The simplest
    • Pico/Nano
    • Notepad/Wordpad
  • IDE-As-A-Platform
    • Emacs
    • Vi/Vim
  • Java behemoths
    • Netbeans
    • Eclipse
    • Intellij
  • Corporate IDEs
    • Visual Studio
    • XCode
  • New kids on the block
    • Sublime
    • Atom
  • Language-Specific
    • MATLAB
    • R studio
    • Spyder
  • In memorium
    • Code::Blocks
    • Borland C++ Builder
    • FreeBASIC





Wednesday, May 25, 2016

Episode 54: Programming for the GPU

Download

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

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


Programming for the GPU with Mark Harris


  • Introductions: Who is Mark Harris? What is NVIDIA?
  • GPUs & Heterogeneous Computing
    • What's the performance difference between GPU and CPU?
    • What’s better on a GPU? What’s better on a CPU?
    • If a program needs to use the CPU (e.g. reading packets from the network) and the GPU (e.g. fluid simulation) at the same time, how do the CPU and GPU programs communicate?
  • CUDA
    • What is CUDA?
    • What’s the difference between SSE / CUDA / OpenCL?
    • How does someone debug CUDA code?
    • How does someone profile their code to find bottlenecks?
    • Cuda Plattorm
      • Directives, openmp
      • Cuda c++
  • CUDA Libraries
    • Deep Learning
    • CuBLAS
    • Drive
  • Deep Dream:
    • https://github.com/google/deepdream
  • Udacity course on CUDA
    • Intro to parallel programming
  • Life @ NVIDIA
    • What is a day working at NVIDIA like?






    Monday, May 2, 2016

    Episode 53: Open Source Communities

    Download

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

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


    Open Source Communities with Mikeal Rogers

    • Introductions: what is the Node.JS foundation?
    • Open Source Communities
      • What is an open source community?
      • What is the relationship between tech companies and open source communities?
    • Communication
      • How to people across the global coordinate on a single project?  How are disagreements settled?
      • Are there conventions / events where contributors can meet face-to-face?
    • Getting involved
      • I want to improve open source project X, but the codebase is huge and I can’t understand it, how do I get started?
      • I think my open source project is really great, how do I build an audience and grow the project?
    • Node.JS
      • What are some cool projects made in Node.JS?
        • Nodeschool.io / electron / cordova / stackgl
    • The Node.JS Foundation
      • What does the Node.JS Foundation do day-to-day?
      • I am a student who loves Node.JS, how can I help?
      • My whole company runs on Node.JS, how can my business help the foundation?





      Monday, March 28, 2016

      Episode 52: Scientific Python

      Download

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

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

      Intro topic: Virtual Reality

      News/Links


      Book of the Show




      Tool of the Show



      Scientific Python



      • Interfaces
        • Command-Line
        • Spyder
        • Jupyter (formerly ipython notebook)
          • Divides programs into cells and freezes the state of the system in between cells
          • Similar to mathematica notebook
      • Tensor libraries
        • Numpy
          • MATLAB-like interface in python
          • Built on top of LAPACK and other C & Fortran libraries
          • Faster than native python
        • Theano
          • Designed to use the GPU
          • Deferred Execution (batching)
          • Built on top of CUDA (GPU) or Numpy (CPU)
        • Tensorflow
          • Can use either the CPU or GPU
          • Visualization tools (control flow diagrams)
          • Better documentation than Theano
      • Scientific Libraries
        • SciPy
          • Integration, optimization, signal processing, statistics
          • Sparse linear algebra
        • Pandas
          • Data frames, reshaping and pivoting
          • Reading/writing CSV, SQL, HDF5
        • PyMC
          • Bayesian statistical models
          • Markov-Chain Monte-Carlo
      • Visualization
        • Matplotlib
          • Lightweight, can embed graphs in jupyter
        • Panoramix
          • A full service with lots of features, designed to deeply analyze datasets






      Wednesday, February 24, 2016

      Episode 51: Udacity: Democratizing Online Education

      Download

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

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

      Questions

      • Knowledge acquisition
        • How did you (Art / Jason / Patrick) first learn about programming?
        • If you had to start from scratch, how would you learn now?
      • Career Advancement
        • I got a degree in ¬(CS) but I really love programming, what's the best way to land a job in programming?
        • How can I get tech company X to interview me without a degree in CS?
      • Certification
        • How are online/bootcamp courses certified?  How is this different than a university accreditation?
        • Will companies substitute a certification from Udacity for a similar college course?
      • Udacity
        • Tell us about Udacity! (idea, conception, history, current state)
        • Does Udacity have academic courses or does it have industrial courses (or both)?
        • How is taking an Udacity course different than taking a university course?  How is it the same?
        • Are there any public stats on how Udacity has helped students reach their personal / career goals?