In this project, my teammates and I conducted extensive user research at the UPMC Falk clinic with patients after Mohr's Surgery, among which were mostly older adults. By understanding users' needs during the post-operative care process and in older adults using technologies in general, we came up with the design of a mobile post-operative care asssistant, Hebo 2.0.
This project was my Capstone Project for the HCI undergrad secondary major at CMU, advised by Prof. Karen Berntsen and Prof. Vincent Aleven.
Try out our interactive prototype!
After a patient undergoes Mohs surgery, they typically have questions and concerns about their postoperative treatment. Before and after surgery they are given explicit instructions on how to care for themselves and also provided with an instruction sheet to take home with them. Unfortunately, many patients struggle to remember and to interpret the basic instructions that are provided to them. Therefore, patients require support from clinical staff over the phone or in the clinic to address common concerns. Moreover, staff members often have to dedicate significant portions of time to communicate information already provided to the patients.
We created a stakeholder map dividing our stakeholders into several parties, based on their interactions with patients in post-operative care. The surgeon who carries out the surgery; UPMC staff who help patients change dressing, call patients for check-up and answer questions; patients’ immediate family, extended family, and friends and community who might take care of them during the post-operative process.
We did job shadowing and conducted interviews with both clinic staff and patients to better understand their needs and existing challenges in the process. To better understand their feelings, we included activities such as card sorting in our interview process.
We then came up with a journey map for nurses and patients, which helped us better understand the goals and needs of these stakeholders. We looked at the surgery procedure by the six phases: diagnosis, pre-surgery, during surgery, right after surgery, 48-hour post-surgery, one-week check-up and later. For each phase, we discussed patients’ emotions and thoughts, their tasks and touchpoints, in order to better understand each part of the surgery process and discover opportunities. Based on that, we used sticky notes to discover existing pain points in different phases of surgery, especially the post surgery phases.
To better understand patients’ experiences during post-operative care at home, specifically during the dressing change process, we did further empirical research and tried to change wound dressing for ourselves like patients after the Mohr’s surgery.
We summarized our takeaways from user research into the following key insights:
Patients need more help when they start with hands-on post-operative care on their own.
Patients need to be assured that what they are doing / feeling is normal.
Patients’ feelings and emotions affect their post-op decisions.
Patients want personalized care.
Visual representations and written out text are important for post-operative care for the predominant demographic of skin cancer patients.
Some patients hesitate to seek for help from family/staff due to personal reasons. (e.g. being too independent, not wanting to burden family, thinking they are probably fine)
Patients want immediate response to their questions while clinic staff don’t want their workflow to be interrupted.
Patients require simpler ways to find post-operative care dos and don’ts.
To test out our mid-fi prototype and improve the design, our team conducted three rounds of user testing in the UPMC Falk clinic. We tested the prototype with various different potential user groups of the assistant, including clinic staff (residential doctors, physician assistants, and nurses) as well as patients. During user testing, we set different scenarios for our users, including being discharged from the clinic, changing dressing at home for the first time, concerned about bleeding, and feeling pain.
Overall, we received very positive feedback during the three rounds of user testing in the clinic. Except for feedbacks on the design of the assistant, we’ve also put a lot of focus on the accuracy of medical terms and processes to ensure that the assistant gives correct instructions and suggestions, and received valuable feedback during user testing.
Based the feedback we received during user testing, our refinements mainly focused on:
Improving usability and accessibility of the app
Adding more feedforward and feedback to make the app more intuitive
Adding conversational features to allow hands-free interactions
Changing certain wordings to make sure medical terms and demonstrations are accurate
Having detailed stepwise breakdown of processes to guide users step by step, with explanations on each step
Establishing trust by giving encouraging feedback to users
Making action terms clearer and adding more error prevention features
For more details, please check out our research report and final report.
Nadia Razek, Anyi Diao, Ying Chen
In this project, I designed and prototyped a wearable musical instrument with Arduino - instead of pressing physical keys, you simply need to tap on finger tips to play music.
### Motivation Music has always been an vital part of many people's lives. However, as many musical instruments such as guitars and pianos are always huge in volumn, it's always cumbersome to carry them around. ### Introduction  Invisible Piano is a project that allows users to "play music in the air", by using one's finger tips as the "piano keys". When you tap on different fingers using your thumb, the device recognizes which finger was touched, and thus you can play wonderful music without using any huge musical instrument, but instead just with your body. ### Implementation This project was developed with an Arduino Nano. The ten "rings" to wear on a user's fingers are each connected to the Arduino, with each thumb connected to ground and all other fingers each connected to a different analog input pin. The controller identifys which finger has been touched by looking at the different input voltage from all the fingers, and with some smoothing to avoid jumping around, plays the key corresponding to that finger.  ### Tools & Technologies Arduino ### Code [Invisible Piano](https://github.com/judykong97/InvisiblePiano)I took a big part in this 2-year long project as the second author of the paper, and contributed substantially in every phase of the project - from brainstorming, to the ideation and implementation of the computer vision pipeline, then to iterations and refinements, and finally technical evaluations and user study.
### Motivation Blind people frequently encounter inaccessible dynamic touchscreens in their everyday lives that are difficult, frustrating, and often impossible to use independently. Touchscreens are often the only way to control everything from coffee machines and payment terminals, to subway ticket machines and in-flight entertainment systems. We identified two major challenges in using dynamic touchscreen interfaces for visually-impaired users: - As the visual user interfaces change, interactions often occur over multiple different screens, and it's always hard for users to label certain parts of the interface using traditional methods. - It is easy to accidentally trigger interface actions while exploring the screen. ### System Design  ##### **Constructing state diagram** StateLens uses a combination of Screen Detection, SURF and OCR to match the current video frame with reference states and decide whether to send to crowdsourcing pipeline and add it as new state. ##### **Generating path from user-specified task** With user-specified task through conversational agent, StateLens generates a target (state, button) sequence to achieve the task. ##### **Identifying current screen** StateLens uses SURF combined with detected user interaction points from camera to identify which state the user is currently on. ##### **Providing guidance to complete task** Based on the detected state, StateLens reads out screen description and guide users to move their finger towards the target button.  #### Conversational Agent The agent can be automatically generated from the state diagram of the interface and allows users to pre-specify the task to perform.  #### 3D-Printed Accessories The 3D-printed accessories allow users to explore touchscreen interfaces without accidentally triggering touches and then touch when they need to.  ### Results In our technical evaluation, StateLens achieved a relatively stable error rate of 5% in identifying the current state. The matching time is also fairly stable for different sizes of interfaces around 0.2 seconds. In our user study, users spent an average of 110.1 seconds to complete a task and the overall task completion rate was 94.7%. In subjective rating, users reported the StateLens app to be easy to learn (5.5/7), comfortable to use (5.6/7), and very useful (6.1/7). They also found the audio feedback was in real-time and accurate (6.1/7). #### State diagram construction accuracy by interface  #### Matching scalability and robustness In this project, we designed and prototyped a heat-sensitive drag queen camping technology with morphing materials. With both advocacy of inclusion and consideration for practical use in our design, we made a prototype of Rain Queen, which transforms from a regular cloth shape into a more dramatic look when the environment temperature increated.
### Background We got our inspiration from the drag queen persona Pattie Gonia [@pattiegonia](https://instagram.com/pattiegonia?igshid=nzkte9iy8eok) on Instagram, played by artist and photographer Wyn Wiley [@wynwileyphoto](https://instagram.com/wynwileyphoto?igshid=1gtrd2exihhmf). While most queer communities nowadays are concentrated in big cities, Pattie Gonia brings drags and advocacy from cities to outdoors and in the wild.  ### Introduction When the environment temperature increases, a simple tendon structure turns this poncho dress into a more dramatically regal structure. The pulley system is reactive to a mechanical circuit, driven by our heat-responsive linear and bending actuators.  This rain queen design is not just a drag queen camping technology, but also an act of placing LGBTQ+ groups at the center of design through compassionate attention. ### Water Collection In addition to the drag queen camping idea, we also hoped to add some practical camping functionalities to this design - water collection. As the shape transformation is triggered, the morphing system changes from a dormant shirt’s shape to a regal water collecting vessel.  ### Morphing Mechanism We hoped the drag queen "second skin" to have automatic shape transformation in response to the surrounding environment, thus we designed two types of morphing mechanisms responsive to temerature change - a linear actuator and a bending actuator. The idea behind both actuators is that the state of the actuator is dependent on the amount of air in it. The the actuator is heated with the increas of temperature in the surrounding environment, the liquid sealed inside the actuator becomes vapor, thus increasing the amount of air inside of it, triggering the shape change of the actuator.  The **bending actuator** has a small air bag on each of the hinges, and each air bag contains a small amount of Novec 7100, an alcohol-similar liquid with a very low boiling temperature. When heated, the air bags are "blown up", thus triggering the bending of the actuator.  Under the similar idea but with a different geometry, the **linear actuator** shrinks in length when more air is contained in the actuator. ### Team Members [David Perry](https://www.linkedin.com/in/david-b-perry), [Jasio Santillan](https://www.linkedin.com/in/jasio-santillan-72a98610b), [Johanna McAllister](https://www.linkedin.com/in/johanna-mcallister-960b6a163)I initiated and started leading this project this summer at the beginning of my master's program, and have been actively working on it since then.
Please feel free to check out our [poster](https://junhankong.com/assets/files/cognitiveassistant.pdf) at ASSETS 2019, our [full paper](https://junhankong.com/assets/files/tutoriallens.pdf) at SUI 2021 and my [master's thesis](http://reports-archive.adm.cs.cmu.edu/anon/2020/CMU-CS-20-116.pdf).Lorem ipsum dolor sit amet, usu cu alterum nominavi lobortis. At duo novum diceret. Tantas apeirian vix et, usu sanctus postulant inciderint ut, populo diceret necessitatibus in vim. Cu eum dicam feugiat noluisse.
In this project, my teammates and I conducted extensive user research at the UPMC Falk clinic with patients after Mohr's Surgery, among which were mostly older adults. By understanding users' needs during the post-operative care process and in older adults using technologies in general, we came up with the design of a mobile post-operative care asssistant, Hebo 2.0.
Try out our interactive prototype!
After a patient undergoes Mohs surgery, they typically have questions and concerns about their postoperative treatment. Before and after surgery they are given explicit instructions on how to care for themselves and also provided with an instruction sheet to take home with them. Unfortunately, many patients struggle to remember and to interpret the basic instructions that are provided to them. Therefore, patients require support from clinical staff over the phone or in the clinic to address common concerns. Moreover, staff members often have to dedicate significant portions of time to communicate information already provided to the patients.
We created a stakeholder map dividing our stakeholders into several parties, based on their interactions with patients in post-operative care. The surgeon who carries out the surgery; UPMC staff who help patients change dressing, call patients for check-up and answer questions; patients’ immediate family, extended family, and friends and community who might take care of them during the post-operative process.
We did job shadowing and conducted interviews with both clinic staff and patients to better understand their needs and existing challenges in the process. To better understand their feelings, we included activities such as card sorting in our interview process.
We then came up with a journey map for nurses and patients, which helped us better understand the goals and needs of these stakeholders. We looked at the surgery procedure by the six phases: diagnosis, pre-surgery, during surgery, right after surgery, 48-hour post-surgery, one-week check-up and later. For each phase, we discussed patients’ emotions and thoughts, their tasks and touchpoints, in order to better understand each part of the surgery process and discover opportunities. Based on that, we used sticky notes to discover existing pain points in different phases of surgery, especially the post surgery phases.
To better understand patients’ experiences during post-operative care at home, specifically during the dressing change process, we did further empirical research and tried to change wound dressing for ourselves like patients after the Mohr’s surgery.
We summarized our takeaways from user research into the following key insights:
Patients need more help when they start with hands-on post-operative care on their own.
Patients need to be assured that what they are doing / feeling is normal.
Patients’ feelings and emotions affect their post-op decisions.
Patients want personalized care.
Visual representations and written out text are important for post-operative care for the predominant demographic of skin cancer patients.
Some patients hesitate to seek for help from family/staff due to personal reasons. (e.g. being too independent, not wanting to burden family, thinking they are probably fine)
Patients want immediate response to their questions while clinic staff don’t want their workflow to be interrupted.
Patients require simpler ways to find post-operative care dos and don’ts.
To test out our mid-fi prototype and improve the design, our team conducted three rounds of user testing in the UPMC Falk clinic. We tested the prototype with various different potential user groups of the assistant, including clinic staff (residential doctors, physician assistants, and nurses) as well as patients. During user testing, we set different scenarios for our users, including being discharged from the clinic, changing dressing at home for the first time, concerned about bleeding, and feeling pain.
Overall, we received very positive feedback during the three rounds of user testing in the clinic. Except for feedbacks on the design of the assistant, we’ve also put a lot of focus on the accuracy of medical terms and processes to ensure that the assistant gives correct instructions and suggestions, and received valuable feedback during user testing.
Based the feedback we received during user testing, our refinements mainly focused on:
Improving usability and accessibility of the app
Adding more feedforward and feedback to make the app more intuitive
Adding conversational features to allow hands-free interactions
Changing certain wordings to make sure medical terms and demonstrations are accurate
Having detailed stepwise breakdown of processes to guide users step by step, with explanations on each step
Establishing trust by giving encouraging feedback to users
Making action terms clearer and adding more error prevention features
For more details, please check out our research report and final report.
Lorem ipsum dolor sit amet, usu cu alterum nominavi lobortis. At duo novum diceret. Tantas apeirian vix et, usu sanctus postulant inciderint ut, populo diceret necessitatibus in vim. Cu eum dicam feugiat noluisse.
原本不想看迪士尼的烟火是想给一个人的旅行刻意留一点遗憾好以后补成圆满。然而拖拖拉拉直到入夜,买了火鸡腿心满意足准备离开,正走到园子中心的时候灯光突然暗了,然后城堡在身后亮了起来,人群开始欢呼。而我站在离城堡最近的空地,面前就是灯光和烟火。
是缘分吧,躲都躲不掉。所以如果你恰好今天晚上也在迪士尼,你或许会在烟火下面看见一个穿着碎花裙的女子,举着一只火鸡腿,热泪盈眶。
In this project, we explored the speedup of parallalizing the LDA algorithm for text classification, by implementing multiple different versions of parallel LDA using OpenMPI, and testing out the performance with different synchronization policies and different numbers of processes.
Latent Dirichlet Allocation (LDA) is a widely used algorithm in text classification, which clusters word occurrences into latent classes (i.e. topics) after iterations of parameter learning. As the sampling process is extremely computation-heavy for large data sets, we implemented parallel LDA in this project and experimented with its performance.
Parallel LDA workflow:
Split corpus by document
Each process runs local Gibbs sampling
Master gathers updates and send back to each process
We implemented two variations of parallelism LDA using the OpenMPI library - the synchronous version and the asynchronous version. We also added staleness in our implementation.
Synchronous Parallel LDA: updates broadcasted to all processes
Asynchronous Parallel LDA: each process send local updates to master after a few iters, keep on sampling, and updates upon receiving new table
Close to linear speedup until up to 6 procs, and gets smaller after but still achieves 9x with 16 procs.
Learned parameters will be more “stale” as the staleness gets larger. This gets us faster speed, but sometimes might decrease the objective function (log-likelihood) as a tradeoff.
We expected async version to be faster, but since there’s not much work imbalance in sync version, and for async the master takes on more work updating the tables based on messages from each process, the speedup for both are about the same.
Our implementation of parallel Latent Dirichlet Allocation achieves an overall good speedup compared to the sequential version. For future work, better asynchronous update rules might be designed for better work balance to further improve performance.
Source Code | Project Report | Project Poster
下午五点多学校为周六的枪击案集会的时候数度泪崩。
“I want all of our Jewish students to know that we love you.”
“Now more than ever we need to emphasize diversity and inclusion.”
“I want you to know that I’m here for you. WE are here for you.”
“….regardless of your race, belief, or political position. Because we are all humans: we all have someone or something we love; we all feel the pain of loss.”
“But we all know that life goes on, in many ways - that baby less than a mile away; and all of you.”
“The most important thing is not to be afraid.”
“The tree of life is rooted in love.”
台上的人说着说着也几度哽咽。
在所有的人拉着彼此的手低头默哀的时候再一次流泪了。从前和许多人聊时,我都说,虽然常抱怨作业考试诸多压力,在CMU的这几年里却从没有一刻感受到不平等;我说我能感到这所学校对我的接纳和尊重。我还说我能感到我的文化,和其他的许许多多文化,都在这个校园里有立足之地。这一刻我可能比以往的任何一刻更坚信自己何其幸运来到这里。
在Facebook上很多orientation staff里的朋友都在转募捐消息或是新闻报道,看到“No matter where you are from, we’re glad you’re our neighbor”的标语,松鼠山的路口雨中密集的人群和烛光,以及我最喜欢的OL引用的一篇评论中的某句,“…when we see someone in our communities who doesn’t look like us or think like us or pray like us, we still need to think: ‘us.’ We need to find ways to make all of us better off — respecting differences and seeking compromise.”
恰好今天朋友圈里在转一篇名为《100个留在南京的理由》的推送。我认为南京与匹兹堡,这两个我生活的城市,从某种意义上具有极强的相似性——宜居,包容,不争不抢。下午集会听台上的发言者说到我们会用更强大的爱面对仇恨的时候,说到遇难者里97岁的纳粹屠杀幸存者的时候,脑海里忽然闪过小学中学时每一次学校的南京大屠杀遇难同胞纪念馆之行与纪念馆外摆放的白花,想起每年12月13日上午十点南京城上空的警报,警报声里停驻默哀的车流和人群。想起从小到大听过很多遍的那句,“不会仇恨,但不能遗忘”。我认为它具有比爱国主义和战争与和平更普世的注解——爱与人性是比仇恨更强大的力量,而正因为此我们用强调爱、人性、生命、尊重、包容来抵御世上的恶与仇恨,然后付诸行动让悲剧不再发生。
生命与死亡的话题占据了这几日的朋友圈。譬如匹兹堡的枪击案,譬如重庆的公交车坠江事故,又譬如几位公众人物的逝世。只是我们太惯于在这样的消息里动一动手指敲几下键盘地发表哀悼了,一句生命脆弱或是一路走好,再附带缅怀一下自己与之相关的青春和少年时代。以至于微博里原本的最高赞评论还充斥着脸长样子丑的谩骂,转眼就全体痛心疾首叹惋,声称央视的那几档节目是自己的童年。
只是我们什么时候才能在一遍又一遍的RIP里意识到,重要的是,生者应该做什么。应当对世界报以尊重关怀和善意;应当站出来为了不让悲剧重演而发声;应当将每分每秒过得无愧于心;应当珍惜所爱的人和所拥有的一切。也愿每一个你——假如你读到这里——不必经历那么多触手可及的生离死别,就能够明白这一切。
谁都知道美国不是个安全的地方。可是谁都没想到今时今日死亡发生在自己常常经过的那条路上。
上午醒来发现手机上十几个未接电话和未读短信,微信消息列表里已毕业的朋友问是否安好,朋友圈都在报平安。愧疚地接通了语音电话,我妈在电话那头急得差点哭出来。
不是第一次谈论生死。早在大一感恩节前那次人心惶惶的巴黎恐袭时,就曾写下“即便是在匹兹堡这样治安相对好的城市,你无法知晓下一刻是否枪声就在身边响起”,没有想到今日成真了。那时因为死亡流泪是因为恐惧,害怕无法预知的危险;三年后是因为悲哀,一个野蛮愚昧的暴力者几颗子弹就可以夺去多少性命。
枪击发生的那条路就在三年里我去过无数次的松鼠山,很多朋友家的楼下几十几百米。在路上擦肩而过很多犹太人,而不过一个多月前我们的701犹太人教授还因为犹太新年给全班放了一次假。一切都是触手可及的,所以尤为震惊,尤为愤怒。“Screw your optics, I’m going in”, 我以为这是纳粹才说得出的话,做得出的事;川普一如既往地以暴制暴,“Those seeking their destruction, we will seek their destruction.” 而国内媒体新闻推送下的那些拍手叫好更教人心寒。
在今天下午朋友圈转的一篇推送里作者引用说,“我想,一个人可以是另外一些人的敌人,可以是另外一些人在另一个时空的敌人,但他不会与国土、萤火虫、话语、花园、流水与西风为敌。”而我认为那篇文章里更悲观的另一句话反倒更切题,“我预料人们越来越屈从于穷凶极恶的事情;要不了多久世界上全是清一色的武夫和强盗了。”
尽管我们在Facebook上转了那么多呼吁和祈福,我们却大多时候拿武夫与强盗无可奈何,那是一种深深的无力。更何况当你既没有枪,也无法通过投票权来反抗,只能努力保护好自己,然后呼吁和祈福,希望余下的世界能像你期望的那样——生而为人,至少应该善良。
In this project, we explored means to "tell the story behind the scene" through AR. Developed using VuforiaSDK and Unity, this mobile app recognizes art works in the camera view and displays text descriptions of it, such as title, author, background, etc.
When you walk into a museum, it may be very hard to understand the art works, especially if you don’t have much of an art background. The short descriptions by the art works are sometimes too small to read from far away, but you don’t want to block other people. What to do then?
Scene is a project that helps users understand art works with simple and straightforward augmented reality assistance. It helps you understand art works by storing a big number of art work descriptions in the database. Whenever you point your phone camera to an art work, it matches with the art works in our database, and displays the descriptions as text floating above the art work on your screen. In this way, you can have a full view of the art work without having to walk very close to look at the descriptions on the wall.
This project was developed using the Vuforia AR SDK. The on-screen interactions were created in Unity and C#. We used the Vuforia built-in image recognition feature to match with the pictures of art works we store in the database, and then display relevant text we grabbed from Wikipedia to the users.
Google Cloud Platform, Unity, Vuforia SDK, C#
零
一年又一年。坐在回家的飞机上,累到一句话也不想说,却又害怕不写些什么此时此刻所拥有的一切都最终会被时间抹去了。有时回头翻自己的日记,忽然记起几个快要彻底忘却的时刻,总会有种死里逃生的幸运感。
一
期末最忙碌的时候,复习了几整天机器学习的期末,设计课的最后一次大作业又要定稿,几乎熬通宵改方案做presentation,下午接连着考试,第二天从一大早一秒钟都没有休息直到晚上十点,回头继续做设计课的process book。同组最初怎么都带不动拖拖拉拉的韩国小姐姐,到最后的节点上开始在意成绩,于是拖着全组每天熬夜,最后一项任务分配到我,又一直催一直抱怨,质问我在十二点之前到底能不能做完。
缺了一周的觉,紧绷了一天的神经,凌晨十二点的时候,忽然觉得心脏从未有过地狂跳,浑身无法控制地发抖。那一刻真的害怕了,害怕自己会出事,害怕会死在在这个午夜四下无人的大楼里。
打电话给梦阳小姐姐,同组另一个北京的硕士生学姐,说我好怕,我不知道process book还剩那么多要做怎么办,我怕我死在这里。拿着电话的手一直在抖,一半是心脏剧烈跳动浑身不受控制的颤抖,一半是恐惧。
小姐姐打了uber来学校陪我,和我说了许多,说不能这样不顾身体地拼,说设计怎么用巧劲而不是蛮力,说遇到这样的组员以后怎么应对。我于是情绪稍稍平复下来,心跳还是快得不行,手还是有些抖,最后那天最艰难的两个小时小姐姐帮着我一起赶完了最后一次的process book。
晚上回家补了一个长长的觉,醒来心跳依然快得异常。室友担心我,一定要拉着我去医院检查,”心悸”,所幸没有大碍,只是医生说,“你不能再这么一直熬夜了”。
一直以来我总以为自己年轻,身体偶尔扛一扛也没有什么问题。那天是我第一次害怕,真真切切地害怕自己身体会出事。那天梦阳小姐姐来学校陪我的时候和我说, “其实有的时候吧,设计不是你花的时间越多就越好的,有时候要巧劲,抓住他们想要的那个点”,我说确实是,然后又苦笑,“我学的这个专业,至少对于我自己还是花的时间越多啃进去的东西越多,正儿八经学到的也就越多越扎实”。毕竟用用巧劲就能学下知识怎会不想,只是对于现下学的难度和自己的智商,也是有心无力了。但是即便有再多想学的东西想做的事,这种肆无忌惮的身体透支,真的真的,不能再置身体性命于不顾了。
二
在整个中学时代,我一直自诩是学习多用巧劲的人。那时候的课多半简单,稍稍花点小聪明就可以琢磨出复习考试的门道,然后考出一个看上去很是光彩的分数。
大学之后不再有这样的侥幸了,小聪明搭起来的泡沫虚影慢慢支离破碎,于是不得不沉下心来踏踏实实地啃每一门课每一样知识。摸索了两年啊,终于慢慢找到了一些方法,慢慢变得有迹可循,只是还免不得每一门课扑上去几乎花全部的身家性命才能学懂。我当然明白,我终究是个凡人。但至少,应该努力对得起自己。
CMU是个极度推崇“拙”的地方,仿佛辛苦拼命、不睡觉都是值得称赞的政治正确的。于是大环境下每一个人都开始变得踏实勤奋,却像是攀比似的,似乎谁更辛苦就意味着谁更有骄傲的资本。
我起初觉得这样的氛围也好,治一治我从小到大用小聪明堆砌起来的骄傲,治一治永远飘在天上能偷懒则偷懒的毛病。于很多专业课成效当然十分好——这些硬知识,原本就是要花力气的。只是整个人也仿佛变得“拙”了起来,凡是都不管不顾地扑上去花全部的力气,不讲究效率方法,仿佛把自己榨干才算够。
我这才觉得有些不对——并不是花得力气越多最终就一定会越好。这种简单的道理,从小聪明到蛮力走一圈之后,才能又重新醒悟。CMU的大环境当然也是有问题的——这种杀敌一千自损八百的方式,终究也不适合终身学习,透支了身体,又浇灭了许多本该有的热情。
再仔细想想,其实“巧”与“拙”本是不矛盾的。只是大抵之前小聪明用得太多,以至于矫枉过正了,才能体会出全用蛮力的坏处来。
三
设计课是心头的一个小妖精,又爱又恨,爱的时候恨不得全身心地给它,恨的时候又会恨到咬牙切齿。
小时候看我爸画建筑图纸,就很喜欢,我爸说,“学建筑不好,太辛苦了”。于是后来学了计算机。但还是对设计的一切情有独钟,之前有几次在YouTube上看《梦想改造家》的时候,看底下的评论“早知道应该去学设计的”,就暗自偷笑——选了人机交互的双专业,必修里有一小半设计课,虽然科技相关的成分偏少,总是圆了这个一直以来“设计师”的小盼望。
起初的几周是骂骂咧咧着度过的。气这些天马行空的设计师毫无时间观念,气他们给评论缺乏逻辑章法到处发散,气他们打分随心所欲全无标准,气一项大作业每一天都有无穷无尽的小任务,最终得到的却只有最后那一个随意得不能更随意的分数。和我妈打电话的时候几乎气哭,”他们怎么可以这样“。
可气哭之后自己又仔细琢磨,觉得设计的东西不是写程序过test case,不是过了几个给几分这样简单的逻辑,也不是理论课写证明错即是错对即是对的非黑即白。设计本就是个很主观的东西,好与不好,喜欢与不喜欢,很多时候本就是可左可右一念之间的。这与世上的大多事情相似——只是我们在这个简单的非黑即白的泡泡里呆久了,总以为世界就该是这样的。
那些所谓浪费的时间也不是全然浪费的。哪怕是那些看似不起眼的presentation细微差别,于听众的说服力可能也会差了千万。写码写久了,闷久了,也就不免在这些交流沟通的事上不太拘小节。而那些分数里看不见的思考和努力,也都是一份好的设计里必不可少的成分。
这样想想,这看似天马行空不着边际的设计课,反倒是我枯燥繁复写码生活里对性格的极好调剂。以至于后来再遇到专业课的presentation时,如鱼得水得心应手,丝毫不费力气。
而更幸运的是遇到这些在计算机专业的泡泡里永远也不会遇到的与自己世界相隔甚远的人们。这些各异的专业,视觉设计,游戏设计,自由写作,诸如此类可能坐在Gates里写码八辈子都不会产生联系的人们。有的思路清楚总是能理清混乱的讨论,有的总是勤奋又积极抢着为小组做事,有的无论多恼人的状况多大的矛盾都能波澜不惊笑着解决一切问题——这才意识到自己还要学的实在是太多太多了。在那个代码的泡泡里,呆一世也学不到这些,也遇不见这些可爱的朋友们。
设计课啊,骂了千万遍,终究还是爱它的。
四
在设计课之前,多少受学校影响,总是抱有一点技术和难度至上的骄傲,仿佛缺乏技术含量的东西就是坑蒙拐骗不值一提。
所幸,从这固步自封的泥沼中被救了出来。至少不该对这世上技术以外的美好事物嗤之以鼻。我总觉得CMU的本科教育缺了些什么,或者说得更严重些,配不上真正的本科教育。
我们每日沉迷于作业考试分数,赶due写码累到余下的时间只想好好睡上一个安稳觉,就觉得谢天谢地。有时停下一秒胡思乱想,就被接踵而来的due又压得措手不及。
南京大屠杀国家公祭日的时候,整个朋友圈都在刷屏,却唯独刷到CMU的朋友时都是一片期末周的呼天抢地。倒也不是发一条朋友圈就多么意义非凡,只是循环往复的作业考试已经让人这样麻木了,除了自己世界里的这一点悲喜看不到一点其他的东西。第一年往往还记得清楚,愈往高年级愈少,愈发麻木。
那会儿我坐在人来人往的Gates,看着屏幕上图片里南京马路上脱帽的交警和停下的车流,眼前耳边都是代码考试,忽然觉得有点荒唐,想到那个被说烂了的“精致的利己主义”。可惜啊,这所学校所导向的竟然最终是这样的人格。甚至一点都不“精致”,单单只是“利己主义”而已。
我的大学,不该是这样。
五
忙忙碌碌了一个学期,终于要回家了。
周五晚上在改122的期末考试卷,离出发去机场只有几个小时,坐在改卷子的教室里忽然就有些恍惚,有点想哭。
一直以来心底最多的抱怨是世界太大相隔太远,在这个地球另一端,所有家的过往的温暖的一切都遥不可及,总是怨“山海不可平”。久而久之习惯了,发觉把自己埋在这个世界另一端的地方,用所有的工作填满自己,于是那些因为山海不可平的伤痕累累也都不那么每天扎得生疼,反而得到一些清净。它们从未愈合啊,只是不碰得久了,不每天在上面撒一把盐,也就只能慢慢地任由它去,直到麻木感受不到疼痛。
回家的日子近时,这个泡泡慢慢地破了,所有与过往的联系都重新加深,不再要求自己每一分每一秒都要内心强大,于是那些情绪和过往有了可乘之机。离开了这世界另一端一刻不停繁忙工作的保护,独自一人面对没好透或是全然没有好转的旧伤的时候,竟然有些无所适从。
甚至还会每年不时地,又在上面割出一道新的伤疤来。
我想沉迷工作大概是一年大多数时间里唯一的解药吧。对于这样不可及不可期的东西,可能已经不再抱有希望了,连最后一丝执念也只能苦笑着生生消磨干净了吧。
六
太久不写长篇的文字了。从周五下午最后一场期末,一夜未睡,一刻未停,脑子也有些停滞,写出来的东西自己都觉得索然无味,有时矫情,有时又臭又长。
可还是坚持着写完了。此时此刻所拥有的,收获也好,伤痕也好,再拙劣的语言记下,总好过多年以后彻底忘却,仿佛这段时日从未存在过。
趴在舷窗边上,隐约听到脑子里被封禁许久了的声音,眼泪忽然就掉下来了。
“我好想被保护,哪怕一点。”
“我想回家。”
二零一七年十二月十六日 八点十四分 于太平洋上空
In this project, my teammates and I designed a mobile app for the local non-profit warehouse Construction Junction. Through preliminary research and after identifying values and needs, utilizing multiple interactions design techniques to help with our brainstorming, we came up with a smart furniture retail app using augmented reality.
Construction Junction is a large, non-profit warehouse in Pittsburgh, PA supplying surplus construction materials & appliances at reduced prices. Our goal for this project was to design a mobile app for Construction Junction utilizing unique features of smartphones such as camera and sensing.
We found that Construction Junction was listed as one of only three reuse/recycle centers in Western PA. Thus, we learned that our app did not need to introduce a competitive edge to the business, but could focus on enhancing and promoting its core values of sustainability and education. This would become a key component of our long-term road map moving forward.
Our preliminary research also looked at who was involved with Construction Junction and how these different groups interacted with each other. We isolated employees/volunteers, customers/donors, and community/environmental groups. We noted that the primary thing these groups all had in common was the mission of promoting reusability of products and sustainability, and this helped guide the general theme of our design and our overall idea of forming a community around Construction Junction.
Using the research we collected about Construction Junction, we began to investigate the interactions between different users and stakeholders to isolate opportunities for our intervention by creating value flow diagrams. We noticed that there are various different ways users can interact with the company (as donors, buyers, volunteers) and started to focus in on how we could improve users’ interactions with Construction Junction.
We started looking at what assumptions might exist around construction material shopping, and explored possible interventions our app could make by breaking these assumptions to improve the user experience. One important assumption we identified was that customers had to view the products in person to get an accurate idea of how they might fit into their space, which would become key to our proposed app.
Based off our ideation process, our team isolated a huge opportunity in addressing how user’s browse for products online, and decided to approach the problem starting first with space and style constraints. This way, we can maximize the utility of the tool for users by filtering options by what can actually fit in their rooms and what will fit their style, rather than showing users the entire catalog.
To visualize how a CJ buyer would use our app, we each drew a complete flow of the app from creating a project to the wishlist. We focused on two native app features: the AR measuring tool and horizontal swipe to browse. Interestingly, we each had different visual style and emphasis in our low-fi prototype. We then chose screens from each design and combined them to become our final low-fi prototype.
From the low-fi prototype sketches, we narrowed down to 5 screens that highlight the flow of our app. Then we digitized the wireframe sketches and determined the details of the in-between steps. The process of digitizing our sketches helped us identify details we did not consider before. Because our app show inventory results based on user input, we realized a logical sequence is crucial to creating a smooth user experience and to generating useful, insightful data.
In this project, we researched on existing challenges in peer-to-peer furniture exchange, and designed a cross-platform application to address shipping problems during the process. My teammates and I first brainstormed ideas through collaborative sketching and storyboarding, then iteratively improved the design through various rounds of design critique and refinements.
“I hate moving.”
Moving furnitures from one place to another has always been a suffer for both customers and sellers in furniture exchange, especially when neither the seller nor the customer has a car. We’ve seen a thousand times “pick-up only” desks or bookcases on Facebook sales pages, and decided to ignore even if they look decent - just because it’s hard to carry the furnitures home.
To get started with our design for the furniture exchange application, we first did some literature research on the topic.
By searching for some papers and articles on the furniture industry, we gained some basic understanding of the market, different roles involved in the exchange process, and the key factors of value creation during the process.
The pictures above both describe the furniture industry in different forms of representations, and are from the articles “The globalization of product markets and immiserizing growth: lessons from the South African furniture industry“ and “Value co-creation among retailers and consumers: New insights into the furniture market”. From these articles, we found some common key factors of the furniture industry under different contexts - one important factor is shipping / delivery, which is quite unique to furnitures compared to other types of products in market.
We also listed out a few of our competitors, including Ebay (as a general item exchange website), Facebook For Sale Groups, Craiglist, etc. These different competitors show different approaches of furniture exchange currently existing in the market, yet all have different advantages and disadvantages.
By comparing our competitors, we found that lots of successful furniture exchange systems are based on geographical locations. We also found some common existing problems:
Right now most furniture exchange websites look very similar to retail websites of other kinds of products, and do not address or emphasize special or important features for furnitures.
Shipping might be a big issue.
During critique, we received some comments on our scenarios, the screen maps and the lo-fi wireframes:
Customers and sellers always seek for lower ship- ping price, and we need to add price information in our design.
Uber is already existing in market, and we need to figure out unique features of our design to make it stand out in the market.
Convenience is big concern for most customers and sellers, and our current design was not re- solving that problem perfectly.
Based on these critiques, we refined our design and made the below modifications:
We added the price page in the sketches.
We added more details in options for delivery and pickup: for example, the specific time of delivery.
We limited the scope of our design and started focusing mainly on the driver part because that’s the part that creates the most value.
During the second round of critique, we received more comments on our design:
Some furnitures are too large and too heavy for one person to carry, so sometimes drivers need people to help with carrying the furniture.
Some furniture might not fit into all types of cars, especially smaller ones.
Sometimes people lie about being at home, so there’s a possiblity that the seller is not at home waiting for furniture pickup when the driver arrives, and it wastes a lot of time.
It would be helpful if people can schedule ahead.
Based on these critiques, we further improved our design.
When the user clicks on the route of delivery, it will expand to a page of furniture details, including the name, picture, color, dimensions, and weight.
On the product information page, the number of people required to carry the furniture will also be displayed, so that drivers will get prepared for carrying large furnitures. This information is inputted by the seller, and the seller need to pay extra fees for requiring extra people.
When someone registers to be a driver, he or she needs to enter the type of car he or she possesses. The app automaticaclly checks for the type of car required to deliver the furniture based on its dimensions, and will show a little green bar indicating that the driver’s car satisfies the requirement.
Jet.com is an e-commerce company founded in 2014 and later acquired by Walmart. During my summer internship at Jet.com (summer 2017), I designed and created the company’s first automated pipeline to analyze customer calls and emails and provide meaningful insights.
The pipeline first transforms audio files of customer call recordings into text transcripts through speech-to-text APIs, and preprocesses these text transcripts as well as customer emails by cleaning up the data and removing customers’ PII (personal identifiable information) from the text. Then it runs sentiment analysis and extracts keywords from the text, and identifies relevant products mentioned in the calls and emails. The above information for each customer call and email is automatically generated and stored to the company’s database, and can thus be used to generate summaries of products and issues mentioned in customer calls and emails over time.
In this project, my teammates and I designed a conversational user interface for meal ordering for a group of people, and can support various scenarios such as home parties, company meetings, field trips, etc.
The name of our CUI product is “Kara“, which sounds like a name of a friend and is easy to pronounce.
To design a CUI that simplifies group ordering process, we first researched on existing CUIs on the market and explored various scenarios that people might use them. With our initial version of our group ordering CUI, we kept on doing experience prototyping and made storyboards to explore more user needs and added more features to our design.
To better understand the current market, we did a competitive analysis by looked at four existing conversational UI products currently on the market: Google Home, Microsoft Cortana, Apple Siri, and Amazon Alexa. We created a competitive analysis matrix that compares the unique features, strengths, weaknesses, speech recognition performance, and voice friendliness of the four CUI products. More closely related to our project, we also checked whether or not the four products support food ordering, and where do they order from.
It turned out that Microsoft Cortana and Apple Siri do not take food ordering at all, and Google Home and Amazon Alexa both only support a very limited range of restaurants, such as Domino’s. We also looked at the currently existing CUIs and listed out their user flow as a reference for our food ordering CUI design.
We brainstormed on different scenarios where people might be needing our CUI to order food, and wrote a short story to describe the context for each of the scenarios. The scenarios we discussed about are as below.
A student working on his/her homework at school at midnight
A person working late at home
A party where a lot of people order to- gether
People working at a startup in a meeting ordering food
Patients in a hospital hoping to get food
Sick people who cannot get up easily
A person on a diet trying to control his/ her calories intake everyday
A person with a healthy lifestyle always asking for calories before eating
Someone allergic to a type of food who wants to avoid that ingredient
Someone craving for a certain type of dish, like Japanese food or Korean food
A person ordering food while in a car
With the information we got from our research, we decided to work on a CUI that takes group orders.
We name our CUI Kara, since it sounds like a name of a friend and is very easy to pronounce. We then listed out some activities that we want Kara to support.
We went through experience prototyping to figure out more user needs that we didn’t discover in our design process. We asked a few other groups to act in our scenario and recorded what questions they asked and what confusion they had.
During experience prototypring, some people were confused about the food options - “Does it only have pizza ordering, or does it have something else?“; some people raised allergy problems and asked Kara to check for ingredients of food; some people asked for suggestions, like “How should I order?“ or more specific concerns like “I think there are too many chickens in the group meal.“
Based on class critique, we refined our design and added some features that we didn’t consider.
Personality (being sassy, hahaha, that’s what I do)
Users not pronouncing correctly and Kara trying to find what they actually mean
Vegetarion option; allergy stuffs
More prompts when users are confused or forget what they are doing
Asking for something not on the menu causes Kara to look for other restaurants
Remind user after a minute in case they forget (hey, are you still there? Let me know when you want to continue with it, etc.)
If user doesn’t know exactly how many people are in the group, she uses the upper bound
Prepared to answer “stupid questions” (how do I pay)
Searching on Google for general questions (what is Yelp)/One-sentence description (what is this place)
Summarizing our findings in the experience protyping and during critique, we revised the range of activities we want Kara to support, added small talks to our design to make Kara more humorous, and included error handling in case Kara has difficulty handling user input.
To get prepared for the flowchart of our final design, we went through our refined pre-attentives and attentives, and listed out the utterances and responses for each attentive using stickers.
In the “order food“ attentive, we included multiple features of setting delivery time, recommending food types and restaurants, reminding of utensils, reminding of drinks, detecting change in location using GPS, etc.
二十岁生日。
三十一号那天下午一个人在Gates四楼吃盒饭,盘算着马上写些什么作业的时候,手机忽然响了。“Judy? There are flowers for you. I’ll be at CMU in a minute.” 挂了电话冲出大楼,楼外面下雨,雨很冷,又忘记穿外套,就淋着雨一路小跑到校门口,快递的小哥笑盈盈地捧着花,“Happy birthday.”
我对着他说谢谢,一边笑一边拼命流眼泪。我知道无论如何我妈永远不会忘记我的生日。不论在哪里。
抱着一大捧花在雨里往回走,不争气地一直哭,眼泪和雨混在一起,流进嘴里,像冰糖。
也是三十一号下午去取包裹,妈妈早先订好的从纽约一路寄来的千层蛋糕,以及恰好生日这天到货的新耳机。却无端多了个包裹,使劲回忆那天自己又稀里糊涂在亚马逊上买了什么。
钥匙划开,很温柔漂亮的淡紫色盒子,一张Amazon Gift的小纸片,上面写,“Hi Judy, Happy birthday and April Fool’s Day! Yours, Amelia”。 再打开,两只很美的香槟杯。
于是在图书馆里对着满地的鲜花与纸盒幸福得只剩下傻笑,恨不得告诉全世界我被这样地爱着。
偏就是这样的招摇让全世界目睹了我的幸福,于是经过的人们——社团里的朋友,一起TA的同事,偶然认识的学弟学妹,以及素不相识的人们,一脸惊讶地走过,然后恍然大悟一笑,“Happy birthday.”
回到家的时候,室友笑着对我举着暖黄色的小纸袋,“二十岁生日快乐呀”。我寻思关于生日我一句都未与她说,只不停说谢谢,仓皇又不好意思。
党党在QQ上专门发了状态,以我早已习惯常被她@的方式,却还是在看到消息提醒的一刻忍不住偷笑。
晚上好朋友带了鲜花与酒去我家,粉红色的玫瑰与粉红色的香槟酒。“我查了好久Ins上的网红酒”,她说。我接着拆礼物,一张也是粉红色的贺卡。她一拍脑袋,“忘记写啦”。我与她一阵狂笑。“是为了给你留下深刻印象”,她又说。
两个全然不相识的朋友,香槟与香槟杯。我于是得幸在二十岁这一天晚上的零点,喝到一杯很美的玫瑰味的香槟。
我说好累,不想声势浩大外出聚会,躺在床上左思右想,终于一拍脑袋,遂订了一百只鸡翅,拎上蛋糕,去Gates自习区的圆桌,叫上一大帮狐朋狗友,一边啃鸡翅,一边聊最近的生活。
他们说,“我们没带蜡烛,可你要不还是吹一下”,我说好,郑重其事地对着蛋糕上方用力呼一口气,抹茶的粉末撒了一桌。我们于是又笑作一团。
我想我是被爱着的。
我于是也不再惧怕二十岁肩上负担的一切。我想会更勇敢。
明天,明天一定会更好的。
In this project, we designed a mobile app for parents to track their kids' safety on the way home, and I worked on the front end development of the app using Android Studio, as well as integrating other parts done by the other team members.
Safety of kids on their way to school and on their way home has always been a big concern for parents. Our app provides a way for parents to track kids’ safety on their way using location of kids provided by the Google Maps API.
We implemented the app using Android Studio and made use of the Google Maps API to retrive real-time location of users. Whenever a child starts walking home from school, they can click on the “start” button and we will send the location information of user to our back-end database. Based on the destination location entered by the user, we use the Google Maps API to provide an estimate of how much time is needed along the way. Our backend will send the parent an email when the walk starts or when the walk takes much longer than expected. We also designed a “help” button on the main page so that the kid can click on the button in case of emergency and our backend will immediately send an email to the parents to notify them.
Android Studio, Google Maps API, JSON.
往往喜欢写总结或是因为生活精彩得不得不细心梳理,恨不得出一本书吹嘘自己的一点点成绩。生活不尽如人意的时候不爱多说,懒得说懒得写,多么想找一片海把所有烦恼不痛快一股脑儿扔进去,从此再也不见。
跑题了。我的2016,多半是这样的调调。换言之,经历这么多顺风顺水的日子,这样幸运的中学时代,挑战挫折总需要多一点时间和耐性去消化。
这一年我做了什么呢。细细想来并不是一事无成的,甚至太多我自以为陈芝麻烂谷子的成绩,也不过是今年新的尝试。
从二月的第一次hackathon,懵懵懂懂在TartanHacks和HackPrinceton连拿了两个top10的奖,又懵懵懂懂到现在虽说PennApps颗粒无收,到底也是随便想申哪一个hackathon不用为参赛资格犯愁的了。遇见很多很多发着光的人,他们让我觉得自己所学于这个世界而言充满意义,让我真真实实地感到自己的存在。
第一次当助教,站在讲台上的时候仿佛拥有一整个世界。这不是夸张。想到lab里的孩子们,幸福得总是再烦心的事都不见。从暑假给教授打工到现在断断续续也拿了好几万人民币的薪水,倒不是张扬炫耀——异国他乡,高额学费;只有花着自己的钱的时候,无比踏实。
开始试着找实习,面试大大小小不下20场。虽然至今还没能拿到实打实的offer,相比于上一年的倦怠和自我放弃,积累着经验,慢慢也好起来很多。
完完全全打破过去的自己。否定再多成绩也好荣誉也好的泡沫虚影,终于承认自己太多不足,大概也来不及一一改进完,剩下的部分,就交给2017吧。那时候,该让我用一个完完整整的20岁的灵魂和勇气面对这个很大很大的世界了。
也有很多很多不顺利,很多很多烦心事。因为第一学期吃着高中竞赛老本的缘故膨胀的自信,课业不十分顺利,摔了很多跟头;实习屡屡被拒,依然在寻找;室友矛盾,鸡毛蒜皮的争执;难以自拔的自我怀疑,对过去这十多年来所有成绩的怀疑推敲,逼问和审视自己一直以来究竟是否真的足够努力。
更多是困惑。
我的双专业和辅修究竟该如何选择?我该如何准备我的未来?我所爱的究竟是什么?愿意为之奋斗一生的又是什么?
我是谁?过去的我究竟是否有我自以为的优秀?我的勇气又是否足以面对这么多接踵而至的困难挑战?我该如何才能成为一个更好的自己?
我究竟该与什么样的人成为朋友?那些我所珍视的东西是否与我所要适应的东西冲突?我面对这些全新的事物是否足够开放?我有没有用我百分之百的努力去尝试这一切?
这些问题我反反复复问过自己不下上百遍,在匹兹堡空无一人的大街上,在黑漆漆的卧室天花板面前,在喧嚷的人来人往的大楼里。有一些我找到了答案,有一些还没有。所幸在2016年的尾巴上找到了一点头绪,剩余的也就交给2017和未来去慢慢解答,倒也不着急求一个切切实实的答案。
破天荒地疯狂喜欢一些过往不会喜欢的艺人,花钱买专打榜,很多很多难以启齿的迷妹行为。真的很幸运,在已经自觉接近抑郁的关口被这些美好的事物拯救。后来卸下一整年的负担回到家里之后,再看看自己,有点明白,“兴儿和茶蛋是我的吗啡。”
这些或困难或灿烂的日子里,所幸还不是完完全全孤身一人。很多所珍视的关系依旧如初,老朋友们也不好意思一一点名,大约你们看到的时候能够会心一笑;去北京聚会的时候见面嬉笑打闹一如几年前;以及在白天或是深夜被我打扰仍然不厌其烦的某几个你们,真的真的很谢谢你们,在我最脆弱的时刻,愿意收留茫然失措的我。
2017,是该放开手去尝试去努力去寻找的一年。愿每一天每一件事都能踏踏实实地做到最好,愿每一件新鲜事物都能无所畏惧地尝试。愿每一分每一秒都认真努力,问心无愧。愿用开放乐观的眼光去看待一切,小小的成就也好,挫折困难也罢。愿能够热烈地去爱,哪怕只有万分之一的希望。最好再瘦一点。
祝你们的2017都特别幸福。
愿在2017这一年拼尽全力。
零 很长很长的观后感与题外话
周六下午四点场的《北京遇上西雅图2》,匹兹堡电影院偌大的放映厅里零星的六七个中国人,多半成双成对。明明是普通得不行的电影,散场的时候,擦了擦流泪流得有些懵然的眼睛,坐在座位上直到全片的最后,久久不能平复。
学期末的匹兹堡比平日里更加几近荒芜。毕业生们提着行李穿着学位服和家人三两在校门口留念,其余的学生大都早已陆陆续续地或跨过美国的整片大陆或是一整个太平洋回到阔别已久的家。平日里最热闹的Gates大楼,也没有人来人往。
朋友圈里,张三张罗着和老朋友们一波接一波的聚会,李四的状态地点写着国内某个熟悉的地名,王五不说话默默地发出九张精挑细选色彩缤纷的食物照片。
而我们在一个临时暂住终于稍有些温馨的家,挑选着冷冻柜里未曾谋面的蔬菜,或是中国超市里仅有的一种海鲜干贝。
晚上和爸妈外公外婆视频聊天的时候,一向健谈到啰嗦的外婆有些局促地重复了一遍又一遍,你们说,我听着。于是一家人对着屏幕呆呆地傻笑,竟沉默了几秒钟谁也说不出一句话。我忽地有些心疼。我那风风火火的外婆,何时在我的面前,也过得如此小心翼翼了。
电影院大屏幕上的林家爷爷奶奶,一脸淡然又无奈地对吴秀波唠叨,孙儿有出息,在NASA工作,只是他们中文的书信要翻成英文,不然孙儿看不懂。
他们说,在国内好歹是个知书达理的人,到了美国倒好像变得像个文盲似的;他们又说,八十多岁了还得开车是因为,在美国要是没有车,连出门买个菜都买不成;他们还说,现在什么都欺负我们这些老年人。
于是听老爷爷念出“去国怀乡”这翻来覆去背了百十遍的字眼的时候,一行泪还是止不住地从眼角滚落下来。我隐约听见放映厅里前后左右,轻微的哽咽啜泣。
于是他们这样调侃孔夫子的言论,“从前是父母在,不远游;现在是儿女在,父母不远游”,笑得无比自然,亦无比心酸。
于是片尾林家老奶奶终于将老爷爷的骨灰带回湖北秭归时说,“亲人在哪里,家就在哪里”,我想起那时偶然和妈妈谈论起将来是否回国是否定居时,她也曾与我说过一模一样的一句。
于是银幕上的吴秀波十四岁时只身来到美国,独自一人拎着数个半人多高的行李箱与身后的父母告别,那一步三回头的模样与身后翘首恋恋不舍的神情,与八月和一月时上海浦东的我们,如出一辙。
我曾是那样自以为坚强,那样向往自由的孩子。过去的十八年来,那些想家的说法大都是与妈妈通话时一句玩笑般的敷衍。直到春节我张灯结彩呼朋唤友把自己人生第一个海外的春节过得热热闹闹的时候,打开视频聊天听见父母终于得见而激动到近乎沙哑的声音时,我才明白,我的自私,甚至冷漠。
我不在乎有人说,这是一部与上一部毫无关联、毫无故事情节与新意的烂片。即便故事的架构有数不清的逻辑硬伤,即便撇去那所谓致敬查令十字路八十四号里海莲的情怀,它依然如此细微且真实到,让每一个身在异乡的旅人生出起码一丝切肤的疼痛或感动。
我也几乎不敢承认它那样直接而不留情面地揭开了我内心深处埋藏的恐惧。我想起我日渐年迈的外公外婆与这一年到头回不了=家的日子,甚至不敢去想我最怕最怕的事,我最怕的那句,子欲养,亲不在;我也知道爸妈不愿给我任何经济上的压力,即便我惹尽了麻烦,还是倾其所有地供我在这里追寻我未来的任何一种可能。
对不起,我真的很爱很爱你们。
一
这些个略显混乱慌张的日子里,遇见一些人,路过一些人,忘记一些人。身边许多的人们每天卿卿我我甜甜蜜蜜地表演着连自己都无法信服的爱情故事,演的人自在陶醉,看的人不假思索,直到某一日繁华落尽演出散场,再多出一则彼此辜负的茶余饭后的闲话。
四月份的时候接到教授录取我暑期实习的消息,激动、遗憾,五味陈杂。我甚至从未预料到,在这个离开家乡的第一个夏天,就无可避免地陷入了各自天涯杳无音讯的戏码。我依然清晰地记得在2016年的伊始写下这样的愿望,好好组织一次3+3的聚会,却未料到自己会是最早缺席的其中一个。
老朋友们,虽然我或许无法回家无法与你们甚至只是见上一面,然而我对你们的感情,并不比上一个六月我们挥手告别的时候,少一分一毫。
二
我时常听人抱怨,“今天心情不好,因为上次的作业TA给我扣了两分不该扣的分”,抑或,“I did so bad in this exam and I’m dying with 251.” 大家在朋友圈里津津乐道那些所谓全美作业量最大最辛苦的大学排名,炫耀着卡梅无一例外地上榜,像是某种光宗耀祖值得称道的荣誉。
我知道但凡对人生有所助益的大学时代,都不该是轻轻松松含混过去的。然而在这个封闭的城市封闭的象牙塔里,于太多太多的人而言,作业考试代码成为生活的主旋律,与世隔绝,不问世事,那么就算是最顶尖的计算机学科都要被闭门造车的设限所束缚了手脚,最后如穷酸书生一般抱紧“编程之美”的信仰,写着自得其乐不知所云的代码,成为脚踏实地的搬砖工终其一生。
三
在这实用主义盛行,美其名曰面向就业,说得不好听些急功近利的所谓技校,有太多金钱相关的东西成为衡量的标杆。招聘会上,一片西装领带套裙高跟鞋的人山人海,人们迫不及待地把简历殷勤地塞给面试的雇主,用无比逼真的真诚眼神重复着倒背如流的自我推销的台词。
找到好的实习,找到好的工作,即为成功。有那么多那么多的聪明的脑袋,挤破了头热切的盼望着成为谷歌或是微软中一颗默默无闻的小小螺丝钉。
我时常想不通这些活法的意义。平庸地来,平庸地去。我多么想在这样一个聪明脑袋云集的地方,重温当年“即使不能得到诺贝尔奖,也甘愿做一枚垫脚石”那震撼的透彻心扉的感动。
但我们无法将希望寄托于渺茫不可依的“但愿”。于是唯一的解法,只有自救。
四
这一个学期,走过很多路,遇见过很多人,经历过很多事。被六门大课虐得每日只得与凌晨四五点微白的天色为伴,末了成绩也未尽如人意;在Hackathon上通宵未眠最后还是三张椅子拼了一张窄窄的床盖着几件借来的免费文化衫将就地睡了稍许;申请实习被拒,面试助教,费尽周折找到了跟着教授打工的机会;认识了很多朋友,去年秋天时空空如也的简历添了又添,改了又改。
中二病的少年往往对于闯荡的概念有着近乎深入灵魂的执念。我欢喜于自己可以那样热烈地向往并用力地拥抱这样冒险一般的生活,那即使譬如在费城错过大巴一路打车回匹兹堡,或是在陌生的火车站辗转换车一路颠簸来到普林斯顿的曲折经历,也成为了这激动人心的冒险中惊艳而难忘的片段。
假若我们的一生都在追逐冒险与远方,那一定是件很酷的事情。那就至少可以拍着胸脯毫不谦虚地说,我这微不足道的生命,没有白白来到这个世上,没有白活。
五
终于搬进了新家,即便是这个差不多不回国的暑假寄人篱下四人挤着一卧一厅的暂住的小家。从超市买回了一整捆的鲜花折腾了一晚上,又挤挤攘攘地将速冻的食物和生鲜的食材塞进冰箱,锅碗瓢盆置办齐全,总算有了家的意味。
几瓶偷买的酒,几只高脚的马天尼杯,一片杯沿刀工极不熟练的苹果片。
一锅炖熟的鸡腿,一碗番茄汤面,几只看剧时心血来潮煎了解馋的溏心荷包蛋。
倒进一滴柠檬味的洗洁精擦着满池子的油锅碗筷哼着熟悉的调调,是谁来自山川湖海,却囿于昼夜厨房与爱。一个学期与代码作业考试为战的日子过后,这家长里短的幸福,深刻到难以言说。原来我们对如是的幸福,爱得不比真实紧张热烈的未来要少。
柴米油盐,人间烟火。
二零一六年五月十五日下午六时四十一分于匹兹堡
这四个月的尾声,应当有个交代。只是想说的话太多,不知不觉写了五千多字,却又文不对题。
一
每天夜晚十一二点从Gates,也就是计算机院的大楼走出来的时候,可以在流光溢彩的桥上看见头顶满天灿烂的星光。
自申请季那时起就不喜欢卡梅的建筑,那些土灰色的方盒子,像极了二三十年的老房子,新也不足以新得光彩夺目,旧也旧不出一两分民国的情味来,僵硬地杵在冬日光秃秃的山丘上。一眼望过去,写满尴尬。
Gates充满现代感的设计和大大的落地玻璃窗,在这尴尬的校园里显得格格不入。我却喜欢,大抵是因为某一日转头望向落地窗时那种被夜色拥入怀里淹没其中的透彻快感。极孤独,又极畅快。那时候几乎爱上这里。
某一日做题做得开心不愿回寝室,索性在楼里看书直到困时,在Gates六楼落地窗前的摇椅上睡了一整夜。那时觉得无比心安,彻夜明灯倒是比恋人更加温柔的陪伴。
这个校园,又小,又丑。所幸校园的中心是一片偌大的草坪,更所幸这些土灰色的方盒子大都只有六层楼那么高,于是夜幕低垂的时候,草坪的面积大约等同于一整个世界。有时我把整个脸朝向漆黑色的天空和满天的星辰,一瞬间心生以天为盖地为庐的宽广。
我常常倚着一棵树在这漫天的星辰底下在草坪之上坐很久,很久。想一些不该想的人与事,做一些荒唐的梦。有的时候耳机里放着的歌在唱,“时光一逝永不回,往事只能回味”,又或是在唱,“我知道那些夏天,就像你一样回不来,我也不会再对谁满怀期待”,便在这一天一地的星辰的众目睽睽之下鼻子一酸,泪如雨下,也并不太孤独。
二
作业多,考试难。北美留学生们对于CMU的一贯评价。
第一学期总还算一帆风顺,并没有太多的波折。也习惯了这里作业和考试的节奏,觉得无何不妥。也或许是因为大一上学期的缘故,大多数课程还在基础阶段。我向来不喜欢在自己牢骚矫情的文字中包含关于学习的内容,所以也懒得多说。
下学期应该会选六门课,而后双学位/辅修,实习,本科科研,接踵而至。
最大的愿望是下学期可以过得更有规划一些。带去的GRE词汇红宝书只翻开了第一个词汇列表,带去的中文书除了飞机上看完的《局外人》其他早已在书架上落了薄薄的一层灰。相比于安于课业社团,我更喜欢过去六年里常态式的奔波忙碌,不那么安逸的日子。那种生活让人觉得幸福。
那么不得不说的废话,就到此为止吧。向来厌恶自我标榜,奋斗与目标云云,本就是一件冷暖自知的事情。
三
前一阵子南外的哥大学妹一篇中英混杂的录取感言火遍了整个微博知乎朋友圈。
吐槽时没有分毫嫉妒或是看热闹的心态,只是愤怒,鄙夷,心痛,掺杂在一起,极其微妙。
不是不该说英文。也曾在社团的party上偷蹭了学长们家里的桃子利口酒,一分轻微的醉意之间与同伴高谈阔论,被惊讶地称赞天哪你是从中国来的吗一点口音都没有,颇感得意。
我原本可以选择让学校随机分配一个外国室友,于是逼迫自己一天二十四小时在英文的环境中浸染,然后突飞猛进——这是素来被人们称赞为上进的北美留学生们的作为。然而我还是执拗地选了一个中国的室友,在一天的课业与活动结束之后强迫自己用尽量准确的中文表达我所要表达的一切。
所以在某些英文交谈时骤然卡壳不知道如何表达的尴尬瞬间,难免是委屈的。我自知我放弃了练习英文的某些大好机会。虽然并非没有提高。只是英文进步得再慢再艰难,总会日积月累地长进,但从小念着床前明月光长大的我们,假若某一天弄丢了自己血脉里的曾经熟谙的东西,只怕,再也捡不回来了。
人不能忘本。
我偶尔透过窗户看见天边绯红色的云霞晕染出的一天一地,忽然觉得如果某一日看见那些美得令人沉醉的事物,再也记不起“落霞与孤鹜齐飞,秋水共长天一色”的句子,却只能憋出一句“Holy shit this is beautiful!”来,该是怎样的一种悲哀。
因而我有时觉得这个陌生国度的人可怜。他们无法领会某种对这个世界绝美的注解。
四
某一日清晨走过光秃秃的树枝时,突然想起贾铁在高一地理课上的那句“北方有踏青的习俗,是因为他们已经一个冬天都没有看到绿色了。”我们嗤笑,说南师附中的学生一定不需要,只需日日看着校服便可。我于是沉浸在回忆中,在这光秃秃的枝干和路人匪夷所思的目光面前兀自笑成了一个疯子。
笑罢方才觉得有点凄凉,忽然多么希望如同歌里所唱,“前一天早上,我睁开眼已是江南”,一闭了眼便可以回到那个钟灵毓秀的故乡。我打心底里厌恶那些充斥这土灰色的粗糙建筑,有如地摊货般五颜六色的简易霓虹灯,而想念我那温婉的南京,想念那时郁郁寡欢时穿过楼下的南图绕过总统府,在长江路出奇安详的大街上闲庭信步,抑或一怒之下走到夫子庙钻进乌衣巷里散心解闷的日子。相比之下这个被称为宜居的美国城市显得粗鄙而不修边幅,说黯然失色大概都有些勉强。
南京在我心里原本是个再平凡不过的二线城市,然而如今我笃定,这世上,再没有比我的家乡更令人钟情的地方了。这世上没有什么比它更好。这是真心话。
我很少用华丽的辞藻堆砌给我的家乡。但是这一次,情之所至,也顾不得那么多。
五
我也说不上这些日子我是否想家。
大概发烧的那天想过,想起若是在家里,妈妈应该会请一天假在家里为我冲藕粉熬鸡汤,喂我吃药;而我可以心安理得地在床上躺一整天,在傍晚时分宣称自己胃口略微好些于是再以此骗取些平日里耍赖而不得的美味,顺便厚着脸皮依仗着老徐以及诸位老师的仁慈翘掉一天的作业。
权衡利弊,最终咬了咬牙,爬下床一个人吃了药去上课,考试。
我也说不上来我是否正如所有把留学吹得神乎其神的文章里所说,变得独立坚强,百毒不侵。只是那天和妈妈说起回国时的计划,方才意识到从上海回南京那段的高铁票和地铁线路全然不用我操心,竟然为此幸福了大半天。
我时常在校园里、在匹兹堡的大街上,想起自己曾经四海为家豪情满怀的许诺。出国时我偏把《生活在别处》这一本书带在身旁,并私以为书名所说的本义如果按照“La vie est ailluer”更不引得歧义的翻译,大概是要说,真正的生活在远方。就好像我在出发时写,“说他的家在未知的地平线开启之际”。
只是偶尔在冷风中瑟瑟发抖一个人裹紧棉袄的时候,望着满街行色匆匆互不相干的人,觉得有个家亦好。
不记得是哪天在计算机课上和身边另一个中国妹子说起为何学计算机数学诸如此类的女生格外少,学到顶尖的又格外少,又是否是因为确然存在智商差异。
我说我举一个不太恰当的例子,如果男朋友和写代码/做科研只能任选其一,你一定会选男朋友,对不对?
妹子认真地点了点头。若有所思。
当然,只是因人而异,就事论事,倒不是说全世界的女孩子都爱爱情胜过代码和科研。
走在陌生城市的陌生校园里,我不止一次地告诉自己,这未来四年近两百万的花销不是为了挥霍光阴与钱财来粗浅地看一看世界然后转身囿于昼夜厨房与爱,不是为了平淡地走到二十五三十的关卡然后平淡地嫁人生子,平淡地过一辈子。
我何尝不爱鸿鹄之志,又何尝不想有燕雀的幸福。
只是这二者无法兼得,或者说太难。更重要的是源于这笔巨额的亏欠,就算仅出于愧疚,我的许多抉择也或许已经由不得我放肆胡来。
六
临行前爸妈给了不少现金,都存进了我自己在美国的借记卡,对我说说需要用时别省着。
爸爸原是说,如果有大的开销就刷他的信用卡,免得我在这里手头拮据。然而数次站在收银台面前看着付款的数额,将钱包里的两张卡攥在手里犹豫踌躇很久,总是心力忽地一疼,叹一口气,最终还是刷了自己在这里的生活费,想着省一顿饭钱其实也无妨。
与我一起长大的你们,一定了解,我的家庭也只是在国内的这万千个仅仅衣食无忧却并不算富裕的普通家庭中的一个。
刷卡的时候,看着银子流水一样地花出去,下意识地乘上六点四的汇率,觉得心疼父母;网上学生账户上的三万多美金的学费账单,触目惊心。来这里之后方才对钱有了逐渐清晰的概念,才从小到大第一次感觉心疼,钱捏在手里舍不得花,只因觉得父母在国内,甚是不容易。
我的父母对我不像那些非富即贵的人家一样,大手笔地信用卡随便刷管够,甚至我在美国这四个月来的生活,有时不得不精打细算,如履薄冰;虽然十八年来他们从未让我过过一天穷日子之后,我不得不在这个陌生的地方适应人们往往称之为”穷留学生“的身份。
但是。
我知道我拥有这世界上最好的父母,他们爱我,并且愿意倾其所有让我去看一看外面的世界。
七
这些日子里发生了很多事。
巴黎恐袭的那天晚上,朋友圈里除了祈福和报平安以外,就是流传着关于ISIS的攻击目标的传言,“Rome, London, and Washington DC will be next.” 紧接着是新闻说,ISIS在美国十五个州有潜伏的人手。正当大家强颜欢笑地安慰自己,匹兹堡这样没有存在感的小城市大约不会有人在意,匹兹堡市长又突然宣布继续接受叙利亚难民并愿意接受从宾州其他城市转移来的原有难民;德州警方发现疑似ISIS恐怖组织携枪进入某栋大楼被当场拦下。如此种种。
整个匹兹堡,整个美东,人心惶惶。大家讨论着要不要为保安全取消感恩节去纽约玩的计划,或者是退掉好不容易抢来的饥饿游戏首映票,以至于不把自己困在一个小小的电影放映厅里任凭宰割。
那天晚上我们揪着同宿舍美高的妹子,详详细细地讲了一遍在美国高中里所教的如何应对枪击案的每一个细节。
对着电脑屏幕,久久不能眠。
这是我人生第一次这样近距离地感受死亡,以及关于这个充斥着枪声的国家的一切。我本以为那是一种“把脑袋拎在手上走江湖”的豪气,切身体会时才知,那原是一种“把脑袋拎在手上惶惶终日”的胆战心惊。因为清晰地知道,即便是在匹兹堡这样治安相对好的城市,你无法知晓下一刻是否枪声就在身边响起。
我们笑说,这时候才发觉出天朝的好处来。在国内,应该是不用担心宗教极端主义跨过一整个中亚跑到这个和他们不太相干的态度总不太激进的地方来挑事端。
巴黎恐袭后那些真实而触手可及的恐惧,应该是我们认识世界的某一个起点。
原来,这个世界,并不和平,并不安宁。
那些日子里我想过死亡。我想起数年前那个关于世界末日的玩笑。甚至有一瞬间的念头,假若当年真的拥有足够的勇气实现,排除人力不可为的因素之后应该也就可以对于死亡完全坦然无惧。
明日,管他的虚无缥缈的明日!今时今日遂了自己的心愿,把每一分每一秒都过得无愧于心。始觉这日子的过法,应该有向前看十年的远见,亦要有明日即是生命最后一日的风度。
那一刻忽然对自己彷徨纠结过的一切,有了一个明晰的答案。
八
这十八年里,爱过一个人,喜欢过一些人,辜负过不止一个人,做过不止一件错事。
我总是自负地以为可以掌控自己全部的情感与思绪;总是自负地以为在这茫茫人海中找到一个我爱的亦爱我的人,何其容易。
在某一次和对门妹子深夜的聊天时,我笑说,我是被年幼时的经历惯坏了,觉得一切皆是理所应当。然而这偌大的世界上,想要一段称心如意的爱情,哪有这等容易。又另一日和妹子说起过往的故事时,讲着讲着竟无意间发现三四年前的某一次亲吻是左脸颊还是右脸颊的记忆依然清晰,忽地心里一疼。
假若回到六年前的此刻,那年我十二岁,拥有大把大把的光阴可以挥霍,我可以肆无忌惮地喜欢一个人,我可以用六年的时光肆意妄为;一年前的我碍于未来种种不确定的担忧与恐惧,选择了退缩,继而就是我做梦也未曾想到过的错过;如今的我十八了,再有个六年八年,也该是身边的同伴陆陆续续开始嫁人的年龄了。
我每日在Gates大楼里看到来来往往的留学生们,那些长着三十岁面孔的中国来的PhD们,心惊胆战,觉得变老也是咫尺的事。
时光何其飞快,何其残忍。
我多么想在我长大老去或许某一天不得不屈服于现实之前,再赌一次,赌一次年少轻狂时候的童话,会不会真的实现。
不记得是什么时候在知乎上看到关于“读书读着忘着又有何意义”的提问下,有个回答说,就如你幼年时候吃过的食物,这些食物最终长成了你的骨骼血肉,成为你生命的一部分。这很有道理,而且用于很多其他事物亦然。
我无法预知未来会怎样。可我该是有多么庆幸,在我年少曾如同白纸一般的时光里,拥有过了一些刻骨铭心的完美无瑕的东西。这些过去,假若让我用一生来回忆,都不算太长。
“如果我不曾见过太阳,我本可以忍受黑暗。”
九
十二月是下一届出国生早申请陆陆续续放结果的月份。这几日朋友圈和Facebook里充斥着各种喜讯与祝贺,一片喜气洋洋。
我也曾有一闪念间想过,假若那时没有因为分手而下定决心出国,如今我将身在何处。或许不出意外地考上清华或北大一个还行的专业,却也断断进不了诸如清华计科和北大数院物院之类的大神们的去处,或许学着一个我自己也并不十分清楚的专业,或许还可以和旧时的朋友们常常出来相聚,或许某些心之所系还有万分之一的可能。或许。
平心而论,向来心高气傲的我,在一个并不占优势的竞争环境中与隔壁早早准备出国的学生们相争,最终被前十的学校全拒,靠着那四年里半吊子的信息学竞赛功夫和舌灿莲花捞得了一个CMU计算机院的录取,选择了这所综排不到北美前二十的学校,总还是心有不甘的。却又常常试图说服自己,假若是放在国内,定不会有机会进到这样好的CS院,在这样好的平台上往更大的世界去努力。
人们都说高考是独木桥,可是出国申请岂不更甚。这偌大的中国,一年能进哈佛耶鲁这等神校的人,区区十来个而已。
初二那年的我觉得技压群雄是轻而易举的事情;初三那年的我觉得胆敢有人屡次比我考试名次高那简直就是造反。若真的留在国内一帆风顺地去了我所想去的地方,大概还是会在大四结束某个申请的失意或得意的瞬间,明白世界之大,我之渺小。
而更早明白这个道理,无何不好。
更早一些明白,事有人力之不可为也。
可是这并不妨碍,我仍然愿意尽力一试,就像我那时还是在文书老师保守稳妥考虑的阻拦之下执拗地申请了我所想申请的所有学校;就像我即便再难也至少坚持一边写文书一边拼了命地刷题把SAT刷到两千三;就像我一月所有人提交完申请之后放松的日子里,还是拼了命地把托福刷到一百一十九。
我还是得把我能做的做到最好。明白“事有人力之不可为也”的意义,不在于听天命,而在于尽人事。
我也但愿在这未来的数年时间,在被现实强x了无数次之后,依然可以我行我素地热爱我所热爱的一切,依然怀有一颗赤子之心。
十
我向来是个读书太少却情感太过丰富的人。因而止不住写一些文不对题的东西来污染视听。
此刻在旧金山机场的大厅里等待转机,再有十多个小时就会回到我四个月都未回的家。
耳机里在放好妹妹的歌,平日里总是拿来写作业的时候凝神静气,只因为曲调歌词简单,粗略含糊地放过去不细听来不会触动什么情肠。此时此刻唱得却莫名地惹人眼泪,“西窗的雨,归来的你,醉在故乡斜月里”。
往上海的航班快要登机了。说不上是狂喜,说不上是紧张,大约是某种极其微妙的情绪。
近乡情更怯,不敢问来人。
二零一五年十二月十八日十一点四十四分于旧金山机场