Replace Ideas

Replace every image on News websites with shutterstock generic images.

Replace all images on amazon with the same image for the category you look for (same camera picture for every camera)

Replace all eBay pictures with the same image for the category you look for

Replace all News images with shutter stock images of the word “Happy”

Replace all pictures on CNN with the Republican elephant

Replace all pictures on Fox News with the democratic donkey

Replace all social media extension pictures with warning symbols

Replace all reddit pictures with the Snoo

Observe

Twitter on my phone doesn’t allow me to browse further into someone’s posts until I sign up for an account. I always thought that this was counter intuitive for platforms to use social media as a way of announcing things to the public. It tries to force me to join them in probably the most in your face way that always made me steer clear of using twitter, just because the sentiment was so stupid.

Project 5 Ideas

  1. Replace YouTube thumbnails
  2. Replace popular pictures on Deviantart
  3. Replace news stories with something else (ex bee movie script?)
  4. Replace headlines with other headlines
  5. Replace icons in YouTube comments
  6. Replace movies on IMDB, rotten tomatoes, etc… (ratings, comments, movie names,…?)
  7. Replace pictures on Amazon / other online store
  8. Replace numbers with words (like for number of subscribers, number of notes,…)

Project 3


j('.yt-simple-endpoint').prepend("xxx");

j('.yt-simple-endpoint').append("rox69xxx");


j('span b').append(" BCE");


j('h1').append(", Bitch.");

j('h2').append(", Bitch.");


j('a').prepend("Like, ");

Project 4: BEGONE!

// ** CHANGE @NAME, @NAMESPACE, and @DESCRIPTION
//
// ** If using for Tampermonkey, you can just paste this into
// ** the Tampermonkey editor
//
// ** If using for Chrome, CHANGE FIRST PART OF FILENAME
// ** (before the .user.js) and edit in a code editor like Atom
//
// ** EVERYTHING BETWEEN ==UserScript== lines is read by the browser
//    as configuration information for the userscript
//
// ==UserScript==
// @name NO MORE CLICKBAIT
// @version 1.0
// @namespace chaseisgod.com
// @description demonstrates a userscript method for altering websites
// @require http://arts445.courses.bengrosser.com/files/ready-vanilla.js
// @require http://code.jquery.com/jquery-3.3.1.min.js
// @run-at document-start
//
// **WRITE MATCH STATEMENTS TO MATCH WEBSITE URLS (FOLLOW MY EXAMPLE)
//
// @match *://*.youtubecom/*
// @include *://*.youtube.com/*
//
// ==/UserScript==// -----------------------------------------
//
//
//
//
// Basic Userscript Template
//
// This code demonstrates a general method for creating browser Usercripts
// that utilize jQuery to modify pages, whether static or dynamic. This
// can be used in Tampermonkey (which is how we'll start), or later,
// in Chrome extensions.
//
// written by grosser for ARTS 445: Net Art, sp '18



// this line (and the last one in the file) open and close
// an 'immediate invoked function', which keeps our
// code separate from other code running on the website
// just leave it here
(function() {

// jQuery on 'j' to avoid conflicts with page jQuery
var j;

// PUT YOUR CODE within main() below
function main() {

    // setup jQuery on j to avoid any possible conflicts
    j = jQuery.noConflict();

    // outlines all existing <a> tags in red
    // running .each() on a jQuery search executes the included function
    // individually for each element it finds that matches the search
    // (e.g. in this case, it runs the function redBorder() for each 'a'
    // tag). the parameter name 'e' refers to the found element
    //
    // j('a').each(function() { redBorder(this); });

    // this line sets up a continuous search for new elements on the
    // page that might get inserted later. so, in this example, any
    // HTML with an 'a' tag that gets inserted *after* the page loads
    // will call redBorder() for each one in turn. this way you can
    // catch and change anything that happens after the page load
    // (e.g. a new news feed story on the Facebook newsfeed0
    ready('.style-scope .yt-img-shadow', function(e) {hideElement (e); });
    ready('span', function(e) {hideElement (e); });
    ready('yt-formatted-string', function(e) {hideElement (e); });
    // this function could do anything with the results it receives
    // 'jnode' refers to the jquery object the initial jQuery search
    // found, so we refer to it and then continue on with familiar
    // jQuery statements
    function hideElement(e) {
        j(e).hide();
    }
}


// run the main function
main();

// utility functions we'll use during the semester
// are below. for now it's just another version of
// contains we can use to test string content

// cleaner syntax than match()
    String.prototype.contains = function(it) { return this.indexOf(it) != -1; };


// close the opening invoked function
})();

