In 1988, Barbara Liskov first formulated the following principle
Liskov’s notion of a behavioural subtype defines a notion of substitutability for objects; that is, if S is a subtype of T, then objects of type T in a program may be replaced with objects of type S without altering any of the desirable properties of that program (e.g. correctness).
Thereafter referred to as Liskov’s substitution principle, this represents the L in the mnemonic acronym SOLID and is one of five design principles in object oriented programming. …
Last week, I spent most of Wednesday and Thursday completely overhauling my resume and moving my portfolio one-pager from about.me to glitch. The motivating factors and lessons learned will be covered in another blog post but suffice to say, I ended Thursday night feeling rather proud of myself for completing something within a reasonable amount of time and decided that I’d share my tiny victory with social media in the morning.
Then, as I was getting ready for bed, I saw the breaking news of the terrorist attack in New Zealand on YouTube — and to make shit worse, the news coverage I watched showed uncensored footage from the terrorist’s live stream. This then led to me going to sleep mourning New Zealand and then waking up the next morning in a funk. If it weren’t for the ongoing spar challenge between myself and my sister, I’m sure I would have not been out of the house on time. Despite being out of the house on time, my productivity was nonexistent and at some point I remembered the tweet that I had drafted the previous night about the day’s accomplishment. …
Imagine my dismay when my classmates from Holberton School and I were assigned an article to read entitled “Friends don’t let friends program in shell script” by Liraz Siri. My love of bash scripting and all things command-line interface (CLI) is no secret among my peers. Normally, when I find myself repeating a task more than a handful of times, I try to find a way to either alias the command or automate a series of commands within a script. …
This is the second of several tutorial blog posts accompanying my end of term project completed for Holberton School. If you have not already read On Choosing Docker, my recommendation is to start there before reading on.
Now that you’ve drunk the container Kool-aid let’s discuss how to set up your own StarCraft II Learning Environment (SC2LE) container.
I briefly alluded to my own experience of setting up the SC2LE in my previous post and below is an attempt at visually representing that experience.
This is the first of several tutorial blog posts accompanying my end of term project completed for Holberton School.
On August 16, 2017, Blizzard and Deep Mind collaboratively published a white paper entitled “StarCraft II: A New Challenge for Reinforcement Learning.” The paper introduced the StarCraft II Learning Environment (SC2LE) to the research community and outlined frameworks and resources designed assist in the exploration of deep reinforcement learning algorithms and architectures.
Getting the development environment up and running took about two days of deciphering error messages and sifting through issue requests on GitHub. For many people, however, experiencing difficulty in setting up the SC2 learning environment may cause them simply give up in frustration. …
You’ve read all the tutorials and watched all the videos and now you’re finally ready to write your first JavaScript code!
But wait! If you’re using emacs to write Semi-Standard Styled JavaScript, your code will not pass the linter on first pass.
The dictionary definition for object is:
In programming, this definition of object can be extended — though you may not be see and touch software objects, you can definitely perform actions on objects. …
Two months ago, I wrote about static libraries in Linux and reasons to use them. In today’s article, I will introduce the concept of dynamic libraries in Linux and aim to cover the following:
Creating a library allows users to group together multiple compiled object code files into one file. This allows a user to share functions with multiple applications. …
Users who are *very* new to Github repository management and/or students at Holberton School.
Linux vagrant-ubuntu-trusty-64 3.13.0–107-generic #154-Ubuntu SMP Tue Dec 20 09:57:27 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
Wondering how to generate the above information? In your terminal, type man lsb_release
and man uname
and find out!
Sloppy Github repositories show a lack of attention to detail and detract from your otherwise awesome code. The best way to manage your files and prevent garbage files like the ones in the above screenshot from showing up is by creating a .gitignore
…
Users new to Linux will want to familiarize themselves with the following: