Setting Up the Macbook Air for Development

Reference for self:

  • installing PostgreSQL (thanks to this forum thread for resolving the issue I was getting)
  • install XCode (comes with SVN and Git integration)
  • installing django
    • first I tried to do this with svn, but the command failed…so I decided to install SVN from macports. It finally just finished
    • in the time it took macports to install svn (and a bunch of dependencies which I thought were already installed…like sqlite3), I cloned the django git respository instead
    • configure the django.pth file in site-packages
  • installing MAMP for apache, php, and mysql
  • install postgresql and mysql python drivers
  • clone my code from git
  • run the code! (*cross fingers)
  • resume development after almost 1 month of no activity….

RE Mental Set Failure

This past Sabbath I taught a lesson on “Taming the Tongue” to my J1 students. For the mental set, I thought I would ask the students to recall anything that another person said (preferably also present in the classroom) that for one reason or another, sticks in their mind, good or bad. The point of this exercise was to demonstrate that our words can have a deep impression, perhaps one we would never expect them to have when we are speaking them.

I thought it was a pretty good idea, but unfortunately it was an utter failure. No one could remember anything that stuck in their minds, except for inconsequential dialogue that occurred recently.

I’m hoping the reason for this is because I phrased the question poorly. In retrospect, I could’ve tried phrasing the prompt as “Think of something that anyone in this room has said that has made a lasting impression in your mind,” but I have a feeling this would’ve been ineffective as well. Does this require too much thought for J1 students? Or maybe their experiences are still too limited? Or maybe they’re too shallow and don’t give careful thought to what people are saying?…hopefully that’s not the case!

In any case, I have much to learn in becoming an effective RE teacher.

The Sweet Psalmist of Israel

Thank God, last week I was able to spend several hours after work at Pacifica church to pseudo-attend EWR (and enjoy delicious free dinners). Below is my attempt at contributing a devotional, which is something I have not done in awhile. The process of editing/peer review was refreshingly rigorous and is something that I had forgotten and have missed from EWR’s in the past. Anyways, the idea for this was something I heard from a sermon recently, and I wanted to share it.


People are often remembered by remarkable discoveries, critical innovations, or monumental achievements because of their impact on human history and society. Those accomplishments are typically summarized in a person’s epitaph. For example, the epitaph of Thomas Jefferson reads:


If we were asked to pen an epitaph for David in the Bible, what might we include? Perhaps descriptions such as “Victor over Goliath,” “Mighty king of Israel,” or “Subduer of the Philistines.” Indeed, David had many feats and titles of worldly renown. The author of 2 Samuel, however, before recording David’s final words, decided to describe him very differently.

“Now these are the last words of David.

Thus says David the son of Jesse;

Thus says the man raised up on high,

The anointed of the God of Jacob,

And the sweet psalmist of Israel:”

— 2 Samuel 23:1

Broadly speaking, the first three descriptions summarize the stages of David’s life. The last, however, describes what David did – not as a warrior in his youth or as a king in his adulthood, but as a psalmist throughout all his days. Despite all his marvelous accomplishments, the Bible remembers David for the things people more easily overlook – his words of thanksgiving, praise, and glory to God.

How will we be remembered? Do we desire to be remembered by man for our degrees and titles, or by God for our offerings to Him?

Day to day, we may study diligently and work tirelessly in the hope that at the end of our lives we can be remembered by some small but lasting contribution to the world. Yet let us not forget that the recognition of men will pass away with the world, but the recognition of God will endure. The heart that we pour into our servitude may be long forgotten by people, but it will be forever remembered by God.

May we be remembered less for our worldly merits, and more for our life-long service to God.



In the original Hebrew verse, the last clause literally says “the sweet/pleasant psalms of Israel.” Thus, the translators have interpreted this to mean “the sweet psalmist,” although the original literal description could be more profound and abstract. Anyhow, that is a topic for further study and meditation :)

NYST, BibleDB –> Bible Tidbits

It’s been awhile hasn’t it?

