End Semester Recap

I just finished all the exam and papers today. It has been a long day (wake up at 6) and I feel very exhausted. However, I want to do a quick recap of this semester before my judgment affected by my final grades.


CS 380D Distributed System

My first exam is a disaster. The exam is all about system design + understanding of RAFT. I didn’t get used to the system design in general. All I do is to remember every detail of some system implementations, which usually don’t matter from a design perspective. Vijay has been emphasized this point a lot but I didn’t get it until the second half of the course. The course is good and the biggest takeaway for me is two:

  • Can comfortably read distributed system paper. I cannot claim I can read all types of system paper but for distributed system paper, I begin to get the momentum and start to know where to focus on during the reading. Takes a lot of struggling to get this point but I’m happy overall after reading more than 30 papers.
  • Got intrigued by the distributed system and storage system. In the past, I have been struggling to find my research interests.  But, thanks to this course, I become more intrigued with the combination of distributed system and storage. Right now, I like storage more. I read tons of LSM-based storage paper to find a topic for my final course project. I really enjoy the moment to read LevelDB and PebblesDB’s code and enhance them in some way. That further makes me want to know more about SSDs and HDDs.

CS 388 Natural Language Processing

I trade this course with algorithm class. I have a mixed feeling right now. On one hand, unlike the NLP course that I take in the previous semester, which looks at NLP from models perspectives (HMM, CRF, different networks). this semester’s course is from more traditional linguistics + machine learning perspectives. I really like this part. Overall, I strongly believe linguistics domain knowledge should play the key role in NLP study not various deep learning manic.  First two homework, we look at language models and LSTM based on the intuition of prediction can be two ways. I really like Mooney’s view that you always think about intuition whether the model can work or not instead of mindlessly applying models.  Like last semester’s NLP class, my interests with class declines as the semester progresses partly due to the fact that the material is no longer relevant for homework and exam. That is my bad.

The final project is on VQA, which mostly done by my partner. I only gather the literature and survey the field plus some proofreading. I’m OK with that as I want to have more time working on my system project and my partner wants to work alone in the modeling.  This leads to my lesson learned from the class:

  • Graduate school is about research, not class. Pick the easiest courses and buy yourself time to work on the research problem that attracts you.

If I look back right now, I want to take algorithm class instead. My thoughts to NLP is that I want to start from the dumbass baseline and know the history of the field. If you think about NLP, the most basic technique is just regular expression pattern matching. But, how do we go from there to more complex statistical models is the most interesting point I want to learn.

LIN380M Semantics I

The course is taught by Hans Kamp, which I believe invents the Discourse Representation Theory (DRS). Really nice man. I learn the predicate logic, typed lambda calculus, Montague grammar and DRS. Very good course for the logic-based approach to derive the semantic meaning of a sentence. However, I do feel people in this field put a lot of efforts in handling rule-based exceptions like how do we handle type clash in Montague grammar. When I turn in the final exam, Hans is reading some research paper. He is still doing research and that inspires me a lot.

Other Lesson Learned

  • “Don’t be afraid to fail, be afraid not to try”. I learn a lot from my final system project partner. Reading complex code can be daunting but we can always start to play around even when we cannot understand the code fully. There is a great deal of psychological barrier to be overcome. My partner always starts with reading and then writing. Once bug happens, he is happy because the bug is an indicator of progress, which eventually leads to working code.
  • Work independently. When I got stuck for a while, I always want to seek help instead of counting on myself to solve the problem. It seems that I can never trust myself ability to solve the problem. By observing how my project partner solves the problem, I learn a lot. Start to trying and always seek for the root cause of the problem and situation changes as long as you start trying.
  • Some tips about system paper writing:
    • Use hatch on the bar graph. People may print out their paper in black and white. Use hatches on the bar graph help them to distinguish which bar is your system and which bar is the baseline system.
    • Add more descriptions to each figure and table below. I used to think that there should be only one line of description for each picture. But, as pointed out by my another project partner, people need instructions when read the graphs. People love the pictures and they hate to go to the paragraphs to search for the instructions to understand the graph. Thus, put instructions directly below the picture. Great insight!
  • I really want to know how to measure a system accurately.  From my system project, I realize that measuring the system performance is really hard. Numbers fluctuate crazily and you have no clue why is that because there are some many layers of abstraction  & factors in the experiment environment that can potentially impact the system measurement. I really want to know more about this area during my own study and summer internship.
  • System improvement without provable theoretical guarantees will be very unlikely successful. Overhead or the constant factor hidden in the big-O model usually dominate the actual improvement you might think you can get. For example, there are overhead in spawning threads. We need to compare how much we can get by having multiple threads running in parallel to do the subtask vs. having one single thread do the whole thing. PebblesDB’s paper on the guard and improvement to compaction ultimately prove that we really need to think more before getting our hands dirty. By reading the paper, I get the feeling that they know the system will work before even implementing one because they can clearly show that their functionality works before writing a single line of code. I need to develop more sense about this and taking more theory class.


