To spammers

I want you to know that I have long logs of your activity. The spam, bad headers, the 404s, the admin account login attempts, the random user account login attempts, the script-kiddie childish bullcrap, your emails, IPs, and so much more. Please, for your own sake, find another site to harass. You look silly coming after me because I publicly post your information periodically and I contact your webhosts and make complaints against you more than a few times per month. I noticed that I just reached 83,000 bullcrap attempts at stupid so I thought I’d save you the trouble and just tell you to go bother someone else.

Some fun ones…
Script kiddie:
Spammer:,, 185.x.x.x/8
Admin account login attempts:
Retard-level account login attempts:,, 54.x.x.x/8

The crown for the dumbest person of all goes to this IP which, funny enough, actually seems to be a bot’s real IP and not a veil.
Multiple admin account registration attempts:

Now please, leave me alone. I’ve been programming a little arduino robot and haven’t been paying attention to my website so stupid stuff like this has been slipping past me.


UPnP Manager is…buggy

I’m looking into some bizarre bugs found in UPnP Manager since its last release.

– When too many ports are open, UPnP Manager locks up.
– When connected to a router for too long or if the router has been on for too long, it fails to check open ports on Windows 7 (may not be able to fix).
– Does not update status of ports in real-time.
– Does not add or remove ports that are opened in real-time.
– Other misc. issues.


A questionable C# bug – Error CS0173

I’m working on a game and server for a game called “Word Chain” which is based on Chain Reaction. While scouring my code JetBrains ReSharper told me that a section of my code was redundant. ReSharper was sort-of right, but was actually quite wrong according to Roslyn. In fact that only reason the code looked the way it did was because of a bizarre “bug” in my code that was anything but that.

Here’s what was written down (UDPGameServer and TCPGameServer stem from abstract class GameServer)

gameServer = Program.SpArguments.ContainsKey("udp") ? (GameServer)new UDPGameServer() : (GameServer)new TCPGameServer();

This is what ReSharper recommended, but this errors out with the error message show below.

gameServer = Program.SpArguments.ContainsKey("udp") ? new UDPGameServer() : new TCPGameServer();

This is one way to cast that I tried, but failed with the error below.

(GameServer)(Program.SpArguments.ContainsKey("udp") ? new UDPGameServer() : new TCPGameServer());

This is another way to cast that I tried, but failed with the error below.

gameServer = (Program.SpArguments.ContainsKey("udp") ? new UDPGameServer() : new TCPGameServer()) as GameServer;

This is the error shown from the three changes I attempted at the code. As you might clearly see, this really shouldn’t error out and should be legal code by C# standards.

Error CS0173 Type of conditional expression cannot be determined because there is no implicit conversion between ‘ChainReactGame.UDPGameServer’ and ‘ChainReactGame.TCPGameServer’ ChainReactMPServerr

In closing I don’t have much to say other than I’d like to see a Microsoft dev tell me why they think this error is appropriate and where in the C# standards can I find a specification that says this error should be thrown by the roslyn compiler. I personally think this is a roslyn bug, but I don’t know. I’d like to hear your thoughts on it if you’ve been thrown this doozy.



Some Source Code Releases To Come

I’m going to be releasing the source code to some old projects that I’ve only released as freeware next Monday. “Why?,” you might be asking yourself. It’s because of this VirusTotal Link.

I laughed when I saw that PeerBlock List Unblocker was detected as “Trojan.MSIL.gen.18” by whatever “VBA32” is. The hilarious part is that the code is so incredibly innocent (and small) that I figured like the rest of my software, it would be detected as 100% clean (because it is). However, some PoS anti-virus proved to me that the most innocent software can be detected as bad. So I’m going to release the source code to disperse any doubts and at the same time I will also release DTF, PE, and BTT’s source code.

Edit: Oh hey, you know the newly released “WebP GUI”. You know, the one where I provided source code basically from the very start of development, that’s detected as a virus by 1 PoS anti-virus too. VirusTotal Link. This is further proof that the small anti-viruses need to dropout of the game because they hurt software developers by reporting false-positives.