Thank God, two weekends ago the NYST was completed at Hillsborough church in NJ. This was the first time I’ve ever coordinated anything in church of this scale, so although it was a bit stressful, I learned a lot and feel blessed to have such reliable and diligent coworkers in NYM. I also gained a few powerful tidbits during the seminar which were really needed and they have renewed my sense of meaning and strength in serving God (lately I’ve been feeling a bit weary, including during the time I spent prepping for NYST). I guess I’ll just share a few that I remember off the top of my head.

  • Sometimes our zeal can cover up a hidden motive that we weren’t really aware of. In one of the classes we learned how Paul was truly zealous for God before his conversion, yet his zeal (and that of the Pharisees as well) actually stemmed from his desire to assert himself. The law of God is in essence good and holy and righteous; how can anyone who is so zealous for the law miss its very essence and become someone cruel who enjoyed punishing others? Zeal without true knowledge can become zeal with an ulterior motive. And even if it doesn’t, zeal without knowledge causes more harm than good.
  • A growing fellowship must know where its strength comes from. Likewise for the coordinator and for any worker of God. Paul says in 2 Corinthians 3:5 – “Not that we are sufficient of ourselves to think of anything as being from ourselves, but our sufficiency is from God” (emphasis added). I think more recently I’ve come to try to rely on my own strength without really entrusting to or having faith in God’s power. As a result I was always tired and reluctant to do work. But if we know where our strength comes from, we have the assurance that in whatever we have been entrusted to do, we can have sufficiency from God.
  • Be wary of becoming too task-driven or inflexible with deadlines, because it may lead to caring more about the smoothness of an event than the needs of the members who participate. Arguably it is necessary to be task or deadline driven because otherwise things just don’t get done. But we need to be careful not to become so efficient that we neglect the needs of the people and the purpose of holding such events (which are intended to meet those needs). I may have been guilty of this in preparing for the NYST so I need to think a little bit more on how to strike a good balance.
  • When dealing with weariness from holy work, it is important to pinpoint the cause of the weariness. Are we tired/burdened because our spirit is not being truly satisfied? I think this is commonly the case for me, and I believe this blog post on 5 loaves 2 fish summarizes the concept very well. If we’re not being satisfied in spirit, then it’s an indication that our service is more like busy-work and not something we do because it is fulfilling. Perhaps our servitude is not accompanied with the necessary cultivation. If we do not know the God whom we serve, how can that service be meaningful to us? Jesus set such a wonderful example for us. After every great work, like feeding the 5000, he retreated to pray. This teaches us that after we complete some holy work, whether it be an RE workshop or a seminar like NYTS or NYST, that is the time we need to pray the most. That prayer is needed for spiritual rest and renewal of strength. We often emphasize prayer in preparation for some event or special activity, but forget that prayer is just as important afterwards too.

During the fellowship on the last night, we had a few epic rounds of telephone charades (with like 20 people in each line). It was wildly funny to watch and I’m glad I was the designated photographer. Anyways, Pr. Hou had a really interesting observation from it which he shared during the closing ceremony.

He said that the game reminded him of how difficult it is to pass a message down sans variation and mutation. Indeed, in telephone charades the original message becomes beyond recognition by the 3rd or 4th person. When it comes to the truth, we are also tasked with passing down the gospel to those who come after us. It made me realize two things:

  • We need to really know what we believe in, and understand what we have been taught by those before us. In a game like telephone charades, it is extremely difficult to perpetuate the act if you don’t know what you are portraying, even if you mimic every movement mechanically.
  • Even when we think we know the message, we don’t realize our inadequacy until we’ve tried teaching it. “You don’t really know it unless you can teach it.” Sometimes in telephone charades people were able to recognize the answer, but their execution in communicating it to the next person left more to be desired. Thus, even if they knew what the answer was, it was still lost afterwards.

In the game it’s always funny to pick out who in the chain of people really messed it up, but when it comes to the truth of the gospel, we must certainly not be the generation that distorts it for those who follow us. Paul urged Timothy to guard the doctrine with the Holy Spirit, and to preserve the doctrine. As churches become increasingly liberal, the word “doctrine” takes on an increasingly negative connotation of narrow-mindedness and conservatism. But like it or not, doctrine is indisputably crucial to Christian faith – Paul’s exhortations to Timothy and the churches in general attests to that.