Ok. Time to pack and catch the flight.


On Reading CS Papers – Thoughts & Reflections

Be forewarned:

  • This is not an advice post. There are tons of people out there who desperately want to give people advice on reading papers. Read theirs, please.
  • This post is a continuous reflection on the topic “how to read a CS paper” from my personal practice. I will list out my academic status before each point so that it may be interesting to myself on how my view on the matter has changed as time goes forward.


The first year of my CS master program. Just get started on CS research.

  • It’s OK to not like a paper

In my first semester, I majorly read papers on Human Computation and Crowdsourcing.  Very occasionally, I read papers on NLP. Some papers on NLP are from extra readings in Greg’s course. Some are related to Greg’s final project, which deals with both code and language.  I don’t really like and want to read papers back then. In NLP class, I prefer to read textbooks (Jufrasky’s one) and tutorial posts that I can find online. One roadblock for me to read papers is that there is certain background knowledge gap I need to fill and I just simply don’t know how to read a paper. So, for Greg’s NLP course, I only read some papers related to my final project. This paper is the base paper for my final project. I got this paper from professors in linguistics and software engineering and they want me to try out the same idea but using neural network model instead. I read this paper several times and the more I read, the more I want to throw up.  I just think this paper hides many critical implementation details and the score 95% is just too high for me to believe. The authors open source their code but their code has some nasty maven dependencies, which won’t compile under my environment. Their evaluation metric is non-standard in NLP and many “junk words” wrap around their results. Of course, the result of my experiment is quite negative.  I often think it is just a waste of life to spend your precious time on some paper you dislike.  Here, I’m more of talking about paper writing style and the reproducibility of papers’ results. I probably want to count shunning from some background gap as a legitime reason not like a paper.

  • Try to get most of the paper and go from there

I got this message from Matt’s Crowdsourcing class. In the class, I have read a very mathematical heavy paper, which invokes some combinations of PGM and variational inference on the credibility of fake news. I’m worried back then about how should I approach a paper like this one, which I’m extremely lack of background and mathematics formula looks daunting.  I pose my doubts on Canvas and Matt responds in class and gives the message.  I think the message really gives me some courage on continuing read papers.

  • It’s OK to skip (most) parts of a paper.  Remember: paper is not a textbook!

This semester I’m taking a distributed system class. To be honest, distributed system paper can be extremely boring if they are from industry. Even worse, system paper can be quite long: usually around 15 pages, double column. So, if I read every word from beginning to end, I’ll be super tired and the goal is not feasible for a four-paper-per-week class. So, I have to skip. Some papers are quite useful maybe just for one or two paragraphs. Some papers are useful maybe just because of one figure. As long as your expectation about a paper gets met, you can stop wherever you want.

  • Multiple views of reading a paper

I didn’t get the point until very recently. I did quite terrible on the first midterm of my distributed system class. The exam is about how to design a system to meet a certain requirement. In the first half of the course, I focus on the knowledge part presented by the paper but that doesn’t work out well. Until then, I realize that I need to read those systems paper from a system design point of view: what problems they need to solve, what challenges they have, how they solve the challenges.  OF course, those papers are valuable from knowledge perspective: how consistent hashing works, for example. But, depends on the goal of reading paper, I can prioritize different angles of reading a paper. If I need to implement the system mentioned in the paper, I probably need to switch to a different paper reading style.

  • Get every bit of details of paper if you need to

It’s time again for the final course projects. Again, I need to generate some ideas and find some baseline papers. In this case, “skip parts” and “get most out of the paper and move on” strategy probably won’t work well. All in all, I need to understand the paper and those are rely on the details from the paper. In this case, I need to sit through the whole journey and remove any blockers that I may encounter.

Freedom of speech

Piazza is an online forum tool that is heavily used in the academia. It is used to help students ask questions and get feedback from both peers and instructors. It has a goal that is similar to Slack in the sense that they both try to cut the duplicate emails sent by several people for the same or similar type of request. It is a good tool but every tool that comes with power has its own consequence.

Instructors can perform the following configuration when they setup the forum for the course.

Screen Shot 2018-02-09 at 11.58.12 PM

Basically, this option means that when you make a post, whether you can choose to be “Anonymous” to both your peers and instructors or to your peers only (instructors can still see who makes the post).  The following picture shows what this option looks like from student’s perspective:

Screen Shot 2018-02-09 at 11.58.33 PM

The intention for this option I guess is that some students may feel embarrassed to ask questions. They might think their questions are dumb and will make them look bad in front of peers or instructors. I think this option is used as a way to encourage students to ask questions bravely.

However, this option may get abused. From my observation, Piazza is used as a way for instructors to show off their teaching quality. This is important for Assistant Professors because teaching still means something (if teaching quality doesn’t matter, why institution asks for the teaching statement at the very first place?). In addition, the teaching quality in some sense is an important indicator for students to evaluate you as a person. This is important for professors who are looking for graduate students because research publication is only part of the story and how those professors interact with students may be a crucial indicator to how good a professor as a human being is (evaluation may be a better indicator but it is confidential). Thus, if some potential students look at the piazza that his interested professor teaches gets a lot of complaints. The students may have a second thought on whether he should work with him for research (maybe he is a very bad person even he is doing a good research).

