Category Archives: CSE tutorials

We Must Do Something

Due to the events happening in America in recent days, I felt it’s important, first as a person who had to learn that I was black 4 years ago when I moved to America for college, second a person who walked the halls of Davis as a CS student and had the opportunity to be the author of “Engineer’s Lounge blog” – an educational resource for CSE students, that I write to you about the need to take action and be a part of the solution to the current problems we are witnessing.

State-sanctioned violence through police brutality and institutional racism against black Americans is not new. What troubles me more is even as I write this, I’m aware of my non-black acquaintances that rebuttal my assertion by saying, “But slavery ended over 100 years ago. The constitution gives rights to every American, why do black people complain they have no rights? ” These responses arouse a mild fit of irritation because the reality of black people is often trivialized and their experiences are dismissed by non-black people because from where they stand, they aren’t spectators to the injustice black Americans endure. This is wrong and it must stop. To refuse to educate yourself about the reality of black Americans is to remain complacent with a system of oppression. 

What’s happening in Minneapolis, Louisiana, and across different cities in America is an explosion. Others say black people are perpetrators because they use violence to demonstrate and destroy their own communities. To exist in a country and witness the continuous mistreatment of black Americans by the police for decades and then not expect black people to explode into violence is lunacy. It is dehumanizing to pass judgment on a person for their reaction to a system that murders their brother, father, friend in cold blood as the world bore witness in the case of George Floyd. No one wakes up in the morning to be violent, loot a city, and then burn it down. To think anyone in their right mind would is to refuse to see black Americans as you see yourself. Would you wake up and loot a town without any provocation? Americans, black Americans are mourning.

I agree it’s important for Americans to preserve their infrastructure. But it’s just as important to understand, why are Americans demonstrating today? Why did Malcolm X preach on April 27th, 1962 at Muhammad’s mosque no.27? Why did Dr. Martin Luther King march from Selma to Montgomery? Why did the black panther movement come into existence? Why did Sandra Bland, Eric Garner, Tamir Rice, George Floyd die the way they did? Why did we have the 2015 Baltimore riots? Why have black people been begging for equal human rights for more than 100 years in this country? Is that normal? That black fathers and mothers die while asking to be treated as human beings only for their children to be lynched and slain in broad daylight in the streets. 

So I’m here today as someone who was once your classmate, your student, your groupmate, your friend. I’m here to say that the plight of black people in America is dire and the expense of our silence is far too high a price to pay. We can’t afford that. Today, black Americans need us. Do more than say, “I understand your pain”. Show that you are in the fight with them. Give to causes fighting for justice for black people. Give your money, give your time, give your knowledge. You are computer scientists. You are engineers. You are human beings. You can do something about this – so you must. 

As computer scientists and engineers, the impact of your work has the power to change the world today. The algorithms you write have the ability to create technology that will define the standard of life for generations to come. With that power comes great responsibility. It is impossible to write unbiased algorithms if you don’t educate yourself about the unconscious biases you may carry as a result of being a part of a system that marginalizes black people in America. This is why you must educate yourself about the history of this country. You must be conscious of your own participation in the system. And you must answer this question for yourself, are your actions actively contributing towards the progress of this nation to promote equal rights for all? 

I’ll leave you with this quote:

“The pursuit of full humanity, however, cannot be carried out in isolation or individualism, but only in fellowship and solidarity;”

Paulo Freire, Pedagogy of the Oppressed

Linux commands

Linux distributions are operating systems much like Windows or MacOS.  Many of the features found in Windows or MacOS are also present in Linux operating systems. However, a powerful tool often not notably used in Windows or MacOS is the UNIX command line terminal.  In many ways, it can seem like a primitive tool, but its efficiency and flexibility make it a standard in software development. This blog post is going to go over the basics of using the UNIX command line terminal. As in anything, the best way to understand how to use it is to try it yourself. Note that everything these commands do can be done in the file explorer or using certain programs. There are two major reasons for learning them, First there are some computers(like the timberlake server) that only have the terminal, no UI. The second reason is that it’s quicker, maybe not now but keep in mind that the ui tends to simplify and pad things so users don’t need to deal with extra clutter or mess important files, the terminal does not do that. This is because most people who use computers are casual users, this is not at all a bad thing but it’s what most OS cater to.

This following segment is based on Ubuntu, but most Linux distributions will use the same commands.

Step 1, Opening a terminal on Ubuntu:

There are multiple ways of opening the terminal.

Option 1: Right click on the screen, a drop-down menu will appear, click open terminal.

Option 2: Click on the terminal icon in the toolbar

It looks like this:

Option 3: Click on activities in the top left corner(or the  on the bottom left corner). Then search “terminal” and click on the terminal icon.

NOTE: Not all of these methods work for all distributions, but Linux is very customizable they might not be setup which is why I put multiple options. But, there is a terminal on all the distributions.

The terminal should look something like this.

Let’s break down what this means:

This is the username of the user currently issuing commands.

This is the name of the computer.

This shows which directory you’re in.

In this instance, the “~” symbol indicates you’re in the root directory.

Step 2, Creating a text file.

To create a file, use the command touch <name of file> like so:

This will create an empty .txt file

Next, to view what’s inside a directory, use the command ls:

ls will display all folders and files in your current directory

Step 3, Editing Files.

    To begin, i’m going to introduce a simple text editor called nano

    It is akin to Notepad on Windows or TextEdit on MacOS

The command works simply by writing nano <name of file> like so:

If nano is not found use the following command:

    ~$ sudo apt-install nano

Using this command will lead you to a terminal based text editor:

From here, you can type anything as you normally would

To save, press Ctrl + O, and enter

To exit, press Ctrl + X, unless saved, it’ll ask if you want to save the file, select yes by pressing Y and press enter

Step 4, Entering Timberlake server:

ssh stands for Secure SHell it allows you to connect to another computer remotely. You will use it to access the Timberlake server. This is a server that is used and maintained by the CSE department. To enter it, use the following command with your ubit username: ssh <username>@timberlake.cse.buffalo.edu

Note: you should be typing in your username not <username>

If it’s your first time connecting to Timberlake, this message will appear, type in yes and click enter.

Next type in your ubit password, the characters will not appear on screen for security reasons.

If everything works out then this will appear.

Step 5, Creating and Navigating Directories

Use the mkdir to create a directory called CSEtest:

To see the directory, use ls:

To go into a directory, simply use cd <directory>

To go back one directory, use cd ../ or cd .., to go back to the home directory(also called the root directory) use cd ~

To leave the Timberlake server use exit.

Step 6, Transferring files with SCP:

SCP or Secure Copy Protocol copies a file from one computer to another

The scp command is composed of 3 main parts,

  1. scp – the actual command
  2. The file to be sent – In this case its test.txt
  3. The location you want the file to be sent – following by a colon to the destination path.

If this is your first time using the scp command you may get this prompt. Type in yes.

With that your done! Hope this helps!