In light of all this, it is truly a marvel that the doctrines of True Jesus Church have been preserved since her establishment in 1917. Across borders, cultures, and generations, our basic beliefs have been kept intact. By the grace of God, may we continue in the pattern of sound words which we have heard.

Now onto a completely different topic, I’ve been thinking about what to do with BibleDB. The site’s been inactive and I would venture it’s because of these reasons:

  • people are simply too busy
  • it seems like you’re supposed to write some long and insightful reflection (in this respect it has become something quite different from the original intention of categorizing verses)
  • even if someone did want to get around contributing, the password is long forgotten

A redesign has been swimming around in my head for a little and I’ve gotten around to developing it. I call it “Bible Tidbits” because the purpose of it is to jot down “tidbits” or bite-size notes/annotations, rather than fully developed reflections or devotionals. These tidbits are generally the short little notes you might squeeze within the tiny margins of your Bible, but often record some interesting observation or thought associated with a passage, or with a set of cross references.

Thus, the semantics for the content in this redesign is different from the existing BibleDB. Instead of “Context notes” and “Reflection,” there is “Tidbit” and “More,” for cases where you do want to put down more elaborate thoughts. Typically, however, only the “Tidbit” will be populated and the “More” will be hidden by default unless the person wants to specifically write more stuff. The design is meant to feature the tidbit prominently, so no more need to click on a single record to view its content.

I also removed categories altogether, and just left the organization to tagging. This lets users organize their notes themselves rather than enforcing some categorical scheme.

And the most important enhancement, in my personal opinion, is cross references. Tidbits can be associated with multiple verses/passages instead of just one.

I will say, however, that I’m not developing this app and trying to push it so that many people will want to use it. Ultimately, I’m kind of developing it for myself and tailoring it to the way I work, and if it appeals to other people, great! But for now, I’m just hoping it can be a useful tool for me, a place to perhaps centralize all my Bible margin scribbles and inspirations that can be retrieved later for further development.

Some things I would like to put in place before “releasing it” for general use are authentication/login with existing services (most likely google or facebook) so people don’t have to maintain another special account, and a way to query a passage reference and bring up all the tidbits associated with that range (this is already possible in BibleDB, but because the underlying data model is different, doing it in the redesign is a little more involved).

<begin shameless plug>Anyhow, if you’re interested in checking out the preview, let me know! It’s a fun (although somewhat time-consuming) project for me as it is also an opportunity for me to work with HTML5, CSS3, and Javascript even more. It would be great to get some feedback though, especially in relation to how it should be different from BibleDB so that it can be more useful/more convenient to add content. So again, if you’re interested or just curious to see it, let me know and give me suggestions! </end shameless plug>

I’m not publishing the url since what I have now is basically a prototype and it could very well be so inefficiently fetching too much data in each request that if even a few people play with it my very limited memory quota will be exceeded, causing my webhost to terminate my process.

Brother MG

Brother MG and his wife JW began truthseeking at East Bay, according to my memory, about a year ago. They experienced many blessings and graces from God, both receiving the Holy Spirit before being baptized. JW received the Holy Spirit first and was baptized during last year’s spring ESSC. MG received the Holy Spirit several months ago and a special baptism was scheduled for him, since his health was deteriorating.

Today, I was informed that brother MG was called back by the Lord in the afternoon.

I did not have too many conversations with MG, but each one was enlightening and caused me to reflect. Sometimes a new believer’s faith reminds us what faith and spiritual cultivation should be. We were talking about our personal Bible reading, and I think I said something along the lines of how sometimes Bible reading can become dull at times, but we need to keep at it because all of God’s word is useful for teaching and there are a lot of interesting things, etc. MG said something that made me thank God while also causing me to feel a little shame.

Oh, the Bible keeps itself interesting! Everyday before I read it, it’s like, “What am I going to learn today?”