Thus, the instructors have a strong motivation to censor the posts on the piazza. This scares the students because they don’t have a secure way to provide feedback to the instructor. Let’s assume that the majority of students has a good heart: they won’t say bad stuff to the instructor who actually really cares about students. Thus, the time that something slightly negative appears on the Piazza may be a very important signal to the instructor that something wrong with his teaching. However, due to the strong motivation for instructors to show off their teaching quality through Piazza, the instructors may start to censor the speech on the Piazza by turning the option off.

I didn’t realize this thing last semester. Last semester, the instructor from one course sets this option off and I was thinking maybe he wants to know the students who are shy to ask questions and provide some individual attention. However, this semester, the instructor from one of my course initially turn the option on so that everyone can truly ask questions as “Anonymous”. Then, until one day, someone makes the below post and the option is turned off. Now, no students dare to make slightly negative posts.

Screen Shot 2018-02-10 at 12.28.57 AM


I fully understand the interests conflict between students and instructors on the use of Piazza: students may think Piazza is a secure way to provide anonymous feedback while instructor may think bad posts on the forum make them look bad. However, I still think there should be a better way to address this conflict to protect both students and instructors especially with the technology we have nowadays. But, (unintentional) censorship is not something we want to culture especially in the Academia. By the way, for this course, I still think the instructor is good but the material is quite challenging without laying down a solid theoretical foundation beforehand. He went through the material again after this post but too bad the truely “Anonymous” is gone.

A writing project – Daily Bible Reading Notes

I didn’t write any post this January, which is bad. So, to keep this place alive, I decide to start a writing project – Daily Bible Reading Notes. I will read bible verse each day and take a note of the thoughts and questions related to the bible verses I read that day.  To make notes relative organized, I’ll make a post each month and keep update that post in that month. This project serves also a self-experiment on how long I can insist doing this.

I may have questions during the reading but my view on Bible is that I don’t want to actively seek out the explanation of those questions. I think the answers to those questions are unique and depend on each person’s view. Over the time, God will explain everything to me and all I need to do is to catch the signal from my daily experience.

利未记22-24 (02/07/18)


你 要 對 他 們 說 、 你 們 世 世 代 代 的 後 裔 、 凡 身 上 有 污 穢 、 親 近 以 色 列 人 所 分 別 為 聖 歸 耶 和 華 聖 物 的 、 那 人 必 在 我 面 前 剪 除 . 我 是 耶 和 華  (22:3)

这节经文给我感觉神就非常的严厉。他想把所有不干净的人都消灭。但是如果用基督教的观点来看,人生下来就带着罪的。难道神就要将我们铲除么? 也许唯一途径不被消灭就是受洗成为一个洁净的人,成为基督徒。

六 日 要 作 工 、 第 七 日 是 聖 安 息 日 、 當 有 聖 會 、 你 們 甚 麼 工 都 不 可 作 、 這 是 在 你 們 一 切 的 住 處 向 耶 和 華 守 的 安 息 日 。(23:3)


你要曉諭以色列人說、凡咒詛 神的、必擔當他的罪。那褻瀆耶和華名的、必被治死、全會眾總要用石頭打死他.不管是寄居的、是本地人、他褻瀆耶和華名的時候、必被治死。打死人的、必被治死。打死牲畜的、必賠上牲畜.以命償命。人若使他鄰舍的身體有殘疾、他怎樣行、也要照樣向他行。以傷還傷、以眼還眼、以牙還牙.他怎樣叫人的身體有殘疾、也要照樣向他行。打死牲畜的、必賠上牲畜.打死人的、必被治死。不管是寄居的、是本地人、同歸一例.我是耶和華你們的 神。 於是摩西曉諭以色列人、他們就把那咒詛聖名的人帶到營外、用石頭打死。以色列人就照耶和華所吩咐摩西的行了。(24: 14 – 23)


利未记25-27 (02/08/18)








你們不可作甚麼虛無的神像、不可立雕刻的偶像、或是柱像、也不可在你們的地上安甚麼鏨成的石像、向他跪拜、因為我是耶和華你們的 神。 你們要守我的安息日、敬我的聖所.我是耶和華。你們若遵行我的律例、謹守我的誡命、我就給你們降下時雨、叫地生出土產、田野的樹木結果子。你們打糧食要打到摘葡萄的時候、摘葡萄要摘到撒種的時候、並且要喫得飽足、在你們的地上安然居住。我要賜平安在你們的地上、你們躺臥、無人驚嚇.我要叫惡獸從你們的地上息滅.刀劍也必不經過你們的地。你們要追趕仇敵、他們必倒在你們刀下。(26:1-7)


我是耶和華你們的 神、曾將你們從埃及地領出來、使你們不作埃及人的奴僕、我也折斷你們所負的軛.叫你們挺身而走。(26:13)










