Press "Enter" to skip to content

→ Alice Sun / Blog Posts

An Exhibition of Lost Paintings

An Exhibition of Lost Paintings is a continuation of week2’s Artwork Label Generator.



In Artwork Label Generator, I wrote different vocabulary lists for objects and expressions by my own. This time, I actively use existing sets in Corpora, in order to create more diverse and unpredictable descriptions than previous ones.

At the same time, I brought minimum amount of lists written by me to add bit more control over the description; limiting the type of outcome to only paintings was also for the same reason.

Similar with the previous artwork label generator, An exhibition of Lost Paintings also involves many random choices. However, this time it will try to make reasonable storyline using synonyms and “fixed” random choices in certain parts.

The “fixed” random choice will be used to generate something that must be consistent over a painting. For example, if it’s a portrait painting: the main character in the painting should be mentioned consistently in the description. If the character has synonyms to refer, they will be fully used as well. However, such aspects as adjectives, verbs, and events don’t have to be repeated, and rather encouraged to be randomized every moment.

Therefore, those “fixed” random choices only run once in every painting, while many other random choices run in every sentence and word. In this way, it can make a coherent shape of art description without losing surprise of unexpected randomness.

  • Codes for generating main title, introduction, and 6 random paintings. The painting can be either still life, landscape, or portrait.

  • Codes for description and chained words (followed by main character).

  • Codes for still life painting.

  • Codes for landscape painting.

  • Codes for portrait painting.

  • Display everything in string, with goodbye message.

The following slides are one set of generated text into a presentation format. They’re bit more elaborated along with some use of imagery.

GitHub link


Makeup Guru

A makeup tutorial generator using xkcd color vectors. Original text is from one of the tutorials in Deck of Scarlet.

In order to generate makeup tutorial, I used two data resources from Corpora: xkcd color data for shadow colors, and Pokemon name list for the brand name of shadow brush.

Because the part that is most actively using color vocabulary in many makeup tutorials is where the person applies shadow, I’ll pick the part that she introduces this awesome shadow product – and collect 6 similar colors to it (there’s some integer typo in the screenshots; it should be 6, not 10).

Here is the output:

Another output:


So, I’m going to start off the eyeshadow called, Soft blue.
It’s this lavender blue shade right here.
And using a flat brush, I will apply it all over my eyelid area.
Next, I’m switching to a smaller blending brush.
This is the Pansage 708 brush, and I’ll use it to blend out the edges of that periwinkle shade into the crease and, you know, make it look really nice and seamless.
And see how that eyeshadow kind of blended into more of like a cornflower blue shade?
When it’s fading, it looks more perrywinkle rather than dodger blue. It’s really nice.
It looks like I used many different colors when I just used one single eyeshadow.


Evolutionary Pac-Man

Week 8 assignment based on Steering Behavior example. Typeface: Alpha Headline

Full Screen, Code

Some additional updates are expected:

  • assigning separate class for ghost/poison vector
  • continuously generating new food


En & Kor

Continued from the last exercise: detecting those titles with Korean letters was easy but excluding them wasn’t. I asked help from Allison to figure out how to filter out the ones with Korean, which is a method that ideally only collects English titles.

The problem was, sometimes I visited contents that belong to neither Korean nor English. After the review, I found out mostly they are Japanese, and excluded them as well – despite of their small number.

Next step was going into more details. One of the things I tried was checking the usage difference of same service in two languages. It will be more useful if I can collect interesting keywords, and filter out results based on them.

Project by Google Fonts – saving in this post as a reference. Not sure how relevant it will be, but it was interesting to see the same content in different composition.


Letter from the Trial

A rewriting generator of the letter from Alice in Wonderland, Chapter 12. The original letter itself is a poem full of pronouns, plays again with the ambiguity of pronouns. In the story, it was used as an item that proves the king’s unjust and poor reasoning. Using that ambiguity, the generator will realign the original poem with shmarkov and create new ones.

To make them in similar structure, I put indent in every line with even order.

… and put empty line between every stanza.

During the modification, I tried to figure out a natural way to adjust special characters, but ended up being not so successful. Furthermore, I came to a conclusion that only controlling special characters won’t make the poem more natural. Probably just removing them all might be a better idea?


Final Project Proposal

Assignment 07: Final Project Proposal

For your final projects, you will draw upon your personal data collection and the insights gained from your weekly assignments to design and develop a project that critically engages with one or more (or all) of the stages of the quantified self pipeline – track, reflect, act – covered throughout this course.

  • It is important that you manage your ambitions by clearly defining your research question, focusing your design concept, and keeping your project scope tight. You final project will be evaluated on how clearly your concept is communicated through your chosen media and your thoughtfulness in considering all the things that you know as well as what you don’t. Therefore it is important to take the time to read, write out, sketch, moodboard, and concept your final project proposal.
  • Your final project proposal is an opportunity for you to do the necessary initial research to clearly state the question you seek to address and the social phenomenon you’re interested to comment on and your planned methods to communicate your idea. Be prepared to convince us about your concept and the methods with which you plan to make that concept tangible.

