For the Sake of One

Jesus and the disciples had just crossed the stormy sea of Galilee, arriving at the land of Gennesaret (or Gergesenes, or Gadarenes). The moment He embarked He encountered a man possessed by many demons (a “Legion” of them). After He cast them out, the people in that area made Him leave, and so He did. (Matthew 8:28-34, Mark 5:1-20, Luke 8:26-39).

In another incident, Jesus trekked all the way to the region of Tyre and Sidon, and He did not want anyone to know about it. Inevitably, word got around and He was found by a Syro-Phoenician woman, who begged Jesus to cast out the demon from her daughter. She was not discouraged by Jesus’ insult and her humility was rewarded. The Bible does not say whether Jesus did anything else in that region and He seemingly departed and returned to the the region of Decapolis (around where He encountered Legion), where He healed many. (Matthew 15:21-28, Mark 7:24-30).

In both of these cases, Jesus went to predominantly Gentile regions for a short period of time, healed a single person, and left. There may be multiple reasons for this with various interpretations, but I think one of them is He went specifically for these single individuals. Although neither the demon-possessed man nor the Canaanite woman were Jewish, He sought them out, knowing not only how much they needed Him, but how much they hoped to find Him. Sure, the journeys may have been troublesome, far, and incredibly roundabout, but Jesus loves every man. A single precious soul is worth it.

At times we are overtaken by numbers. We evaluate the worth of an effort or initiative by numbers (for good, valid, and practical reasons!). But if we’re not careful it may lead to thinking that isn’t Christ-like. We may become discouraged if there’s only one truthseeker at an evangelical event. We may start to feel disappointed if only a few members show up to listen to our sermon, or weary if only 2-3 students can participate in our awesome lesson plan. Perhaps we grumble if we need to pick up a truthseeker who lives far from church. Overall, we may feel that the effort, time, and labor that we put into planning, coordinating, and preparing is not worth the result. And before we know it, pride has displaced the love of God in our servitude. It has pushed aside the love of the souls which our work is supposed to bring closer to God.

God values every single soul. The work of God does not cater only to large crowds but also to individuals. God may guide us in a way that is contrary to what we expect or think is more sensible, until He reveals the single or few people that He wants us to draw closer to Him.

The example of Philip comes to mind. He was preaching in Samaria and brought many people to believe in God, but then God told him to leave and go into the desert (Acts 8:26). Philip may have wondered, “Why? What can I do in the desert? There’s no one there!” Philip remained submissive, however, and when he saw the Ethiopian eunuch in the distance, he understood. The Lord had brought him there so he could preach to this one person who was diligently searching the Scriptures for God.

May we shed any self-interest in our service to God, and rededicate our efforts towards edification of others. It doesn’t matter if our work affects many, or simply one. All are dear to our Lord Jesus Christ.

Moving the Dropbox Folder on a Cr-48

Thanks to these lovely instructions and this wonderful set of compiled programs, I was able to install Dropbox on the Cr-48! There was one thing that bothered me, however, and that was the inability to view the file/directory listing from the browser. By default, the dropbox folder is stored in /home/chronos/user/Dropbox and it seems like the only directory that is viewable from the browser is /home/chronos/user/Downloads (which can be seen by typing Control+o in a tab). You can also type in file:///home/chronos/user/Downloads in the address bar to see a listing. But if you try to view the Dropbox folder, you get an access denied error code. From a permissions point, the Dropbox folder has less restricted permissions than the Downloads folder, so I guess there is something else restricting access.

Anyways, it seemed like I could resolve this if I moved my Dropbox folder inside the Downloads folder. So here are some steps on how I was able to do that without messing up the syncing.

First some notes:

  • the ~/.dropbox contains the sqlite database file config.db
  • the ~/.dropbox-dist directory contains the dropbox binary for starting/stopping the service

The steps:

  1. Stop the Dropbox process. I tried doing ~/.dropbox-dist/dropbox stop but it didn’t work (it said “Another instance of Dropbox is running!”). So I ran a ps and killed the process.
  2. Move your dropbox folder to the new location (somewhere inside the Downloads folder so it’s viewable from the browser). You may want to backup your files just in case too.
  3. Update the dropbox folder location in config.db.
    1. sqlite3 ~/.dropbox/config.db
    2. Check the existing path: SELECT value FROM config WHERE key=”dropbox_path”;
    3. Update to the new path: REPLACE INTO  config (key, value) VALUES (“dropbox_path”, “/path/to/new/location”);
  4. Start the dropbox service again. You can either run ~/.dropbox-dist/dropbox start, or assuming the .bashrc file contains a script to automatically start the service in the background, you can exit and reopen the terminal.
  5. Test it! Make a new file in the folder, and it should appear when you login to your dropbox account online.

