Progress so far.

After I finished the thesis background in late October, I went on engineering mode, adding and refining the app’s functionality. As a result, I haven’t added to my blog in a while. Now that the engineering work for the first key feature of this app is nearly complete, I think it’s fitting to start blogging my progress again.

Since the start of November, I have been focused on finishing a key portion of my app: the library. Users can now create new readlists and browse between existing readlists. What are readlists? Similar to a song playlist, they are a collection of webpages organized around a similar theme. A readlist titled ‘antitrust’ will have about a dozen webpages explaining the history of and the effects of US antitrust laws. Another readlist, titled ‘Indian recipes’, has webpages that explain the recipes of popular Indian dishes. Users can create a infinite amount of readlists if they’d like and easily browse between them.

Since the start of December, I also started doing user studies. I completed nine so far, with three more scheduled ones remaining. The feedback so far has been spectacular, most of it being insightful criticism that has improved the overall user interface.

I expect that from now to New Years, I will be doing three things. First, writing the results and mythology for these user studies in my thesis. Second, improving the software by addressing the concerns people mentioned in the user studies. And third, start developing the ‘store’ feature (which means, creating a API that the app can fetch data from).

Here are the animations I worked on so far, slowed down.

Order of animations: Closing a webpage, opening a readlist, deleting a readlist, opening a webpage, closing a readlist, and previewing a readlist.

Week 4 - Background Outline

Thesis Background Outline

Below is the outline for how my background will look like. I expect every numbered point to take about one to two paragraphs.

Story

1) Give the read a clear visual of just how big the internet is and the scale of the information that is in it. We want to make sure they understand just how much “stuff” gets added to the internet on an hourly basis. 

2) Reaffirm to the reader that we are able to parse and “surf” through all this content through “information networks”, like Google Search and Facebook Newsfeed.

3) Clarify how much power the algorithms in these networks have in shaping our lives. Mention how those algorithms control the information we receive, which affects the daily decisions we make. 

4) Show the failures of these types of software, including especially how they are vulnerable to misinformation and filter bubbles. Explain why such things are bad for society.

5) End with the thesis’s fundamental question: can we do better? Can we develop software that allows for peer-to-peer sharing of information that does not create those issues while also delivering a higher-quality browsing experience to users?

Definitions

  • Information Network [A software that aggregates different information and gives it to users]

  • Push Software [Software where content is pushed to you, like Facebook’s newsfeed].

  • Pull Software [Software where you directly query for content, like Google Search]

  • Algorithms [I will be using a definition that goes beyond Knuth’s technical meaning of the word]

  • Misinformation

  • Filter Bubbles

Week 3 - Animations and Memory

This week, I mostly spent all my time adding the final touches to the web browser portion of the application. In particular, I added animations between views.

This seems like easy task, but actually ended up taking many hours for multiple days. The animation is quite advanced. The animation blurs the lines between views, making it seem like the user is always on one view and objets are just animating around based on user touch.

On top of completing this animation, I found out the app had a retain cycle. This caused objects to never be deallocated, resulting in the app consuming lots of memory. I spent about two full days reading about detecting retain cycles and eventually found what was causing the leak. In the end, I was able to reduce the app’s memory usage from 700 MB to just under 200 MB after a few minutes of user interaction!

Further, I discovered other changes I can make to improve performance. Instead of loading full image sizes from disk, I can load thumbnail-sized images for cells to improve fetching speeds. I can also load these images asynchronously from local disk to reduce overhead. And I also notice that I can significantly reduce the number of times I am fetching data from the disk. I expect these changes to further reduce memory by at least 50%. I will work on them in the coming weeks.

My goal this week is to spend more time on readings. I also wrote a brief abstract for my thesis and have a solid idea of the type of readings I need to do. I’m thinking that for at least the next month, I will be alternating every week between working on the application and reading/writing the thesis.

Week 2 - The Schedule

Work done this week:

I created a draft of a weekly schedule for things I want to accomplish for the thesis.

I also continued reading about Vapor for Swift, a tool used to make APIs and I spent a day reading a few chapters from the book ‘If…Then’.

