The web design and pages for my personal website.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Development.md 16 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. # Development Bookmarks
  2. * [Development](#development)
  3. * [Bash](#bash)
  4. * [C/C++](#c-c)
  5. * [HTML/CSS](#html-css)
  6. * [Game Dev](#game-dev)
  7. * [Git](#git)
  8. * [Go](#go) — Golang
  9. * [JavaScript](#javascript)
  10. * [PHP](#php)
  11. * [Programmer Humor](#programmer-humor)
  12. * [Python](#python)
  13. * [Technology](#technology) — Hadoop, MongoDB, etc.
  14. * [Google Ban Hammer](#google-ban-hammer) — Because people don't believe me without examples.
  15. * [Tutorials](#tutorials)
  16. * [Unicode](#unicode)
  17. * [Web Development](#web-development) — HTML, JavaScript & CSS
  18. * [API Design](#api-design)
  19. * [Web Dev Tools](#web-dev-tools)
  20. # Development
  21. * [40 Key Computer Science Concepts Explained in Layman's Terms](http://carlcheo.com/compsci)
  22. * [Programming Sucks](http://www.stilldrinking.org/programming-sucks)
  23. * Joel on Software
  24. * [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.
  25. * [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.
  26. * [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.
  27. * [Talks that changed the way I think about programming](http://www.opowell.com/post/talks-that-changed-the-way-i-think-about-programming/)
  28. ## Bash
  29. * [Better Bash Scripting in 15 Minutes](https://robertmuth.blogspot.it/2012/08/better-bash-scripting-in-15-minutes.html)
  30. * [Use the Unofficial Bash Strict Mode (Unless You Looove Debugging)](http://redsymbol.net/articles/unofficial-bash-strict-mode/)
  31. ## C/C++
  32. * [How to C (in 2016)](https://matt.sh/howto-c)
  33. ## HTML/CSS
  34. * [The 30 CSS Selectors you Must Memorize](https://code.tutsplus.com/tutorials/the-30-css-selectors-you-must-memorize--net-16048)
  35. * [The CSS that you don't know about](https://medium.com/@mjtweaver/the-css-that-you-dont-know-about-d5945cea1c94) — More CSS selectors
  36. * [`flex-grow` is weird. Or is it?](https://css-tricks.com/flex-grow-is-weird/)
  37. ## Game Dev
  38. * Post-mortems and Tales
  39. * [Super Merryo Trolls](http://garote.bdmonkeys.net/merryo_trolls/) — or An Adventure From The Days Before VRAM
  40. * [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)
  41. * [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)
  42. * [A Trip Down the Graphics Pipeline](http://doc-ok.org/?p=1057)
  43. * [Your greatest bug ever?](https://www.reddit.com/r/gamedev/comments/2k767e/your_greatest_bug_ever/) — A discussion on Reddit full of good stories.
  44. * [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/)
  45. * [The Evolution of **RollerCoaster Tycoon**](http://www.nicscorner.com/evo_of_rct.htm)
  46. * Anti-Cheat
  47. * [EarthBound's Copy Protection](http://media.earthboundcentral.com/2011/05/earthbounds-copy-protection/index.html)
  48. * Breakdowns & Reverse Engineering
  49. * [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)
  50. * [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.
  51. * [How *Zelda* Gets Lock And Key Puzzles Right](http://howtomakeanrpg.com/a/how-zelda-gets-lock-and-key-puzzles-right.html)
  52. * [Writing a GameBoy Advance Game](https://www.reinterpretcast.com/writing-a-game-boy-advance-game)
  53. * [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)
  54. * Multiplayer & Networking
  55. * [Fast-Paced Multiplayer](http://www.gabrielgambetta.com/client-server-game-architecture.html) — Client-Server Game Architecture
  56. * [Game Server Protocols](https://1024monkeys.wordpress.com/2015/01/03/game-server-protocols-part-1-starting-out/)
  57. * [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/)
  58. * Minecraft-likes
  59. * [An Analysis of Minecraft-like Engines](https://0fps.net/2012/01/14/an-analysis-of-minecraft-like-engines/)
  60. * [Perlin Noise Generator in **Python**](http://www.pygame.org/project-Perlin+Noise+Generator-1044-.html)
  61. * [**Python** 3D Cube World Demo](http://www.danomagnum.com/wiki/Python3dCubeWorld)
  62. * [Pixels and voxels, the long answer](https://medium.com/retronator-magazine/pixels-and-voxels-the-long-answer-5889ecc18190#.brplcilxj)
  63. * Tutorials
  64. * [So you want to be a **pixel artist?**](http://gas13.ru/v3/tutorials/sywtbapa_almighty_grass_tile.php) — 11-part series on Pixel Art
  65. * [Game Programming Patterns](http://gameprogrammingpatterns.com/) — Free e-book
  66. * [The A-ha! Moment of being a game development beginner](https://antjanus.com/blog/web-development-tutorials/ha-moment-game-development-beginner/)
  67. * [The guide to implementing **2D platformers**](http://higherorderfun.com/blog/2012/05/20/the-guide-to-implementing-2d-platformers/)
  68. * [HD Index Painting in Photoshop](http://danfessler.com/blog/hd-index-painting-in-photoshop) — Pixel art
  69. * [2D Game Art for Programmers](http://www.2dgameartguru.com/) — Guides on vector art using Inkscape, GIMP & co.
  70. * [Developer's **Music Making** Guide](http://ruoyusun.com/2017/08/29/make-some-music.html)
  71. * [Tips for Building Mobile Games in HTML5](https://thomashunter.name/blog/tips-for-building-mobile-games-in-html5/)
  72. * [256-Color VGA Programming in DOS](http://www.brackeen.com/vga/) — tutorial and guide for building DOS programs and their low-level direct memory access to VGA graphics.
  73. * Tools
  74. * [Game Mechanic Explorer](https://gamemechanicexplorer.com/) — Interactive demos and code samples for common game mechanics.
  75. * [GifCam](http://blog.bahraniapps.com/gifcam/) — Like FRAPS, to make gifs from your games
  76. ## Git
  77. * [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. [...]"*
  78. * [Most common git screwups/questions and solutions](http://41j.com/blog/2015/02/common-git-screwupsquestions-solutions/)
  79. ## Go
  80. * [Learning Go (golang)](https://medium.com/go-go-go/learning-go-golang-47127a796323)
  81. * [Practical Golang: Using **Protobuffs**](https://jacobmartins.com/2016/05/24/practical-golang-using-protobuffs/)
  82. * [Go Best Practices, Six Years In](https://peter.bourgon.org/go-best-practices-2016/) (2016)
  83. * [Common Comments in Go Code Reviews](https://github.com/golang/go/wiki/CodeReviewComments)
  84. * [Go **channels** are bad and you should feel bad](https://www.jtolds.com/2016/03/go-channels-are-bad-and-you-should-feel-bad/)
  85. * [**godoc:** Tips & Tricks](https://elliot.land/post/godoc-tips-tricks)
  86. * Project Organization
  87. * [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)
  88. * [Architecture for a Golang Web App](https://larry-price.com/blog/2015/06/25/architecture-for-a-golang-web-app/)
  89. * [Structuring Applications in Go](https://medium.com/@benbjohnson/structuring-applications-in-go-3b04be4ff091)
  90. * [The Project Directory Structure](http://www.nguyenanhdung.info/2017/11/golang-project-directory-structure.html)
  91. * [How I write Go services after seven years](https://medium.com/@matryer/how-i-write-go-http-services-after-seven-years-37c208122831)
  92. * Makefiles
  93. * [Make and Go for Fun and Profit](https://unwiredcouch.com/2016/05/31/go-make.html)
  94. * Interoperability
  95. * [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)
  96. * [Building **Python** modules with Go 1.5](https://blog.filippo.io/building-python-modules-with-go-1-5/)
  97. * [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
  98. * [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)
  99. * Tutorials
  100. * [Build Your Own Web Framework in Go](https://www.nicolasmerouze.com/build-web-framework-golang/)
  101. * [Building Go Web Applications and Microservices Using **Gin**](https://semaphoreci.com/community/tutorials/building-go-web-applications-and-microservices-using-gin)
  102. * [**HTML Templates** in Go](https://www.calhoun.io/html-templates-in-go/)
  103. * [**Job Queues** in Go](https://www.opsdash.com/blog/job-queues-in-go.html)
  104. * [Using Go's **context** library for making your logs make sense](https://blog.gopheracademy.com/advent-2016/context-logging/)
  105. ## JavaScript
  106. * [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.
  107. * [Deploying ES2015+ Code in Production Today](https://philipwalton.com/articles/deploying-es2015-code-in-production-today/) — Using `<script type="module">` and `<script nomodule>` to ship native ES6 code to the browser, with pre-browserified fallback for legacy users.
  108. * [A JavaScript-Free Frontend](https://dev.to/winduptoy/a-javascript-free-frontend-2d3e) — Modals, drop-downs and other <abbr title="Single Page App">SPA</abbr> features in pure HTML and CSS without JavaScript.
  109. ## PHP
  110. I don't hide my critism of the PHP language.
  111. * [PHP: a fractal of bad design](https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/) — A thorough breakdown (from 2012) of all of PHP's problems.
  112. * [PHP in contrast to Perl](https://tnx.nl/php.html) — Enumerates so many of PHP's problems (in the set of built-in functions in the language, their naming conventions, arguments and return values are wildly inconsistent)
  113. ## Programmer Humor
  114. * [html - RegEx match open tags except XHTML self-contained tags](https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) — TO͇̹̺ͅƝ̴ȳ̳ TH̘Ë͖́̉ ͠P̯͍̭O̚​N̐Y̡ H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝S̨̥̫͎̭ͯ̿̔̀ͅ
  115. ## Python
  116. * [Elements of Python Style](https://github.com/amontalenti/elements-of-python-style)
  117. * [Anti-Patterns in Python Programming](http://lignos.org/py_antipatterns/)
  118. * [A simple interpreter from scratch on Python](http://jayconrod.com/posts/37/a-simple-interpreter-from-scratch-in-python-part-1)
  119. * [How can I make a chain of function **decorators** in Python?](https://stackoverflow.com/questions/739654/how-to-make-a-chain-of-function-decorators)
  120. * [Cheat Sheet: Writing **Python 2-3** compatible code](http://python-future.org/compatible_idioms.html)
  121. ## Technology
  122. * [Don't use **Hadoop** - your data isn't that big](https://www.chrisstucchio.com/blog/2013/hadoop_hatred.html)
  123. * [Why You Should Never Use **MongoDB**](http://www.sarahmei.com/blog/2013/11/11/why-you-should-never-use-mongodb/)
  124. * [**OAuth 2.0** and the Road to Hell](https://hueniverse.com/oauth-2-0-and-the-road-to-hell-8eec45921529) — How OAuth2 was "killed by committee" and became the fustercluck that it is.
  125. * [How **Google Authenticator** Works](https://garbagecollected.org/2014/09/14/how-google-authenticator-works/) — Time-Based One-Time Password **(TOTP)** Algorithm
  126. * [**Vim** after 11 years](https://statico.github.io/vim.html) (2013)
  127. * [The Rise and Fall of AIM, the Breakthrough AOL Never Wanted](http://mashable.com/2014/04/15/aim-history/)
  128. * [about:jwz and about:mozilla](https://www.jwz.org/doc/about-jwz.html)
  129. * [Here's What Happens When You Install the Top 10 Download.com Apps](https://www.howtogeek.com/198622/heres-what-happens-when-you-install-the-top-10-download.com-apps/) — Spam is what you get. See also [my related blog entry](/a-dumb-end-user-experiment)
  130. * [**H.264** is Magic](https://sidbala.com/h-264-is-magic/)
  131. ### Google Ban Hammer
  132. If you violate terms in any of Google's monetary services, your account can be globally banned from *all* Google services that come anywhere near money. Get accused of click fraud in AdSense, and you can no longer buy apps on Google Play or buy credit in Google Voice.
  133. * [Google Play - Only one strike is needed to ruin you](https://www.reddit.com/r/Android/comments/2hywu9/google_play_only_one_strike_is_needed_to_ruin_you/) (Android)
  134. * [As an Android developer AND user having your developer account terminated is devastating](https://www.reddit.com/r/androiddev/comments/2jw9cj/as_an_android_developer_and_user_having_your/)
  135. * [From /r/AndroidDev, 'This is how Google kills our apps'](https://www.reddit.com/r/Android/comments/2k72or/from_randroiddev_this_is_how_google_kills_our/) — Competitors may falsely flag your app, getting it immediately pulled from the store _and_ your account flagged. `#GoogleBanHammer`
  136. * [A story from the comment thread](https://www.reddit.com/r/androiddev/comments/2jw9cj/as_an_android_developer_and_user_having_your/clfss1u/) about how Google can associate _new_ Google accounts with the terminated one (similarity in name, address, payment details, anything) — and ban that account, too. It's a ban on you, the developer, not your account!
  137. ## Tutorials
  138. * [Implementing a Partial **Serial Number Verification System** in Delphi](http://www.brandonstaggs.com/2007/07/26/implementing-a-partial-serial-number-verification-system-in-delphi/)
  139. * [What are the best practices for building something like a News Feed?](https://www.quora.com/What-are-the-best-practices-for-building-something-like-a-news-feed) — Concerns and problems with implementing a Twitter-style News Feed.
  140. ## Unicode
  141. * [Five things everyone should know about Unicode](https://gojko.net/2017/11/07/five-things-about-unicode.html)
  142. ## Web Development
  143. * [What should every programmer know about web development?](https://softwareengineering.stackexchange.com/questions/46716/what-technical-details-should-a-programmer-of-a-web-application-consider-before)
  144. * [The unexpected costs of third-party login](https://medium.com/@taylorhughes/the-unexpected-costs-of-third-party-login-cda41c087653) — The problems one may encounter when implementing a "Login with Facebook" on their site. Many users prefer to just sign up custom accounts instead.
  145. * [We Suck at HTTP](https://gadgetopia.com/post/9236) — *Unlike web pages, mobile apps do not have links. They do not have web addresses. They live in worlds by themselves, largely cut off from one another and the broader Internet. And so it is much harder to share the information found on them.*
  146. ## API Design
  147. * [Best Practices for Designing a Pragmatic RESTful API](http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api)
  148. * [My first experience creating an API](https://restful.io/making-my-first-api-using-python-flask-8d7d83e45e36)
  149. ## Web Dev Tools
  150. * [&amp;what; -- Discover Your Character](http://www.amp-what.com/) — HTML entity finder.
  151. * [Bandwidth to Filesize Calculator](https://toolstud.io/data/filesize.php)
  152. * [Sprite Cow - Generate CSS for sprite sheets](http://www.spritecow.com/)