Links of the Week, W42 2015

This week’s list of links contains one new category: Books, in which I link to both free and non-free books that I’d recommend to programmers and game developers.

My favorite link I came across this week? That’s easy: an annotated hex-dump of Ms. Pac-Man. I love ‘reading’ that kind of stuff. If you’re a fellow Pac-Man fan but aren’t interested in looking at hex-dumps then be sure to read and bookmark the amazing Pac-Man Dossier. You will also notice a number of links related to Pac-Man this week. I love that game, so it was one of those situations where reading one site about Pac-Man turned into three or fours hours of looking at everything Pac-Man.

Oh, and one other thing—Programming Sucks.

Week 42, 2015

Assembly

  1. Crash Course to Amiga Assembly Programming.
  2. WLA DX: Multi-Platform Assembler for the Z80, 6502, 6510, 65816, et al.
  3. Annotated Pac-Man Assembly Source.
  4. Annotated Ms. Pac-Man Assembly Source.
  5. Radare: Portable Reverse Engineering Framework.
  6. Z80 Family Support Page.
  7. Introduction to Z80 Assembler.
  8. PDF: Z80 Instruction Set.
  9. The Z80 Assembler.
  10. Disassembling Loops and Control Structures in x86.

Books

  1. Test Driven Development for Embedded C.
  2. Z80 Assembly Language Programming. Note: Written in 1979, but a great classic.
  3. Understanding Model-View-Controller. Note: Free book, but currently unfinished.

C

  1. Unit Testing Embedded C Applications With Ceedling.
  2. Unity: Tool for Unit Testing for Embedded C.
  3. CMock: Automated Mock and Stub Generation for C.

C++

  1. bit_cast<T>()
  2. Huffman Coding Without a Tree.
  3. IRUL: Library for Easy Iterators.
  4. Header-Only C++11 Networking Library Using ENet.

Clojure

  1. Collection of Clojure Koans.
  2. Writing Friendlier Clojure.
  3. Duct: Minimal Framework for Web Applications.
  4. Ring: HTTP Server Abstraction.
  5. Library for Easier Use of Compojure.

ClojureScript

  1. more: Library for Persistent Data Structures.

Command-Line

  1. Cookiecutter: Create Projects From Templates.
  2. CLI for Programming Challenges.
  3. The History of the Design of UNIX’s find Command.
  4. terminalCV: The Resume for Hackers and Sysadmins.
  5. logfmt. Note: Relevant article on usage.

Computer Science

  1. Great Collection of Resources for Self-Education and Study.

Emacs

  1. Animations With Emacs.
  2. Tutorial on Configuring Emacs Using Literate Programming.
  3. Tips and Advice on Emacs Lisp Programming. Note: Outdated in a number of respects, but still a useful resource.

Emulation

  1. How to Write a CHIP-8 Emulator.
  2. Comp Mark II: Simple 4-bit, 1Hz Virtual Computer.
  3. Microprocessor Simulator for Students.
  4. Experimental Atari 2600 Emulator in Ruby.
  5. Reicast: Dreamcast Emulator. Note: Source code.
  6. CHIP-8 and SCHIP Emulator in Rust.
  7. ASCII x86 Instruction Virtualizer.
  8. puNES is now open-source.

Forth

  1. 8th 1.1.4 released.
  2. Tenth: Simple, Bare-Metal Forth for the PDP-10.

Games

  1. UnReal World.
  2. Over 700 Free Roguelikes in a Torrent Bundle.
  3. Rogue-TV: A Game-Show Roguelike About a Roguelike Game-Show.

Game Design

  1. Ms. Pac-Man Disassembly.
  2. Why do Pinky and Inky Have Different Behaviors When Pac-Man is Facing Up?

Game Development

  1. Over 4,000 Public Domain Art Assets for Roguelikes.
  2. Webrender: Experimental Servo Rendering for Game Development.
  3. Visual Representation of Atari 2600 Games.
  4. Pac-Man Tribute Project.
  5. How to Write a Pac-Man Game in JavaScript.
  6. Overview of the Piston Engine.
  7. Designing Smart, Meaningful Shmups.
  8. Visual Novel Edge Engine.
  9. Predicting and Controlling NetHack’s Randomness.

Git

  1. Clonem: Clone and Update All GitHub Repositories by a User or Organization.
  2. Simple HTTP Git Large File Storage Server.

Golang

  1. xgb: X Protocol Go Binding.
  2. Port of TinyWM.
  3. Simple Configuration Manager.

Haskell

  1. Flow: Package for More Understandable Haskell. Note: Relevant article by the author.
  2. Creating a BitTorrent Client in Haskell: Part 1.
  3. Renderable Types.
  4. Polymorphism for Dummies.
  5. Online Point-Free and Pointful Style Convertor.
  6. ansigraph: Terminal-Based Graphs Using ANSI and Unicode.

Java

  1. Blackcat: Lightweight Dependency Injection Library.
  2. AssertJ: Fluent Assertions.
  3. Effective Cryptography in the JVM.

JavaScript

  1. React v0.14 released.
  2. Falcor: Efficient Data Fetching.
  3. Volkswagen: Detects When Tests Run on a CI Server.
  4. Vue.js: Library for Modern Web Interfaces.
  5. Recompose: Micro-Component Toolkit for React.
  6. Immutable Data Structures and JavaScript.
  7. Backwards-Compatible Immutable Data Structures.
  8. Redux: Predictable State Container.
  9. Why ECMAScript 6 Classes Are Not Awesome.
  10. Vorpal: Node.js Framework for Interactive CLI Applications.

Lisp

  1. CMUCL 21a released.
  2. The StumpWM Experience.
  3. Clojure’s Threading Macros in Common Lisp.

Lua

  1. LuacExplain: Enhance the Output of luac -l.
  2. NSLua: Bridge Between Lua and Objective-C.
  3. luaproc 1.0-4 released.
  4. loadx: A Better load().
  5. Library for Conversion Between Markup Formats.

Operating Systems

  1. KnightOS: Operating System for Texas Instrument Devices.
  2. Syscall References.
  3. LK: An SMP-Aware, Embedded Kernel.
  4. Mini-OS.

Perl

  1. Larry Wall Unveils Perl 6.

PHP

  1. Medoo 1.0 released.
  2. PHPUnit VW Extension.
  3. Cilex: Microframework for CLI Applications.
  4. Dashboard.
  5. An Exceptional Change in PHP 7.
  6. Decouple From Frameworks.
  7. Puli: Universal Packages.

Python

  1. OneDrive SDK 1.0 released.
  2. Six 1.10.0 released.
  3. PyDev 4.4.0 released.
  4. Numpy 1.10.0 released.
  5. Conda.
  6. DiffPy: Atomic Structure Analysis.
  7. Download, Install, and Configure Python in One Line.
  8. Pillow: The Friendly PIL Fork.
  9. Blip: Bytecode Compiler for Python 3.
  10. Graphene: GraphQL in Python Made Simple.
  11. PyFHI: Python File Handling Improved.
  12. How the Fuck Works.
  13. Making Unit Tests Better With Docker.
  14. Python for Data Science.
  15. Effect: Library to Avoid Side-Effects for Functional Programming.
  16. gensim: Topic Modeling for Humans.
  17. assertpy: Dead Simple Assertions and Unit Testing.
  18. QuickPackage: Instantly Create and Upload Python Packages.
  19. Pipe: A Library for Infix Notation.

Rust

  1. Rustation: PlayStation Emulator.
  2. Coroutine I/O.
  3. Rust Faster!.

Scheme

  1. Live-Coding With Scheme Bricks.
  2. define-anaphor Macro for Threading and Overloading.

Security

  1. Keyczar: Open-Source Cryptography Toolkit.

Smalltalk

  1. Objective-Smalltalk.

SQL

  1. Why SQL is neither legacy, nor low-level, nor difficult, nor the wrong place for (business) data logic, but is simply awesome!
  2. You Probably Don’t Use INTERSECT or EXCEPT Often Enough.

Web Development

  1. dirs3arch: CLI Tool to Brute Force Website Directories and Files.
  2. You Wouldn’t Base64 a Password.
  3. Building Services With Duct and Compojure-API.
  4. Nineteen Push-Notification Tools You Need to Know About.

Misc

  1. A Programming Language for DNA Computing.
  2. Transit: Format and Tools for Exchanging Values Between Applications in Different Programming Languages.
  3. N1: Open-Source, Extensible Mail Client.
  4. Don’t Copy and Paste. Retype.
  5. Download Music Without Knowing the Name of the Song.
  6. ShareX: Open-Source Screen Sharing (And More).
  7. LINQ: Test-Driven Learning.
  8. Brainfuck: From Hand Translation to JIT Compiler.
  9. Hey! Let’s Build a Virtual Machine!
  10. Ninite: Install or Update Multiple Apps at Once.
  11. Argo Programming Language. Note: There is no implementation, but the author provides interesting thoughts on programming language design.




Advertisements

Add Your Thoughts

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s