diff --git a/www/wiki/Bookmarks.md b/www/wiki/Bookmarks.md index 02acf68..fbd72db 100644 --- a/www/wiki/Bookmarks.md +++ b/www/wiki/Bookmarks.md @@ -1,10 +1,290 @@ # Bookmarks -This page will be my effort to migrate bookmarks out of my web browsers and onto this page. I can probably keep track of them better myself, and this way I won't have to worry about losing them to a browser glitch! +This page will be my effort to migrate bookmarks out of my web browsers and onto this page. Because why should these +great links be locked away in Mozilla's heavily encrypted Sync service? I can probably keep track of them better myself, +and this way I won't have to worry about losing them to a browser glitch! -## Development +Also, some of these links may be helpful to others. + +If you want to bookmark my bookmarks, then bookmark _this_ page, as I may be reorganizing some of these onto +sub-pages when this list gets too long. + +* [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) +* [Gaming](#gaming) +* [Introversion](#introversion) — Topics about introverts. +* [Network Security](#network-security) — Encryption, OpSec, & hacking topics. + * [NSA](#nsa) — Stories of the NSA, Edward Snowden, and related OpSec topics. +* [Philosophy](#philosophy) +* [Short Stories](#short-stories) +* [Reddit](#reddit) — Miscellaneous cool Reddit threads and comments. + +# Development * [40 Key Computer Science Concepts Explained in Layman's Terms](http://carlcheo.com/compsci) -* [A simple interpreter from scratch on Python](http://jayconrod.com/posts/37/a-simple-interpreter-from-scratch-in-python-part-1) +* [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) +* 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 `