In this project I got rid of all thumbnails for videos to get rid of clickbait videos that just want to trick you into watching something that you didn’t really want to watch. Also I got rid of the “trending” video texts and other things that try to push you into watching certain types of videos. This usually leads to a monopolization of views and likes because of people not knowing what they’re getting into because youtube and channels work together to put them in a situation they did not ask for. No More Clickbait makes it so you don’t have to worry about being visually tricked.

Project 4: ERASE

I decided to do my ERASE project on a shopping platform, because when it comes to online shopping I have a problem. It’s so easy to scroll through a website and just click “add to cart” when you see an item, discount, or reasonable price. With that being said, I created The Anti-Shopper user script in order to hide the most important components needed to online shop. I thought it was appropriate to use an example from the Illini apparel website, and I made the “add to cart” button, price, details, and description disappear. How can you online shop when you don’t know anything about what you’re trying to buy!


// ==UserScript==
// @name         The Anti-Shopper
// @namespace    http://tampermonkey.net/
// @version 1.0
// @description Removing the price, the add to cart button, description, and details
// @require http://arts445.courses.bengrosser.com/files/ready-vanilla.js
// @require http://code.jquery.com/jquery-3.3.1.min.js
// @run-at document-start
// @author       Jessica Glasson
// @match        http://store.fightingillini.com/Illinois_Fighting_Illini_Ladies/Womens_Fanatics_Branded_Navy_Illinois_Fighting_Illini_Primary_Distressed_Arch_Over_Logo_Long_Sleeve_Hit_T-Shirt*
// @grant        none
// @run-at document-start
// ==/UserScript==

(function() {

var j;

function main() {

    j = jQuery.noConflict();

    j('#addToCart').each(function() { hideElement(this); });
    j('.price-value').each(function() { hideElement(this); });
    j('#product-details-disclosable').each(function() { hideElement(this); });
    j('#product-description-disclosable').each(function() { hideElement(this); });

    ready('#addToCart', function(e) { hideElement(e); });
    ready('.price-value', function(e) { hideElement(e); });
    ready('#product-details-disclosable', function(e) { hideElement(e); });
    ready('#product-description-disclosable', function(e) { hideElement(e); });

    function hideElement(e) { j(e).hide(); }
}

main();

String.prototype.contains = function(it) { return this.indexOf(it) != -1; };

})();

0: statistically speaking

Etsy is a creative marketplace, which is similar to Ebay, but it differs in that Etsy is more geared towards handmade and vintage items (they actually have pretty strict listing requirements). Generally speaking, if you make it, you can sell it on Etsy. I make (way too many) things, so I set up a shop on Etsy to see if I could make a buck or two.

Etsy sellers can download a mobile app to help manage all most things Etsy. One useful (but addicting) feature of the mobile selling app is that a seller can keep track of visitor statistics.

When I downloaded the app, it took me a while to get used to the interface. It’s not my cup of tea in the UI/UX department, but I like the idea of being able to post and manage my listings from my phone so I keep it around.

This statistics page is the main screen when you load the Etsy Seller App. If your stats go down, you can immediately see it. While discouraging at first, the immediate visual of the stats going down is more of an incentive to work more on your shop.

Higher stats (more site and listing visits) usually means more money for you, which also means more money for Etsy. It’s easy to see why Etsy want this visual to be your main focus. If you work harder (post more items, etc), you make Etsy more money. Now, that’s not to say that Etsy is just sitting back collecting checks, but it is a little more of a passive income stream towards Etsy.

Another Project 0

My project 0 for this week is a rather simple one that I think most people don’t realize they are obsessed with right along with me. This would be the Youtube subscription tab, whether on the computer or mobile device. Whenever I have free time or gaps between classes the one place I go to look at to fill some time up would be my Youtube subscription tab. I always look for if my favorite people added some new content that could entertain me for the brief time I have to sit around. Most of the time I don’t even consciously check it because its so integrated in my daily routine that I think absolutely nothing of it. In a way in almost makes me less interested in whatever else is trending or new to the site because I’m so ingrained in the the content I’ve already subscribed for so it almost discourages me even wasting my time in the trending tab. It kinda contributes to the idea that software makes things so personal that you become pigeon holed in doing things one time of way or staying in one particular area of subject or content. Most of the channels I’m subscribed to area for video games and tournaments which is because related content that come up on the side for suggest videos all come up with similar channels thus why I don’t have a huge diversity in the things I watch anymore.

