What if I rolled my own phone service?

At work, part of my job is to manage PBX (Private Branch Exchange) phone systems whenever the need arises. For those who don’t know what a PBX phone system is, think about your experience when calling a business. Often times you are placed on hold, or transferred to someone else, and maybe given a number to call along with an extension to dial in order to reach somebody. If you’re interested you can read more about PBX here on Wikipedia.
Read more →

How we got to “But it works on my machine!” and how we could have avoided it.

During the last Fall semester I participated in CUNYCodes, a portfolio development program. The mission of CUNYCodes is to help create an environment for college students majoring in STEM related fields or are just interested in learning software development to work collaboratively and expose us to best practices and get a better insight to the industry. I had a great experience and the rest of my post is about what I would do if I could go back in time.
Read more →

Implementing my own version of std::array

I’ve been working on implementing my own data structures for practice, and I decided I’d try to make my own std::array. I had written a pretty bare bones Array class, but it was missing list-initialization, and I couldn’t use any of the neat things in the library. I realized that I’d need to implement iterators, but I had never done that before, and after a while of searching Google I found this gem from the computer science department at Northwestern University which says:
Read more →

My short look at Rust.

Lately I’ve noticed that Rust is getting more attention on the programming related subreddits, so I decided to take a look. I read the Getting Started chapter of the documentation, and I really liked it. After a few minutes of just following along any new user will come to know how to structure their Rust projects and Cargo is a straight-forward package manager and build system. What caught me off-guard however was the size of the executable Hello World program below.
Read more →

Initializer-List constructors

So in modern C++ we have initializer-lists ({}-lists). I was reading about them because I was interested in how to add a {}-list constructor to my own classes. It turns out it’s actually really easy! I’ll use a Singly Linked List as an example: #include <initializer_list> template <typename T> LinkedList<T>::LinkedList(std::initializer_list<T> lst) : root{nullptr} { for (auto i = std::begin(lst); i != std::end(lst); ++i) this->pushback(*i); this->size = lst.size(); } So here we have a template LinkedList class {}-list constructor.
Read more →