Recently, I made a trip to Austria, visiting my good friend and partner in crimelab, Christoph.
On my first day, I walked around Graz. I saw the alien, though I wasn’t impressed with the art inside. I saw the Armory, which I enjoyed for about 2 hours. Graz is a really tiny city, and everything is within walking distance. The age of the city means that almost all of the buildings are not perfectly rectangular, that there’s a very large number of publicly accessible courtyards with shops and cafe’s; though you wouldn’t know they exist unless you’d been wandering around lost or already knew they existed. The city obviously grew up organically, without any central planning, so the streets do not form a rectangular grid making it quite easy to get lost. My last activity for the day was walking up to the clock tower and looking back down at the city. It’s interesting to note the architectural contrast between the ancient buildings and the modern ones.
I spent most of my vacation with Christoph’s family in Liezen. His family was very supportive, and made sure that throughout my entire vacation, I didn’t have to lift a finger to do anything myself. Even though I understood almost none of the German, we ate as a family everyday, with delicious food. His family has a cabin up in the mountains, and we spent one night there drinking schnapps and playing cards. We also hiked a bit (2hrs) which left me rather exhausted. We also went to see the Riegersburg castle, attended a local tent-fest, and visited the Admont monastic library.
During the middle of my vacation I spent a couple days in Vienna, with Christoph’s friend Florian. We climbed the steps of the impressive Stephensdom. We saw the riesenrad, and a number of the older buildings. We also visited Schoenbrunn and walked through the gardens (astoundingly large) and hedge maze.
I questioned my hosts about who uses all the beautiful cathedrals and churches, because it was pretty evident that the majority of people in my generation are fully secular. It appears that there will be not enough attendees to pay for the maintenance of these buildings, and I didn’t hear of any plans for turning them into community centers, or renting them out for raves.
Even though I was in Austria for 10 days exploring the cities and gorgeous countryside, I didn’t see a single kangaroo.
Since Rust was announced, I looked into the underlying idea of Typestate[1]. The most striking aspect about this paper is its age. The authors consider an extension to ordinary type checking to also verify that the state of a variable is valid for the operation being performed. The most immediate benefit is that it helps to identify operations being performed on uninitialized variables. Of course, in today’s most popular OO languages, such checks are usually buried into the semantics of the language itself.
In reading the paper, one example made me immediately think of SSA:
Another mechanism which can be used to enhance program reliability is one based on static scope rules in block-structured languages of the Algol family. Static scope rules enable a compiler to detect references to variables which are made outside the lifetime of these variables. For example, in this program segment
declare
A:integer;
begin
A :=3;
Print(2*A);
end;
Y := A
the final statement will be detected by the compiler as an illegal reference to variable A, thereby avoiding a potential reference to deallocated storage.
The insight follows from SSA’s separation of value from variable. Here we should immediately identify that the typestate of a variable is actually an attribute of its SSA value. So all the research that has gone into SSA should find immediate applicability here (esp. linear construction).
The idea of checking for a variables state as well as it’s type seems pretty valuable. For example, it would be nice if I could annotate function signatures that they expect initialized types to be passed in, so that I can receive a compiler error. It’s not really much more work for me to annotate than it is to assert( arg != null );. But I’d rather have the error occur much earlier, at compile-time rather than test/run-time.
The typestate idea also naturally fits with the OO-paradigm, when you think of each class being a state machine and methods providing transitions between states. Experimental languages with this feature already exist[2] and make the expression of object state much more explicit. A suitably extend type checker can handle the additional complexity, and typestate-aware SSA can handle any specialized optimizations that can be performed with the increased knowledge.
I’ve been working on Mozilla’s Tracemonkey source code for quite awhile now as part of my research. The basic goal is to apply a labeling mechanism to JavaScript objects that will help in tracking information flow. Along the way though, you notice things about the code: some area’s look like they need cleaning, or could be rewritten more clearly. During development of my project, I once wrote some really crappy code, that in certain cases, would allocate unlimited amounts of memory. When I ran the new test driver, some of these cases were uncovered and ground my system to a halt. I decided that I would take a detour and fix the test driver, in case I ever write such code again. Two days after reporting the error, and 1 day after providing the fix, I’ve made a contribution! It’s not very much, but it does mark my first contribution to a pretty cool product.
Ordinarily I wouldn’t post up a bunch of stuff that I encountered on YouTube, but this collection of one persons account of his deconversion from Christianity to Atheism is so thoughtfully considered and carefully presented that I was absolutely captivated, and would like to share it.
The concept of God is, for most believers, an aggregate of other beliefs. There is no silver bullet, single argument, that will disavow a believer of the God concept. For the author, his belief was built upon
logical arguments (exemplified by Schroeder’s The Science of God).
answered prayers.
God as the source of morality.
Life as a testament to the creator.
The Bible as the divine word, full of wisdom.
The supporting testimony of other Christians.
The personal relationship with God, and personal experiences of God.
The big issue with prayer is that the likelihood of having a prayer answered is proportional to the likelihood of that event occurring even without supernatural intercession. Prayer, in a sense, puts a person in the driving seat with respect to an omniscient God. It should be better to figure out what God’s will is directly, rather than plead for what we’d like to have happen. Scientific evidence points out that prayer has no positive effect on patients recovery. [Study of the Therapeutic Effects of Intercessory Prayer (STEP) in cardiac bypass patients: A multicenter randomized trial of uncertainty and certainty of receiving intercessory prayer American Heart Journal, Volume 151, Issue 4, Pages 934-942 H. Benson, J. Dusek, J. Sherwood, P. Lam, C. Bethea, W. Carpenter, S. Levitsky, P. Hill, D. Clem, Jr., M. Jain] The traditional dichotomy of “yes”, “no” and “wait” responses that can be received from God in answer to prayer, is entirely psychological.
How can the Bible contain all of God’s Possible Knowledge, if it can’t answer very specific questions such as those regarding dating or personal life objectives. The Holy Spirit, helps by stepping in and filling those gaps. A university class in Professional Ethics, however, completely changed his mind. A text for the class included Being Good, by Simon Blackburn. The professor focused more on ‘how do we make good decisions’, and didn’t reveal his biases during the presentation of dilemmas. In regards to God, he raised the Euthyphro Dilemma, taking the position that Divine Command Theory is bankrupt, because it would allow obviously bad things (rape, murder, pillaging) to ‘become’ good by God’s command. Thus, morality is separate from God, and not a derivative of His command. Do you do good things because you want to be good, or to get into heaven? If you want to be good for its own sake, then you must do the moral footwork, and not delegate this responsibility to God, be threatened by eternal punishment in Hell, or bribed by eternal salvation in Heaven.
There is a discord between the Bible and Science. Genesis is debunked by Big Bang Theory, age of the Earth, Theory of Evolution, Rainbows after the Flood, etc. Schroeder initially offered a reasonable time-frame that allowed compatibility between these magisteria. A post about the book on Amazon was responded to by a professor, claiming that none of the scientific evidences above, are solved by a relativistic time shift. The professor had changed his own mind about God after using the personal library of Ramon Menendez Pidal to vet that the Bible was the result of construction of several previous sources. [Who Wrote the New Testament: The Making of the Christian Myth by Burton L. Mack, and A History of God by Karen Armstrong both provide good layman references to this fact.] Schroeder’s book is an example of extrallusory intelligence.
The professor alerts our author to the tactic of reverse terminology, and shows that “The doctrinal underpinnings of the Bible have been known to be mythological for centuries.” (as shown by Some Mistakes of Moses by Robert Ingersoll, who recounts the conflict between historical linguistics and the Tower of Babel). This conversation evolves, and the professor moves to remove himself from the conversation to avoid inevitable disenchantment, advising not to worry about religious details too much. The author reflects that many of his congregation are not on the path to Truth, and likely fear the dark waters and questions in which he travels, turning their backs on Truth (but he has nevertheless learned spiritual lessons from them).
The Bible clearly offers explanations for why educated people reject god (Romans 1:22). He kept many verses as guidance through his life, but hadn’t actually read the Book from cover to cover. In Genesis, he encountered stories with immoral behavior by God’s characters, and inconsistent punishment for such actions. Hardening Pharaoh’s heart and killing all the firstborn sons violates both freedom and justice. Exodus and Leviticus are found to be full of incredibly detailed rules about sacrifice and offerings, no longer necessary since Jesus’s death. Numbers and Deuteronomy are also full of tedious details, and legalistic jumbo, that Christians with the Holy Spirit don’t need. Some details are fond to be inconsistent: in particular, God’s wrath concerning Judas in Acts is now an account of remorseful self-infliction in Matt). Apologetics is found to be somewhat contorted logic to rescue these inconsistencies.
Our author is now well on his way to using secular learnings as his moral and ethical guide, rather than lessons from the Bible. The Amazon professor, holds the position that many of these stories are incredibly preposterous (Order of Creation, Two different accounts, Noah’s Ark vs actual number of species, God’s command to kill children (Deut 20:16)) Questioning God’s word is still very uncomfortable for our author, as the Bible was communicated directly from God, and comes to us, unedited. But translation is not the problem, for the Bible was written by various authors each with political aims to reconstruct (edit) history. This is the Documentary Hypothesis (The Bible with Sources Revealed by Richard Friedman). The Bible is now no longer an infallible source of Truth.
The author reveals that God is attributed, fortuitous coincidence, beauty, numinous experience, etc, and given credit for all that is good. The Holy Spirit is recognized as a voice different from his own, providing guidance and inspiration unlike his own conscience. Religion is the metaphor through which he understands his personal experiences. Failure in daily activities guide our author to a stronger devotion to his faith, yet in college the material is now found to be unsurmountable, even with stronger devotion. Speaking with atheists becomes his new motivation, for it alone now brings feelings of God’s will.
Even if the Bible is not the word of God, having directly communicated reveals that God exists. The Amazon Professor, in respectful observance, neither denies the authors sincerity, nor agrees. Persistence leads our author to continue the the conversation. The logical arguments are battered back and forth, and the professor begins teaching: given what we know, God is just a concept, and personal interaction with Him is a simulacrum. The God concept gives the believer a surrogate parent.
Finally the author concedes that it is possible, the history/creation of the universe, the construction of religion, the lack of positive intercessory prayer, the (im)moral behavior of individuals, the independence of morality from God etc, the personal revelations, all can happed without God. The carefully considered evidence from the Professor, leads our author to see that all these things are explainable without resort to God. Occam’s Razor leads the author from “it is possible that there is no God” to “there is no God”.
I usually don’t post too much personal stuff on my blog, but I thought this was important enough that I should make an exception. It has been one month now since I came out to my family. So I thought it would be a good idea to write up my story.
Realizing one’s own sexual identity is not always easy for every person. For me, it took quite awhile. My first crush was on this girl in 2nd grade, and I was too shy to talk to her, or even ask what her name was. At the time, of course, I didn’t fully understand the emotions involved. I knew only that she was too pretty to talk to or about, and that because I’d never felt that way about anyone before, I reasoned that I should probably hide those feelings, for the crime of being unusual.
Sociologically, I was a late bloomer, and kept my sexual naivete for a long time. I remember high school as being rather awkward, and not fully understanding the sexual humor that other students bandied about readily. They probably had only a touch more understanding than I did, but were likely far more comfortable posturing than I was.
I remember that one of my acquaintances in gym class confessed that he was a homophobe. Even though I did not yet know that I was gay, I thought that this is a rather ridiculous stance. It’s not that he was violent, it’s that the idea of some member of the same gender being attracted to him, made him very uncomfortable. To me this is really at the core of the debate concerning homosexuality and homosexual behavior: We’ve grown comfortable with the stereotypical portrayal of homos in movies, but many still harbor some level of discomfort with the idea once it goes beyond the screen and enters the real world.
Unlike some, I didn’t always know that I was gay. For me it took quite awhile to realize that I was a bit different from most others. At the tail end of high school I began to look at pornography. Of course, I started out by looking at the girls. Eventually, though I was compelled to follow where my curiosity led me. So, within a short while, I was looking at pictures of men. I thought that this was somewhat deviant, but the images appealed to me, and (being a computer geek) I was very much used to the anonymous safety provided by the internet. I excused myself by reasoning that it must be just a phase. I thought eventually the interest would wane, and I’d naturally switch back to looking at girls again.
I was able to keep that pretense for about 4 years, while I attended UCLA. During this time I also had another crush on one of my roommates. For most, this would be pure torture, for me it was quite tolerable. I got to see the guy everyday, work together with him on homework, and observe his interactions with his girlfriend. The friendship and intellectual companionship that came with studying the same material was enough for me, I didn’t have to ask him for more, and he never learned of my affection.
After graduating I went to work for 3 years. I still wasn’t ready to admit that I was gay yet, but I started to become more open about my interests. I watched many films, movies that features gay characters, focusing either on the coming out drama, or on the relationship that two men can share with each other. I also watched documentaries about gay portrayal in movies, and the intolerance sometimes shown by society. (I’d like to thank BBC for their courage to explore such politically sensitive topics in a realistic and very evenhanded manner). I excused this behavior has having a homosexual curiosity. I still find the topic to be intellectually fascinating, and certainly worth more exploring. Despite all the films and characters that I observed, I still never came to a grasp of “what it means to be gay.”
It wasn’t until this past year, that I was finally ready to admit to myself that I was gay. It began with first learning that my advisor was gay (actually a surprise to me, since I have no gaydar and didn’t pick up on it until the bigoted Prop 8 was approved). Then during the past summer, I used internet dating to find and meet with some other openly gay folks in the area. Just knowing that these people could live in relative comfort, without too much ostracization, gave me the courage I needed to come out.
Once I had the personal courage, I began to confide in my friends. None of them have shown me any bigotry or even disapproval. I think that my generation is much more tolerant of these issues than previous generations. We’re more open about our personal lives in general (sometimes to the extreme). Yet we also seem to have recognized that this openness requires us to be more tolerant of each other. Nevertheless, I’m probably quite fortunate to have such understanding friends. I’ve not really noticed any ‘weirdness’, or lasting awkwardness beyond the surprise shown when I reveal the news.
Based on that experience, I was ready to tell my family and parents. So last month, when we celebrated Christmas, I made the announcement at dinner. This seems to have shocked all but my sister. I get the feeling that there’s a bit of disappointment, though I’m not sure that I fully understand that. I find homosexuality to be much more interesting because of it’s relative abnormality: being hetero is just so ordinary. Still, my family has told me that they all still love me, and though it’ll take some adjustment, I think they also know that it doesn’t really change anything. I’m the same person I always was, and I’m not going to suddenly go playing with pink unicorns and dance around like a fairy while the very ground underneath my feet becomes a rainbow.
Mostly what I’ve learned, is that the question “what does it mean to be gay?” is a nonsense question. There’s no need to act or behave differently and there isn’t anything more fundamental to understand beyond the fact that your attractions are different from the norm. But, as Kinsey showed, these attractions are on a sliding scale anyway. There’s no need to even think of yourself as being different, nor do you have to identify with the stereotypes and cultural connotations.
I would characterize the entire ordeal as being both personally liberating and relatively uneventful: exactly the way it should be!
Remember that desktop machine that I assembled way back when? My paranoia led me to arrange the disk layout as follows: 2 drives in a mirror that will hold the primary system, and 4 drives in a RAID 5 for storage. The mirror was arranged by partitioning each of the drives into three sections: one for root, one for swap, one for /home. The root and /home sections were each placed into their own mirror RAID. I’m now quite glad that I’m so very paranoid.
Last week, while I was working on re-writing that compiler, I decided to upgrade my system (I felt oppressed by my software). I usually advise all my friends: “Don’t upgrade your computer, it will break everything.” It would have been good to follow my own advise. After the upgrade, grub was all wonkers and I couldn’t figure out how to fix it easily and get back to the compiler work. So, I figured the quickest solution was to completely re-install the system.
Easiest path to getting a new system, that has close to the same functionality of the old system is quite simple when you don’t have to worry about making extra backup copies of your stuff! I broke the mirror RAID, and installed a new system on one of the drives! Then any settings that I don’t quite like, or configurations that need to be maintained (such as the one for this website, and for Xorg) I can copy over when I identify the problem. When everything is all hunky-dory, then I can also re-establish the RAID.
Best part about splitting the root from the /home, is that all my user preferences and settings don’t have to be touched during the entire process! As soon as all the packages I wanted were installed in the new system (via dpkg --(get|set)-selections) I could simply login and pick up where I left off.
The total time before I could get back to programming: 1/2 day. I love Linux!
So the quarter finally ended, and I can get back to having a social life over the holidays!
The compiler that I wrote was, in my personal opinion, a pathetic failure. Though we were able to generate some x86_64 code that actually ran (given a bootstrapping program), it would crash on certain valid inputs. We were also unable to handle arrays properly; our calling convention was a nightmare (I now heartily recommend going with proven standards, rather than trying to come up with one yourself); and our register allocator was basically non-existent (it just spilled everything, assigning all ssa values to their own slot, and never re-using slots). On the positive side, it was able to do factorial, and towers of hanoi, so we nailed recursion!
The TA’ing gig was wonderful. I had great fun teaching the kids concepts, tricks, ways of thinking. It was my first time, so I occasionally gave away answers in my eagerness to explain, but overall I think I did a reasonable job. Some of the kids regularly came to my office hours, and thanked me for helping them pass the class (which felt really wonderful, I made a difference!) I ended up loving the TA work so much that I even let it take time from some of my other obligations (research, and my own classwork).
Given my experience, there’s one big thing that I’d change in the current system: I’d make discussion sections mandatory, and limit their size to about 10. This would make discussion an actual discussion, rather than just another lecture. I think the discussion sections should encourage the design aspects of the homework/projects. That is, we all gather round the table, and whiteboard a design. One of the things that I noticed in grading the programming assignments was that our students are sometimes really creative in their solutions (and not always in a good way). I think that we probably do a poor job of teaching design, because there isn’t really a quantitative scale that can be used to measure how good a design is. So, they need to practice for an hour each week, offer each other design options, constructively criticize by identifying holes in each other’s attempts (with guidance from the TA), until a satisfactory solution is converged upon. I don’t think our current system quite has the resources to do this though.
I still don’t get too much of a break though: I’d like to re-do the compiler, this time with a better design; I need to catch up on some neglected research; and I want to play around with Google’s new language Go.
It’s become somewhat a habit of mine to purchase for myself some sorta technology each Xmas. I’m usually the one to make the purchase myself, because I’m pretty much the only one that knows what I want and need. One of the curses of being so introverted, is that nobody knows what gifts to give you. The situation is complicated by the the plethora of options available in the tech industry and its very rapid change, my family just isn’t inclined to keep up. They shouldn’t get all the blame though, as every time they ask what I want, I haven’t kept up with the industry enough either.
Last year I bought myself a nice quad-core desktop machine, that required its own assembly. I had to get a specific case, so that would hold 6 HD’s, 4 in a RAID5 and 2 in a RAID1. I remember spending probably about 2 weeks going through all the options and choices, doing price/performance comparisons, etc, etc. My desires are really too specific for anyone but myself to buy a good Xmas present. That machine, is still working today, serving up this website, and hosting a large collection of media. Since I purchased it I’ve wanted to run use the quad core for heavy-duty computing, but only wound up doing that once. I still have (long dated) plans to do stock market calculations though!
So, today and yesterday I spent several hours browsing the netbook offerings. I’m pretty sure that I want one of these things now. Last year, the market didn’t quite fit my needs. What I’d really like to have is
a decent keyboard
HD screen 1366×768 resolution, with LED backlight
Long battery life
Built-in GPS
Wifi, 802.11a/b/g/n
Bluetooth, even though I have no bluetooth devices
magnetic power plug, but Apple seems to have the monopoly on these, and isn’t licensing
Internet everywhere, without paying hideous $30+/mo. service charges
a Solid State Drive, because 5400rpm makes virtual memory paging take too long
a processor that can actually do work
It seems that enough of these requirements are fulfilled by the Acer Aspire as1410-8414. While HD video playback isn’t as good as a normal desktop, it’s really the screen size that I care about. I need that space for plenty amounts of text. I assume that if the provided HD is too slow for my tastes I can upgrade in 6months to a SSD, and more RAM. My current laptop, Toshiba Satellite U205-S5057, has a Core 2 Duo, and has held up quite nicely for 3 years now. It’s unfortunate drawbacks are some finickiness with suspend/sleep, and battery life. I think that the season is right for an upgrade. I’ll be downgrading to a Core 2 Solo, but the higher number of pixels, and longer battery life make it all worthwhile.
The last post about Ray being bananas was far too light on the details. So, I thought I’d say a bit more about the ordeal today, while I have some time.
Ray operates a ministry in Huntington beach, and can usually be found on a soapbox bantering with beachgoers on Saturdays. There are several videos of this on YouTube, that I won’t reproduce here for brevity. He made himself famous online with one episode of his “Way of the Master” series that he produces with his boy-toy and former actor, Kirk Cameron. That episode, Bananas: The Atheist’s Worst Nightmare, claimed that bananas were perfect for human consumption, obviously designed as such by a loving creator god. His arguments were rapidly debunked, both in video form, and through skeptic websites.
In the video, Ray reveals his obvious lack of scholarship. He completely neglected to research anything about bananas before simply making up creationist arguments. He overlooked the history of bananas and their human cultivation for 7,000, year. He missed the fact that the convenient ‘pull tab’ is used by stupid humans, while smart monkeys simply pinch the other end. He claimed that the shape of the banana was a perfect fit for finger joints, while it’s simply a result of having grown in a bunch (nature can pack efficiently). It is unfortunate that Ray has a successful ministry, as it reveals that humans are easily won over by superficial arguments and tend not to take the time to seriously critique the messages they hear. The success of his ministry almost directly demonstrates, how fallible and gullible we are.
More recently, as an obvious publicity stunt, Ray decided to distribute a republication of Darwin’s Origin of Species, in ‘honor’ of the 150th anniversary of its original release. Of course the book has long been in public domain, so, while a bit touchy, this is a perfectly legal maneuver on his part. He placed within the book a 50 page Special Introduction, available at his ministry. In his indoctrination, Ray again reveals sloppy scholarship. He plagarizes, and uses well worn creationist arguments, that have long been refuted. A summary nice refutation can be read at the Don’t Diss Darwin site, setup by the National Center for Science Education. He ends the Indoctrination with a plea that you should buy one of his other books, presumably also as thoroughly researched.
Ray had initially planned on releasing his creationist re-publication on the anniversary of Darwin’s original. Yet, since that landed on a weekend prior to Thanksgiving, he rescheduled to Thursday, Nov 19. This was convenient for my club, AAR@UCI because we have meeting on Wed night, and could easily discuss strategy and organization prior to his arrival. We were also hoping, that since UCI is so close to Huntington Beach, he might show up to our campus in person.
Then, on the morning of Wednesday, Nov 18, we spotted his people handing out books! He preempted the schedule! Fortunately, we had already received a collection of banana bookmarks from NCSE, and rapidly organized ourselves to hand them out. He must have felt that the atmosphere in Orange County is too strongly affected by the rationalists because he decided to show up at UCLA instead. He was immediately countered by the Bruin Skeptics though, as recorded by their posts:
In summary, I found the whole event anti-climatic. Most of the world had not heard that this was going on. All they say was some people handing out Darwin books, claiming “This might help you with your studies”. The only people that even wanted to debate with them were members of our own group, who knew what was going on. It seems that the creationists must go to extreme lengths to find a way to shovel their shit into the minds of others. This includes deceit about schedules, slipping bogus content into otherwise good books, neglecting scholarship, misrepresentation of the material, and all other manner of logical fallacies. On strictly moral grounds, I have to give the entire creationist movement a big CHRISTIAN FAIL, for not following their own espoused moral code.
For a couple of months now I’ve know that Ray Comfort plans on distributing a republication of Darwin’s Origin of Species on many North American campuses. I took quite some time out to write a rebuttal to all of the fallacious arguments that he makes in his Introduction so that AAR could use it to hand out during the time that Comfort is distributing his republication. I eventually realized, after not getting very far, that I’d end up with a rebuttal longer than his original Introduction. In lieu of all the tireless work and effort that it would take to address everything in length I’ve decided instead to write a summary of the primary mistakes.