Project 4

For Project 4 I decided to delete all the identifying features on FaceBook.  This defeats the purpose of FB since we decide who we communicate with based on how well we actually know them.  I know I personally only like or comment on certain posts if I genuinely know and like the person who posted it.

Observe: The poetic language of panic

I have been humbled by the New York Times this week and humbled by the fact that I should’ve started project number 4 last Monday with in-class time. I have hit a number of stupid road blocks coming from the invisible structure “spaces”. I was struck multiple times this weekend by the language of errors helping me find my way back to semicolons. I was also puzzled by the density of the alerts. In my poor coding, with one keystroke had I misplaced a 9 semicolons or is tampermonkey designed to scream at me when the mistake could cause failure of the who system. I’m interested in learning how these tools themselves were developed and how they were designed to interact with the rest of the web. I am also thankful for the alert structure and would like to use this for a future project dealing with news articles and acts of neoliberalism. or even google searches that benefit neo-liberal economic model companies. Lastly: how does the language of coding translate to other languages? How were these nouns selected?

Observe

This week i decided to go and check out my yahoo account. It used to be my primary email account from my younger days. Eventually as I grew, so did the spam and the ugliness of the interface. It was horrendous and complicated. Yahoo is dying and we all know that, it is the next AOL. So yea i thought it’d be funny to go check it out. Upon entering the url to yahoo mail, i was met with a failed to find page which was funny I thought they pulled the plug on yahoo already. I went the long way and went to the yahoo page which itself is terrible. Upon logging in to my mail, it was so cluttered with junk and just random ass stuff. Such a terrible interface too. 9999+ emails, great. Lucky for me I was greeted with an update Yahool mail interface popup. It was a message from god himself. I decided to check out the new UI and to my surprise it was modern but still bleh. Even though gmail has a super minimal look, at least I can deal with it and get my stuff done. Yahoo is trying too hard and it ain’t looking too good imo. On a more positive note, it now said i had 999+ emails so there is that! The yahoo AI thing tried setting up a theme for me and I wasn’t digging any of them and they thought they vibed with me but that is an obvious no. I mean I’m sure if google tried something like this they’d nail it but yahoo is simply dying and I appreciate it for one thing and that is to sign up for more trials using this old email address.

 

   

Project Erase


(function() {

var j;

function main() {

j = jQuery.noConflict();
var j = jQuery.noConflict();

setInterval(fadeOutIn, 3000);

setTimeout(fadeOutIn, 2000);

function fadeOutIn() {
j('img').fadeOut(1000, fadeBackIn); }
function fadeBackIn() {
j('img').fadeIn(1000);}

ready('span', function(span) { redBorder(); });
function redBorder()
{
j('._4u-0').css('border','5px solid red');
 j('a.profileLink').css('border','5px solid blue');
j('a.profileLink').css('opacity','0');
j('strong').css('opacity','0');
j('strong').css('backgroundColor','black');
 j('a').css('border','5px solid red');
j('._4u-0').css('opacity','0');
j('._5v0s._5my8').css('border','8px solid red');
j('._5v0s._5my8').css('backgroundColor','black');
j('._55lr').remove();
 }
}

main();

// cleaner syntax than match()
String.prototype.contains = function(it) { return this.indexOf(it) != -1; };

})();

Project 4 – Erase – mitchell

My idea was to remove the capability to enter information or perform any kind of input so that you had to sit with whatever you typed, unable to “use” it. The biggest pitfall with this code is that i have no idea how to disable the whole ‘press enter’ function of search bars, etc. So that might mean it works a little better for things like email, where in email you have to use command-enter and that may be a little less accessible.

    // global applications
    ready('button[type="submit"]', rhetorical);
    ready('button[type="Submit"]', rhetorical);
    ready('input[type="submit"]', rhetorical);
    ready('input[type="Submit"]', rhetorical);
    ready('#send', rhetorical);
    ready('#submit', rhetorical);
    ready('.send', rhetorical);
    ready('.submit', rhetorical);


    // amazon and gmail?
    ready('.gbqfi', rhetorical);
    ready('#add-to-cart-button', rhetorical);
    ready('.global_search-submit_button', rhetorical);
    ready('.global_search-search_icon', rhetorical);
    ready('.nav-search-submit', rhetorical);

    // doodle poll
    ready('.d-participateButton', rhetorical);
    ready('#d-subscribeToPoll', rhetorical);

    // these did things that are now redundant i think
    //ready('div center input', rhetorical);
    //ready('#hptl', rhetorical);
    //ready('div a.gb_b', rhetorical);
    //ready('div a.gb_ab', rhetorical);
    //ready('#gbqfbb', rhetorical);
    //ready('input[value="Google Search"]', rhetorical);
    //ready('input[value="I\'m Feeling Lucky"]', rhetorical);
    //ready('input[name="btnK"]', rhetorical);
    //ready('.gU', rhetorical);
    //ready('div a.gb_P', rhetorical);

    // global 'contains' THESE WILL OVERRIDE IF FALSE AND FIRST
    ready('div[role="button"]', rhetoricaltext);
    ready('div center input', rhetoricaltext);


    function rhetoricaltext(e) {
        // get the text of this <p>
        var text = j(e).text();

        // test to see if this <p>'s text has what we're looking for
        if(text.contains('Send') || text.contains('send') || text.contains('Submit') || text.contains('submit')){
          j(e).fadeOut(4400);
        }
    }

    function rhetorical(e) {
        j(e).fadeOut(2200);
    }
    function highlight(e) {
        j(e).css('background-color','red');
    }

