Reading Response Week 4

In his book “The Psychopathology of Everyday Things,” Norman discusses the significance of design in assisting people in comprehending and utilizing objects in daily life. He outlines many psychological concepts that assist us in understanding what makes a design excellent or terrible. He makes much of the possibility that design can be flawed. Even if we are first unaware of it, an object’s attributes refer to the things it can perform or the ways in which it can be used. The cues that explain how to use something are known as signifiers. These cues can be challenging at times.

Norman sincerely desires that designers consider the users of their creations. Even the coolest designs, according to him, don’t always work out since designers occasionally forget about the people. The notion that machines don’t comprehend things the same way people do is a good one. A machine needs to be aware that people can make mistakes in order to be helpful. Additionally, it should not be overly complicated to use and understand. I agree with Norman’s suggestion to build with the user in mind. Everyone can use the items in this way without feeling lost. Technology can occasionally be overly complex, and that is not useful. Designers must ensure that their works are both clever and simple to understand.

In a similar way, my classmate talks about the same ideas. They mention how sometimes, designers forget about what people really need. This is an important reminder for all designers. They also talk about how technology can be both helpful and frustrating, depending on how it’s designed. This shows that good design is really crucial for making technology that works well for everyone.

Week 4 – Reading Reflection

In his book, The Design of Everyday Things, Don Norman explores our relationship with everyday objects and how the very fundamental concepts of design influence this relationship. He mentions how people tend to blame themselves when they can’t get the hang of an everyday object, the working of which is supposed to be easy to figure out. For example, when freshmen just arrived on campus, even figuring out how the various doors on campus worked was a challenge. When should we push, and when should we pull? It took some time to finally figure it out, but when we hadn’t, even the act of opening and closing doors made some feel inadequate. Norman says that this tendency to feel inadequate for not operating something simple correctly is misguided. Most of the time, it is poor design at fault, and not the user. This leads him into talking about the central theme of the chapter: design flaws in everyday objects are often responsible for user difficulties.

Norman says that merely making something work is not enough; the designer needs to think of the user’s psychology while curating the design. He discusses the importance of designing objects that are intuitive and easy to use without requiring extensive instructions or training. He suggests that design should follow from mental models that simply present what the object should accomplish. He also recommends objects being conversational – they should be able to correct the user and provide feedback on their actions so the user can better understand how to interact with the object effectively.

Personally, I agree with Norman’s view. There is no need to over-complicate what can be done using simple sequences. Design should always be user-centered, perhaps with the exception of objects that are more artistic than functional.

Assignment #4 – Jilemma: A J-Term Dilemma

Concept:

It’s that time of the year where you decide whether your dream of seeing NYC is urgent enough for you to consider going there in the dead of winter where temperatures hide beneath zero (Celsius for the Americans). I’ve looked at infographics that have proven to me that I would become a popsicle a minute after leaving the gates of JFK if I decide to take a January Term in NYC, considering I’ve never spent a minute in sub-zero temperatures. And the snow! Whole other coin. But then I thought why trust the internet? So I set out to make my own infographic on the climate of NYC to determine the best time to take a J-Term there.

Sketch:

Highlight:

