Thursday, June 29, 2023

Let's Review Discord

I will be introducing and reviewing the smartphone app for Discord. Though this application is also available on a computer, my focus will be the smartphone version. The two versions have very similar functions but different layouts. Discord is a communication app that combines several functions in one place. Users can send text messages to groups or individuals, chat with video and audio in a virtual meeting, or stream video of their device screen.

The setup for the typical end user is relatively simple. After downloading the app and creating an account, you can communicate with other Discord users directly or with members of a community called servers. The end user joins a server by accessing a URL provided by an existing server member, sometimes posted online publicly, and that lets them link their account to the server.

Servers are either created by individuals or companies. Often the owner/creator of the server and select users they grant the roles to will act as administrators to moderate the servers. The administrators can set different rules within each server depending on their needs. Servers are then divided into channels. 

Figure 1: Server and channel list

The server selection screen also shows the servers' channels. Administrators are able to show or hide channels from different users. Selecting a voice channel is similar to joining a virtual meeting or voice chat. You can see a list of users in the voice chat and talk with each other. Once you select a text channel, see the history of text or image messages and the username for who sent them to that channel.

Figure 2: Chat channel example

The message screen has the added feature letting you know that a user is typing in the channel, which can be useful to confirm an active conversation is happening. When composing a message, attaching a file from your phone is simple. Pressing the [+] button next to the message input box replaces the keyboard with a prompt to select a picture from your phone and additional options to find other files to share.

Figure 3: Composing a new message after pressing the plus button.

A feature I would add to Discord is the native ability to schedule messages. This is a feature I currently enjoy on my Samsung smartphone's native text messaging app. Some people would use this to schedule reminders or announcements. Personally, I would use the option to schedule the sending of a message so that the message arrives at a more appropriate time. Either my question does not fit into the current conversation, or a different time of day would be better, like 10 am vs 4 am.

In my experience, the Discord service has been very reliable, only experiencing two or three outages in the several years my friend groups have used it. Each server's content depends highly on the users and server owners. If you are looking for a more intimate or controlled social media experience that is still flexible, I recommend Discord servers.

Monday, June 26, 2023

MIT's Scratch as an Introduction to Programing

I used Scratch to turn one of my favorite memes into an interactive story. https://scratch.mit.edu/projects/866414151/.  Using Scratch to create an interactive program was enjoyable. Scratch presents the user with an interface of code blocks of different shapes and colors. The code blocks being human-readable makes Scratch a high-level language (Vahid & Lysecky, 2019). Scratch is similar to the programming exercises in Chapter 2 in that the user interacts with the language via a graphical interface with little typing.

One challenge I had was understanding how to use the “if-then” control box. I overcame this challenge by following the visual clues. The space where the “if condition” would go was a diamond shape. By looking for diamond-shaped elements, I was able to find the >, <, and = operation blocks. If that had not worked, my next plan was to watch more Scratch tutorials. After finding the diamond blocks, I had to experiment with variables to get the desired behavior. I had expected to be able to set variables to the Boolean values of true and false, but what I ended up doing instead was setting a variable to either 1 or 0 and letting that variable being “= 1” stand in for true.

Scratch is a good demonstration of object-oriented programing. In programming, objects are often represented as classes, and each class has specific methods or functions you can use to take an action on that class (Ravi, n.d.). This is simulated in Scratch in the way that the code block options for the characters populate or do not populate depending on what you have selected. By only allowing the user to modify the behaviors of an object while the object is selected, Scratch is teaching object-oriented programing in an intuitive way.

I found the Python activity to be the easiest of the textbook exercises though I may be biased because I have prior experience with Python. Part of what makes Python easier is that it is a high-level program designed with a focus on legibility (Web3Schools, n.d.). The exercises that imitated low-level and machine language were challenging. In the Python exercise, it was easy to remember that the variable was called “year” in the others, I had to reference the list repeatedly to remember if I needed to use 101 or 110 as memory locations. Ease of use would make high-level languages more popular and more widely used. Not every device is unable to run the compiler needed to process high-level language into machine language (Vahid & Lysecky, 2019). Low-level languages would still be useful for narrow applications that are specific to these kinds of machines.