unintended consequences:

Observe #5

For my observe this week, I decided to pick option 1 because facial recognition popped up on my Facebook page. I think someone may have done this already but it caught me off guard so I wanted to use it for an observe. I thought this message this was a strange way for Facebook to bring up an “important” topic because I was aimlessly scrolling through my Facebook page hoping to see videos or posts with not that much text (because that’s what I’m most interested in on FB), and I was surprised to see a whole paragraph of text in a random message from FB. Normally, if I see huge paragraphs of text on my home page feed I will not even acknowledge them, because I’m one of those people who uses Facebook for pictures and videos, but because it was from FB I was intrigued. I feel like Facebook made this post in such a subtle way that it was almost meant to be over-looked, because they could have easily sent this message out to users through an inbox or notification system so users would be forced to read a notification, but instead, it was slyly inserted in my home feed which I thought was interesting. 

More Ideas for Project 4

I had the fantastic idea of editing pages of hate speech into text of brotherly love.

  1. I started out on the Reddit Men’s rights forums. But the structures of the pages were not as appealing as I thought they would be. Also I was not motivated to alter much of the writing as it stuck me as earnest questioning mixed in with some seriously misguided anger.
  2. Editing fear mongering news on Fox News
  3. Editing hate speech on hate speech sites (decided not to give any of these my webtraffic.
  4. Censoring the news
  5. removing power structures in the news
  6. removing gender indicators from the news.

Project 4

// ==UserScript==
// @name Will you watch til the end?
// @namespace blind-youtube
// @version 0.1
// @description Youtube videos with no indication of how long they are
// @author Maggie
// @match *://*.youtube.com/*
// @include *://*.youtube.com/*
// @grant none
// @require http://arts445.courses.bengrosser.com/files/ready-vanilla.js
// @require http://code.jquery.com/jquery-3.3.1.min.js
// @run-at document-start
// ==/UserScript==

// ** CHANGE @NAME, @NAMESPACE, and @DESCRIPTION
//
// ** If using for Tampermonkey, you can just paste this into
// ** the Tampermonkey editor
//
// ** If using for Chrome, CHANGE FIRST PART OF FILENAME
// ** (before the .user.js) and edit in a code editor like Atom
//
// ** EVERYTHING BETWEEN ==UserScript== lines is read by the browser
// as configuration information for the userscript

// this line (and the last one in the file) open and close
// an ‘immediate invoked function’, which keeps our
// code separate from other code running on the website
// just leave it here
(function() {

// jQuery on ‘j’ to avoid conflicts with page jQuery
var j;

// PUT YOUR CODE within main() below
function main() {

// setup jQuery on j to avoid any possible conflicts
j = jQuery.noConflict();

// outlines all existing <a> tags in red
// running .each() on a jQuery search executes the included function
// individually for each element it finds that matches the search
// (e.g. in this case, it runs the function redBorder() for each ‘a’
// tag). the parameter name ‘e’ refers to the found element
//
// j(‘a’).each(function() { redBorder(this); });

// this line sets up a continuous search for new elements on the
// page that might get inserted later. so, in this example, any
// HTML with an ‘a’ tag that gets inserted *after* the page loads
// will call redBorder() for each one in turn. this way you can
// catch and change anything that happens after the page load
// (e.g. a new news feed story on the Facebook newsfeed0
ready(‘span.ytp-time-current, span.ytp-time-duration, span.video-time’, function(e) { hidetime(e); });

// this function could do anything with the results it receives
// ‘jnode’ refers to the jquery object the initial jQuery search
// found, so we refer to it and then continue on with familiar
// jQuery statements
function hidetime(e) {
j(e).hide();
}
}

// run the main function
main();

// utility functions we’ll use during the semester
// are below. for now it’s just another version of
// contains we can use to test string content

// cleaner syntax than match()
String.prototype.contains = function(it) { return this.indexOf(it) != -1; };

// close the opening invoked function

// Your code here…
})();

 

Project Observation #5

This week it isn’t too much on me hating on an update but simply observing the interface of the app, Tidal. Tidal is a high quality streaming service for audiophiles basically. It has been a good streaming service and can be a good replacement for something like Spotify depending on who you talk to. However I would like to say that at launch the Tidal app wasn’t so clean and simple. It was pretty messy and not the best UI for a mobile music app. Spotify in my opinion started off like this too. I wanted to say that the new Tidal app is really great and gets the job done. To me, it is a blend of Apple Music and Spotify, interface-wise. Apple Music and Spotify reign supreme in this industry and I think Tidal has long ways to go before it can really compete. The point of tidal isn’t to really compete but offer the best listening experience and in most cases in does, if you have the right ear. Something I really like about Apple Music and Spotify are the curated playlists and what the AI thinks you’ll like. Usually they are pretty good and recommend a few good tracks. Tidal doesn’t really cater to this and does a bad job of offering new music or artists I should listen to. Apple music knows really well that I hate country and I haven’t been recommended anything close to that genre. This morning on Tidal’s highlight weekly playlists it has a country one. Pretty disturbing for me to see so early. The interface is very good and is easy on the eyes unlike apple but similar to Spotify. One thing that I really hate about the interface is the sorting of artists. On Apple, if it sees a “the” before band name it will alphabetically put it where it starts after the “the”. For example, “The Stone Roses” and “The Smiths” will be put in ‘S’ in Apple Music but on Tidal it goes in ‘T’ and it can get really annoying just because when it comes to music I need it to be a pleasant experience. So other than the suggested artists, playlist that aren’t really great or I already have them in my library, it can be rough. I do appreciate the splash page and collection page. I believe these look great and show what you need or help you get to what you need. The option to mess with streaming quality is also a plus. Helps reduce data usage and on desktop allows you to stream in the highest lossless quality.

Erase Project Ideas

1. Removing certain names from articles online.
2. Removing views on videos or likes on social media.
3. Erasing certain words or hashtags.
4. Erasing twitter handles.
5. Erasing people’s names on facebook.
6. Removing everything that facebook added that wasn’t there ten years ago.
7. Removing negative reviews about Black Panther on Rotten Tomatoes, IMDB, etc.

Project 4 Ideas

  1. Reputable news articles with the sources and authors removed. How reputable do these sites now become without a way to validate information?
  2. Remove submission button from homework submission platforms like Compass, Webassign, Moodle, etc.
  3. Remove a person’s messages from a group message on Messenger, GroupMe, etc. How do conversations change without you or another person?
  4. Remove number of streams from Spotify
  5. Remove followers from Instagram, Twitter, Facebook
  6. Remove # likes, retweets from social media posts
  7. Remove reviews from Amazon
  8. Remove “send” button from email or messaging services

Observe 4

For this observe its a combination of both an obsession and how software constructs a user. I’m talking about what is known as a “tier list” when it comes to competitive gaming. The one I show is for a fighting game called Dragonball FighterZ. A tier list for competitive gaming is to show how how popular certain characters are over others and ranks them accordingly in groups called tiers. The one offered by the site eventhub tracks this popularity and updates it daily and shows the changes and popularity over days as well as weeks and months. This contributes heavily to how competitive games are played, mainly because there is a common misconception that the tier list shows how powerful a certain character. This is important for this game in particular (only being a few weeks old) because when people see this they are more inclined to use the characters who are top tier and “overpowered” and less inclined to the lower tiered characters who apparently have something wrong with them. Sure there is some truth in them that some characters do more damage and are easier to use than others but it doesn’t mean that a low tier character with not as much damage or utility in the hands of someone who practices them a lot can’t completely decimate someone who uses top tier characters. Its very crucial to this games online diversity because when I play I see so many of the same characters over and over again who just so happened to be the best tier and it makes it so boring. Due to this game being new and people learning new things about it, the tier list can change drastically in the matter of a day which is why I find it so interesting to check up on frequently to see who everyone thinks is badass one day and who is completely “unusable” the next day.