kos.gd
On gamepads in PC gaming, XInput and compatibility | kos.gd
https://kos.gd/2015/05/on-gamepads-in-pc-gaming-xinput-and-compatibility
Skip to main content. On gamepads in PC gaming, XInput and compatibility. Which gamepad should I buy for PC? A reasonable question, but with no single good answer, other than "er, it depends, what game would you play on it? Gamepad support on PC is decent nowadays, much better than it used to be before the advent of Xbox360, but there's a mess here. Let's try to untangle things a bit. Microsoft saw the problem and made an interesting move: why not enrich DirectX with another interface? So ideally, every ...
kos.gd
5 ways to use Python with native code | kos.gd
https://kos.gd/2013/01/5-ways-to-use-python-with-native-code
Skip to main content. 5 ways to use Python with native code. So you want to make a project with the advantages of native code. You like the performance of fine-tuned C, you need some heavy pointer juggling or bit fiddling or SSE, or perhaps you just dream of the vast lands of C libraries available around there. But you're in love with Python and really want to be able to glue your app together with elegant high-level code. Hard decision? But why can't we have both? 1 Load a dynamically linked library.
kos.gd
Git adventures: Loose object is corrupted | kos.gd
https://kos.gd/2013/02/git-adventures-loose-object-is-corrupted
Skip to main content. Git adventures: Loose object is corrupted. I couldn't read my Git history today because I ran into this problem:. Git log - oneline f1330fd Basic automation 7234c6e Textures work 3b18493 Fix combo defaults error: inflate: data stream error (. Incorrect data check ). Fatal: loose object 65d626bb82c8996f8fc5f659f7c207fee1d74948 (. Stored in .git/objects/65/d626bb82c8996f8fc5f659f7c207fee1d74948 ). The same message appeared when checking the repository with. Oh, so it's a commit! Git r...
kos.gd
Introducing Glory | kos.gd
https://kos.gd/2013/03/introducing-glory
Skip to main content. Glory is the code name of my prototype IDE for developing OpenGL-powered graphical effects. After half a year of work, it has entered a functional alpha stage (and awarded me the MSc.). As a matter of fact, I find this distinction (managing a domain's complexity vs. hiding it away) very blogworthy and applicable to many areas. Expect me to rant about it sometime soon. There are two target groups for the program:. How to allow professionals integrate it into their workflow? Last year...
kos.gd
Interfaces dissected | kos.gd
https://kos.gd/2013/04/interfaces-dissected
Skip to main content. Recall methods. A method is some piece of code that can be "called on objects". There are two things to methods: They're meaningful with an object to call on, and their interface looks like "they can be called with some arguments to return a value". Properties are similar to methods, in that a property is meaningful when paired with an object. They have a different interface than methods, though: you don't "call" them; instead you "get" and "set" their "current value". One instance ...
kos.gd
Risk of Rain: A Story of a Bug | kos.gd
https://kos.gd/2014/10/risk-of-rain-a-story-of-a-bug
Skip to main content. Risk of Rain: A Story of a Bug. So the funniest thing happened recently: Risk of Rain, a well-acclaimed video game, has received an update 1.2.1 that introduced a silent bug that has significantly affected the gameplay. The circumstances are more than entertaining. They would probably assume the game was designed this way. This means a lot of surprise and a mix of disappointment and stubborn teeth-gnashing. This is of course very unlikely to happen. One possibility is if the upd...
kos.gd
Bug vs feature | kos.gd
https://kos.gd/2014/01/bug-vs-feature
Skip to main content. We've had a lot of discussions about what should go as a "bug" and what should be a "feature" in our tracker. Turns out there's quite a big gray zone here. Example: a website has a table with AJAX-based pagination. Navigating to an entry detail and clicking "back" doesn't bring you to the same page of the table. The project manager considered it a bug - "back" doesn't really go back, so the navigation is broken and it's a serious user experience problem. Another real life case: We i...
kos.gd
Commentary on Javascript: The Good Parts | kos.gd
https://kos.gd/2013/12/commentary-on-javascript-the-good-parts
Skip to main content. Commentary on Javascript: The Good Parts. My commentary for selected parts of the book follows. The book critiques and recommends against the pseudo-classical style (constructor invocation pattern. But isn't very convincing on why it's bad ("looks alien", no encapsulation, things silently go boom if you forget "new"). I feel there's more to say here. One thing is that this approach becomes unwieldy when you try inheritance - the common hack is to create a dummy. Binding for the meth...
kos.gd
Say hello to Unicode | kos.gd
https://kos.gd/2013/02/say-hello-to-unicode
Skip to main content. Say hello to Unicode. That defines several things. Here is a handful of some most important facts about it:. There are thousands of "code points" that represent characters in various alphabets, numbers, punctuation, various symbols, etc. Each of these has a name and a number. Here are some examples:. LATIN CAPITAL LETTER A. LATIN SMALL LETTER C WITH ACUTE. Different code points may share their appearance, or "glyph" (like OHM SIGN and GREEK CAPITAL LETTER OMEGA). There are many code...
kos.gd
Closures: The cute pets that bite | kos.gd
https://kos.gd/2013/01/closures-the-cute-pets-that-bite
Skip to main content. Closures: The cute pets that bite. A closure is basically a function that was defined in some local scope and has access to the local variables from that scope. Additionally when a closure (the function object) outlives the scope where the closed variables were defined, their lifetime gets extended (or not, depending on the language). This article has two parts:. Differences between closures in some languages. Pitfalls related to closures that you should remember and avoid. Capturin...