Categories
DH Undergraduate Fellows

Intro to Command Line: Mac Edition

Hacking on a Mac

Command Line According to Abdur

Hello and welcome to your introduction to command line on a Mac! If you have no idea what command line is, you’ve come to the right place. To clarify, we’re not actually going to be “hacking” into anything. But when you’re being especially productive in the terminal and flying along, it’s like you’ve unlocked the inner workings of your computer, and it kinda feels like hacking. If you don’t know what a terminal is or what any of this even means, don’t worry! All will be revealed soon.

To start, command line is an interface that allows the user to control features of a computer with text commands. Most people have only used the Graphical User Interface (GUI) to make their computer do what they want. The command line allows you to bypass the GUI and do everything directly and, in most cases, instantly. For example, say you want to move a file from one folder to another. The GUI involves dragging and dropping the file using the trackpad or mouse, or using the keyboard to copy and paste the file. Here’s a demo of the difference in the processes:

With the GUI, I’ll drag and drop the “Earth.txt” file into the Milky Way folder on my desktop.

Desktop

Done. That was pretty simple.

Milky Way

With the Terminal, I can do the same thing with another file called “Mars.txt”. First, I started in my home folder on my computer. When working with command line, folders are directories, which is important to remember because the computer will only recognize certain commands. For example, to move into the Desktop directory from my home directory, I have to use

$ cd Desktop

This command stands for “change directory”. We can’t do “cf” for change folder. This is because Macs use the UNIX operating system and language to run. It’s probably arbitrary, but since it’s a specific language for communicating with a computer, it’s the standard way to do this specific task. It’s just how it works. From there, I made sure I had Mars.txt in my Desktop directory with

$ ls

which lists the directory’s contents. Once I know it’s there, I use

$ mv Mars.txt ~/Desktop/”Milky Way”

Terminal

This command has three different parts. The mv is the actual command; it moves a file or directory. The two following parts are the arguments for the command. The first argument is the file and the second is the file’s desired location. Again, this is the standard on a Mac, and you should know the rules to move quickly through your directories.

So, that’s how you can accomplish one simple task with command line.

Milky Way

The app I’m using is Terminal, the default command line interface tool that comes with Macs. There are other command line apps out there, and they all come with different features. Whichever one you use depends mostly on personal preference, so I’m fine with Terminal for now. There’s a certain element of novelty when you’re using the Terminal to control your computer if you’ve only ever used the GUI to make your way through the folders and applications. On a Mac, I expected this process to be a bit difficult, but so far it’s been simple to install the various tools we’ve been using during the semester. Almost all the problems I had were because I made a mistake during the installation process.

However, there are a few reasons that computers these days are designed for GUI use. The main reason is user-friendliness. Command line can be clunky, especially if you’re new to it and are learning on your own. Commands aren’t always obvious and it takes some getting used. It’s a powerful tool once you know what you’re doing but first you have to learn. I was fortunate to have learned the basics of UNIX in my Intro to Programming class during my junior year. Coming armed with that knowledge of how to navigate directories and files meant I just had to relearn all the commands instead of memorizing them from scratch. Brandon made a very useful command line quiz that made the process even simpler. Of course, you don’t need to worry if some keywords fall through the cracks because it’s easy to look anything up, but command line is all about speed and knowing everything in your head makes it that much easier. The commands are intuitive once you get to know a few of them, and most of the time if you forget one, you can guess what it is.

Speaking of making it easier, one of the the most interesting parts of command line (to me) is Vim. Vim is an incredibly basic text editor that’s included in Terminal. For many people, it’s faster to open a .txt file or a .md file in Sublime or Atom instead of using Vim. I usually work with Terminal and a Safari window in full screen together so opening another application’s window means I can’t see my resources while I work on a file. For me it’s faster to open the file in Vim and edit it right there in Terminal rather than switch to a different text editing app. It took a while to learn because it is not intuitive at all, but once you get the hang of it, it’s a useful tool for basic files of code or text. You’ll probably hate it, and that’s fine! I know I’m in the minority when I say I like it, so I get it. All this is deeply customizable; you can change everything about your Terminal, or iTerm, or whichever app you use for command line tools. The beauty of command line is that because you’re not using the GUI, you aren’t restricted in what you can do on your computer, so you can also change everything about your computer if you want. To give you some insight, here’s a screenshot of my customized Terminal with Vim open on this blog post.

vim

I told you that command line was fun, but I’m sure all of this may not sound all that fun to you. That’s ok! The fun part comes now: Github. Aidan wrote a post about Github from his perspective which you should read to get an idea of how it works on a PC. There are some differences in getting it to work, but the process is the same. Github consists of repositories for mainly code but all sorts of data can be hosted on it. For example, the original code used to launch Apollo 11 is hosted in a repository on Github for anyone to look at. Github uses Git, a sort of programming language but simpler, to communicate with computers. After developing a long document of code or a blog post, you’ll have to push it to our Github repository. I had to look up how to do it the first few times, but the process is extremely satisfying. It’s fun to work on a project on your computer and instantly see it on the internet as soon as you’re done. I’ll be writing another post about Github soon, so don’t worry about the details just yet.

Hopefully this provided some insight on how command line and Terminal work on Macs. The resources linked in the post should help on your journey through learning all about command line tools, and if not, feel free to email/Slack me if you’d like. Happy hacking!

Categories
Conference DH Undergraduate Fellows

#BUDSC16

The Icebreakers - the 2016 version of the annual band photo.
The Icebreakers – the 2016 version of the annual Bucknell band photo.

It’s been just over a week since I went to my first academic conference (!) and I’m ready to share my experience. I went to BUDSC 16 over the weekend of October 28 – 30th with Mackenzie and Brandon.