During the short period of time after his baptism and before his health took a turn for the worse, we had always said that we should get lunch during the week, because we both work in the same city. We even exchanged phone numbers, but for whatever reason – preoccupation, laziness, being in a rush – I did not call him and ate at my desk as usual. Even after I heard he had been admitted into a hospital a few weeks back, I always thought there would be a time when we would have lunch. After the East Bay picnic last Sunday, several members stopped by the hospital to visit him. He was so happy to see us since he was unable to go to church for some time. One of the things he said to me was, “We’re still on for lunch though!”

Brother MG, looks like we’ll have to rain-check for when we enter the heavenly kingdom. I pray that I may make it there to meet you. It will be a feast to look forward to.

Life with a CR-48

It’s been 1-2 months since I got the CR-48 (a prototype laptop/netbook that runs Google’s Chrome OS). How has it fit into my habits and workflow?

When It Has Come in Handy

  • Productivity on the BART; 100MB of free 3G data per month for 2 years is a pretty sweet deal. 100MB doesn’t seem like much, but most of the time I’m using wi-fi anyways and I haven’t yet used up the monthly quota. Incidentally, sending emails and editing google docs doesn’t use that much data.
  • Taking sermon notes at church; thanks to the SSD, there’s no more lap burns or noisy fans blowing. The battery life is also sufficient for use throughout a whole day (with wifi and 3G turned off), with more juice to spare.
  • Taking my computer downstairs while I “cook”/prepare my dinner
  • Lying down on my bed to read something without risk of setting my sheets on fire
  • Checking the weather after I’ve shut down my computer
  • I can type in Chinese using pinyin!

What’s Not So Great

  • As I mentioned in an earlier post, it’s weak in terms of processing power. Any video-related activity chokes and lags at least a little bit; video-chatting in particular.
  • Not optimal for local development. Switching on developer mode potentially makes it possible if you install a text editor and manage to get your programming language of choice compiled on it, but without developer mode, it’s not possible.
    • Alternatively, one can SSH into a development server, but again, not possible without developer mode
    • Cloud-based development is a new trend that’s starting to gain some traction. Recently I started using github with cloud9ide, which is very promising, but cloud9 currently can only run javascript, even though it supports creation of python and ruby files. Git integration still makes it useful for non-javascript development, but again, still not optimal yet.
  • The wi-fi antenna seems a bit weaker compared to my dell xps. My room does not have the strongest signal reception, but my xps can still maintain a consistent and stable connection. The CR-48 though, not so much.
  • Chrome’s native PDF reader is pretty inadequate; no bookmark support, no facility to jump to a certain page; workable, but not convenient. Other PDF reader plugins can’t be used either.
  • Chinese pinyin input is only supported for simplified :(

So this post is probably pretty boring to everyone except for those curious about the CR-48, but I said I would post more about it and so this is my attempt at following up on that claim.

In other news, I decided to go to Stanford for graduate school, and ordered an iPad 2 as well as a 13 inch Macbook Pro, marking the beginning of my transition to the apple ecosystem. I’ll try to “justify” these purchases in a later post.

I Finally Learned the Official Term for “Interactive Shell”

Apparently it’s called a REPL (Read, Evaluate, and Print Loop). A REPL is an imperative tool for software development and is an awesome way to play, experiment, and become familiar with a programming language.

The first time I used one was freshman year at Cornell, in CS100. We learned Matlab which makes extensive use of the REPL. When we first learned Java, we used a program called DrJava which has a REPL. Seemed like a really nice way to learn the language.

More recently I’ve come to appreciate the REPL even more in picking up Python/Django and Ruby. When trying to implement a logical code block, I always go to the REPL first to try out individual lines to make sure each one is doing what I expect it to do. Without it, it’s like coding in the dark until you run your entire application.

Which brings me to one of the things that frustrates me at work. No mainstream Java IDE (Eclipse, Netbeans, JDeveloper) comes with a REPL! Oh the irony – something as simple and elementary as DrJava has something so crucial that the big-shot IDE’s don’t have (there may be plugins, but nothing standardized like the way it is with Python and Ruby). In order to figure out what’s wrong with the code, I usually have to run the application in debug mode and use watches. If I could cut out the overhead of starting up the server and deploying by just typing in the line of code into a REPL and seeing what gets spit out, that would save me a lot of time.

Anyways, glad I know the official term for the thing that I always wish I could use.