Going from C# to C++ in preparation of …”something”

After a few years of developing only in C# (all my hobby projects, e.g. modding tools, as well as my thesis, were written in C#, targeting .NET 4 and using WPF for the pretty (the what?) UI), I’m “back” to C++. To be brutally honest, I haven’t used C++ much. I did use it for whatever university assignments I had that required it, and I learned some pretty basic and important concepts with it, such as server-client architecture, multi-threading, message passing, parallelism. Only reason I didn’t get into it more was because when I did decide to get in trouble and start developing on a daily basis on projects I loved, I had already discovered C#. C# promised the power of C++, with a minimal amount of the trouble that C++ could cause you. Its power, the level of automation and abstraction the .NET platform offered, and how well tied it was with Visual Studio made it an absolute pleasure of a language to develop in. I could do everything I wanted, I had Visual Studio’s magnificent visual debugger, IntelliSense, documentation, I had LINQ; you could say the world was my oyster. And I created some useful things with it. All my modding tools were put to use by the basketball modding community, and NBA Stats Tracker was even used by a varsity basketball team in the US. I learned a whole fucking lot from using C#. My first big project, the delicateness of code where a single, innocent-looking change can break so many things in the rest of your project, trying to refactor and messing things up, trying to find what went wrong in a stack trace that was 9 calls deep, how to properly design an object-oriented program, what to do when you manage to crash the CLR (yes, that actually happened), so many things that I simply cannot list of the top of my head, really.

But C# is a world of convenience. 50% of what you need to do, it’s there, in the libraries. Memory allocation? Done for you. You declare and allocate everything the same way, not having to worry if something won’t fit in the stack, not having to worry about dangling references, segmentation faults, undefined variables.

Enter C++.

Continue reading

Advertisements

Leap of Faith

For quite some time now, actually it’s been since I first decided I wanted my thesis to be a full-blown basketball statistical analysis tool, I’d been wondering if, and how, I would ever be able to earn some money, even little, out of it. That’s the main reason that even after submitting it as my thesis, the project remained closed-source. I was thinking that I would keep it that way, find a way to put a decent protection on it, and sell it for a fee.

And then I came to my senses. In an era where every proprietary piece of software that’s locked down is cracked, what’s the point of keeping your source closed? All the rest of my work is open-source, why should this be any different? Sure, anyone could take the source now and compile it and have the tool for free, but even when it comes to open-source projects, there’s ways to earn something. Especially a tool like this gives you the chance to be hired to actually use it for a team, rather than have them learn how to use it, or you could “sell” “priority support”, as in get paid to work on features or to be stand-by for bug-fixes and support 24/7 (or, to put it better, to offer support to the client as soon as humanly possible).

Plus, going open-source gives you all the well-known advantages of having the whole open-source community help, and even contribute directly if they want to.

So, it is a leap of faith. Maybe it was the right move to make, or maybe I’m an optimist and a delusional and I should be instead gathering money to buy some good protection.

Well, the leap of faith was taken. So, open-source community, fellow developers, make me proud.

P.S. The GitHub repository is at https://github.com/leftos/nba-stats-tracker. I’ve also migrated most of my current projects to GitHub from BitBucket, and you can find them at (well… duh) https://github.com/leftos.

Radio + Me = <3

Since my early elementary school years, I was really envious of the radio DJs and producers. Those guys had access to so much music, and to so many people. I was determined to have my own radio show at some point.

Back then, internet access in Greece was really sparse. And radio on the web was not something anyone was familiar with. Growing up, once I reached junior high, my music collection started growing. I bought CDs from artists I loved, and downloaded (-cough cough-) mostly everything else. Internet speeds were also growing, and I got my hands on some mixing software. That’s when I started experimenting with making mix CDs that had beat-matched crossfades and effects and my own remixes of tracks. That grew into some pretty elementary live DJing, without me ever getting around to trying out the hardware all the DJs I was dreaming of becoming one day had.

And then, during my first years in University, I finally got my chance.

Continue reading

Fighting (and losing to) anxiety; looking ahead

There’s definitely something wrong with me.

Whenever an assignment comes up and I’m going through it, or whenever I’m doing some programming on something I love (e.g. my thesis), there’s nothing else going on in the world or around me. I forget to sleep, working late into the night, even after my brain has stopped working, even after the code before my eyes is as understandable as the data waterfalls from The Matrix. I forget to eat, sometimes filling up a plate for dinner and bringing it with me to the desk, only to take another look at my code and then set the plate aside, until it’s cold and needs reheating (probably for the 8th time that night). Even when I sleep, I tend to keep a notepad on the nightstand (a huge, very fluffy stuffed bear serves as that, next to my bed), so that I don’t forget any ideas that hit me right in my sleep when the morning comes.

I guess that’s made me really punctual with my assignments, and it’s bound to make my future employers very happy, as well as any future wife of mine really, really unhappy.

Continue reading

Drawing outside the lines

Doing what you love to do, instead of doing what you must do

Considering the violent(-ly changing) times we’re in, some of my recurring thoughts seem so humble. Yet my problems, and what will occupy my mind on any given day, is only relative to my own experiences. Just like you’re force-fed your last spoonful of dinner because “children in Africa are starving” and you’re not really sure what that means, or why that should force you to eat your food, just as similarly you can’t figure out why in the great context of things, your personal life seems to bother you so much.

I guess the answer lies in the fact that if you can’t be happy about yourself, you don’t have the mental strength or capacity to worry about pretty much anything else, no matter how serious. We’re but so small things in the great universe, yet what we’re awaken with every day is our own lives.

I’m still wondering every day whether my thesis is academic enough. My personal goal is to be able to teach one day. And I’m aware of the prerequisites. You need to walk and struggle on an academic path for long enough in order to be able to teach and help others on how to walk it themselves. And professors need to have gone all-research; a PhD, published papers and who-knows-what-else are pretty much a given.

Passion is one of the intangibles. It can’t be measured, it can’t be put on a CV in any section other than the narcissistic description of yourself. Passion is a subjective matter, that shines through your everyday life, and your work.

When I was deciding on the subject of my thesis, I wasn’t thinking ahead that much. I wasn’t considering whether my thesis would be academic enough to entice those that will be looking through all the paperwork that will consist my PhD application. I was just following my heart, deciding that after 4 and a half years of studying Computer Engineering, and after nearly 9 years of exploring programming on my own, I would devote the time and effort it would require to get the first big project I’d be passionate about out there.

And oh my fucking god it’s been good.

Continue reading