Chase Final Project: Antizon Chrome Extension

I made an extension that randomizing all links on Amazon. This makes an interesting experience for the user to unwillingly broaden their horizons as to the type and quality of items that they browse on Amazon. The extension could make for either a completely annoying time or a surprisingly helpful one.

Here is the link for the Chrome Web Store: Anti-zon Extension

Here is the zip with the extension files Antizon

Here is the video: https://vimeo.com/267329809

Project 4: Code

// 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(‘a’, function(e) { redBorder(e); });
ready(‘p’, myBackground);
//ready(‘p.byline’, myPfont);
ready(‘img’, hideImage);
ready(‘span’, hideCredit);
//ready(‘a’, hideTheKids);
ready(‘h2 a’, function(e) {
var text = j(e).text();
if(text.contains(“Xi”)) {
j(e).css(‘backgroud-color’,’black’);
}
});

//j(‘h2 a:contains(“Xi”)’).css(‘background-color’,’black’);
j(‘li.date’).css(‘background-color’,’black’);
//var xi = (‘h2:contains(Xi)’)

// 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 redBorder(e) {
j(e).css(‘border’,’1px solid red’);
}
function myBackground(e) {
j(e).css(‘background-color’,’black’);
}
function myPfont(e) {
j(e).css(‘text-color’,’black’);
}
function hideImage(e) {
j(e).css(‘opacity’,’0′);
}
function hideCredit(e) {
j(e).css(‘opacity’,’0′);
}
function hideTheKids(e) {
j(e).css(‘background-color’,’black’);
}
}

// 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
})();

code for chase

ready('a',function(e) { 
    var links = j(e);
    var numlinks = links.length;
    var mylinks = Array();

    links.each(function() {
        mylinks.push(j(this).attr('href'));
    });

    shuffle(mylinks);

    var i = 0;

    links.each(function() {
        j(this).attr("href",mylinks[i]);
        i++;
    });
});

function shuffle(a) {
    for (let i = a.length - 1; i > 0; i--) {
        const j = Math.floor(Math.random() * (i + 1));
        [a[i], a[j]] = [a[j], a[i]];
    }
    return a;
}

code for jayson

setInterval(function() { 
    var x = getRandomInt(20)+10;
    j('*').animate( {
        "font-size":newsize
    },2000);
}, 1000);

function getRandomInt(max) {
  return Math.floor(Math.random() * Math.floor(max));
}

Project 5

Here is the link to my extension for Project 4 – “Not My President Extension” – https://chrome.google.com/webstore/detail/not-my-president/dfdbepedgmmbpibkbfpbpiompcbhkmba

Here is the link to my extension for Project 5 – “Better News” – https://chrome.google.com/webstore/detail/better-news/lblmahpbhkbhmchpgdkmondojakmkhcn

Project 4 Redo

 // ==UserScript==
 // @name Basic Userscript Template
 // @version 1.0
 // @namespace basic-userscript-template
 // @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 *://*.en.wikipedia.org/wiki/Donald_Trump*

// @include *://*.wikepedia.org*
 //
 // ==/UserScript==// -----------------------------------------
 //
 //
 //
 //
 // Basic Userscript Template
 //

 (function() {

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

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

j = jQuery.noConflict();

var j = jQuery.noConflict();

j('a').each(function() { redBorder(this); });

ready('a', function(e) { redBorder(e); });

function redBorder(e) {
 j(e).css('border','1px solid red');
 }
 j ('b').remove();
 j ('span').css("opacity","0");
 j ('h1').css("backgroundColor", "black") ;

setInterval(fadeOutIn,500);

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

}

main();

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

})();

Observe #4 – option 1

My topic for this Observe is an email that I got from YouTube. Here’s a screenshot:

So basically, YT is telling me that it’s going to get rid of some of my subscriptions–only that sounds bad, so instead those subscriptions “will soon move.” The last sentence of the main paragraph is a better summary of what’s really going on: “Your current secondary artist channel subscriptions will become inactive.” But don’t worry, YouTube user! YT is doing this for your sake! Deleting your subscriptions without your permission isn’t a violation of your freedom as a user, it’s just to make it “easier for you to keep up with your favorite artists and their music!”

I realize that I’m making this sound pretty dramatic, when in fact, this probably is going to make things easier for users. But it sure does leave a bad taste in my mouth.

OBSERVE 4/23/18

For this week’s observe I am analyzing a message that popped up on my computer last week. One day I opened my computer and a message immediately popped up when connecting to the internet, that said “Another device on the network is using your computer’s IP address”, with further instructions about what to do next. I didn’t think much of it and honestly just ignored it like the lazy person I am, but a couple days later it popped up again.
This worried me because this message (from what i understand) means that there is another device that has access to my computers “signature”; I’m not exactly sure how severe that is or what could come from that but I know the results are not exactly good. While it could be another one of my own devices, it very well could be someone else’s. Following the second message I followed the instructions and am waiting for the next message to pop-up. Receiving this message, while it was not directly harmful, made me rethink what information I am putting out into the internet, and where exactly I am giving out the information. I’m sure I have given out unnecessary information on the web many times before, but this made me stop and wonder when was the last time I did that and did I even stop and think before hand? It also made me think about the fact that if i’m giving out information easily and not realizing it, who else is? My parents who aren’t too technologically experienced have probably fallen victim to this many times, too.

