“Hello World!”

std::cout << “Hello World” << std::endl;
My undergrad study in computer science has finally begun. It still feels surreal and odd. This is also my first time experiencing a course in Korean language. I think myself to be good enough in Korean but I have probably overestimated my abilities.
I had been preparing for my C++ programming classes but unfortunately the class was cancelled. I was unsure whether to continue or not but, after some thinking, I thought perhaps, I should just continue with my self-study.
Uninstalling Visual Studio is a painful experience
I searched for the best IDE for C++ and most sources pointed towards Visual Studio(VS) . It’s surprising because Microsoft to me develops pathetic software that doesn’t work properly and some talented freelancer somewhere creates a much better one that everybody else uses.
Firstly, I installed Visual Studio Pro 2015 that I got from KAIST. But after installing it, I realized that there is a newer version of VS. Thus, I stumbled upon the most lengthy and broken uninstalling experience. 30 minutes passed with no progress and I thought maybe it is just my computer. And then I googled the issue, and learnt that this was a universal experience. Then I found the Visual Studio Uninstaller at Github. After maybe about 5 minutes I was done with the uninstall with no junk left behind.
Even the developers of Visual Studio seem to acknowledge this tedious process of uninstallation. Perhaps we will see future VSs having much better uninstall package (probably not).
The Cherno Project
Throughout these past few weeks, I have stumbled upon many sources of knowledge. One of them is the youtube channel “The Cherno Project”. It is operated by Yan “The Cherno” Chernikov, who is a software engineer at Electronic Arts working on core technology. His C++ videos have been providing me the basic foundation for learning. He creates a comfortable learning environment through his humor and descriptive explanations. Here is an example of a video where is goes outside and finds a child chasing a kangaroo while he is filming his C++ tutorial. His overall cheerfulness and calmness makes for a relaxing study session. Chernikov’s other series are also very informational with topics ranging from job market to current trends while providing a perspective of a AAA game developer.
Perhaps the most interesting thing about learning C++ to me is freedom the language gives. In contrast to Java where it expects explicitness, C++ allows for an unbinding coding experience. For example in the code below,
const char* ptr = nullptr;if (ptr != nullptr) std::cout << ptr << std::endl;
instead of writing if(ptr != nullptr) (making it explicit), C++ allows me to write it as if(ptr) which basically says if ptr has a valid value then print the value. This allows for a clean concise look.
#pragma once
C++ integrates itself with its header files. I can include functions on separate header files which can be called later on my cpp file where the main code lies. A header file can be called several times. But there can be instances where the same functions already exist in the cpp file. This creates a situation where there are two of the same functions: one from the header file, and one in cpp file. Here is an example from the pragma once wiki page:
//File "Grandparent.h"#pragma oncestruct foo
{
int member;
};
//File "Parent.h"#include "Grandparent.h"
//File "Child.c"#include "Grandparent.h"
#include "Parent.h"
In the above example, Granparent.h is included in both Parent.h and Child.c which will cause a compilation error, since a struct with a given name can only be called once. However, since Grandparent.h contains #pragma once which prevents this by ignoring further inclusion of Grandparent.h
However, there are also alternatives to using #pragma once. The most common alternative I have found is#defineto create a #include guard. Again using the example from the wiki,
#ifndef GRANDPARENT_H
#define GRANDPARENT_H
... contents of Grandparent.h
#endif /* !GRANDPARENT_H */However, this is quite complicated to do, makes the code a bit messy and since the name is created by the programmer, there can be errors with the same name already being used somewhere else.
Rainmeter

For people who don’t know, rainmeter is a desktop customization tool. It allows to add numerous customizable skins on the desktop, from hardware usage meters to fancy clocks. At the end of every blog I will showcase what I am rocking in my desktop.
Urim Berisha is a youtube channel dedicated to creating awesome customizations through various software including rainmeter. My current desktop is inspired by his video named Space Desktop (originally made by maxcash34 from reddit) and the wallpaper as well as the clock is the same. I have also added a transparent taskbar (by arkenthera from Deviant Art) as well as the audio visualizer (by Redsaph from Deviant Art).
Next Week
Next week, I will talk about my highschool senior year project called “The Gurkha Project”. It is an idea about a system of applications planned to be developed for assisting Nepalese people in foreign countries especially Korea.
