Links of the Week, W39 2015

Here’s the second installment of my new weekly, every-Sunday ‘Links of the Week’ collection. There are lots of interesting links this week for programmers using C, C++, JavaScript, Python, and Rust, along with links to some cool games and game engines.

Enjoy!

Week 39, 2015

Ada

  1. New book about SPARK 2014.
  2. Traits-Based Containers.

Algorithms

  1. Introduction to the Monte Carlo Tree Search.
  2. Top 10 Algorithm Books Every Programmer Should Read.

Assembly

  1. Full Offsets.
  2. Building a Tetris Clone in x86 Assembly.
  3. Better Call SAL.
  4. xchg rax,rax.
  5. 8 or More Steps to Making Your Next Assembly Demo.
  6. Building a Tetris Clone in x86 Assembly, Part 2.

C and C++

  1. The Ten Commandments for C Programmers.
  2. C++ Concepts Lite TS Examples.
  3. Fit: Header-only C++11 library that provides utilities for functions and function objects.
  4. C++: The Power of Unpack.
  5. The C Book.
  6. Perl Incompatible Regular Expression Library.
  7. Joint Allocations in C++.
  8. lock_guard_n.
  9. Boost asio UDT Protocol Implementation.
  10. C++ signal and slot system.
  11. GLUL: OpenGL Utility Library. Note: C++11.
  12. C++ Hints.
  13. What is a smart pointer and when should I use one?.
  14. Const Correctness.
  15. Should you be using something instead of what you should use instead?.
  16. C++11: Stack, Heap, Pool.
  17. Algebraic data types and pattern matching in C++.
  18. C++ Reflection Using Clang.
  19. C++ Core Guidelines.
  20. VR Development in C++.

Clojure

  1. Won’t it be hard to debug ClojureScript in my browser?
  2. Reagent: Minimalistic React for ClojureScript.
  3. Mixfix syntax.
  4. cats 1.0.0 released.
  5. Bulk imports with Datomic.
  6. reverie: A CMS in Clojure.

Command-Line

  1. Writing Robust Bash Shell Scripts.
  2. Learn Enough Command-Line to be Dangerous.
  3. center-code.
  4. GNU Tar Usage Examples.
  5. Lightweight version manager.
  6. lolme: Get a random oneliner.
  7. Persist tmux environments across system restarts.
  8. btcat: cat for BitTorrent files.
  9. prm: Minimal Project Manager for the Terminal.
  10. fzf: General-Purpose Fuzzy Finder.

Crystal

  1. Crystal v0.8.0 released.
  2. cryload: HTTP benchmarking tool.

Elixir

  1. Elixir screencasts.
  2. Lightweight Wrapper for Pandoc.
  3. Phoenix Framework.
  4. From Functions |> Processes.
  5. Example of ports.
  6. Elixir 1.1.0-rc0 released on Chocolatey, a Windows package manager.

Emacs

  1. 0blayout-mode: Small layout management mode.
  2. Dynamic ruler for measuring and positioning text.
  3. Haqiba: Emacs Starter-Kit.
  4. Emacs tutorial videos.
  5. XTest: Simple Testing with Emacs and ERT.
  6. gildas-mode.

Erlang

  1. Interface to the Public Suffix List.
  2. Erlang garbage collection in detail.
  3. Spawned Shelter.

Forth

  1. Oforth Programming Language.
  2. 8th Programming Language.
  3. Ficl: Forth Inspired Command Language.
  4. Reforth.
  5. An Introduction to Retro.
  6. Reva tutorial.
  7. lang5 – A Stack-Based Array Language.
  8. The Concatenative Language XY.
  9. ForthQL.
  10. Quickly generate a Forth environment.
  11. lbForth – Metacompiled Forth Bootstrapped from a Few Lines of C.

