Clearscreen

I mentioned a while ago that I got a second monitor, which a long needed upgrade for me. I’ve been using only one screen for quite a while and for a lot of things it can get very frustrating to only have one screen. For example when playing a game in fullscreen your entire screen space is used up by one program, or when I needed to run two instances of a program for debugging, or when working on any project which requires to switch between programs like the webbrowser and something like Powerpoint.

Now that I have that second screen it’s obviously a lot more comfortable doing these things, but from time to time I still turn the other screen off because I notice that I don’t need it. The problem that comes up with that is that Windows remembers where you closed a program, so when opening for example the taskmanager and the last time I used it it was on the second monitor, I won’t see it since it’s turned off. So for now I’ve always either turned it back on again or just blindly guessed where the program is and dragged my mouse around in the dark.

Since that’s not an efficient solution I put together a small program that’ll move all windows (Almost all windows) that are open on one screen to another.

The program gets all it’s settings over arguments and is generally really small and probably unfinished but it does the trick for me. You pass it the dimensions of your main screen (Left, Right, Top, Bottom coordinates), which you can find out by running the progam with the –setup flag and finally pass it the coordinates of a point to which it should move all programs on the main screen.

It works pretty ok, it just doesn’t seem to want to move the file explorer since it’s probably the same process as the taskbar. At some point it also moved my taskbar, which made up for some interesting results like two taskbars stacked onto eachother. So I ended up blacklisting the explorer process.

And as always here‘s the sourcecode and the binary. I suggest launching the program from a shortcut with arguments.

Windows 10

So I have avoided windows 10 ever since the tray icon showed up for everyone for the free upgrade. The furthest I’ve gone away from windows 7 was 8.1. Since my windows 7 installation was getting kinda slow I decided to make a clean installation, and while I’m at it I thought I’ll go ahead and, for the first time, install windows 10 outside of a virtual machine.

The installation went smooth and I only had to untick about 300 settings about “collecting data to improve my experience”. After the main installation I went ahead and ran a few scripts to disable the rest of the services and I think I now a have a relatively useable installation of windows 10. So after I installed the basic software I need (which I heard can be automated using ninite or allmyapps, but I haven’t tried them) I went ahead and looked at some customisation with designs. There were some pretty cool looking ones but sadly one of them ended up toasting windows and trying to fix it only made it worse. Luckily I made a backup so that helped out a lot.

So after almost loosing my first installation of windows 10 about 2 hours in I stopped with the designs and installed something I knew from windows 8.1: Classic Shell, the free StartIsBack. It gives you a way to customize (or for windows 8 bring it back) your startmenu. The windows 10 start menu is way to big and full of useless stuff in my opinion so with classic shell you’ll get back the windows 7 styled start menu with a skin to fit the flat design of windows 10. It’ll also give you the search bar back and it’ll adjust to the accent color.

Due to the roll back to the backup I lost some software I had already installed, including winamp which was my goto music player for a while now. So I thought I’d use ths opportunity to give foobar a try but quickly dropped it since I didn’t like the interface and installing skins didn’t really work for me. But while looking for skins I found out about AIMP. I’ve never heard of it but I found a cool skin for it and it offers a lot of customization while staying very light weight (at least in terms of RAM usage).

So this is what my current installation looks like:

Classic shell and AIMP with the ncmpcpp skin

That’s basically it. We’ll see how long I can stick with it until I get annoyed or maybe to my surprise I’ll actually stay who knows.

jBeamChat

So I’ve been using beam.pro now and then and I also did a few test streams. The problem I had is that since I don’t have a second monitor looking at the chat is rather hard when working on something that takes up your entire screen.

I tried to use an old laptop that I have to open up the embeded chat, so it could act as a second monitor. Sadly the old Pentium III and only 256 MB of ram couldn’t handle the beam.pro site even with arch linux and dwm. Which is probably nothing surprising, since that laptop is probably over 10 years old.

But then I discovered, that beam has it’s own API for java and a very handy tutorial which thoroughly describes how to use the API, so that even I could understand it, I started to write a chat client for Beam.

So only after about two hours I got a basic chat client which logs you in, echos all messages and lets you send your own.

After a few more hours I got username formatting with colors, if supported and your usual IRC formatting (eg. @, &, ~ etc.) if colors aren’t supported by the terimal. I also added a ping sound if someone mentions your name, and I’m working on some simple commands like listing current users.

This is an older version, but as you can see it’s running and even that old laptop runs with over 100 MB of RAM free and only about 10% CPU usage out of 1.1 GHz.

Obviously Java isn’t the goto language if you’re looking for high performance, so maybe I’ll see if I can rewrite this with the Python version of the API.

To keep the tradition going here’s the sourcecode and the binaries.

Conway’s game of life

Today I randomly decided to try and replicate the game of life using SDL2 and C++.

Surprisingly I got pretty far in one go and didn’t scrap the idea after 10 minutes but in the end I realized that my version doesn’t behave like the actual game of life, since it doesn’t exactly follow the rules.

Anyway, the game basically consists of a square field which is devided up into cells. These cells can either be alive or dead.

The state of cells can change by the following rules:

  • If a dead cell is surrounded by exactly three living cells it’ll become alive in the next generation.
  • If a living cell has only one living neighbor it’ll die in the next generation
  • If a living cell has two or three living neighbors it’ll stay alive
  • If a living cell is surrounded by four or more living cells it’ll die

Surrounding means all eight cells around it, directly connected or diagonally. Seems simple enough right? Well I still managed to fudge it up, since mine doesn’t quite stick to these rules, but it still produces some cool results.

Selfhtml

So, yeah don’t expect too much it’s only about 300 lines of bad structured c++. And as always here’s the sourcecode and binaries. (Also includes a linux build)

 

CS:GO Text generator

Another .NET App

This time it’s a console application though. And it’s purpose is rather questionable. What it basically does is generate a random sentence made out of random cyrillic letters, inserting words like “vodka” or “cyka” at certain occasions.

Yeah a very deep and useful application to communicate with all those random russians writing in the csgo chat, not knowing that noone will understand them.

Just to be clear: I made this for fun, and not to make fun of anybody or anything.

As I did the last time, here’s the sourcecode:

gist.github.com

and the binary download (Archive Password is 1234):

drive.google.com

To use the program, simply open it, set your desired keybind, and when in the csgo chat press it to generate a random sentence. The program minimizes into your system traybar.

 

Snap

How could one start off a blog better than with a .NET application on which I probably spent at most three hours.

Well, that’s all. There’s two versions, one that runs in the background and one that on start up let’s you select a screen region and uploads it to imgur.com. There’s literally nothing besides that.

I think it has some issues with multiple monitors. *Maybe* I’ll bother looking into that.

Anyway have some links

Github project

Download (Requires >= .NET 4.0)