- 2011 - A trip through the Graphics Pipeline 2011
- 2015 - Life of a triangle - NVIDIA's logical pipeline
- 2015 - Render Hell 2.0
- 2016 - How bad are small triangles on GPU and why?
- 2017 - GPU Performance for Game Artists
- 2019 - Understanding the anatomy of GPUs using Pokémon
- 2020 - GPU ARCHITECTURE RESOURCES
There are numerous reasons you may need to use multiple SSH keys for accessing GitHub and BitBucket
You may use the same computer for work and personal development and need to separate your work.
When acting as a consultant, it is common to have multiple GitHub and/or BitBucket accounts depending on which client you may be working for.
You may have different projects you're working on where you would like to segregate your access.
- Note: If any links are broken or you know of any more useful guides, please contact me with any suggestions.
- Last Updated: 2020Sep28
- Markdown and white version available here, alternative, click on "Raw".
uBlock Origin, unlike AdBlock Plus and other alternatives, doesn't allow companies to pay to whitelist their ads, and it blocks trackers too. Using it will provide the best experience on Wikia, as the majority of ads and slowdowns will be eliminated.
To block videos using uBlock Origin:
- Click the uBlock Origin icon in your browser
- Then click 'Open dashboard' (the furthest icon on the right under the power icon)
- Click
3rd party filters
- Click the
Update now
button and then enableuBlock filters - Annoyances
Past August 2024, Authy stopped supported the desktop version of their apps:
See Authy is shutting down its desktop app | The 2FA app Authy will only be available on Android and iOS starting in August for details.
And indeed, after a while, Authy changed something in their backend which now prevents the old desktop app from logging in. If you are already logged in, then you are in luck, and you can follow the instructions below to export your tokens.
If you are not logged in anymore, but can find a backup of the necessary files, then restore those files, and re-install Authy 2.2.3 following the instructions below, and it should work as expected.
// Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt) | |
// Modifications by David Leon. Copyright (c) 2017 Lince Works SL. MIT license (see license.txt) | |
Shader "ToonDeferredShading2017" { | |
Properties { | |
_LightTexture0 ("", any) = "" {} | |
_LightTextureB0 ("", 2D) = "" {} | |
_ShadowMapTexture ("", any) = "" {} | |
_SrcBlend ("", Float) = 1 | |
_DstBlend ("", Float) = 1 |
ClubDAM has a mobile app called デンモクmini ("Denmoku mini") which uses an undocumented API.
# How to use "acme.sh" to set up Lets Encrypt without root permissions | |
# See https://github.com/Neilpang/acme.sh for more | |
# This assumes that your website has a webroot at "/var/www/<domain>" | |
# I'll use the domain "EXAMPLE.com" as an example | |
# When this is done, there will be an "acme" user that handles issuing, | |
# updating, and installing certificates. This account will have the following | |
# (fairly minimal) permissions: | |
# - Host files at http://EXAMPLE.com/.well-known/acme-challenge |
Introduction
AppCompat is an Android support library to provide backwards-compatible functionality for Material design patterns. It currently comes bundled with a set of styles in the Theme.AppCompat
and Widget.AppCompat
namespaces. However, there is a critical component missing which I would have thought essential to provide the a default from which we could inherit our styles: Widget.AppCompat.Button
. Sure, there's Widget.AppCompat.Light.ActionButton
, but that doesn't actually inherit from Widget.ActionButton
, which does not inherit from Widget.Button
, so we might get some unexpected behavior using that as our base button style, mainly because Widget.ActionButton
strictly belongs in the ActionBar
.
So, if we want to have a decently normal default button style related to AppCompat, we need to make it ourselves. Let's start by digging into the Android SDK to see how it's doing default styles.
Digging In