One of the biggest advantages of the Internet is the facility we have today to gain knowledge of different places. But that doesn’t mean it’s easy to find. When I started trying to mess around with HTML/CSS just ‘cause I wanted to make my own tumblr themes, I had no idea where to start and just take me more than it should to learn. As a way to organize all the information I have stored for a long time and also to help those who want to start programming, I organized this masterpost with several sites far beyond codeacademy, software and some books in PDF to help you start programming, or increase your skills in programming if you already know. Information presented here help both those who don’t know how to program in any language and seeks knowledge only as a hobby or students of computer. English is not my native language and I’m not that good with, so just ignore any grammar errors. All the materials in this post are free. And don’t forget to Ctrl + click in the link to open in a new tab.
Attention: If you live in Brazil, go here for the portuguese version of this post with some sites that work exclusively in Brazil.

Keep reading


I learned a bit more about the file class while making this one; the challenge is to print out the contents of all files in a given directory and, if it gets the argument ‘-r’ as well, to recurse down subfolders and get the documents of them as well. I stuck my folder structure on the side so you can see file D is in a deeper folder. Basically you just need .listFiles() and .isDirectory() to see everything in a folder and test what it is, but I didn’t realise you could make a File object out of a path (I gave it assets/testFolder and that became the first File object) so it’s not too tricky.


Interning at NASA is awesome!! …so I had to make some gifs

So the top gif is me sitting in front of NASA’s thermal testing chamber. At this time the chamber was heating up so I had a 45 min break before taking data again. We were testing HD video cameras that will be on the outside of the space station in a few months. They will mostly help with navigation and systems checking.

The second and last images are in front of one of NASA’s 360 degree virtual reality chambers. I’ll post more about these in the future, they are super cool and deserve a post all to their own. The third image is me programming in a good old Linux terminal.

…And the fourth image is me basking in the glory of an Saturn V rocket. This is the rocket that took us to the moon! If any of you ever get the opportunity to see one I highly recommend it.

So if you guys want to keep up with my NASA intern adventures I post about it about twice a week, check out, and you can follow my adventures on twitter @astro_wonders if you so choose. also check out ourtech she’s the one in the last pic!

here’s some programming tools

I use a lot of these tools basically every day, and I feel like not many people know about them. hopefully someone finds these useful! if you have any other good links, feel free to add them. - generate a .gitignore file for your git project - interactive regex tester - collaborate on code with multiple people editing - like pastebin, but prettier and more direct. also, your posts aren’t public by default.

this wonderful stackoverflow thread describing lesser known but useful data structures

prettyrfc - the RFC is now DIAMONDS

shortcutfoo - learn shortcuts and commands for basic development tools (vim, emacs, git, etc)

data structure visualizations - this one speaks for itself


The robot that learns from its mistakes

UC Berkeley researchers have developed algorithms that enable robots to learn motor tasks through trial and error using a process that more closely approximates the way humans learn. This marks a major milestone in the field of artificial intelligence.

Motor learning is much more challenging than passive recognition of images and sounds.

The researchers demonstrated their technique, a type of reinforcement learning, by having a robot complete various motor tasks without pre-programmed details about its surroundings.

“Most robotic applications are in controlled environments where objects are in predictable positions,” said UC Berkeley faculty member Trevor Darrell, who is one of the leads on the project.

“The challenge of putting robots into real-life settings, like homes or offices, is that those environments are constantly changing. The robot must be able to perceive and adapt to its surroundings,” said Darrell.

Conventional, but impractical approaches to helping a robot make its way through a 3D world include pre-programming it to handle the vast range of possible scenarios or creating simulated environments within which the robot operates.

Instead, the researchers turned to a new branch of artificial intelligence known as deep learning, which is loosely inspired by the neural circuitry of the human brain when it perceives and interacts with the world.

Deep learning helps the robot recognize patterns and categories among the sensory data it is receiving.

Learn more about how deep learning works in the robot

Operator overloading

I used to dislike operator overloading. That’s because my C++ teacher made us implement all operators on all bloody classes even when it didn’t make much sense. If the method name would be the name of an operator, make it an operator overload. If the name should be more explicit, then don’t!

But when I come across this JS code:


Which ends up doing this:

this.position.x += this.velocity.x * timestep + this.acceleration.x * fixratio;
this.position.y += this.velocity.y * timestep + this.acceleration.y * fixratio;

I really with I could have just written:

this.position += this.velocity * timestep + this.acceleration * fixratio;

PS: Tumblr really needs to work on its markdown intepreter.

This is why I code.

This here is a fanmade character jumping around in a very simple custom level.

As silly as this may sound, this image here has turned out to be quite special for me.

Around one year ago, I started working on Sburb. It’s been quite a long ride! For me, anyway. It has become quite a large project! Far bigger than anything I could’ve ever imagined back then. The whole game has been rewritten four times now, and after each time, I’ve learned more. 

When I first started it, I didn’t really think I would ever get to the end of it. Certain features sounded so… out of reach, back then! People wanted to add their own character parts and make their own levels.

“A character creator that loads custom image files? A level editor? IMPOSSIBLE. There’s no way to do that! I have no clue how to do that.”

And well, now it all seems reachable, doable, possible! I’ve learned. It took me quite some time, but here it is at last! The impossible, the things I once thought to be impossible to accomplish, in the flesh. I feel fuzzy inside for that. In a way, I find that to be beautiful! Time really does change things.

And I would have never gotten so far without you guys. Those who have been watching my progress, those who have comforted me with kind words, those who gave me hope, thank you. Thank you so very much. Thank you for not letting me give up, thank you for helping me with it all. Thank you for reminding me that everything is possible, somehow.

And the show must continue! I will post yet another preview version of Sburb up for download soon-ish. Keep an eye out for that!

And once again, prepare for the end of the world.

Days 17-19: NetWORK (...please?)

Hey guys! I’ve been super busy these last few days studying up and testing out this networking solution. I got basic connects going, but there are so many bugs that’s it’s pretty much unplayable at the moment. Players aren’t syncing data with my game manager, animations are broken, hitboxes aren’t registering, and Advance is BEYOND fucked up. It’s going to take longer than I Had anticipated. I’m going to spend the majority of my time working on this now. I’m hoping to have basic networking (without lobbies for now) done within a week or so. I’ll keep everyone posted!
Wacom Quick Fix
This tool aims to quickly recover from most issues that plague Wacom tablets.

This is my new and HIGHLY improved Wacom Quick Fix (formerly Universal Wacom Tablet Fix). Not only is it incomprehensibly faster, but it also looks a hell of a lot better, is way smaller in file size than previously, was made from scratch instead of being based on old code, and is now open source!

What does that mean for you?

It means that you can fix a lot more Wacom issues and you can fix them a lot faster. Not only that, but since it’s licensed under the GPL (v2), the source code can be viewed at any time to ensure its trustworthiness.

The main reason I made it open source was because the program DOES need administrative rights to run, but that’s because it interfaces directly with Windows services and modifies either one or two System32 files (only Wintab32.dll associated files, the number of files depending on configuration). Again, these are all legitimate and safe, and you can verify that by viewing the source code. <3

If you like this program, all I ask is that you give feedback about how it works for ya!~