I just finished going in and heavily reworking the innards of my portfolio page. It’s not completely new —the design is the same, in fact, and it’s regrettably still using PHP under the hood,— but it now works properly on smartphones, for one. I of course also added a few newer projects, and pruned some others.
Particularly when making small web pages, or userscripts, I don’t want to be importing huge libraries, or having to deal with cumbersome workflows that involve preprocessing. And so I find myself making little utility functions that fit my coding style, which end up being the same ones over and over. Sometimes I copy-and-paste them straight from an older project, or rewrite them altogether. At some point I decided to just collect them in a single location for easy managing and retrieval, and I might as well share that, so I made Copy&Paste JS. This was back in 2015, and I’ve had the repository up on Github for some time, but I wanted to make it both easy to browse and manageable, something that took me a lot of work to figure out (plus of course a long hiatus.) Right now it’s just listing utilities in ES2015-compliant (for modern platforms) and ES5-compliant (for backward-compatibility) formats, the latter mostly auto-generated from the former, and with no documentation or examples of use. I did take enough care to fully spec test every utility, and I plan on turning these specs into code that works as both documentation and tests, in addition to explaining what each one does in a brief paragraph. For now, at least they’re available and fully tested.
const partial = (f, args1) => (…args2) => f.apply(null, args1.concat(args2));
For instance, this little snippet is not difficult to write on the spot, but one might not get it right the first try. Having it there, tested and ready to use is pretty convenient. What this one is useful for is to ‘prepare’ a function by passing it a few arguments in advance. It returns a new function that will take the rest of the necessary arguments. Like in this example:
[1, 2, 3, 4, 5].map(partial(Math.pow, )); //=> [2, 4, 8, 16, 32]
See require-textify‘s Github repository.
To make that which is not normally seen, visible. That was the assignment in school for which this video work (made late 2015) was born, in which we tried to make a sewing machine’s mechanism visible—where does the thread go and how does it ultimately form the stitching pattern. We tried shooting a transparent fabric from up close and in high-speed (for slow-motion playback,) but however we tried, we couldn’t make its inner workings clear. Instead, hands out of focus partially covering the view of our subject seen only in portions at a time, with white and rounded shapes contrasting sharp and shiny metal ones, the sewing machine’s mystery and allure only deepened.
One of the cooler things I was involved in during my studies at Tokyo University of the Arts was the two-week virtual reality workshop in Seoul I was invited in, last February—the “VR Cubic Workshop.” Students from three universities corresponding to three countries (Korea National University of Arts, Communication University of China, and ours) studied the technology and created content for the HTC Vive using Unity. Teams were split according to university, and given the task of creating a VR space inspired by a historical figure representative of their country. In our case, we chose Sen no Rikyu, a master of the tea ceremony that cemented most of its traditions during the 16th century. We based our space on one of his designs, the Taian, a two-tatami-small tea room that embodies the rustic simplicity of wabi-cha. While the video above shows a demonstration of our project, The tea room, I also edited a video (below) with the closing presentation for the workshop, which was held in Seoul with all of the students and professors. In it you can see demonstrations of the whole three projects. […]
One unexpected thing during my stay in Japan was becoming a performer. Friend and seminar-peer Hiramoto Mizuki needed people to carry out her Sushi performance, which involves humans taking on the appearance of the popular traditional Japanese dish in the streets of the crowded night-life district Roppongi, as part of the Roppongi Art Night festival. So I became the rice to her tuna. I was actually part of the (huge) camera crew half of the time as well. I don’t normally enjoy performing in public, but the experience was actually pretty fun. She made a video out of the copious material her little army of camerapeople got for her, and made it her graduation project. The video’s spoken in Japanese, but if interested just skip to the performances.
Another performing experience was for a series of videos promoting a student art competition called the “21th [sic] Campus Genius Award.” They were going for a Hollywood aesthetic, and thus needed ‘foreigners.’ I’m awful in it, but here you can watch the whole slick sci-fi movie-inspired little series. The company in charge of the web and promotion was TNYU, which is run by former students of the program I studied, so that’s how I ended up there. I actually appeared in a different video ad, did some translation work, and did (terrible) voice work for them after that.
I was also asked by another friend from my seminar to develop her website in three short days, since she apparently needed it to apply for an art residence (she happily succeeded.) I just made a static site, since there was not enough time, and she made the design. Other than that, I made a little web flyer for a friend’s party (she’s a dancer and often participates in such things,) which marks one of the few chances I’ve gotten to do actual, standard graphic design these days.
The yearly schedule in the New Media program I attended revolves around two public exhibitions in which we show our works: the summer Open Studio and the winter Media Practice. Most of the work done for the exhibition itself is also done by us students, in fact (the brochure and poster design, the exhibit design, tending to visitors, public relations, etc.) So we all split the work and let each focus on different tasks. […]
Even though I’ve been making a lot of stuff and been involved in many projects during my stay in Japan, I’ve failed to keep this blog updated, so I’ll try to slowly and retroactively add everything. I’ll start with the latest: my graduation project.
I spent the last two years in the New Media program at the Tokyo University of the Arts (named the university thus as it may be, I actually lived and studied in Yokohama, where the Film and New Media school is located.) The second year is when most of one’s energy goes into the graduation project. I’m not going to get into details here, but it was a rough year for our generation, and I’m glad it’s over. I had a first start with my Nendo project, of the design of a programming language inspired by art and design thinking, but the last six months or so had me switch over to what I call in English the Come to think of language project, which I guess you could call a linguistic experiment. I’m of course not a linguist, but I am very interested in the field and inspired by some of its thinkers. The linguistic relativity principle, or so-called Sapir-Whorf hypothesis, was one idea that drew me to the original programming language design, and that inspired the project that I ultimately completed. This is a very simple but powerful idea: the observation that language is deeply linked with thought, and that different languages would foster different ways of thinking. This has been highly debated in the linguistics field (Chomsky’s followers are very much against this idea, for, I dare say, mostly historical reasons,) but rather than attempt proving or refuting it, I assumed its truth and let it influence me. […]
For my Master’s dissertation project in the New Media program at the Tokyo University of the Arts, I quickly devised a small constructed language, something that would be a tool for me to explore language itself in abstraction. Before I undertook the subject of human communication languages, I had been researching programming language design, and in that process came across a paradigm that was new to me, called concatenative. This paradigm is mathematically very elegant, structurally very simple, and in superficial appearance very similar to human written languages. I thought I could use it as a basis for a simple human language, and so I took the main ideas of it and applied them to my design.
My language is not really a language in most traditional senses, if you compare it to existing languages. It does not comprise a lexicon, nor does it have any inherent writing system, or phonetic system. It consists of just a set of rules, and they can be applied in many ways in any pertinent medium (written, oral, electric, etc.,) and is purposely unspecific about other things. It is, if you will, a framework for communication, or a protocol, more than a language as they’re most often thought about.