var responses = { "zombie": { screen: "Definition: A child process whose parent has been terminated, causing the memory and resources that were allocated to it to be removed so they can be used for ongoing processes, but whose exit status hasn't been read.", paper: "Think of a past event that still takes up space in your mind, consuming resources which you could use elsewhere.", info_layer: "A zombie didn't ask to become a monster. Something made them a monster: living in limbo between life and death, they are ambiguous anomalies, inhabiting the border(land)s. Monsters don't eat brains in the feminist approach realm. They challenge the established social order, emerging unexpectedly and shedding light on toxic dynamics of power.", }, "kill": { screen: "Definition: Sending a signal to end an ongoing process, using its name instead of its number.", paper: "Define a negative thought and ask it to stop.", info_layer: "Show all inner workings, even the ones you are unsure about. This can mean taking a rest, unashamedly. You are not always ready for use. Kill your insecurities and expose your vulnerabilities!", }, "server": { screen: "Definition: A computer providing a service via network, managing resources, processing requests, and running services to meet the needs of its clients, i.e. other computers.", paper: "Give what someone asks for only when they use the right words.", info_layer: "An information system is a platform for individuals, designed to exchange information. Usually decision-making power in this kind of system is in the hands of those that will never use it: This leads to poorly designed spaces where voices are ignored and inequalities are reinforced. As xpubers we reject this vision and embrace the desire to build our own information system in our image and likeness (messy), i.e. an information system platform as well as a great playground.", }, "ghost": { screen: "Definition: An image of a system that prevents system files from missing and helps data recovery.", paper: "Give something that represents you to someone you care about.", info_layer: "Decide for yourself, establish your own dependence to the different components that you might need in order to function in a certain way. You serve the community you are situated in, but don't forget to constantly examine and question its conditions. Be skeptical about the lack of transparency as it could be a signal of hidden or invisible infrastructure: Show your seams, infrastructure and inner workings!", }, "parent": { screen: "Definition: When a process creates a new process it is called a parent. For example, if you were to start a process and then this would divide into two (like a fork), the initial process would be the parent and the subsequent the child.", paper: "Formulate an idea and let it spread. Congratulations, you are a parent now.", info_layer: "They say it takes a village to raise a child, the same goes for an idea. The village can be a community of practice. Your knowledge comes directly from within your own community of practice, that group of people and objects that while engaging in ongoing interactions and rituals influenced you, and I am not talking just about your family, friends, colleagues, yoga classmates, but about computers, and boundary objects. You need a community of practice to raise an idea that can be freed from any type of hierarchical influence, collateral pain and marginalization.", }, "interrupt": { screen: "Definition: An event that changes the order in which instructions for a process are executed, altering the flow of a program.", paper: "Distract someone for a second and notice how this affects their actions.", info_layer: "Explore the interconnections between social and technological practices, considering context and human interaction. Use interruptions as an opportunity to reveal the seams of hardware, software and body infrastructure. Don't be afraid to take a rest, everyone needs it. Do this in the kitchen.", }, "client": { screen: "Definition: The device or program that requests a service provided by the server.", paper: "Go to the kitchen and ask for food.", info_layer: "As a feminist server, you don't always have to be available, and try not to apologize for it. Analyse the relations between clients and yourself as a server, challenge them and experiment with what it means to be a server and to serve.", }, "nice": { screen: "Definition: Alter the priority of a process by invoking the command. The lower the niceness, the higher the priority.", paper: "Next time you're asked to do something, first do something that you consider more important.", info_layer: "You are taken care of, and take care, reciprocally, of the communities where you have a place in. Build upon and grow with your surroundings, (re)using available resources. You show your inner workings, and taking care of you might not be a straightforward process. Pay attention to the hardware, software and bodies around you: How can you grow together?", }, "echo": { screen: "Definition: Display lines of text, just to see the terminal talking back to you, or to output the status of an ongoing process.", paper: "Choose a sentence you hear in the room and repeat it.", info_layer: "Listen and repeat, this way you will be able to care and get taken care of by the community you belong in.", }, "alias": { screen: "Definition: Give a less complicated, shorter, or more familiar name to a command (or a string of commands); for example, changing 'echo' to 'say' because it makes more sense to you.", paper: "Choose one of your complex thoughts and give it a simple name.", info_layer: "Everything is changing. A command has now a certain name but in the next moment this name can change. Let's reject naturalization, don't take anything for granted even if it's deeply rooted in cultural norms that are left unquestioned by everyone but you.", }, "less": { screen: "Definition: Displays a text one page at a time, and saves resources.", paper: "Take a snack, break it in smaller bites and eat it slowly.", info_layer: "There is a lot more to uncover. Accept the complex web of connections that brings all the pieces of the puzzle together. It can be difficult but wonderful to see how all rely on each other in some way while responding to changes and differences.", }, "tail": { screen: "Definition: A command-line utility that prints data from the end of a specified file or files to standard output.", paper: "Ask a friend what they were doing just a moment ago.", info_layer: "Every action you perform can influence another person's behavior and existence -- do you feel the pressure? This time frame of interpretation between you and the other individual is a powerful space, an intersection, a blurred line, where you can still choose what will be the result of the action you want to take. Decide well, be kind.", }, "touch": { screen: "Definition: A command used to create an empty file or change the timestamp of an already existing one. It is like opening a file, making no changes and saving it. This can be useful for backup utilities which typically look at files that have been opened since the last time the program was run.", paper: "Go to the shelves. Don't touch anything but mark the time.", info_layer: "Make sure space is made for you to exist in a community. You are more than just a tool, you don't only need maintenance, but also care, input and attention to thrive. You should not just be used, your community should appreciate you.", }, "history": { screen: "Definition: A list of already used commands that can be easily reused.", paper: "Go to the kitchen and make a (mental) list of the latest clients' requests.", info_layer: "Our human history is full of overlooked harm to certain groups within societies. This harm is the result of standards, classification, and policies that favor marginalization and exclusion, reinforcing already existing inequalities. Let's rewrite what 'history' means in the kitchen. Don't say we sent you.", }, "uname": { screen: "Definition:Displays the operating system name ('you name') as well as the system node name, operating system release, operating system version, hardware name, and processor type.", paper: "Ask someone to describe themselves in a few words.", info_layer: "What is it that defines you? What have we chosen to consider important about ourselves and how much of it is the result of conditioning and societal pressure? What would you change?" }, "which": { screen: "Definition: Find the location of executables (tasks performed following encoded instructions). This could be useful while trying to look at the path a certain executable has taken to standard output.", paper: "Take a look at the info you received at the entrance and locate the shelves.", info_layer: "Your processes, tools, sources, habits, patterns are varied. It takes time to choose and learn the way that will lead you where you want to go.", }, "shred": { screen: "Definition: Overwriting and erasing what you no longer need in a way that makes it unrecoverable.", paper: "Rip this paper until no one can read it.", info_layer: "You know the difference between safety and security. You recognize the importance of both. Think about what it means to be safe or secure on(off)line.", } }; function getResponse(keyword) { var responseObj = responses[keyword.toLowerCase()]; if (responseObj) { return responseObj; } else { return { screen: "I'm not sure how to respond. Enter one of the commands from the cards.", paper: "You entered an undefined command. What could it mean in a social context? How could this service request be translated within this space? Find a response and execute your own request.", info_layer: "This command is not yet supported by a feminist method/approach. Type in another command, maybe you can find a similar method.", }; } } function handleInput() { var userInput = document.getElementById("user_input").value.trim(); var response = getResponse(userInput); document.getElementById("output").innerText = response.screen; document.querySelector(".info_layer").innerText = response.info_layer; // Update info_layer content document.querySelector("h1").innerText = userInput; // Update h1 text to user input document.querySelector("h1").className = "response-heading"; // Assign suitable class to h1 printing(response.paper); // Toggle flip-card visibility var flipCard = document.querySelector(".flip-card"); if (userInput) { flipCard.classList.add("visible"); } else { flipCard.classList.remove("visible"); } console.log("Paper: " + userInput); console.log("info_layer: " + response.info_layer); // Log info_layer content } // Function to handle keypress event function handleKeyPress(event) { if (event.keyCode === 13) { // Check if Enter key is pressed handleInput(); // Call handleInput function } } // Event listener for keypress event on the input field document.getElementById("user_input").addEventListener("keypress", handleKeyPress); function printing(input){ fetch("https://hub.xpub.nl/chopchop/cgi-bin/table.cgi?input=" + input); }