The Bucknell University Digital Scholarship Conference, is held at Bucknell University (duh) in Lewisburg, Pennsylvania every year. This year, Mackenzie and Brandon graciously inserted me into their presentation about writing in the context of digital scholarship and digital humanities. More on that later. Overall, the conference was an extremely interesting and enlightening experience. It was also a lot of fun and I’m thankful that my professors/supervisors are great people to go road tripping with. Besides the endless icebreakers and a wrong turn in Pennsylvania, there was a lot to take in during the days of the conference. Here’s a brief rundown of what I participated in during the conference:

  • Arrived on Friday night, too late for conference activities, so we got dinner and prepared for Saturday.
  • Saturday morning: I attended a panel about “Reframing Art History Through Digital Approaches.” To me, it was pretty classic DH work. The panel included presentations by Bucknell University Art History students who explored collections in the Packwood House museum in Lewisburg and used Omeka to archive the most interesting collections, and a presentation about digital tools and using them for pedagogy, specifically for art history and teaching resources for art history.
  • After a break, Mackenzie and I went to panel called “Re-Envisioning and Reclaiming History”. This one started off with a great exhibition of a project from Middlebury College. You can watch it for yourself at collinwoodfire.org. It was an incredible multimedia website with an animated movie, newspaper articles, photographs, and other archival data to present the history of the Collinwood School fire in 1908. I highly recommend you check it out, especially the video. The latter half of the presentation was about using digital scholarship in the humanities to engage various audiences outside of academic environments.
  • The conference picked up for me at lunch. Safiya U. Noble, a professor at UCLA, gave the keynote address about “Power, Privilege, and the Imperative to Act in the Digital Age.” Her talk had to do with how digital applications and technology can perpetuate negative stereotypes and serve to reinforce oppressive ideology and history. Professor Noble brought up Google’s search results, the human and environmental impacts of the latest iPhone, and the sustainability of a programmer’s code. Everything was thought-provoking and made a lot of sense to me. It wasn’t necessarily enjoyable to listen to, but it was definitely something that many people needed to hear.
  • Next, Brandon and I went to a workshop that introduced visualizing data on social media such as Instagram and Twitter using websites such as Netlytics and Socioviz. Good to know if I intend to do any data mining for a future project.
  • Our presentation! The other two presentations before ours were also about the role of “Digital Scholarship in Higher Education.” Brandon and Mackenzie discussed and presented the uses of writing as a digital humanities method. Writing for the digital humanities, such as for blogs or to communicate in public (much like how I’m doing now) is very different from writing for an academic setting. I spoke for a bit about my perspective on how DH writing and blogging are different from writing that I’ve done for essays and/or literary analyses in my classes. I also discussed my honors thesis and how I’ll be incorporating DH writing into the notion of a traditional thesis.
  • Cocktail hour – students and professors presented about their various projects with posters and Powerpoints over hors d’oeuvres. I had the pleasure of meeting students from Lafayette College and their professor, and their presentations. And that was it for Saturday.
  • Sunday morning was almost as eye-opening as Professor Noble’s keynote. The first presentation was a little different from the two after. Dr. Heil presented about the pedagogy of large-scale digital scholarship. The next two were more about using digital scholarship to break down borders (the theme of the conference) in ways that may not be obvious. Sandra Nelson discussed the inherent phallogocentricity of programming and coding languages, while Emily McGinn talked about the Western and English-dominated aspects of digital scholarship.

Overall, BUDSC 16 was a worthwhile trip and a great opportunity for me. I thought my part of the presentation would be a bigger part of it for me, but the rest of what I learned and observed was much more valuable than a few minutes of speaking time. There are a couple more conferences this year that I might have the pleasure of attending, and presenting at, and I’m looking forward to them.

Categories
DH Undergraduate Fellows

Hello World! I’m Abdur ✌🏾

Hey everyone! My name is Abdur Khan and I’m a senior from Perrysburg, Ohio. I’m a French major, originally pre-med but I think it’s time to declare myself on the DH path instead.

When I came to W&L, I accidentally got into the habit of taking classes that connect really well with each other. One semester, my intro biology class was about drugs and how they act, and I also took a psychology class about psychoactive drugs. Another semester, genetics and biochemistry overlapped just as well. Last winter term, I took intro to programming and learned the basics of programming with Python, while for my French class, I learned the basics of HTML, CSS, and XML. This latest overlap is what really brought me to the digital humanities. I was aware of the field and I vaguely knew what it involved, and even had friends taking the intro course, but I never really realized what “digital humanities” really meant until I started exploring it for myself.

Lately, it seems like everything I do is centered around technology and computers. I worked at the ITS HelpDesk over the summer and worked with Professor McCormick on his Huon d’Auvergne project. I’ve never really thought about this but it was interesting working on two different aspects of technology. There was the hardware and the professional side at work, and during and after, I would work on the software and the academic side of things. There’s not as much overlap as you’d expect between the two sides, but having those experiences has been extremely valuable and I think they’re steadily pushing me towards a career in technology. My command of Python and knowledge of command line (hacking stuff) has already come in handy. I wrote a script in Python, with a lot of help from Brandon, that made my work with Prof. McCormick easier, and later wrote another code that simplified another process for us. Writing my own code that wasn’t for an assignment for a comp-sci lab was honestly exhilarating, as nerdy as that sounds. I can’t remember applying knowledge from a class and using it the same way for a practical solution, so doing that for the first time and now doing it on a regular basis makes things feel real in a way that being at college hasn’t before.

Getting so heavily involved in DH so fast makes me think that I should keep exploring the opportunities in this field. That’s why I applied for a DH fellowship and how I wound up writing an honors thesis that’s about half DH-based. I’m really excited to keep learning about the digital humanities and their applications and I’d like to see where they take me after graduation.