马太福音1-3 (02/09/18)



这里出现了一个非常被提及的概念:义人。这个概念其实挺不好理解的。我看了一下对应的英文翻译:righteous man。结合这句话来看,义人在这里我理解为为她人着想的人。这里马利亚未婚先孕,按照这句话理解,约瑟是应该在众人面前羞辱她。但是,因为约瑟是个义人,他只是想暗暗把马利亚休掉,顾全马利亚的面子。其实这点也是北京人所讲究的做人要尽量给别人留个面子,不要把事情做绝。

那時、有施洗的約翰出來、在猶太的曠野傳道、說、天國近了、你們應當悔改。這人就是先知以賽亞所說的、他說、『在曠野有人聲喊著說、預備主的道、修直他的路。』(3:1 – 3)


約翰看見許多法利賽人和撒都該人、也來受洗、就對他們說、毒蛇的種類、誰指示你們逃避將來的忿怒呢。你們要結出果子來、與悔改的心相稱.不要自己心裡說、有亞伯拉罕為我們的祖宗.我告訴你們、 神能從這些石頭中給亞伯拉罕興起子孫來。現在斧子已經放在樹根上、凡不結好果子的樹、就砍下來、丟在火裡。(3:7-10)




當下、耶穌從加利利來到約但河、見了約翰、要受他的洗。約翰想要攔住他、說、我當受你的洗、你反倒上我這裡來麼。耶穌回答說、你暫且許我.因為我們理當這樣盡諸般的義.〔或作禮〕於是約翰許了他。耶穌受了洗、隨即從水裡上來.天忽然為他開了、他就看見 神的靈、彷彿鴿子降下、落在他身上。從天上有聲音說、這是我的愛子、我所喜悅的。(3:13-17)

这里又再度出现了“义”这个概念。这节经文我觉得比较难以理解。但是,我目前的理解是受洗代表的有两层含义:1. 代表洁净 2. 代表承认神是父的地位。那么“义”在这里就可以理解为道义。因为如果耶稣是神派下来”将自己的百姓从罪恶里救出来”(1:21),那么耶稣本身就应该是洁净的。同时他也应该承认神是他的父。只有受了洗,这两层含义才能达成。后面神对耶稣的行为的喜悦也就可以解释通了。

马太福音4-6 (02/10/18)

對他說、你若是 神的兒子、可以跳下去.因為經上記著說、『主要為你吩咐他的使者、用手托著你、免得你的腳碰在石頭上。』耶穌對他說、經上又記著說、『不可試探主你的 神。』(4:6-7)


虛心的人有福了.因為天國是他們的。哀慟的人有福了.因為他們必得安慰。溫柔的人有福了.因為他們必承受地土。飢渴慕義的人有福了.因為他們必得飽足。憐恤人的人有福了.因為他們必蒙憐恤。 清心的人有福了.因為他們必得見 神。使人和睦的人有福了.因為他們必稱為 神的兒子。 為義受逼迫的人有福了.因為天國是他們的。人若因我辱罵你們、逼迫你們、捏造各樣壞話毀謗你們、你們就有福了。 應當歡喜快樂.因為你們在天上的賞賜是大的.在你們以前的先知、人也是這樣逼迫他們。(5:3-12)


你們是世上的鹽.鹽若失了味、怎能叫他再鹹呢.以後無用、不過丟在外面、被人踐踏了。你們是世上的光.城造在山上、是不能隱藏的。 人點燈、不放在斗底下、是放在燈臺上、就照亮一家的人。你們的光也當這樣照在人前、叫他們看見你們的好行為、便將榮耀歸給你們在天上的父。(5:13-16)





这段经文是讲基督徒不能离婚时常备搬出来的经文。这次阅读,我特意看了一下对应的英文翻译,顿时觉得自然语言确实是模糊的。这句话对应的英文是:“But I tell you that anyone who divorces his wife, except for martial unfaithfulness, causes her to become an adulteress, and anyone who marries the divorced woman commits adultery.”  这里causes在我看来有两种理解方式,一种是中文翻译这种叫妇人成为淫妇。另外一种是导致女人成为淫妇。那么后者就有一种逻辑是是否离婚就一定会使妇人成为淫妇呢?我理解是这个是有概率的。那么基督徒不能离婚这点就是尽可能的去避免因为离婚使一个妇人去堕落。虽然我们不是直接让妇人成为淫妇的主要原因,但是正是由于离婚的这个行为很有可能导致了妇人成为淫妇。这是神不想看到的。

只是我告訴你們、甚麼誓都不可起、不可指著天起誓、因為天是 神的座位.
不可指著地起誓、因為地是他的腳凳.也不可指著耶路撒冷起誓、因為耶路撒冷是大君的京城。 又不可指著你的頭起誓、因為你不能使一根頭髮變黑變白了。




