# Development Bookmarks * [Development](#development) * [Bash](#bash) * [C/C++](#c-c) * [HTML/CSS](#html-css) * [Game Dev](#game-dev) * [Git](#git) * [Go](#go) — Golang * [JavaScript](#javascript) * [PHP](#php) * [Programmer Humor](#programmer-humor) * [Python](#python) * [Technology](#technology) — Hadoop, MongoDB, etc. * [Google Ban Hammer](#google-ban-hammer) — Because people don't believe me without examples. * [Tutorials](#tutorials) * [Unicode](#unicode) * [Web Development](#web-development) — HTML, JavaScript & CSS * [API Design](#api-design) * [Web Dev Tools](#web-dev-tools) # Development * [40 Key Computer Science Concepts Explained in Layman's Terms](http://carlcheo.com/compsci) * [Programming Sucks](http://www.stilldrinking.org/programming-sucks) * Joel on Software * [Back to Basics](https://www.joelonsoftware.com/2001/12/11/back-to-basics/) — A look back at C and how our high-level software actually works. * [The Law of Leaky Abstractions](https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/) — Leaky abstractions in SQL engines and everywhere else. * [What Color is Your Function?](http://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function/) — Synchronous vs. asynchronous functions in languages and what a pain they are. * [Talks that changed the way I think about programming](http://www.opowell.com/post/talks-that-changed-the-way-i-think-about-programming/) ## Bash * [Better Bash Scripting in 15 Minutes](https://robertmuth.blogspot.it/2012/08/better-bash-scripting-in-15-minutes.html) * [Use the Unofficial Bash Strict Mode (Unless You Looove Debugging)](http://redsymbol.net/articles/unofficial-bash-strict-mode/) ## C/C++ * [How to C (in 2016)](https://matt.sh/howto-c) ## HTML/CSS * [The 30 CSS Selectors you Must Memorize](https://code.tutsplus.com/tutorials/the-30-css-selectors-you-must-memorize--net-16048) * [The CSS that you don't know about](https://medium.com/@mjtweaver/the-css-that-you-dont-know-about-d5945cea1c94) — More CSS selectors * [`flex-grow` is weird. Or is it?](https://css-tricks.com/flex-grow-is-weird/) ## Game Dev * Post-mortems and Tales * [Super Merryo Trolls](http://garote.bdmonkeys.net/merryo_trolls/) — or An Adventure From The Days Before VRAM * [The SCUMM Diary: Stories behind one of the greatest game engines ever made](https://www.gamasutra.com/view/feature/196009/The_SCUMM_Diary_Stories_behind_one_of_the_greatest_game_engines_ever.php) * [Why I've Said Goodbye to Mobile in Favor of PC](https://www.gamasutra.com/blogs/ThomasHenshell/20140807/222732/Why_Ive_Said_Goodbye_to_Mobile_in_Favor_of_PC.php) * [A Trip Down the Graphics Pipeline](http://doc-ok.org/?p=1057) * [Your greatest bug ever?](https://www.reddit.com/r/gamedev/comments/2k767e/your_greatest_bug_ever/) — A discussion on Reddit full of good stories. * [Designing a "playable" UI that secretly teaches you how to play](http://juicybeast.com/2014/10/28/designing-a-playable-ui-that-secretly-teaches-how-to-play/) * [The Evolution of **RollerCoaster Tycoon**](http://www.nicscorner.com/evo_of_rct.htm) * Anti-Cheat * [EarthBound's Copy Protection](http://media.earthboundcentral.com/2011/05/earthbounds-copy-protection/index.html) * Breakdowns & Reverse Engineering * [An Analysis of **Super Metroid's Camera Code**, and using it for a 360-degree aiming 2D platform shooter](http://suppressivefiregames.tumblr.com/post/85891843723/an-analysis-of-super-metroids-camera-code-and) * [Spoofing *Pokémon* trades with the Stellaris LaunchPad](http://www.adanscotney.com/2014/01/spoofing-pokemon-trades-with-stellaris.html) — A hardware hack for the original GameBoy games. * [How *Zelda* Gets Lock And Key Puzzles Right](http://howtomakeanrpg.com/a/how-zelda-gets-lock-and-key-puzzles-right.html) * [Writing a GameBoy Advance Game](https://www.reinterpretcast.com/writing-a-game-boy-advance-game) * [Making a GameBoy Game in 2017](https://www.gamasutra.com/blogs/DoctorLudos/20171207/311143/Making_a_Game_Boy_game_in_2017_A_quotSheep_It_Upquot_PostMortem_part_12.php) * Multiplayer & Networking * [Fast-Paced Multiplayer](http://www.gabrielgambetta.com/client-server-game-architecture.html) — Client-Server Game Architecture * [Game Server Protocols](https://1024monkeys.wordpress.com/2015/01/03/game-server-protocols-part-1-starting-out/) * [64 Network DO's and DON'Ts for Game Engine Developers](http://ithare.com/64-network-dos-and-donts-for-game-engine-developers-part-i-client-side/) * Minecraft-likes * [An Analysis of Minecraft-like Engines](https://0fps.net/2012/01/14/an-analysis-of-minecraft-like-engines/) * [Perlin Noise Generator in **Python**](http://www.pygame.org/project-Perlin+Noise+Generator-1044-.html) * [**Python** 3D Cube World Demo](http://www.danomagnum.com/wiki/Python3dCubeWorld) * [Pixels and voxels, the long answer](https://medium.com/retronator-magazine/pixels-and-voxels-the-long-answer-5889ecc18190#.brplcilxj) * Tutorials * [So you want to be a **pixel artist?**](http://gas13.ru/v3/tutorials/sywtbapa_almighty_grass_tile.php) — 11-part series on Pixel Art * [Game Programming Patterns](http://gameprogrammingpatterns.com/) — Free e-book * [The A-ha! Moment of being a game development beginner](https://antjanus.com/blog/web-development-tutorials/ha-moment-game-development-beginner/) * [The guide to implementing **2D platformers**](http://higherorderfun.com/blog/2012/05/20/the-guide-to-implementing-2d-platformers/) * [HD Index Painting in Photoshop](http://danfessler.com/blog/hd-index-painting-in-photoshop) — Pixel art * [2D Game Art for Programmers](http://www.2dgameartguru.com/) — Guides on vector art using Inkscape, GIMP & co. * [Developer's **Music Making** Guide](http://ruoyusun.com/2017/08/29/make-some-music.html) * [Tips for Building Mobile Games in HTML5](https://thomashunter.name/blog/tips-for-building-mobile-games-in-html5/) * Tools * [Game Mechanic Explorer](https://gamemechanicexplorer.com/) — Interactive demos and code samples for common game mechanics. * [GifCam](http://blog.bahraniapps.com/gifcam/) — Like FRAPS, to make gifs from your games ## Git * [Git Flight Rules](https://github.com/k88hudson/git-flight-rules/blob/master/README.md) — A guide for what to do when things go wrong. *"Flight Rules are the hard-earned body of knowledge recorded in manuals that list, step-by-step, what to do if X occurs, and why. Essentially, they are extremely detailed, scenario-specific standard operating procedures. [...]"* * [Most common git screwups/questions and solutions](http://41j.com/blog/2015/02/common-git-screwupsquestions-solutions/) ## Go * [Learning Go (golang)](https://medium.com/go-go-go/learning-go-golang-47127a796323) * [Practical Golang: Using **Protobuffs**](https://jacobmartins.com/2016/05/24/practical-golang-using-protobuffs/) * [Go Best Practices, Six Years In](https://peter.bourgon.org/go-best-practices-2016/) (2016) * [Common Comments in Go Code Reviews](https://github.com/golang/go/wiki/CodeReviewComments) * [Go **channels** are bad and you should feel bad](https://www.jtolds.com/2016/03/go-channels-are-bad-and-you-should-feel-bad/) * [**godoc:** Tips & Tricks](https://elliot.land/post/godoc-tips-tricks) * Project Organization * [What is a sensible way to layout a Go project?](https://stackoverflow.com/questions/14867452/what-is-a-sensible-way-to-layout-a-go-project) * [Architecture for a Golang Web App](https://larry-price.com/blog/2015/06/25/architecture-for-a-golang-web-app/) * [Structuring Applications in Go](https://medium.com/@benbjohnson/structuring-applications-in-go-3b04be4ff091) * [The Project Directory Structure](http://www.nguyenanhdung.info/2017/11/golang-project-directory-structure.html) * [How I write Go services after seven years](https://medium.com/@matryer/how-i-write-go-http-services-after-seven-years-37c208122831) * Makefiles * [Make and Go for Fun and Profit](https://unwiredcouch.com/2016/05/31/go-make.html) * Interoperability * [Mobile Go, part 1: Calling Go functions from **C**](https://medium.com/using-go-in-mobile-apps/using-go-in-mobile-apps-part-1-calling-go-functions-from-c-be1ecf7dfbc6) * [Building **Python** modules with Go 1.5](https://blog.filippo.io/building-python-modules-with-go-1-5/) * [See **Python**, See Python Go, Go Python Go](https://blog.heroku.com/see_python_see_python_go_go_python_go) — Running a Go web server in Python * [Turning Go code into an npm module with GopherJS (**JavaScript**)](https://github.com/mdp/bluemonday-js/blob/601f63ea62b2771b20ff2057dc504dacd8659e31/README.md#turning-golang-code-into-an-npm-module-with-gopherjs) * Tutorials * [Build Your Own Web Framework in Go](https://www.nicolasmerouze.com/build-web-framework-golang/) * [Building Go Web Applications and Microservices Using **Gin**](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin) * [**HTML Templates** in Go](https://www.calhoun.io/html-templates-in-go/) * [**Job Queues** in Go](https://www.opsdash.com/blog/job-queues-in-go.html) * [Using Go's **context** library for making your logs make sense](https://blog.gopheracademy.com/advent-2016/context-logging/) ## JavaScript * [JavaScript Module Pattern: In-Depth](http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html) — How to write self-contained JavaScript modules in raw ES5. * [Deploying ES2015+ Code in Production Today](https://philipwalton.com/articles/deploying-es2015-code-in-production-today/) — Using `