Alternatively, I just came across this script, which is more official. I probably would’ve tried it if I saw it earlier.

Hello CR-48

The Cr-48 I won in the LucidChart contest arrived last Friday! Here are some shots of it, if you don’t know what it looks like already (basically it’s just matte black all over and completely unbranded and unlabeled).

First Impressions

I really like the feel of it. The rubbery matte texture makes it feel solid and rugged, but it’s still thin enough to feel slim and compact (although it’s no Macbook Air or iPad 2). The uniform thickness is also a nice change for me. The opening/closing of the lid also feels polished and nicely balanced.

This was my first experience with a multi-touch trackpad so I was not accustomed to it. I discovered I tend to keep my thumb on the mouse buttons and that was harder to do on the trackpad where sometimes my thumb was I guess above the “button zone.” Clicking also sometimes resulted in slight movement of the cursor before the click so I had to push down carefully so the cursor would remain on what I wanted to click on. The two-finger scrolling is nice, but doesn’t perform smoothly in the OS itself, which is unfortunate but hey; Google clearly emphasized this is reference hardware and that things might not work well.

ChromeOS may not seem like much more than an overglorified Chrome browser, and I guess that’s what it is. But for what it’s worth, I like how it’s simple in that way. Logging into it was just like signing into your google account and that one step reduces the redundancy of signing in again from your browser. For myself in particular, the first thing I usually do when my computer boots is open chrome anyways so it’s nice how this is streamlined for that use.

Another aspect of the simplicity I like is turning it on and off, and putting it to sleep/waking it up. When you open the lid, it begins booting up. As advertised, it boots quite quickly. To shut it down, you just hold down the power key until everything on the screen zooms away into darkness. In 2 seconds, your computer is off – no more of that annoying waiting to make sure all your programs shut down correctly and that your computer actually turns off (this is a problem with my work laptop; sometimes I initiate the shutdown and put it in my backpack, only to discover at home that it didn’t actually shutdown and almost overheated because it was in my backpack). Quick on/off is nice.

In terms of running the software, it’s not zippy. Sometimes there’s an ever-so slight lag that makes you think your click or keypress didn’t register, and the mouse cursor doesn’t change to indicate that it’s busy for that half a second of uncertainty. This is actually observable in linux as well, and this small detail is something that Windows actually does very well (except that generally it’s busier for much longer than half a second – but at least the mouse cursor tells you that the CPU is attempting to do what you requested). It’s running a 1.66 Ghz Atom processor, and those have never been zippy from my experience, but I was hoping for a zippier performance since ChromeOS is, at least from an experience perspective, supposed to be much simpler/lightweight than a full-fledged OS.

Upcoming Plans

I just booted into developer mode, which gives the user access to a limited chrome shell and limited bash shell. I’m trying to see if this can be used for programming. So far, thanks to helloandre’s cr48 repository on github, I have git, vim, and python installed and was able to configure ssh easily to access my github account. I’m guessing it could be feasible to develop client-side stuff like javascript interactions and HTML/CSS and some simple python scripts. But it would be awesome if somehow if I could also get ruby working on it too, since I just so happen started to pick it up.


First Ruby App! Biblia API Demo

Not too long ago I became aware of a micro-framework called Sinatra (yes, as in Frank Sinatra). The original article that I read was promoting it for developing quick and functional prototypes. I was intrigued, and since I had always wanted to start learning Ruby, I decided to give it a shot.

All the troubles and quirks of setting up ruby, git, heroku (for quick deployment), and PuTTY/SSH junk on Windows aside (I think on a unix-based system this process is much easier), development is pretty rapid and fun. I’m completely new to all of this so getting up and running was relatively smooth. Although, there is a weird quirk on my machine where I have to use both cygwin and the Git bash shell to do all the necessary tasks, but it’s tolerable for now.

So what have I been doing with this all? Well first I did a couple of tutorials, including the Twitter tutorial from A List Apart, and then I decided to try to whip up a demo app for using the Biblia web service API that SKU showed me some time ago.

It’s taken a lot longer than it probably should have (but considering I was learning Ruby concurrently, I think it’s forgivable), I finally have something usable worth showing, I hope. You can check it out at!

On the index page you can test any request to the API by manually typing in a URL request. I’ve also implemented more specialized forms for the content and search services, which are also ajax-ified using jquery. The search page also makes use of the latest version of jquery which supports the beta jquery templating plugin (check out a tutorial for jquery templates on nettuts)!

The presentation is crude, I know, but I think it should serve as a handy helper for developers wanting to use the Biblia API. It helps (at least for me) to be able to try out requests and see what the raw response is.

Anyways, it would be pretty cool to use this web service in a compelling way, so if you have any ideas for something that could leverage it, let me know!