你們聽見有話說、『當愛你的鄰舍、恨你的仇敵。』只是我告訴你們、要愛你們的仇敵.為那逼迫你們的禱告。 這樣、就可以作你們天父的兒子.因為他叫日頭照好人、也照歹人、降雨給義人、也給不義的人。 你們若單愛那愛你們的人.有甚麼賞賜呢.就是稅吏不也是這樣行麼。(5:43-46)


所以我告訴你們、不要為生命憂慮、喫甚麼、喝甚麼.為身體憂慮穿甚麼.生命不勝於飲食麼、身體不勝於衣裳麼。 你們看那天上的飛鳥、也不種、也不收、也不積蓄在倉裡、你們的天父尚且養活他.你們不比飛鳥貴重得多麼。 你們那一個能用思慮、使壽數多加一刻呢。〔或作使身量多加一肘呢〕何必為衣裳憂慮呢.你想野地裡的百合花、怎麼長起來、他也不勞苦、也不紡線. 然而我告訴你們、就是所羅門極榮華的時候、他所穿戴的、還不如這花一朵呢。你們這小信的人哪、野地裡的草、今天還在、明天就丟在爐裡、 神還給他這樣的妝飾、何況你們呢。 所以不要憂慮、說、喫甚麼、喝甚麼、穿甚麼。這都是外邦人所求的.你們需用的這一切東西、你們的天父是知道的。 你們要先求他的國、和他的義這些東西都要加給你們了。 所以不要為明天憂慮.因為明天自有明天的憂慮.一天的難處一天當就夠了。(6:25-34)


马太福音7-9 (02/11/18)

你們不要論斷人、免得你們被論斷。 因為你們怎樣論斷人、也必怎樣被論斷。你們用甚麼量器量給人、也必用甚麼量器量給你們。 為甚麼看見你弟兄眼中有刺、卻不想自己眼中有梁木呢。 你自己眼中有梁木、怎能對你弟兄說、容我去掉你眼中的刺呢。你這假冒為善的人、先去掉自己眼中的梁木、然後纔能看得清楚、去掉你弟兄眼中的刺。(7:1-5)


你們祈求、就給你們.尋找、就尋見.叩門、就給你們開門。 因為凡祈求的、就得著.尋找的、就尋見.叩門的、就給他開門。你們中間、誰有兒子求餅、反給他石頭呢。求魚、反給他蛇呢。你們雖然不好、尚且知道拿好東西給兒女、何況你們在天上的父、豈不更把好東西給求他的人麼。所以無論何事、你們願意人怎樣待你們、你們也要怎樣待人.因為這就是律法和先知的道理。(7:7-12)

这段经文非常的有力量。经文鼓励大家去努力去询问,而一系列的比喻告诉我们为什么神会把最好的给我们。最后一节其实和古人的 “己所不欲,勿施于人”是一样的道理。但是,似乎现在这条在现世已经不能么通用了。你待人真诚,但是你不能期望别人也这样做。原来不信主之前会觉得为什么要这要做呢?自己岂不吃亏了。但是,现在渐渐的觉得这些都会有天上的父补偿给我们。关于这点只是去教会听到的,还要具体去查阅圣经寻找出处。

你們要進窄門.因為引到滅亡、那門是寬的、路是大的、進去的人也多。 引到永生、那門是窄的、路是小的、找著的人也少。(7:13-14)

今天在读到这段经文的时候,脑海里突然有一种声音就是关于我是应该去做system还是去做AI, 紧接着又想起了我上学期Prof. Dana Ballard的一席话: “when I see there is a path that is so crowd, I start to think the probability of my success.” 这句话是在我们讲到deep learning的时候提到的。

所以凡聽見我這話就去行的、好比一個聰明人、把房子蓋在磐石上。 雨淋、水沖、風吹、撞著那房子、房子總不倒塌.因為根基立在磐石上。凡聽見我這話不去行的、好比一個無知的人、把房子蓋在沙土上。雨淋、水沖、風吹、撞著那房子、房子就倒塌了.並且倒塌得很大。(7:24-27)


耶穌在屋裡坐席的時候、有好些稅吏和罪人來、與耶穌和他的門徒一同坐席。 法利賽人看見、就對耶穌的門徒說、你們的先生為甚麼和稅吏並罪人一同喫飯呢。耶穌聽見、就說、康健的人用不著醫生、有病的人纔用得著。經上說、『我喜愛憐恤、不喜愛祭祀。』這句話的意思、你們且去揣摩.我來、本不是召義人、乃是召罪人。(9:10-13)

这个故事在第8章和第9章记录耶稣所行的神迹中印象给我最深。尤其是最后一节“我來、本不是召義人、乃是召罪人。” 我从中看到了耶稣品行的伟大。一个教授如果只看重一个在本科就发表各种论文的学生来录取他们当自己的学生,那么这个学生的成长和这个教授有什么关系呢?再看看耶稣,他不是来召义人而是召罪人,其中工作的艰辛就好比你要把一个没有任何文章发表的人培养成世界一流的研究员。这段经文让我感受到耶稣的伟大。多说一句第8章,第9章讲了很多人因信得救。信这个看似简单的心理状态实则艰难万分。尤其是面对考验的时候,是否还选择相信神,在我看来是基督徒一生的修行。

你們禱告的時候、不可像那假冒為善的人、愛站在會堂裡、和十字路口上禱告、故意叫人看見.我實在告訴你們、他們已經得了他們的賞賜。 你禱告的時候、要進你的內屋、關上門、禱告你在暗中的父、你父在暗中察看、必然報答你。 你們禱告、不可像外邦人、用許多重複話.他們以為話多了必蒙垂聽。 你們不可效法他們.因為你們沒有祈求以先、你們所需用的、你們的父早已知道了。 所以你們禱告、要這樣說.我們在天上的父、願人都尊你的名為聖。 願你的國降臨。願你的旨意行在地上、如同行在天上。 我們日用的飲食、今日賜給我們。 免我們的債、如同我們免了人的債。不叫我們遇見試探.救我們脫離兇惡。〔或作脫離惡者〕因為國度、權柄、榮耀、全是你的直到永遠、阿們。〔有古卷無因為至阿們等字〕 你們饒恕人的過犯、你們的天父也必饒恕你們的過犯。 你們不饒恕人的過犯、你們的天父也必不饒恕你們的過犯。(6:5-15)


马太福音10-12 (02/12/18)

凡在人面前認我的、我在我天上的父面前、也必認他。 凡在人面前不認我的、我在我天上的父面前、也必不認他。你們不要想我來、是叫地上太平.我來、並不是叫地上太平、乃是叫地上動刀兵。因為我來、是叫人與父親生疏、女兒與母親生疏、媳婦與婆婆生疏.人的仇敵、就是自己家裡的人。 愛父母過於愛我的、不配作我的門徒、愛兒女過於愛我的、不配作我的門徒。 不背著他的十字架跟從我的、也不配作我的門徒。得著生命的、將要失喪生命.為我失喪生命的、將要得著生命。(10:32-36)

这段圣经让我觉得很激烈。尤其是“並不是叫地上太平、乃是叫地上動刀兵。因為我來、是叫人與父親生疏、女兒與母親生疏、媳婦與婆婆生疏.人的仇敵、就是自己家裡的人。愛父母過於愛我的、不配作我的門徒、愛兒女過於愛我的、不配作我的門徒。” 这些其实是很多慕道友无法理解的,而且我也不是很明白。因为家人对于我非常重要,但是耶稣这里却是强调人要把他摆在第一位。这里的矛盾该如何解释?


在我理解这里展现的道理是:每人都有一张嘴,她可以想说什么就说什么。那么我们应该因为这个人的嘴里的话而或喜或悲么?不,我们要遵循一定道理。凡是违背这个道理的,我们就不听。凡是遵循这个道理的,我们要听。那么这个道理是什么,我看来就是 “總以智慧為是”。

凡勞苦擔重擔的人、可以到我這裡來、我就使你們得安息。我心裡柔和謙卑、你們當負我的軛、學我的樣式、這樣、你們心裡就必得享安息。 因為我的軛是容易的、我的擔子是輕省的。(11:28-30)


你們或以為樹好、果子也好.樹壞、果子也壞.因為看果子、就可以知道樹。毒蛇的種類、你們既是惡人、怎能說出好話來呢.因為心裡所充滿的、口裡就說出來。善人從他心裡所存的善、就發出善來.惡人從他心裡所存的惡、就發出惡來。我又告訴你們、凡人所說的閒話、當審判的日子、必要句句供出來。 因為要憑你的話、定你為義、也要憑你的話、定你有罪。(12:33-37)


污鬼離了人身、就在無水之地、過來過去、尋求安歇之處、卻尋不著。於是說、我要回到我所出來的屋裡去.到了、就看見裡面空閒、打掃乾淨、修飾好了。 便去另帶了七個比自己更惡的鬼來、都進去住在那裡.那人末後的景況、比先前更不好了。這邪惡的世代、也要如此。(12:43-45)




In relationships: a first taste

It’s October 30th today. I only have one more day left to compose a post for October. Blogging can be very hard during school time because there are endless tasks you need to get done in a timely fashion with certain expected results. Even though I have given up watching videoes, playing video games, writing technical blogs (almost) for this semester, I still want to write something here to keep the blogging trend going: I have written at least one post per month for the past two years. So, here it is.

There are many things happened in October and surprisingly, those things are all about the relationship: I got baptism to become a Christian, which indicates a new relationship with the God; I start seeing a woman, which is a relationship in a normal standard. One thing I am always curious about when I don’t involve those relationships is: how life can be different when you are in a relationship. Most of my knowledge on this matter is from the media and the people I observe. For the relationship with the God, I barely know anything. I haven’t actively thought about this since I graduated from the college and I won’t even think about being a Christian before coming to Austin. For the relationship with a woman, that I have been thinking about quite actively especially when I was a high school student. I always want to know the taste of being with someone. However, quite surprisingly, if you ask me now how life changed after being with God and being with a woman, I would say: the former one is quite significant but the latter one doesn’t change much.