Background research / Literature review

It is a conflict between ways of life, beliefs, customs, value systems and not necessarily one between language system.

Perhaps cases of perfect bilingual and biculturalism are extremely rare, if at all possible.

In linguistics, code-switching occurs when a speaker alternates between two or more languages, or language varieties, in the context of a single conversation (i.e. dialect).

In linguistics, a calque or loan translation is a word or phrase borrowed from another language by literal, word-for-word or root-for-root translation.

Third culture kid (TCK) or third culture individual (TCI) are terms used to refer to children raised in a culture other than their parents’ for a significant part of their early development years.

Internationalization is the design and development of a product, application or document content that enables easy localization for target audiences that vary in culture, region, or language.




Hypothesis / Definition of question(s)

What are my “code-switching” moments:

  • people
  • activity
  • emotion
  • location
  • and more?



The outcomes will be built based on Reporter Application data and keyboard input data. Reporter Application was chosen because of its flexibility, while keyboard input was chosen due to its nature of daily usage, auto-tracking, and active multilingualism in computing (specifically in reading and writing).

  • Language usage report from beginning of the class to end of the class in web environment
  • (optional) create a tool to track language usage
    • design the overall service in more detailed version
    • look into different ways and make prototypes



Create awareness that individuals are consisted of various sides, which make them interesting and complex. It requires more than a monotonous approach to analyze someone’s character.


Sketches / Technical considerations:

  • Language usage report: JS along with useful library as d3.js and chart.js
  • (optional) Language usage tool
    • design: Sketch, Adobe Creative Suite and InVision
    • prototype: Python, node.js



Assignment 07: Reflection

Include a quippish timeline of your reflection “thesis statements”, and design a way to represent your mood throughout the course.

While thinking about different ideas, I kept collecting my ip information. One of the things I noticed is that if the website contents are in certain language, the “title” of the page would likely to contain the language.

I’m not fluent in regular expression in any level, but since I had class about it last week, I thought using range match will be a good idea. As [a-z], [가-힣] will contain all the possible combination of letter with Korean alphabet.

It was successful to collect the ones that contained Korean letters, but I kept on failing filtering out them. From 2/11 to 3/5, I visited 726 webpages that presents Korean contents. There are total 4776, so brief way to exclude Korean letters will be 4776-726 = 4050 pages. However, regarding the small number of pages that present neither Korean nor English contents, I’d like to filter them out properly.

On another hand, for some reason, the Chrome extension I was using to track IP information stopped working. I personally emailed the developer to ask if it’s finishing its service or having a temporary problem. It seemed to be having some issue, but didn’t say it will permanently close the extension – so hopefully it will be back to service.


Untrack Me

Assignment 06: Hack your tracker / Untrack me

Develop a method to hack one (or more) of your tracking apps. Write a short reflection about your hack – how did you do it? What information is gained or lost? What are the implications of hacking your data in the way that you did?

  • Obfuscate data/circumvention collection assignment. Develop a method to hack one (or more) of your tracking apps. Software or hardware solutions or a combo of both are welcome. Document your process.
  • Make an instructable about your hack (e.g. DNA Spoofing); you don’t need to make a video, but you should outline the steps to your circumvention in a public place, like Instructables.

So far I’ve been using both Reporter Application and Chrome Extensions along with Chrome History, however, for this week’s activity using Chrome Extension seemed to be a suitable target. Although Reporter Application also tracks various data such as distance and temperature, because it’s “reporting” system – I can always refuse to submit my report.

The Chrome site tracking happens all the time, but in order to have the history in json format, I’m weekly using another extension called History export. There’s another way to download the history as csv format. For my convenience, I use the extension. However, the extension does not include IP location so I have to manually type in the information.

The best way to obfuscate the Chrome history tracking is simple: usage of incognito window Under incognito, it’s possible to avoid the auto-tracking of my website visits – therefore, those won’t be exported to json file at the end of the week. I’ve actually been using this method when I revisit some websites in order to check their IP locations; because as I mentioned above, they don’t automatically get saved and exported. All the extensions are off in incognito window as default, so it’s important to allow access of IP Tracking Extension.




Assignment 06: Reflection

Write a short reflection about your hack – how did you do it? What information is gained or lost? What are the implications of hacking your data in the way that you did?

This week’s activity was relatively simple, due to the nature of Chome browser that is easy to adjust tracking options. Not only that, but also it was something I’ve been intentionally doing since the beginning of website tracking to collect IP location. It derived from the idea that revisiting of websites (to recheck IP location) shouldn’t be included in Chrome history list – because it’s only part of “tracking” process, not a natural visit. Consequently, my website visits during the process of rechecking IP locations are lost forever, under my decision. However, for certain decisions, there are always room for a debate. It made me rethink about a correlation between arbitrary decisions and data cleansing.


Research Presentation

Income and Lifespan Inequality

  1. Presentation Slides
  2. Executive Summary
  3. Poster

All reference sources are included in each slide under the speakers notes: