Pages

Tuesday, June 28, 2011

Hidden behind the abstraction barrier

In the complicated modern world, most people only have the capacity to be experts on one or two things. But there are some fields, like biology or English, that most people have at least an elementary grasp on., whether  because they are common to take in college, useful for everyday life, or the subject of great debate. Computer science is not one of these fields. Most people are content to have their computer remain a black box (or grey box, in Windows' case), using it for internet or applications and oblivious to what goes on beneath the surface. My major almost feels like a secret society sometimes; we talk about it freely among each other with great interest, but whenever I talk much about it with a non-initiate, their eyes kind of glaze over and they change the subject and/or run away. I've learned not to try. But not today. I'm going to try to explain the concept of an abstraction barrier to you all.

The abstraction barrier is the reason why programmers like myself are able to work in nice, symbolic programming languages rather than manually flipping ones and zeroes. It is essentially a gap in knowledge that hides the complexity of some subsystem from the rest of the program. At the most basic level, this might be, for instance, an algorithm I write to sort a list. Once I have it working, I don't have to worry what sorting algorithm I used or what exactly happens every time I use it (unless I'm optimizing), I can just sort the list. I could go back and switch to use a completely different algorithm, and as long as it didn't take drastically longer to work, no one using my sort method would even need to know I'd done anything. I was in a class last week at my Seagate job and was struck by how much bit acrobatics a hard drive goes through to "open a file"--a single command in Python. Unless I'm a Seagate engineer, I don't need to worry about this at all.

Once I internalized the idea of abstraction barriers in programming, I started to see them everywhere. For instance, the internet itself--a mind-boggling amount of infrastructure goes to make it easy for you to connect to a Wi-fi hotspot and check your Facebook. And don't forget how your web browser makes sense of all those bits flying at you--to the computer, a video, a list of E-mails, and this blog all look the same. Outside of technology, the organization of a company is set up to make it easy for others to acquire, say, paper, without worrying about how it's produced, transported, or any of the other challenges that go into orchestrating these things. People can even be abstraction barriers, of a sort. As I was writing a help page for my program today, I realized an obvious feature it was missing and added it. This turned out to be painfully slow, though, and I spent over an hour figuring out why and improving it so my program wouldn't hang for half a minute. I could write another entire post on some of the tricks I used. When I committed my work, though, I mentioned none of this--I just "allowed recursive searching from the default directory."

Abstraction barriers are convenient slipcovers we put over a world that is far too complex to grasp in its entirety. They allow programs to work cleanly, without getting in each others' business, all below the surface of what you're doing on a computer. And now you know something about computer science.

Sunday, June 26, 2011

Hello from Milwaukee! (2011 edition)

This weekend has been amazing. I'm back in Milwaukee visiting the Summer in the City project and my second family there! I don't know how to describe how joyful it's been to be back in this city with old and new friends. Last summer I got to have deeper fellowship than I ever have before and after being reunited we picked up again like we'd never left. I took Friday off from work, so instead of driving out to Seagate I got dropped off at the Amtrak station and boarded a train for Milwaukee. Let me tell you, I am never flying again because the train is a hundred times better. The train station was tiny, with no long waits or security checkpoints. I just showed up, got my ticket, and boarded. The car had tons of legroom and outlets so I got a lot of programming on the game done.

Once I got to Milwaukee, Bryan and Meg (a St. Thomas student I've seen at a lot of conferences) and and picked me up. I've been really reliant on the people on the project for transportation and a place to stay, and I wanted to emphasize that for any of them you are reading this. Thank you so much, all of you; God has given me a blessed weekend through you. Anyway, soon we arrived back at City on a Hill. It was pretty unreal being back there; we'd stopped outside on the way to drop my sister off at college, but I hadn't been inside it since our tearful farewell last August. I was ecstatic to finally be back! Bryan's ministry team had gotten done at Liberty and Truth fairly early, which was how they'd been able to come pick me up so promptly. They were crazy organized and were planning their VBS for the next few weeks, and I got to sit in on their meeting. I love vocational ministry and it was so great to see them getting really into it.

Pretty soon other people were coming back, and soon I saw Erin and Dave! We had dinner at Taco Bell, where I got to see Ariel, Anna Z (a fellow junior at the U of M in Campus Crusade with me), and most of the rest of the students on summer project this year. There are 17 this year; six men (the same as last summer) and eleven women. It turned out they were switching up the schedule this weekend, so a park outreach was happening that night. I went along and helped make gospel bracelets with kids in Tiefenthaler Park. I was expecting to have to round kids up and ask if they wanted bracelets and be kind of creepy, but that only happened the first time. After that we pretty much got mobbed by kids; some wanted bracelets (or five of them), others wanted necklaces. Even after a year I remembered what all the beads meant and got pretty good at explaining it to them; the girls I was working with seemed to know when to throw in some helpful questions or slow me down if I was going through the message too fast. It reminded me of the sermons I'd heard on the different parts of the body of Christ working together. The fact that I was able to jump right back into outreach after so long just went to show that I did it not on my own ability, but by God's enabling.

After we got back to COAH, Kiera, Kriesten, and Emily Sear showed up and we had a big reunion in the student lounge! We were all deliriously happy to see each other again. While many of the current SP students went to hang out at another park, we went to good old Leon's for some custard. We stopped at COAH briefly before I went to Tim and Andrea Urban's house, where I would be staying the next three nights. I was exhausted from all the excitement (especially my face, from smiling so much) and pretty much went straight to bed.

Saturday was epic. Everyone from the 2010 project went to a great place called Ruby G's for breakfast. Heidi drove to Milwaukee to meet us for the day! We had a good long time of catching up on each other's lives. It sounds really repetitive, but I was so happy to see them all again. My Milwaukee friends really are my second family and having their picture next to my work computer only made me miss them more. Saturday was the day of the weekly social event. The men were apparently shooting guns, but it was mostly for people on the project so I just ung out with the returners all day. I'd never really had a day in high school when we all just drove around and adventured, but I was missing out. We went to the Reservoir (the hill where we prayed over the city during our last week), a park near Bradford Beach, and the pier, just talking about all that had happened since last summer. We stopped at Open Pantry for snacks, where we ran into Sherman, one of the men the other ministry team worked with at Liberty and Truth last summer! I'm probably forgetting at least one place we went to; it was just a blur of excitement.

For dinner Kiera, Heidi and I went to good old Buffalo Wild Wings; I felt kind of bad as I knew there was probably a better place, but no one could think of anything so we just went there. I ordered a cider there and didn't get carded, which was pretty shocking as I'm still only 21. We waited for the men's and women's groups to finish up at COAH and went back to the Riverwalk, where the men had done our impromptu women's appreciation event last year. The whole day was just a tour of all our favorite places from Milwaukee and it was probably the high point of summer so far.

Back at the Urbans' house it hit me that I only had one full day left with everyone. I thought about the promise of the Resurrection and the eternal life we'll have in God, when there will be no more farewells or pain or loneliness. Every single day we'll experience more fellowship and love than I did that day or anytime on summer project. This really helped for reasons I understood better this morning. I got up early and had more time to read my Bible and think before church. I realized how much of the things I struggled with and mistakes I made were a result of my God-given need for love and community that will never be satisfied in this lifetime. On summer project last year I had better and closer relationships than I had before or since and I was afraid of leaving all that behind. But if it really is a need, I have to trust that God will provide for me. Part of how He wants to do this is through each other; I realized how many times I'd prayed for God to love on people through me and forgotten that it could work the other way, too.

Church this morning was at Liberty and Truth, where we'd been a few times last year. I forgot how differet (and yet amazing) African-American churches were. A few women came up to give the call to worship, and I felt like they could have just kept proclaiming God's greatness and love all day. Heaven will probably be a perfect fit for them. The sermon was on overcoming unforgiveness, and after it was over pastor Darryl Seay called people up to let go of anyone they hadn't forgiven. About 20 people came up and he made sure they all had time and support to work through what was eating at them. God often seems to work on me in church in a completely different way than He seems to be working in general, and today was like that. Besides praying for the people standing up front working through old hurts and grudges, I prayed to entrust my needs to God's care and proclaiming that He had all the love I'll ever need.

The service lasted until 12:45 or so and it was lunchtime. After that came the usual Sunday afternoon lull I'm still in, so I've had time to write this. I never imagined I'd be writing another Summer Project post, but here it is! Once again, pray for the students here, the ministry God has put them in, and the city He loves so much.

Monday, June 20, 2011

Morality

Listening to sermons at work at around 15 times the rate I normally hear them has given me a good sense of some of the recurring themes at Hope. (Also just how repetitive Pastor Steve's jokes are, and how amazing it is that they're still funny) One of the biggest things I've noticed is just how much they dislike "religion", or as he sometimes refers to it, "churchianity". (Which I've already blogged about) One of Steve's sayings is "If you hate organized religion, you'll love Hope Community Church!" During a bike ride today I thought about how both dangerous extremes for Christians, legalism (or "religion", as some call it now) and license, have important deviations in their view of morality (that is, a system of "oughts" and "ought-nots" that govern your actions). Legalism effectively equates morality with God, and turns Christianity into a pattern of good behavior--confusing an effect of faith with the whole thing. License takes the forgiveness of Christ and runs away with it, leaving behind morality altogether and basically saying "Jesus took away my sins, now I can do whatever I want."

Then I started wondering about how peoples' natural consciences could agree on the morality of some things (that murder is wrong) but not others (like homosexuality).

Note: 12-day writing break here...


Hm, okay, let's try and salvage this train wreck. Now that I've thought about it more, I'm starting to wonder if the idea of a "conscience" is really just culturally trained and imprinted values, which vary widely across time and space. Of course the values acquired by a southern Conservative Christian and a Seattle hipster will be different. And I think it was in a C.S. Lewis book that I read that a newly converted Anglo-Saxon, hailing from a culture that valued duty and honor, would have easily accepted the Biblical teachings on sin and justice and struggled with the concept of grace, while in today's culture it's just the opposite. Behind cultural values is our innate drive for self-preservation, which when universalized leads to most of the values that nearly everyone shares today. I'm not trying to "explain away" or undermine our morals, just offer a theory on where many of them some from.

Christian morality, of course, comes not from culture or within us, but from the Word of God and the example of Christ. But I don't think it's as clear-cut and rigid as fundamentalists like to paint it. Yes, the Bible has plenty of teaching on what a renewed life in Christ should look like (not how we gain this life--effects, not causes)--the commandments of Jesus and fruits of the Spirit are good places to start. But they hardly provide a comprehensive picture of how Christians should act at all times; this would make us little more than automata, and why would God give us free will if we had as much freedom as a single-threaded computer program? (I notice pastors never use computer analogies in sermons) Paul commands us to "work out your salvation with fear and trembling"--clearly he doesn't mean that we have some part in earning our actual salvation; he makes that clear in Ephesians 2. Rather I think he means that it's our responsibility to, by the power of the Holy Spirit, to manifest in ourselves the new life God purchased for us. How this new life shines through will look different for everyone in the particulars--it's up to us and our relationship with God, not clear-cut rules. I've been listening through Hope Community Church's series on 1 Corinthians, which contained a whole section on our freedom and how we should seek to use or even sacrifice it for the glory of God. Ultimately, it's up to us.

And, of course, trying to get non-Christians to uphold Christian morals, even universal ones in the Bible, is not only futile, but counterproductive. It's basically forcing them to be legalists. We are transformed from the inside out, not the outside in, and trying to go it backwards can interfere with God's process of sanctification. If you have a non-Christian friend who does something, you know is wrong, they don't need you to tell them they're sinning, or to cut it out, or read such and such book. They need Jesus. You can't transform anyone. He can.

This train of thought has also helped me in thinking about some political issues. I used to stick with the popular saying, "You can't legislate morality." But this is false, as every law upholds some kind of morality, imposes some kind of "ought-ness" on the people living under it. My stance on turning Biblical commands into legislation should be clear enough from the previous paragraph. I wish more Christian politicians would realize this and help associate the name of Christ instead with integrity, compassion, and leadership.

Wednesday, June 15, 2011

Astronomicon

Apologies for the silence lately. Partly this has been because I'm working full-time at Seagate this summer (I'd tell you more, but it's all confidential) and partly because I'm developing a game this summer!


Yeah, this is my game: Astronomicon. (I still can't believe that name wasn't taken) It's a retro-style space shooter; for those of you who have fond memories of playing Phoenix on your TI graphing calculator, you'll love this. It's getting to be pretty playable, with most of the basic engine and a sweet HUD implemented as the screenshots show.


I'm hoping to have the programming part all done by the end of summer, at which point the game can be designed with config files. It's already pretty fun blowing enemies up with guided missiles and such and I can't wait to see what will become of the functionality I'm putting into it.


Updates on the game, including the latest source code and a wiki, can be found on the Google Code page. Stay posted!

Wednesday, May 25, 2011

On Divisions in the Church

 To stave off tedium at work, I like to listen to a mix of CDs (a book of them is my iPod substitute), Pandora, and sermons from my church--they have the last four years archived on their website. With all the time I have, I've started going through the yearlong series they were doing two years ago on 1 Corinthians. With 44 sermons on the book, the pastoral team did a great job and went into a lot of detail; today I listened to one all about divisions in the church. (The #1 issue Paul addresses about the Corinthians)

Divisions in the church are still a relevant issue today, and increasingly so as more denominations and offshoot churches seem to pop up all the time. While many of these divisions simply reflect differences in praxis or doctrine, some are more significant (i.e. those who were really convinced the world would end last Saturday, investing significantly in preparing for the end). In the sermon, Paster Steve talked about some of the historically significant divisions in the church (i.e. in the 16th century). Before that, there was the "Great Schism" of 1054 where the Catholic and Eastern Orthodox churches split off, and before that there were early offshoots of the church like the Gnostics and Arians. What happened to Paul's imperative to the Corinthians church to agree with each other "that there may be no divisions among you and that you may be perfectly united in mind and thought"? (1 Cor. 1:10)

Today it occurred to me that these divisions happen because of sin. I know that sounds like a simplistic Sunday-school answer, but look at the context of the Reformation. The Catholic Church had gone far astray, distorting the gospel by turning salvation into a financial transaction, using religion to gain political power, and adding all kinds of doctrines to the teachings of the Bible. Martin Luther never intended to create a whole new kind of Christianity, he just wanted to reform the Catholic Church to end these abuses. But of course, not everyone agreed with him and Lutheranism became a new denomination. Later reformers like Menno Simmons were more explicit in their desire to break away from the Catholic Church. The common theme here is that new denominations often form to amend or repair the perceived heresy of their predecessors. Other times (maybe it's just me or this seems more common today), the offshoot denomination is the heretical one--I won't name any names.

Somehow it seems like putting a bunch of Christians together amplifies our natural tendency to stray away from Christ--and makes it much harder to return. I can't think of a single story of two distinct denominations rejoining each other--the only way these divisions go away is if one dies off, like with the Gnostics. For all their confusingness, divisions in the church are sadly necessary to keep us from all marching like lemmings away from the outstretched arms of Christ.

If doctrinal shifts and corrections are what cause these divisions, the "open-handedness" of the issues being discussed determines how well the new denominations get along. "Closed-hand" beliefs are ones central to your worldview that you aren't willing to let go; "open-hand" beliefs are assumptions you've made that you could be persuaded to give up. In the sermon, Steve mentioned that fundamentalists see most of their beliefs as closed-hand, while liberal Christians are mostly open-handed. I thought that was an interesting way to think about it. Some beliefs (like salvation by grace alone) are worth fighting to keep; others (like which kind of bread to use in communion--one of the reasons for the Great Schism) just aren't. I challenge you (not just Christians, but everyone) to figure out which are what.

Friday, May 20, 2011

On Rapture, Apocalypse, the End of the World, and why you shouldn't cancel your mortgage

If you've been paying attention to the news/Facebook recently, you know the Rapture is happening tomorrow at 6 PM. In what time zone, you ask?--in every time zone; it will supposedly start with a global earthquake at the international date line that will then make its way west to hit every time zone at 6:00 PM. So here in Minnesota, we should actually hear the first reports of it at midnight tonight! The brain behind this deduction is Harold Camping, the leader of Family Radio Ministry. He and his followers have set up a website at wecanknow.com. He says the Bible "guarantees" the end of the world will happen on May 21, 2011. (He earlier predicted it would be September 6, 1994, but he got the math wrong. He's sure this time.) To warn people of the impending end, they've been renting advertisement space and wearing sandwich boards and such; one man even spent his life's savings to spread the word.

Don't think for a second that I'm writing to convince my readers that Camping is wrong. I know you're smarter than that. But for any of my non-Christian readers (who I hope exist), I just want to assure you that the Bible does not predict the second coming of Christ today, or any day; in fact, it specifically says that we can't know the time or date. (The audacity of Camping's followers naming their site 'wecanknow.org' is amazing) The Bible states this several times, but most explicitly in Matthew 24:36, where Jesus says: “No one knows about that day or hour, not even the angels in heaven, nor the Son, but only the Father." Not even Jesus himself knows when he'll be coming back. Why should we expect to? And having read the entire Bible, I can assure you that there is no janky prediction or calculation of such a date anywhere in it. Maybe Camping is thinking of a different Bible? So when midnight strikes and nothing happens, don't say "The Bible was wrong", say, "Harold Camping was wrong" (again).

But with that out of the way, maybe it is a good thing that they've gotten people thinking about this important (yet unknown) date. It's certainly not something most people (including me) tend to dwell on. We can't know when it will happen, but I wanted to spend a bit of time on what we can know about the second coming. (The word "rapture", by the way, isn't in the Bible) Since there's an entire book (Revelation) written on it, you'd think we could know plenty. But I think Revelation is highly metaphorical--St. John wrote it based on a dream or vision--and I wouldn't treat it as a play-by-play of what will happen. Still, you can get some basic events out of it. What does the Bible actually say about the second coming of Christ?
  1. The Earth as we know it will pass away. They don't call it "the end of the world" or "apocalypse" for nothing. Chapters 6-16 pretty much depict God destroying the old earth in a manner not altogether unlike how He created it. There are wars, monstrous beasts (who have been interpreted as being quite a few historical leaders), just about every natural disaster imaginable, and the four horsemen (who, unlike the seven deadly sins and the date of the end of the world, are actually in the Bible). It doesn't sound like a very pleasant time. And yet...
  2. God will finally come down, and it will be glorious. One unmistakable theme in Revelation is God fully establishing His kingdom on earth. Don't think that His final plan for us is with Him in heaven--no, He's going to remake the earth the way He originally meant it to be and dwell there with us. 21:3 says, "Now the dwelling of God is with men, and he will live with them. They will be his people, and God himself will be with them and be their God. He will wipe every tear from their eyes. There will be no more death or mourning or crying or pain, for the old order of things has passed away." No verse in the Bible gives me more hope than this one. The present, fallen, screwed-up condition of the world with all its pain and sorrow is just a blip in eternity--God will make everything perfect the way He meant it to be.
  3. Christians will go up to meet Him. In 1 Thessalonians 4:16-17, Paul gives the church in Thessalonica a surprise sneak peek at what's to come: "For the Lord himself will come down from heaven, with a loud command, with the voice of the archangel and with the trumpet call of God, and the dead in Christ will rise first. After that, we who are still alive and are left will be caught up together with them in the clouds to meet them in the air. And so we will be with the Lord forever." First those who died and went to heaven will be bodily resurrected and meet the Lord, then those who are still alive will be taken up for a big reunion in the clouds. As far as I know, this passage is the basis for the "rapture" depicted in the Left Behind books (Also, in Matthew 24:40-41, Jesus talks about how some will be "taken" and others will be left, supporting this concept.) Does this mean Christians will apparate away like in the books? I don't know. But I look forward to it nonetheless.
  4. Those who were martyred by decapitation will be raised and reign with Christ for a thousand years before that. (20:1-10) Wait, what? And then Satan will be released and be allowed one last stand before his final demise? This is where it gets strange. But that part is awfully specific... At the very least, Biblical scholars think this means there will be some kind of "interim period" in between the current, fallen Earth and the perfect, redeemed Earth. Why it's there, no one but God knows!
  5. Everyone will be judged. (20:11-15) It says everyone will be judged according to their deeds as recorded in the "book of life". Those who did evil were thrown into the lake of fire, along with "death and Hades". And the lake of fire itself is the "second death". This is also confusing, and I share C.S. lewis' view that it basically means total separation from God and the destruction that inevitably ensues. It sounds kind of like we have to earn our salvation by doing good deeds, but here's the tricky part: if we believe in Christ, our sins have already died with Him on the cross and we get His perfect righteousness instead! Our slate is wiped clean!
Christians would be lucky just to agree on these extreme basics of the end of the world, let alone the details. Even among wise, learned Christian theologians there are several accepted views on what will happen, mostly differing by the order of the events listed above. I have no idea which view (if any) is correct. But I don't think it really matters; regardless of the specifics, we should be ready to meet Jesus whenever He comes. 1 Thessalonians 5:4 says "you, brothers, are not in darkness so that this day should surprise you like a thief. This is the verse that Camping and his followers seize on, thinking that it shouldn't surprise us because we can know when it will happen! But of course, Jesus Himself said otherwise. The verse means that we shouldn't be surprised not because we saw it coming, but because we were prepared. Just like that crazy guy whose bomb shelter you'd be knocking on in the event of a zombie apocalypse, we should make sure we're ready for the real apocalypse, whether it's coming in three hours or three centuries.

Alright, I've convicted myself enough by writing that last paragraph. Stay ready, my friends.

Tuesday, May 17, 2011