Games

  1. Solar Crusaders. Note: Browser-based game which makes heavy use of WebGL and GLSL shaders.
  2. HTML5 version of StarCraft.
  3. Keep Out! Note: Uses WebGL.
  4. Engulfed.
  5. GeoQuiz. Note: Source code.
  6. Istrolid: Multiplayer Fleet Design Strategy Game. Note: Uses WebGL.
  7. RPGs and Adventure Games Made With RPG Maker, Game Maker, and Other Engines.
  8. Unwonted Studios: Indie Visual Novel Studio.
  9. The Censor.

Game Development

  1. Music Should be a Priority.
  2. OpenRTS: Open-Source 3D Real-Time Strategy Game Engine.
  3. Trizbort – Interactive Fiction Mapper.
  4. Free Book: Cross-Platform Game Development With MonoGame.
  5. Thief vs. AAA Gaming.
  6. Learning Babylon.js.
  7. Browser-based debug console for LÖVE.
  8. Designing a Procedurally Generated Game.
  9. Get Bonus: An experimental video game development environment built on Racket, Scheme.
  10. Infiltrator (Unreal Engine Demo) released for free.
  11. 6502 compiler for the NES/Famicom.
  12. Write NES games in Python.
  13. Writing a Browser-Based Game in Haskell.
  14. Phaser: Open-Source HTML5 Game Engine.
  15. gunship: An experimental game engine written in Rust.
  16. Design 101: The Role of Randomness.
  17. PennMUSH.
  18. EasyRPG: Open-Source Version of RPG Maker 2000/2003.

Git

  1. GitBook: Modern Publishing Toolchain.
  2. git-town: Commands for collaborative development. Note: Introductory screencast.
  3. Squash multiple Git commits into one.
  4. git-punish.

Golang

  1. 400 Days of Go.
  2. High Performance MySQL Proxy.
  3. Implementation of Git in Pure Go.
  4. Listening to generic JSON notifications from PostgreSQL.
  5. Proposal for Enhanced Table-Driven Test Support.
  6. REST API testing based on Frisby.

Graphics

  1. The Art of PNG Glitch.

Hardware

  1. MIAOW: Open-Source GPU.
  2. Database of CPU Opcodes.

Haskell

  1. **How to make your Haskell code more readable to non-Haskell programmers.
  2. Emulating higher order modules.
  3. Deployment system for web applications.
  4. hterm: An HTTP terminal based on Butterfly.
  5. 2D Contouring.

Java and the JVM

  1. gngr: Cross-Platform Browser.
  2. PDF ManagedC: Memory safe execution of C on the JVM.
  3. Create a lambda from a string at run-time.
  4. Cartesian Products with Kleisli Composition.
  5. High-Performance Caching Library for Java 8.

JavaScript

  1. Professor Frisby’s Mostly Adequate Guide to Functional Programming.
  2. JavaScript library operating system for the cloud.
  3. modules-used: Generate Markdown List of Modules Used.
  4. pre-git: Automatic pre-commit and pre-push Git Hooks for Node Development.
  5. JSDoc Specific Linting Rules for ESLint.
  6. Example of Dependency Injection vs. IO Monad.
  7. async-class.
  8. Lodash: Utility Library. Relevant blog post.
  9. Underdash.js: Experimental Merge of Underscore and Lodash.
  10. Library to synchronize code at different browser tabs.
  11. SpeckJS: Comment Driven Development.
  12. ScoutJS: Search npm Packages.
  13. Dependency injection in Node.js.
  14. Node.js module for managing CLI application encrypted preferences.
  15. Twitter Emoji Picker jQuery Plugin.
  16. Less than 500 byte library for HashMaps.
  17. JavaScript video screencasts.
  18. More Canvas Context Shapes.
  19. Smalltalk MVC Translated to JavaScript.
  20. Frisby: REST API Testing.
  21. Live coding Three.js in virtual reality.

Linux and *NIX

  1. Flowblade Movie Editor.
  2. Restoration of the 1st Edition UNIX code.
  3. A Repository with 44 Years of UNIX Evolution.
  4. Librepup: A deblobbed Puppy Linux.
  5. Renaming files recursively.
  6. Who Wrote GTK+ 3.18.
  7. Linux interface for the Brother PT-1230PC Label Printer.
  8. Package management guide for Debian/Ubuntu.
  9. Nix: The Purely Functional Package Manager.