Being with the God

Being with the God is a huge decision to me. I went to a church back in Madison for two years but I could barely feel anything internally. I always treat going church on Sunday morning as a way to sing some songs and take a break from study. However, after arriving in Austin and thanks to some incidents, the picture of God becomes clear to me. I start to feel the life journey I have been through is perfectly designed to me. Attending Madison for undergraduate makes me mentally strong to the setbacks and going back to China for work makes me grow up like an adult and start to learn all the soft skills I previously ignored: communication, love, and family. All those things prepare me to head back to the States and pursue the further study. In addition, I always know that I have sin but I don’t know what way can help me to get rid of that and start a new life. Even worse, I constantly get seduced by Satan to do the things that hurt my friends and my family. I know I’m wrong but the pleasure coming from the crime is just too much and that gives me the pulse to commit again next time. Thankfully, I have the chance to know the God and I get my way out of the vicious cycle.  After becoming a Christian, I learn to view things in God’s view and try to pass the love to others. I learn to forgive the conflict and do things in the honor of God. Thanks to God, he prepares a woman for me.

Being with a woman

Surprisingly, being in a relationship doesn’t change my life that much. I simply have one more person to care about and I need to allocate certain time for that person. This doesn’t differ from spending time with my parents previously. She is a Christian as well and we adhere to the same core values. All the rest of difference seems trivial to reconcile. However, we have been dating for like a month and we are still in the calibration period: we start to know more about each other and be careful with the relationship traps that people usually fall into. However, with the help of the God, I think I’ll be fine.

Does teaching matter?

I really hesitate whether I should spend my precious hours during the working days composing this blog post. However, I feel I should. I wrote down the title several days ago but I felt some pieces were missing to formal a relative concrete post. However, today, the miracle happened and I can finally complete my puzzle.

Several days ago, I feel quite frustrated because there is a homework due for one of my classes and I have no clue how to finish it. I dig into the books on the subject and try to research the solution out. The most frustrating part isn’t the whole process of seeking answers. It from the lectures. The class is quite popular among the CS graduate student and no matter what areas of their research, everyone I know in the program will take this class sooner or later. The professor for the class is quite famous for his research but I have to say that the quality of the teaching is controversial. By controversial, I mean there is a debate in my head on whether his style of teaching is good or not. If you are familiar with Prof. Andrew Ng’s CS229 lecture videos, then his style is exactly opposite of Prof. Andrew Ng’s. Unlike Prof. Andrew Ng’s mathematical teaching style, professor in my class skips most the f derivations of the formulas and in some cases, he will read through the slides and talk loud about some steps of the derivation. He usually ends the 90 minutes lecture 30 minutes early and in-between he may make some jokes or take a diverge into his research areas that might seem related to lecture topic. The good side of his teaching is that he may offer some intuitions or insights on why we perform those steps and sometimes those few words may help you connect the dots. His teaching style may look like a good fit for someone has a solid background in the field but if you are relatively new to the field, you may have some hard time. This “twisted” class partially leads to my question in the title: “Does teaching matter?” For me, under the context of trying to finish the homework, I cannot see any good from my professor’s lecture style.

The reason that I now look quite peaceful in accepting his lecture style is because of some new insights into research. In a nutshell, you just really don’t have enough time getting everything figured out all at once. Once you’re inside the graduate courses, you will start to read research paper immediately. There can be a lot of background knowledge you need to clear up especially you are new to a field. However, can you say “let me take a pause and get everything figured out at the first.”? No! There are unstoppable piles of papers coming to you and all you need is try to iteratively make best out of the paper. If there are mathematical formulas you don’t understand, in most cases, that’s ok as long as you get a big picture of the paper. The formulas matter the most when you actually start to build your own models. But, that’s not like I have to super clear about every bit of variables appeared in the set of formulas. Many of times, you can take them as given and go straight to use them as basic bricks to build your own building. This feels a lot like playing with LEGO: you don’t care how each piece is made of. You simply use them to build your stuff. The way of looking at knowledge is totally different from your undergraduate where you are tested out every bit of information taught in class through the exam. This observation may look easy but it is really hard from psychological perspective especially when you are a strict person who holds tight to your knowledge system. This psychological barrier is hard to break when you have relative enough time to read through a single paper. You may really hog onto the background or related work section of the paper and you may think there is always a piece of information that you find yourself unclear. Then, you take several months to study the material in order to move a few words to the next sentence of the paragraph. That’s exactly the beauty of the graduate school where you get bombarded by the papers. You just simply don’t have enough time to get everything cleared up before moving on. Classes are heavily centered around the papers and you are sort of expected to figure out on your own by adopting an iterative approach to the knowledge understanding. Take PCA algorithm as an example. The first pass of the material may just simply know how to follow the algorithm and implemented it. The second pass of the material may involve understanding the intuition behind the method and some mathematics derivations. The third pass of the material may actually need to dive to figure out every bit of information and so on.