Timeline for Thesis

  • September, Week 1: Write an abstract. Learn about how to create APIs.

  • September, Week 2: Work on animations for the web browser.

  • September, Week 3: Learn about API authentication, via Vapor for Swift.

  • September, Week 4: Create unit tests for the web browser.

  • October, Week 1: Start writing the Background section for the thesis. Write the basic API for the featured service.

  • October, Week 2: Continue reading more papers related to the thesis. Polish up the web browser feature, finish all animations.

  • October, Week 3: Do the IRB usability study, collect notes.

  • October, Week 4: Continue the IRB usability study, keep collecting notes.


  • November, Week 1: Write a analysis of the data collected from the tests

  • November, Week 2: Continue writing the thesis, including how the usability test was conducted and its conclusions. 

  • November, Week 3: Start the development of the store API. Write a thesis introduction.

  • November, Week 4: Continue working on the API. Continue writing thesis.

  • December, Week 1: Part One of the thesis (the web browser) should be written about extensively (read: completely) in the paper.

  • December, Weeks 2-4: Winter Break.

  • January, Week 1: Create the user interface for the store feature of the app.

  • January, Week 2: Continue developing this UI. Integrate the API with this UI

  • January, Week 3: Continue API integration. Users should be able to fetch featured content, search for content, and upload their own content.

  • January, Week 4: Polish up the interface, ensure animations are complete.


  • February, Week 1: Do a usability test on this feature. Collect data.

  • February, Week 2: Continue the IRB usability study, keep collecting notes.

  • February, Week 3: Write a analysis of the data collected from the tests

  • February, Week 4: Write a conclusion from the usability tests.

  • March, Week 1: Work on software to help curators approve submissions faster. Make the app open for beta-testing.

  • March, Week 2: Get a working rough draft of the thesis completed. Continue building curation tools.

  • March, Weeks 3: These two weeks are reserved for possible delays from previous previous weeks. If there are no delays, keep refining the thesis.

  • April, all weeks: Keep refining the thesis and app based on feedback until BACC week.

Week 1 Progress - Developing the App

Thankfully, this thesis doesn’t officially start this week. It started about a year ago. I saw an interesting concept video on Youtube about a web browser where users can save multiple web sessions into different bookmark folders. I thought this was pretty neat. Not only because I too faced the issue of having multiple windows open, each with multiple tabs, and wished to save them all in an organized fashion. But also because such a small UI change actually creates a vastly different interface for users surfing the internet. After all, most people, especially on desktop machines, almost exclusively use only their web browser application.

I started working on creating a real version of this concept video, but with some significant changes. Over time, through a course on Human Centered Computing, a ISP, and a spring tutorial, this app’s design changed in major ways. It’s still a ‘web browser’ in the sense that technically people can explore any web page they choose. However, there’s also a curated timeline built into the browser.

The app will have two features: the ability to create folders of webpages, where each folder represents a certain subtopic/playlist (ex: ‘antitrust, its history and future’). But on top of this, in a different view, users can see featured ‘folders’ in various categories. The categories will be based off of the Dewey Classification System, so they will range from ‘Philosophy’ to ‘Language’ to ‘History’, etc.

In terms of progress so far, the first feature is about 80% complete. Users can currently create new folders and put as many webpages in them as possible. These folders are saved to disk, so users can exit the app and re-enter to see all their created content still there. The work left is largely design-driven. The animations for exiting and entering folders needs to be created. Furthermore, gestures need to be used to drive these transitions so the interface feels more smooth.

The second feature is about 10% complete. I’m currently reading a book called ‘Vapor for Swift’, which will help me create a RESTful API for the application (in Swift!). This way, I can have a back-end service that will hold the featured folders that the app can fetch. I’m hoping to have the API created by October. Then, from early October onwards, I will focus on creating the featured content that the API will be sending to the app.

Lastly, I’m reading a very interesting book for my thesis, titled “If...Then: Algorithmic Power and Politics”.

From Amazon: “This book is concerned with the ways in which informational infrastructure may be considered political in its capacity to shape social and cultural life. It looks specifically at the conditions of algorithmic life -- how algorithms work, both materially and discursively, to create the conditions for sociality and connectivity.”

Thesis Pilot - Introduction.

“Structural change” is a phrase I’m hearing often this year. From political candidates to collegiate administrators, folks across all industries are finding that some issues cannot be fixed by simple policy prescriptions. Rather, the change must be more ground breaking. I claim this is true for social networks as well. The incremental changes that Twitter and Facebook do to their respective timelines is never going to absolve them of the challenges they continue to face with misinformation.

My thesis will be exploring this area. Fundamentally, it asks if we can design a scalable network that guarantees users won’t get two things - misinformation and filter bubbles. Both words are very broad and I can go on a long tangent on how to clearly define these terms, but I’ll reserve that for a different blog post!

I claim that users want (and deserve) two things when reading a news timeline on any network: the right to only be given news that is written without malicious intentions (that is, articles not written to purposely deceive readers for personal gain) and the right to learn new things. Why the right to learn new things? Because if I get my news exclusively from certain timelines, I don’t know what I don't know. These algorithms are tuned to mostly tell me more about things I already know. It is therefore the obligation of those timelines to expose me to new information. I claim that this will not only be a valuable trait for society (if all timelines pushed new, non-trending, accurate information to users) but it will also increase user engagement on the network.

These claims largely conflict with popular wisdom. After all, isn’t fake news pervasive in digital networks because of human attraction to clickbait? And don’t filter bubbles (where networks recommend more things based on what you like) naturally increase user engagement?

I would comfortably answer “probably, yes” to both those questions. But that doesn’t negate the opposite. Humans can equally be interested in networks pushing reliable/accurate content. Further, users can be more attracted to networks that purposely push new types of information that have no relation to their past interests.

That’s what this thesis will study. I will be designing a real information network with those rules in place and testing if people find it to be more satisfying than being on other popular networks - namely Facebook and Twitter.