Lisp

  1. Common Lisp Machine Learning Library. Tutorial.
  2. Lisp Implementation in GNU Make. Note: Crazy programmers are awesome programmers.
  3. Interim OS.
  4. Clozure Common Lisp.
  5. femtolisp.
  6. LambdaLite: A functional, relational database in 250 lines of Common Lisp.
  7. Common Lisp interface to SQLite.
  8. ABCL 1.3.3 released.

Lua

  1. Pegasus v0.9.1 released.
  2. Definitely an openresty guide.

Math

  1. pi-Base.

Mobile Development

  1. Tizen 3.0 released.
  2. transai: Localization tool for Android and iOS.
  3. The iOS Get Out of Jail Free Card.

Operating Systems

  1. FlingOS.
  2. seL4: Verifiably Correct Microkernel.
  3. NixOS: Purely Functional Linux.

Perl

  1. Fluent interfaces in Perl 6.
  2. cperl-5.22.1 released.
  3. cperl: A backwards-compatible variant of Perl 5 with many Perl 6 features.
  4. Strawberry Perl 5.20.3.1 released.

PHP

  1. Composer now supports local repositories.
  2. Developing a web application with Lumen and MySQL.
  3. Taint: PHP Extension to Detect XSS Codes.
  4. PHP 7 RC3 released.
  5. Swivel: Feature Flags.
  6. Laravel Spark alpha released.
  7. Secure Password Hashing.

Prolog

  1. "Hello World!" Web Server in Prolog.

Python

  1. What’s New in Python 3.5.
  2. pgclient: Pool-Based psycopg2 Wrapper.
  3. Pew: Python Env Wrapper.
  4. Peewee: Small and Simple ORM.
  5. Simple interface to the Project Gutenberg corpus.
  6. aiomysql.
  7. Adding a simple GUI to your Pandas script.
  8. Pyramid web framework tutorial.
  9. How to Create a Webkit Browser with Python.
  10. Scikit-learn tutorial.
  11. Learn Python Tutorial.
  12. Command-line utility to generate summaries of videos.
  13. PySide: Python Interface to Qt.
  14. NeoAPI: Build Python APIs with neo4j.
  15. Wooey: Simple Web Interface to Run Command-Line Python Programs.
  16. Introduction to fest, new UnQLite bindings.
  17. Python Metaclasses.
  18. Python Metaclasses by Example.
  19. Easier Python String Formatting.
  20. Introduction to Spark.
  21. PeachPy: Portable Efficient Assembly Code-Generation.
  22. Zpy: Encrypt files with your SSH key.
  23. Armada: Platform for microservices.
  24. Butterfly: Tornado Web Server With a Browser-Based Terminal.
  25. Pineapple: Standalone Frontend to IPython for Macs.
  26. How to Vectorize Data Aggregation with pandas and NumPy.
  27. Building Generic Data Queries Using Python AST.
  28. Using the SQLite JSON Extension with Python.
  29. Analyzing 1.7 Billion Reddit Comments with Blaze and Impala.
  30. VisPy: Interactive Scientific Data Visualization.
  31. Glumpy. Similar to VisPy.
  32. Cellular Automata in Python: Part 1.

Ruby

  1. Terminal output styling with a clean API.
  2. Slackiq = Slack + Sidekiq.
  3. Simple, Efficient Background Processing for Ruby.
  4. rsssf: Gem for the Rec.Sports.Soccer Statistics Foundation.
  5. Not Very Good MRI Heap Analyzer.
  6. Twitter Emoji in Ruby.
  7. Why I Wouldn’t Use Rails for a New Company.
  8. Jobless: A Ruby DSL for Generating CVs.