Now, let’s get back to the question: “Does teaching matter?” It is sort of yes and no question depending on the perspective. From the undergraduate perspective, the hand-holding strategy is probably the must because that’s how we help students build the solid knowledge foundation and allow them to have the basic strategies to survive in the water. Now, for graduate students, it’s debatable whether we should go freestyle of teaching like my professor of the class or we still proceed somewhat like hand-holding but with modification. I guess that depends on the information that the instructor wants to deliver: knowledge itself or how the research is done.

P.S. The miracle happened to me today is during the calculus discussion section, a bunch of freshman chats out loud when I try to explain the solution of the problem to the class. That brings me to think whether the education quality of public system relatively weak compared to the private institutions is due to the quality difference of students. People may think that the reason why faculty in public universities don’t really care about teaching that much is due to the lack of the incentives. But, I’m now starting to think whether that also probably involves another party as well: the students who in short give the wrong signals to the faculty who try hard to achieve teaching excellence. That’s probably an another post in the future.


“work-life balance” at school

Everything so far goes great for me. Austin is a nice place: you don’t have to worry about extremely cold weather and unlike Beijing’s summer, the summer here is not about humid air. Everything feels both familiar and strange at the same time. The usual part is that the school life style is the one that I’m most familiar with. However, on the other hand, it feels a little bit strange to me because I become quite okay with working style: you get up, go to work, and after eight hours, you go back home and sleep. To be honest, there isn’t much pressure when you can enjoy your adult single life. You just get out of school, and there is no intensively homework due, and you are free to do whatever you want after work. That’s why I have the opportunity to write bunch of blog posts in the past two years. But, taking a break from work and heading back to school is totally different story. You need to adjust your time schedule back to probably the most intensive and high pressure schedule. There are endless deadlines you have to meet and all of them are quite intense. You cannot say to your professor that due to the limit of resources, you have to push back the GA date of your programming assignment. All in all, you are expected to get the job done in a timely fashion at school (of course, you are also expected this from your boss but lots of factors can make this sentence not strictly hold in a real setting working environment).

That brings up one important issue that people usually emphasize the most when they work: work-life balance. Specifically, under the academia setting, the question becomes:  does work-life balance matter to the students? In my early college year, the answer I’ll give is “No!”. The reasoning is simple: I’m in a state of endless worry. I worry about the job hunting; I worry about I become lazy and don’t make enough out of the expensive tuition and cost of living. So, I spend most of time working at library or labs in the hope of that “hard working” can make myself less anxious. The end result is not good. I can practice this life style until I’m sophomore and I quickly burn out when I’m junior and senior. Those years the intensity of advanced classes and the work in research labs make me breathless. Thanks to the cold weather in Wisconsin, things become even worse: I feel depressed and hopeless. I don’t want to work at all. I end up spending whole days playing video games and I even skip the final exam to my algorithm class in the Fall semester of my junior year.

Now, after two years of work, I gain some new insights from this miserable experience. One thing is about the worry itself. I have been reading Dale Carnegie’s book “HOW TO STOP WORRYING and Start Living“, and in this book, the author says the following:

Clearly, what I needed was a textbook on how to conquer worry – so again I tried to find one. I went to New York’s great public library at Fifth Avenue and Forty-second Street and discovered to my astonishment that this library had only twenty-two books listed under the title WORRY. I also noticed, to my amusement, that it had one hundred eighty-nine books listed under WORMS. Almost nine times as many books about worms as about worry! Astounding, isn’t it? Since worry is one of the biggest problems facing mankind, you would think, would’t you, that every high school and college in the land would give a course on “How to Stop Worrying”? Yet, if there is even one course on that subject in any college in the land, I have never heard of it. No wonder David Seabury said in his book How to Worry Successfully: “We come to maturity with as little preparation for the pressures of experience as a bookworm asked to do a ballet.”

I have strong feelings towards this text. Lots of important lessons are barely taught or even mentioned in school. In most cases, you seem to be expected to find them out on your own from your own experience. It’s a “Swim or Sink” situation. I don’t blame our education system for this because you can hardly come up with a way to teach a course about “worry” with proper assignments and exams. However, those lessons are so crucial to people and you’d better have some tools in your mental toolbox to know how to handle it. Otherwise, sooner or later, some situation or life events will eat you up just like what happened to me in my junior year. There is a sentence from Jesus: “Take no thought for the morrow.”, which gets translated into “Have no anxiety for the tomorrow” in modern English. In other words, we try our best for today and hope for the best. This one is important for me because I don’t want to work ten hours day because of the worry. I want to work ten hours a day because I just want to work on the day.

Work-life balance means important to research as well. There is no doubt that research is a hard job and unquestionably, I will meet various difficulties when working on research projects. However, I want my future self know that even I face challenge in research, I can still have life. I don’t want to put all my eggs in one basket. This is just like researchers want to work on multiple research projects because you always have plan B when one project doesn’t go well. Keeping work-life balance can help you when you start losing faith in this job because, all in all, you still have something left in your pocket.