// Displaying bars to show monthly precipitation

  let transparency = 0;

  for (i = 0; i < rowNum; i++) {
    noStroke();
    if (i % 2 == 0) {
      //for every non-odd index i.e. 0, 2, 4, etc.
      transparency = 150; //changing the transparency of alternate bars
    } else {
      transparency = 100;
    }
    fill(0, 50, 220, transparency);
    rect(40 + 40 * i, 500, 40, -mPrecipitation[i] / 3);

This piece of code alternates between the bars to change their opacity. It uses the modulus function to determine whether the bar is even or odd and then changes the value in the variable transparency which updates the opacity after the conditional statement.

Reflection:

I would like to change the line drawing to make the corners smooth, and maybe add a pointer where it shows you instantaneous information on the lines on the graph in a text box. Overall I am quite happy with the result! (Even though it does confirm that I’ll become a human popsicle in NYC…)

Week 4 – Reading Reflection

Norman’s book, “The Psychopathology of Everyday Things,” explores the significance of design in facilitating communication between users and objects or services. Written by a cognitive scientist, the book delves into different psychological theories and concepts that determine good and bad design. Norman focuses on discussing design principles that become apparent when a design malfunctions.

Norman introduces the concepts of affordances and signifiers, which play a crucial role in creating a user-centered design experience. Affordances refer to the perceived or unperceived capabilities of objects we interact with daily, while signifiers aid in facilitating the user experience by providing clear communication of purpose and structure. Despite their importance, signifiers can sometimes be misleading. Mapping and feedback are also vital factors in creating a cohesive user experience. Mapping deals with the connection and correspondence between different elements within a design, while feedback ensures that users receive adequate and vivid information about the results of their actions.

Norman’s analysis emphasizes the key design concepts and elements needed for a productive user experience. It highlights the importance of considering psychology, ergonomics, and design principles in basic object design.

Week 4 – Reading Reflection

The Psychopathology of Everyday Things

The chapter talks about the different factors that are crucial for a design to be practical. The author stresses on the importance of two main factors of discoverability (which enables the user to identify the actions that can be performed) and understanding (which allows the user to figure out the use).

The author throughout the chapter, argues that engineers and designers often overlook the needs of the people which dissolves the purpose of the design no matter how unique it may look.

An interesting viewpoint is put forward, that machines can not have a shared understanding as they lack the experiences possessed by people. Hence, for a mchine to be efficient it would have to take into consideration the possible human errors and strike a balance between being understandable and enjoyable.

I completely agree with the author’s opinion on the need for a shift to more human centered design which would enable an inclusive environment for all users and would eliminate the need for a high level of logic to operate a simple machine.

The paradox of technology, is indeed a reality with technology having the capacity to make things easier or complex depending on its design. Thus a good design ought to take into consideration the multiple disciplines that would make it useful for the user.

Week 4- Reading Reflection

In reflecting on the reading by Don Norman, several key points resonate with my experiences and beliefs about design and human interaction with technology.

Firstly, the notion of increasing complexity leading to frustration and errors in everyday technology is something I can readily relate to. The author’s examples of intricate car dashboards and home automation systems align with my own encounters with technology. It’s evident from user complaints and product reviews that many people share this frustration when faced with overly complex interfaces or systems.

Norman’s emphasis on human-centered design (HCD) makes complete sense to me. It’s evident that products and services designed with a deep understanding of human needs and behaviors tend to be more successful and user-friendly.

Regarding bias, while Norman’s perspective leans toward user-centered design principles, I view this as a positive bias. Prioritizing user needs in design is fundamental to creating products and services that genuinely serve their intended audience. It aligns with my belief that technology should adapt to human needs, not the other way around.

In terms of changing beliefs, this reading reinforces my conviction that technology should be user-friendly. It reminds me of the importance of designers striking a balance between innovation and usability, especially in today’s fast-paced tech environment. The reading raises questions about how designers can keep pace with emerging technologies while ensuring that these technologies remain accessible and intuitive for users.

Assignment 4: Socializing

I was talking to a friend the other day who quoted Sartre: “Hell is other people.” Kanye summed it up when he said, “If you hang around people who act like you aren’t who you are, then you forget who you are.” We can’t control how we’re perceived, or force people to see us as we see ourselves. Consequently, a bit of ourselves is compromised in our interactions. You are who you’re perceived as as well as who you are. Isn’t that awful. So I wrote a fake-deep meme-inspired code about social awkwardness. To be honest, I’m not sure if the meaning translates.

I’ve attached a bit of my code below:

if (mouseIsPressed) {
   noFill();
   stroke(2277,28,121);
   strokeWeight(1);
   translate(390,125);
   
   for(var i = -150; i < 200; i ++) {
     push();
     
     rotate(sin(frameCount + i)*100);
     rect(0,0,600-i*3,600-i*3,200-i);
     pop();
   }
   
   stroke(0);
   strokeWeight(12);
   fill(255);
   text('GET ME OUT',-300,330);

The objective for this assignment was to write text, so I loaded the font I wanted (Impact) at the beginning, established the size and font in the set up, and then finally got it to show in the draw function after pressing my mouse.

I learned how to load the stock image watching this. It was very easy to follow and I know I’ll be using it a lot in the future. I learned how to make the lines here. However, you’ll notice after clicking on the video that the lines in my project look quite different from what the video shows. This is because I tried to speed up the movement of the object and my computer crashed. After getting P5JS up and running, I rewrote the code and these spiky bezier-like lines are what came out and, frankly, I have no idea why. I’m not complaining because they’re the coolest part of my project. But they’re the coolest part of my project-by far-and I have no idea how it’s happening. Yeah.

This is one of those projects where the more you look at it, the worse it gets. I really felt that the lines needed to be hot pink. It reminds me of a meme I’ve attached below:

I’m going to set aside time this long weekend to make some things that I’m genuinely proud of/think are cool. I should be doing this everyday given my computational limitations. It’s a daily pressure on my mind. I want to create a project using data visualization as well, since I didn’t explore it for this assignment. It’s more difficult than simply loading a font. I’m going to ask Professor Riad how the lines function and update the post with my personal explanation later, to prove that I know. You know, when you’re starting from the beginning, it’s so easy to get overwhelmed because you know how much there is to do. You question your motivations. Do you really love what you say you love? Hemming and hawing. Twiddling thumbs.

ASSIGNMENT 4: The Weeknd does it again!

Concept:

I wanted to challenge myself a bit and do a data visualization sketch. I had to do a lot of research on which type of data I wanted to use since most of the data I found was quite boring. That is why I chose a topic that greatly interested me. I decided to create a data visualization of the most streamed Spotify songs in 2023.  I, like everyone else, enjoy listening to music on Spotify, so this type of data was really exciting to work with!

 

 

fill(50);
      textSize(9);
      text("Lucid Dreams", 5, 575);
      text("Dont Start Now", 50, 550);
      text("Watermelon Sugar", 85, 525);
      text("Lovely", 155, 500);
      text("Say You Wont Let Go", 160, 475);
      text("Se��o", 225, 450);
      text("As It Was", 275, 430);
      text("Heat Waves", 310, 450);
      text("Perfect", 363, 420);
      text("Starboy", 405, 410);
      text("Closer", 450, 400);
      text("Believer", 485, 385);
      text("STAY", 535, 418);
      text("One Dance", 560, 395);
      text("Sunflower", 610, 375);
      text("Dance Monkey", 640, 355);
      text("Shape of you", 685, 180);
      text("Blinding Lights", 725, 130);

This portion of my code was used for placing the text over the bars. I thought that I could maybe create a loop so I wouldn’t have to write the same lines over and over again, but there was so much variation in the placements of the text that I ended up doing it the old fashion way!

I was really amazed that I was able to find the Spotify logo and text for FREE?! It looks so good!

Of course for the design, I included the infamous #1DB954 color and incorporated some blacks and whites to fit the companies branding.

If I had more time, I definitely would make my design a bit more elaborate and maybe even rebrand it (the colors,font,etc..). For this assignment though, I wanted to keep it a bit more straight to the point and simple.

Blinding lights continues to lead the way with (as of today) 3.76 billion streams!! GO ABEL (:::::

Week 4 – Assignment – Airports around the world

This week, we explored the concepts of generative text and data visualization. I particularly enjoyed working with data and finding ways to represent the data visually. For the assignment, I decided to map the airports of the world using points.

I began by importing a data set containing the airport code, country, latitudes, and longitudes. Three arrays have been created to extract the Longitude, Latitude, and Code columns. Using a for loop to iterate through the range of possible values, the longitude and latitude values have been used as the x and y coordinates of the points.

The points have been given a randomized color through stroke(). Further, to add an element of interactivity, the screen displays the airport codes when the mouse is pressed.

for (let i=0; i<=rowNum; i++){
    stroke(random(255),random(255),random(255))
    strokeWeight(6)
    x=map(latitude[i],90,-70,0,width) //Mapping the latitude to the width of the canvas
    y=map(longitude[i],-130,170,0,height) //Mapping the longitude to the height of the canvas
    point(y,x)
    
    
    if (mouseIsPressed) { //Executes when the mouse is pressed
      strokeWeight(2)
      stroke(255)
      text(code[i],y,x) //Displays the corresponding airport code for each i value
      textSize(10)
      
    }
  }

This was an interesting assignment that allowed us to map existing data and produce beautiful artwork. I would like to extend my learning by exploring the different ways in which data can be represented to make it better understood by the viewer.

Assignment 4- Rain Rain Go Away

Concept: 

I wanted to come up with a concept that accomplishes both the display of text and the loading of data. During the weekend, I saw my cousin’s daughter listening to the nursery rhyme “Rain Rain Go Away.” The objective of the code is to generate a visual representation featuring clouds and animated falling text, drawing inspiration from the lyrics of the nursery rhyme “Rain Rain Go Away.

 

Highlight of Code:

function createClouds() {
  // Create cloud objects based on CSV data
  for (let i = 0; i < cloudData.getRowCount(); i++) {
    let x = float(cloudData.getString(i, 'x')); // Get x-coordinate from CSV
    let y = float(cloudData.getString(i, 'y')); // Get y-coordinate from CSV

    let textToShow = "";
    // Assign different text to each cloud based on its position
    if (i === 0) {
      textToShow = "rain";
    } else if (i === 1) {
      textToShow = "rain";
    } else if (i === 2) {
      textToShow = "go";
    } else if (i === 3) {
      textToShow = "awayyy";
    }

    // Create a new cloud object and add it to the clouds array
    clouds.push(new Cloud(x, y, textToShow));
  }
}

 

for (let i = 0; i < cloudData.getRowCount(); i++) {: This line initiates a for loop. It will iterate through each row of data in a CSV file, and the loop variable i is used to keep track of the current row number.

let x = float(cloudData.getString(i, ‘x’));: This line extracts the x-coordinate for a cloud from the CSV data. It uses the cloudData.getString(i, ‘x’) function to get the value of the ‘x’ column in the current row and converts it to a floating-point number using float().

let y = float(cloudData.getString(i, ‘y’));: Similar to the previous line, this extracts the y-coordinate for a cloud from the CSV data. It gets the value of the ‘y’ column in the current row and converts it to a floating-point number.

let textToShow = “”;: This line initializes a variable textToShow as an empty string. This variable will be used to determine what text should be displayed by each cloud.

The following if-else statements are used to assign different values to textToShow based on the value of i, which corresponds to the current row in the CSV data. Depending on the value of i, different text values are assigned:

If i is 0 or 1, textToShow is assigned the value “rain.”
If i is 2, textToShow is assigned the value “go.”
If i is 3, textToShow is assigned the value “awayyy.”

clouds.push(new Cloud(x, y, textToShow));: This line creates a new Cloud object with the extracted x and y coordinates and the assigned text value (textToShow). The new cloud object is then added to an array called clouds. This array will store all the cloud objects that will be displayed and animated later in the sketch.

 

Reflection:

Reflecting on the code, I can identify both positive aspects and areas where improvement is needed:

I’m pleased with how I’ve integrated external data from a CSV file. This allows for dynamic positioning of clouds based on the data. I’ve used conditional statements (such as if-else) effectively to assign different text values to each cloud based on its position. I’m following an object-oriented programming (OOP) approach by creating cloud objects.

While the code currently assigns text values based on specific conditions, I recognize that it could be made more scalable. A more flexible approach would enable it to handle a variable number of clouds and text assignments based on the CSV data itself, making it adaptable to different datasets.