Important Note: The reason I can’t release until Monday is because I’m not home and because of a hardcore brownout (that shut my computer off) in the city I’m from, while I’ve been away. So I can’t access my computer remotely, otherwise I would’ve already.

Edit: Ah ha, I got the Chinese company to not consider my software as a generic trojen. I couldn’t even figure out how to contact “VBA32” so I gave up. As a note, I am not going to release the software anymore. I now remember the reason why I didn’t release it in the first place. It wasn’t because of any “malwares”, it was because it had software dependencies in weird places that make it hard to upload online to a repository. For instance, the btt tool requires my private nrgsoft lib dependency module to compile.

Edit 9/20/2016: Peer Block List Unblocker source code is here (I found it!)


WebP GUI Release (06/28/2016)

One day later and already a new release of WebP GUI. This is be expected though, as the first release was very incomplete. This version is too, but far less incomplete.

The software is about 30% done right now. The small remaining compression features will be added next and then the decompression features will start to be added. More releases are going to come.

Download: Windows (Vista & Above) | Source Code



  • Added nearly all remaining compression features
  • Added about dialog
  • Changed right-hand items layout

WebP GUI Release (2016/06/27)


WebP is an image format developed and maintained by Google. While having a number of features, it lacks a lot of support from the general community at large. So I decided to help out a bit by introducing WebP GUI. It’s a piece of software designed to use Google’s webp binaries and manipulate them in a fashion people are more accustomed to instead of cryptically writing it out on the command line.

WebP GUI, like WebP itself, is definitely incomplete, but complete enough to release for now.

Download: Windows (Vista and above) | Source Code


Note to XP and below users: I’m officially not supporting Windows XP anymore. It’s time to upgrade. I’m not saying you have to go to Windows 10, but you can’t stay on XP either.


Page Speedup

For some reason I was loading the left repository updates sidebar on the main thread. Now it’s loading in the background and is speeding up the page delivery. Sorry about that screw-up.


Back from vacation

I didn’t announce it, but after the Ludum Dare I went immediately on vacation. Oh, I also quit 4 hours in after completing my prototype because I saw 5 posts by other users who were making the exact same game. I guess we all had about as much creativity as a wet rag when it came to the theme ‘shapeshifting.’

Whatever the case, at least I wasn’t unhappy. I quit because of sheer number of similar games. Imagine how many people did the same idea and didn’t post! It was a valid quit. On a positive note, I completed the prototype in 4 hours. I’ve improved quite a bit since the last time I completed one. Now to get even faster. Sadly I only took away a few things from that compo, I was hoping for more, but whatever, at least I learned a new technique that is an optical illusion, but useful for certain things.

Whatever the case, back to the large project I’ve been working on in secret. It’s now been 8 months, so yay! (Did I even mention this project in any other post?)


Preparing for LD35

I’m in the process of preparing for the 35th Ludum Dare (LD). I haven’t attempted an LD since my 9th time at LD 29. Six Ludum Dares have passed since then. It’s also been 9 Ludum Dares since a complete game was made. Albeit, LD27 was more complex than any of my other games and wasn’t finished for valid reasons. LD 28 and 29 were both uninspiring and I quit hours into both.

I now have a new framework and a lot of experience in some newer areas that has helped to build up my experience for general and game dev. So I’m going at it again. This is why I’ve been relatively silent for the past months. It’s been a fairly consistent stream of framework development pertaining to a larger game. However, to ensure I’m traveling in the right direction, the framework will be put to the test at LD35 to ensure it both works and can pump out decent results.

I will likely stream it live, although not 100% of it. As in, the hours I’m asleep.


Patreon Page

I’ve put up a Patreon page for anyone who wants to support my continued software development. This can be found here:

Basically, I’m at a crossroads right now. Either I will have to start selling software or close up shop after the years end. It’s expensive to run this place and I’m broke. No one has donated via flattr yet, so I wouldn’t be surprised if no one gave me anything on Patreon. However, I figured it was better than doing nothing at all.

Important: If you honestly support any of my projects, give to my Patreon and make a comment about what software you specifically are pledging to help continue development of. I will seriously consider further development of software that is discontinued if you are donating money to me.

I think I know how PBS feels now, having to do all of those ridiculous pledge drives.

© 2016 NRGsoft