Project 8 Ideas

For project 8, I narrowed down my ideas to either creating another extension or using firebase for anonymous use. For an extension, I thought it would be cool to make an extension that helps you “see life clearer” – for example, the extension would be used on a news site or twitter and multiple aspects of the site would be changed so that it would appear brighter/happier. Headlines with sad news would fade out, specific words or phrases would change to something “overly happy”, the fonts would be changed to something more fun and the colors and page layout would change to reflect a happier setting. I was also thinking I could create an extension aimed more for the elderly – fonts would be bigger, headlines would include old timey phrases/sayings, and the news would reflect past events.

If I were to use firebase I was thinking about creating an anonymous blog type of service where users can post anonymously their fears/worries or get advice. It wouldn’t be so much a chatroom as a place where people can just say their thoughts without context. Each new user would get a different color and size of text and maybe even different fonts. It would mimic a safe space for users.

Observe 7 – option 1

A couple days ago I was looking through the apps on my phone’s homescreen, and I noticed that Instagram had installed itself.

This was an understandably alarming development. At first I wasn’t sure what to do–delete the app immediately and hope it wasn’t a virus? That probably would’ve been the safest move, but I chose to open it instead. When I did, I got this screen:

Pretty standard login screen to be greeted with the first time you open an app you’ve downloaded–except for how I didn’t download this app.

Later on, I decided to search my phone for the app–just for kicks, and to see what happened. Except apparently I didn’t have it?

I still have no idea why this happened, but whatever the cause, it’s a pretty unsettling example of software constructing my experience as a user, definitely without my consent.

Project 3 and Project 5 responses

I recently asked some friends to look at my projects. First, since my biggest is my extension (Project 5), I asked my friends to try it out and see what they said.

My friend Jack thought it was interesting for a user to choose to use the extension, considering it was such a hassle to use. Why would anyone in their right mind download it for themselves and use it earnestly? It seemed more like a joke. He thought it accomplished what I had set out to do, which was to make users uncomfortable and point out what we find comforting in how websites look.

My friend Chrissy screamed. She had the reaction I expected, which was hatred. It made her angry. It disrupted the normal flow of websites and almost broke them for her. She wanted off the internet.

Project 3

Chrissy looked at my examples for this project and thought they were hilarious. The subtle changes were fun for her to find. The changes, like the addition of “Look, bro” to cnn made the news site seem more personal but at the same time less reliable. (She also became interested in learning about coding websites!)

Project 5: REPLACE Luvdit

I thought it would be funny if there wasn’t a top post on reddit and that everyone’s post had a million upvotes. A number a lot of us use to seek validation of the quality of the post that is now equal to everyone’s post. And you won’t feel so bad about uploading something and it not getting any upvotes anymore.

https://chrome.google.com/webstore/search/luvdit

1 ABUSE ANGRY REACTS

So I decided that even though I did not have social media, I could abuse the account of my girlfriend! I decided that my favorite emoji is the cute little angry reacts guy. I’ve seen angry reacts only memes, so I wanted to see what would actually happen if I did angry reacts everything. I also made a series of posts about it just to see what people would think. After the initial post the following day I made it so I posted a couple meme related things to see how people would react. People seem to follow a trend of thinking it was funny and slowly becoming concerned or people becoming concerned right away. I thought it was interesting that even though I tried to make it obvious that it was satirical or jokingly people still were concerned with just a simple reaction. I got some pretty funny responses from people that I posted below.

This picture was a response from my girlfriend’s uncle so she wouldn’t let me angry reacts only this out of concern that he would be worried.

This is from her best friend.

OBSERVE 4/16/18

For my observe I decided to focus on a new app/service that i recently discovered. “Earn bitcoin” is a service that essentially pays people to take surveys based upon their personal network connections. It also allows popular companies with big executives to connect with people who are interested in their opinions/advice, all while being compensated; you can select an amount from $1-$20 per question, and if you are not a company executive, you can money by taking surveys that pay $1 (give or take) each. You fill out questionnaires based upon your knowledge and interests, and from there you are selected to complete surveys.
What i find most interesting about this service is that in order to create an account, you must connect with LinkedIn; I assume this is so that the service can analyze your contacts and history to select surveys for you. In addition, in order to connect with company executives, you must connect your gmail account as well. These interesting guidelines can definitely affect the desirability of signing up for such a service, especially if you don’t have either of the accounts. While I understand why these are put in place, it always makes me a little suspicious when services ask for your other personal accounts or info – I myself have yet to connect my gmail account to this service because when I initially tried, it obtained all my email contacts and wanted to send out emails to all of them – and that definitely scared me away. While I have taken online surveys for money in the past, the twist with this service is it pays you in bitcoin; this gives your money the potential to increase without you doing any extra work. While this is an incredibly enticing idea, it also means you can lose your money at any second. That being said, I am not entirely sure if I will go through with the whole registration process, especially if I put my time into this serice and then all my money is lost. A nice twist, however, is that it gives you an option during registration where you can pick 1 of 4 charities to donate to.