Rust

  1. Announcing Rust 1.3.
  2. Rust Bare Metal on ARM Microcontroller.
  3. GPIO access library for the Raspberry Pi.
  4. Possibly safe interface for intrusive data structures.
  5. Ease: REST API Library for HTTP Clients.
  6. The Oak Parser Generator.
  7. Automatically create and delete labels based on GitHub issues.
  8. Serde CBOR Serialization Library.
  9. PDF Why Rust?
  10. Rust CLI application for managing sites blocked by the hosts file.
  11. Rustty: Terminal UI Library.
  12. An introduction to timely dataflow.
  13. Seeking Compilation-Independent Type IDs in Rust.
  14. RFC: Machine-readable output of tests.
  15. Small exercises to learn Rust.
  16. Python Modules in Rust.
  17. Primer on Using OpenCV with Rust.
  18. Specialize to Reuse.

Scala

  1. Future Computations.
  2. Discussion on Reddit about REST frameworks.
  3. Another Tour of Scala.
  4. Scala School!.
  5. Effective Scala.
  6. The Cake Pattern in Scala – Self Type Annotations vs. Inheritance.
  7. Thin Scala wrapper around Java I/O API.
  8. SLIP: Scala Library Improvement Process.
  9. http4s: Minimal Scala Interface to HTTP.
  10. HTTP API on Top of Scalaz Streams.

Scheme

  1. Monads for Scheme.
  2. call/cc for C Programmers.
  3. Scheme Port of the Shen Programming Language.
  4. Harlan: A Scheme for GPU Computing.
  5. TinyScheme.
  6. SRFI 125: Intermediate Hash Tables.
  7. SRFI 126: R6RS-Based Hash Tables.
  8. Guile Integration in GNU Make.

SQL

  1. PostgreSQL, pg_shard, and what we leaned from our failures.
  2. PostgreSQL Magic.
  3. Denormalizing tags.
  4. PostgreSQL session_replication Role.
  5. Cool PostgreSQL Tricks Using JSON.
  6. Run a query in PostgreSQL and get the output as CSV.
  7. PostgreSQL for MySQL Admins.
  8. SQL on Kafka.
  9. PostgreSQL Foreign Data Wrappers.

Web Development and Design

  1. curl HTTP Cheat Sheet.
  2. ShaderFrog: WebGL Shader Editor
  3. ContentTools: Small WYSIWYG Editor.
  4. Paper Kit – Bootstrap UI Kit.
  5. A discussion on Knockout.
  6. htty: Console application for interacting with servers via HTTP.
  7. How we ended up with microservices.
  8. Six rules of thumb to build blazing fast, server-side web applications.
  9. Creating Material Design Ripple Effects with SVG.
  10. nginx: HTTP/2 Support.
  11. CSSCMS: Generate HTML GUIs from CSS.
  12. html5ever: High-Performance HTML5 Parser. Extra: Python Bindings.

Misc

  1. John Carmack Discusses the Art and Science of Software Engineering
  2. OptiKey: Type with an on-screen keyboard via eye-tracking devices.
  3. Name That Blue: A game based on awareness of brands’ colors.
  4. Software Ports for Haiku OS.
  5. MediaGoblin: Free media publishing platform.
  6. Tutanota: Free secure, encrypted email.
  7. List of Poker Terms and Abbreviations.
  8. Vi Mode for LibreOffice/OpenOffice.
  9. Eplain: Expanded Plain TeX.
  10. Cloud-Torrent: A Self-Hosted Remote Torrent Client.
  11. GraphQL: A Data Query Language and Runtime.
  12. Flutter: Framework for cross-platform mobile apps.
  13. Liri Web Browser.
  14. List of open-source bots.
  15. A Gentle Guide to Machine Learning.
  16. Uforio Reddit Client.
  17. Conkeror Password Manager.
  18. ProTracker Gems.
  19. Dark Corners of Unicode.
  20. List of IDA Plugins.
  21. Ionide: Cross-Platform F# Editor Built on Atom.
  22. The Ni Programming Language.
  23. GetBadges: Gamification for Software Developers.
  24. Stan: Probabilistic Programming Language.
  25. B Language Reference Manual.
  26. Tabula: Extract Data Tables From PDFs.
  27. Learn Enough to be Dangerous.
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