Monday, February 2, 2015

Episode 40: Unity

Download


Introduction: Pre vs Post Increment & Cooking!



News

Book of the Show

Tool of the Show

Unity

  • Overview
    • Game Engines
      • Game Loop (16ms)
      • Platform Specific APIs
        • OpenGL/DirectX vs. GDI/X/Quartz
        • OpenAL/DirectSound
      • Animation Assistance
      • Content creation pipeline
      • Scripting
      • AI
        • Pathfinding
      • Physics
  • History of Game Engines
    • High Level Game Engines
      • RPGMaker
      • SCUMM http://en.wikipedia.org/wiki/SCUMM
    • Low Level Game Engines
      • SDL
      • SMFL
      • OGRE/OIS/OpenAL
      • HaXE
      • Canvas/HTML5
  • Unity
    • Assign script(s) to Prefabs
      • Each script is composed of callbacks ( Update, UpdateFixed, Start, etc.)
    • Instantiate prefabs to create GameObjects
      • Prefab is a prototype of a GameObject
    • UnityScript / UnityC# / Boo
  • Pros
    • Cross-Platform (Desktop, Web, Mobile)
    • Productivity Boost
    • Contains many third party plugins (Toon Shading, etc.)
  • Cons
    • Unity Pro
    • $1500, +$1500 for android, +$1500 for iOS
    • Hard to do custom game engines
      • Minecraft, Custom physics, etc. only possible with Unity Pro Native or Plugins
    • Licensing fees


Wednesday, January 7, 2015

Episode 39: Rust

Download


Intro Topic: Listener Mailbag





News

Tool of the Show

Rust

  • Overview
    • A memory-safe interpretation of C++
    • Unsafe pointers are not allowed (e.g. x = 0x1234)
    • Type Inference
    • Boxes (memory shared between threads but owned by the creating thread)
    • Traits (interfaces which allow function bodies but no fields)
    • Two runtimes: native and green
      • In Native, each task is a thread
      • In Green, you specify a threadpool and each task is a coroutine
  • History
    • Personal project for a mozilla employee
    • Still in alpha mode (using stable releases is discouraged)
    • Very basic support for thrift for connecting to other languages
  • Pros
    • Uber smart compiler
    • Great standard library
      • Auto serialization to/from json/base64/hex
      • Army of useful collections (BTree, Trie, LRU, Arena, etc.)
    • GraphViz for creating dot files from rust collections
    • Many more
  • Cons
    • Slower than C++ (But not much)
    • Too early to use reliably
    • Third party libraries are lacking / immature


Saturday, November 22, 2014

Episode 38: SIMD

Download

User question: Do computers ever make mistakes?


Intro Topic: Rookie Software Engineer Mistakes
  • Optimization-inspired Assumptions
  • No asserts/exceptions/tests.
  • Reinventing the wheel.

News

Book of the Show

Tool of the Show

SIMD (Single Instruction Multiple Data)



Wednesday, October 15, 2014

Episode 37: Funky Languages

Download

User question: Should I move to silicon valley?


Intro Topic: How do startups work?

News




Book of the Show




Tool of the Show




Funky Languages


  • Whitespace
    • Language entirely composed of tabs, spaces, and newlines
    • All non-whitespace characters are ignored
    • Can be embedded in text or code from whitespace-ignoring languages
  • ArnoldC
    • Most keywords & system function calls are replaced with Arnold Schwarzenegger movie quotes
    • Code:
      IT'S SHOWTIME
      TALK TO THE HAND "hello world"
      YOU HAVE BEEN TERMINATED
  • Velato
  • Piet
Listener Contribution: Rejection Sampling iPython notebook

Programming Throwdown is #74 on tech podcasts in iTunes!  Thanks for your support!!!


Monday, September 8, 2014

Episode 36: Swift

Download

Question: Getting involved with Open Source projects?

News




Book of the Show




Tool of the Show


  • Jason: Nextdoor
  • Patrick: Waze


Swift


  • Motivation
    • Objective-C is too low-level
  • Features
    • Static Typing with type-inference
    • Generics (e.g. typed containers)
    • String Templating (like handlebars)
    • Closures
    • Functions as first class citizens
    • Operator overloading
  • LLVM
    • Low Level Virtual Machine
    • LLVM Bytecode same as CLI in .NET
    • Swift -> LLVM bytecode -> machine code
    • Optimized for mobile
    • Integration with Objective-C
  • Bridging Header: Creates wrapper code for a set of Objective-C headers
  • Resources


Thursday, July 31, 2014

Episode 35: Haskell


Download

Question: Does your (current or potential) job title matter?

News
Book of the Show
Tool of the Show
  • Jason: Uber
  • Patrick: Store Coupon Apps

Databases

Thursday, June 26, 2014

Episode 34: Databases


Download

News
Book of the Show
Tool of the Show

Databases
  • Flat Files vs. Databases
  • Motivation (Why use a database)
    • Reverse-Indexing
    • Caching
    • Redundancy
    • Scalability
    • Segmentation
    • Analysis
    • Validation
  • Consistency
    • ACID
    • Eventually Consistent
  • Types
    • Relational Databases
      • SQL (Structured Query Language)
    • NoSQL Databases
      • Key/Value Store
      • Column-Family (Key / MultiValue)
      • Document Store
  • Implementations
    • Embedded
      • SQLite (Relational)
      • BerkeleyDB / MapDB (Key/Value)
    • In-Memory Server Database
      • memcached (Key/Value)
      • Redis (Key/Value)
    • Disk-Based Server Database
      • MySQL / Postgres (Structured)
      • HBase / Cassandra  (Column-Family)
      • MongoDB / RethinkDB (Document)