Archives for: January 2006
Yesterday I framed my first print. The one you see here is a simple 8'x10' print in a wooden frame. The photo is one of my favourites and was taken at my friend Scott's backyard while I was waiting for him to get off the phone ;)
Anyhow, I am really excited about finally framing a print, and hope to start doing so more and more as gifts and eventually maybe making a bit of $$ with it. The first print went to Scott since he has told me numerous times that he liked the photo, and he is the one that reared the beautiful plant.
I should have my photoblog, which I am co-producing with my friend Justin, up in a couple days. It's a project I have been planning in my head for about six months and it is about to come into fruition, so that will be yet another milestone.
So, here's to milestones!
We've (hopefully) all seen C# 3.0's fantastic new feature called LINQ. I think it's a great idea. It makes it easy to query differing data sources using an embedded query syntax. Wouldn't it be great if we had something like this for Python?
We do. It's called a list (or generator) comprehension. For example, it lets you rewrite this LINQ example like this:
numbers = [5, 4, 1, 3, 9, 8, 6, 7, 2, 0] lowNums = [number for number in numbers if number < 5]
The problem is, we can only run these comprehensions inside the Python application, which is inefficient if you want to talk to a SQL RDBMS with a huge amount of data to filter.
Enter SQLComp. SQLComp breaks down the ASTs and translates your list and generator comprehensions to SQL, and automatically queries the database and gets the result. It also allows simple, safe variable interpolation. The wiki page has a few simple examples on it.
Please note that SQLComp is experimental, and I intended for someone to perhaps pick it up, hack on it, and make something cool. Shoot me an email if you're interested in collaborating.
I was talking with a couple of my good friends last night and they invited me to go to a concert with them. I had bible study last night and told them that I would love to go, but that I'd prefer to go to my bible study. This brought on the discussion of my bible study. "So, what is it?" my friend asked. After rambling for a bit about how the bible study functions and such, the conversation led to the question, "What is prayer?".
One of my friends brought up the scripture, "pray without ceasing" in regards to a comment I made. Neither of my friends are Christians, and it was fun to be able to talk about my faith without feeling that I was being judged, or judging them. It was just curiosity giving way to discussion, hopefully feeding respect (on both ends). Anyhow, the "pray without ceasing" reference made me state that without understanding what "prayer" was, the statement "pray without ceasing" is useless. I shared with them that a lot of Christians often use the idea of prayer as a cop-out to avoid real questions, or responsiblity, and that "prayer" needs to be defined before we choose what we will do with the word. This made me think of what I believe prayer to be, and I couldn't answer it outside of a generic answer at that time, so I didn't. I am the type that will think long and hard about things that I deem very important, rather than say the first thing that comes to my head. I am worried that I will cloud truth with my own agenda (which I do at times). So after thinking about it long and hard, I have come up with something fragile, something possibly wrong, but honest, nonetheless.
Prayer is a mindset
Not saying you shouldn't pray to God intentionally in form of conversation, but when I am closest to God, he is at the forefront of my mind in everything. He is the filter which I choose to see and experience everything in my life. I am not there as often as I should be, but often enough to know what it feels like even in times when I have not allowed God to be there.
Prayer, in it's most basic form, constant communion with God, is a state of mind
This is the only thing right now that I would feel comfortable saying to describe prayer to a friend of mine who does not believe in the God I believe in. And I love how my friends, Christian and non-Christian, enrich my life in such amazing ways, even through 15 minute conversations.
PyMeld is the coolest templating language ever, because it's not a templating language, it's a template engine. It's what I like to call an "active" or "push" templating engine, that is, rather than the Cheetah school of passing a model object or dictionary to the template and letting the templating engine "pull" the data from it and figure it out, your controller code handles the vast majority of the logic ("pushes" the data), and the engine just makes it simple to manipulate the document. This is the best way for a templating language to be, because your templates are similar, and you're using a Real Programming Language to do what Real Programming Languages should be doing instead of these fake templating languages. In addition, your template files are nice and simple, and can be pulled right out of Dreamweaver and your graphic designer without having to mark it up with stuff.
PyMeld isn't without its issues, though. It's really slow and inefficient, as its powered by regular expressions and must reparse every time you run an operation on it. It's license requires you to pay money to use it commercially, which sort of sucks too.
There's a few reimplementations around, but they're very ZPT-like and, I believe, miss the point of PyMeld. PyMeld is just a badass, amazing, extra-special DOM library, and these reimplementations try to turn it into YAPTL. Meld4 sticks to PyMeld's roots, but throws the power of ElementTree behind it. I also added a couple of utility functions: fill() implements something similar but cooler than ASP.NET's MasterPages, and push_pull() is for those people who really can't bear to use an active templating engine, and will accept a dictionary that will fill the keys of a template and automatically handle lists, nested dicts and primitives.
This weekend is the Southern California Ice Bowl. Ice Bowl events in disc golf are charity events that happen in January/February each year to raise money for various charitable organizations. Each region in the states has their own Ice Bowl, and there are even Ice Bowls that happen in Europe and Japan.
For the most part, Ice Bowls are just fun tournaments where your entry fee goes to charity, so there are no payouts, just a good time, and maybe a t-shirt.
In Southern California, we have one of the few Ice Bowls that is also a sanctioned event, so our results are tied to our player ratings and profile. So even though we don't get any payouts for our performance, we still get compensated by having the results counting as a true tournament, with player points and ratings.
This year the Ice Bowl is being held at Whittier Narrows Disc Golf Course. It is the only sanctioned event played at this course all year long, so I decided to sign up and make the drive along with a couple other San Diegans up to compete, and donate to charity.
Here is the list of people competing in my division:
Advanced Name PDGA# Current Rating City State Country Ron Brawley 15958 944 Temple City CA USA Justin Bruner Lino Camacho 25165 Yes 919 San Diego CA USA Steve Civitak \Bama\ 15556 937 Temple City CA USA Ryan Eber 28454 Yes Huntington Beach CA USA Roddy Flocken 17498 896 Whittier CA USA Jon Follingstad 13903 Yes 909 North Hollywood CA USA Ryan Gwillim 24321 960 San Diego CA USA Lawrence Halili 19261 Yes 932 Santa Maria CA USA Steven Hines 23876 Yes 936 San Luis Obispo CA USA Chris Lindgren 19951 931 Irvine CA USA Paul McBeth 27523 Yes 917 Huntington Beach CA USA Jason McEwen 19828 Yes 916 Yorba Linda CA USA Adam Nash 28304 Yes 962 San Diego CA USA Tan Nguyen Jeffrey Roberts 22854 858 Fountain Valley CA USA Noah Rodriguez 21215 916 Whittier CA USA Christopher Sandoval 28490 Yes Whittier CA USA
All this is taking place on saturday. This is the first tournament of the year, and I'd love to start out with a win! Wish me luck (or skill preferably).
Found on walkway at Orangevale disc golf course. Photo courtesy of Justin, a friendly local of Orangevale, taken with camera phone.
As I write this I am sitting in the Reno airport at Gate B5 waiting for my flight home to get here from Boise, where it is, of course, delayed. I don't believe I have had a flight in the last two years that hasn't been delayed. It's all this stupid security, they are busy checking my shoes for lexan knives and harassing me about wearing my jacket through the metal detector, my cotton hooded sweatshirt that is. Anyhow, that's enough complaining about the horrific state of our airfare industry, I could make a completely different essay about that, but I'll spare you all for now.
Reno/Tahoe. I will start by saying that I did not expect this place to be so beautiful. At least in terms of the natural surroundings. Reno is on the edge of the Sierras, and right now it is surrounded by beautiful snowy mountains. My reason for coming here is to help my girlfriend, Chris, move to her new home for the next 3 or 4 years. She has moved here to continue her education and obtain her Ph.D from UNR in Environmental Engineering.
We left San Diego wednesday night and drove all the way to Fresno, and stopped there for the night. The next morning we drove up to Sacramento and decided to play a disc golf course there. The course is named Rocklin Disc Golf Course, or something to that effect. It was a very enjoyable course with a fairly modern course design. The holes were challenging, but not difficult, and there were some decently long holes on the course. We only had time for one round because we wanted to get over Donner Pass and into Reno before the manager of Chris's new apartment complex left for the evening (we didn't have a key to the place yet). So, yeah, the course was great, if I find out about any major tournaments happening there, I might come up for one.
After that we drove to Reno, there is another course in a mountain town called Truckee that we were thinking of coming back to play, but when we got to Truckee, there was about 6 feet of snow, we didn't play the course.
Eventually we arrived at the apartment, a bit of snow on the ground, tempurature around 28 degrees or so. We unloaded the rental van, and took it back to the rental company.
Friday morning we planned to go snow shoeing, so after waking up, and falling back to sleep, then waking up again, we finally made our way to REI to rent my snowshoes. Then we made the 40 minute drive to Lake Tahoe and did some snowshoeing. I had no idea how fun and exhaustive this was. At first we broke trail into about 6 feet of snow, and hiked around a bit. I took a couple pictures which I will share when I get them developed. Then we headed to one of the little mountain towns along the lake for some lunch.
I can't remember what all else we did that day, but I think we watched a movie at some point, along with driving around Reno trying to find out where things were. The city is layed out in a bit of a confusing manner with the main street and the main freeway criss crossing 3 or 4 times, it's like a DNA spiral, so when you are on either the freeway or the street, you aren't quite sure where the other is, right or left? We drove the wrong way probably 10 or more times throughout the 4 days we've been here, and the worst part is that we were using a map.
Reno does not have even one disc golf course. So on saturday we decided to go back to Sacramento (2 hour drive) and play more golf. This time we chose Shady Oaks Park, which is located in Orangevale just east of Sacramento. This was one of the most fun courses I have played in a long time. The course was very wooded, but there were plenty of long shots, and the fairways were spectacular. Also there was an indoor pro shop, which for disc golf is a HUGE thing. They had a great selection of discs and equipment, of which I purchased a few things that I've needed for a while. We were able to play a little over two rounds before nightfall. I would definitely put that course in my top 5 for California!
Today, which is sunday, we finally started organizing and setting up Chris's apartment, we went to a couple supermarkets and other stores buying the necessities; soap, detergent, trash bags, etc. <----I know I didn't use that semicolon correctly, and I don't care :p After shopping we went back and started assembling furniture etc. Then went and had lunch.
After lunch, we spent about an hour wardriving trying to find internet access so I could check-in for my flight, and do a few other things. We never found access that would work for more than a couple minutes. So we finally broke down and went to Starbucks, which I HATE. They have WiFi there so, running out of time, we folded and went in. Evidently, Starbucks has a deal with T-Mobile to steal everyone's money. In order to use the Interweb at Starbucks, you have to sign-up for a T-Mobile WiFi account, which costs $6 everytime you log on. Now I am boycotting T-Mobile along with Starbucks. Boo for greed.
Which brings me to my next point. I paid $8 to get a WiFi connection in the airport right now in order to entertain YOU. I'm expecting anyone who actually read this entire post to donate 50 cents to my interweb fund. Email me and I'll hook you up with my paypal information.
I just sent out the email about the site re-release and I'm wondering how many people will actually follow the link and look at my blog (I sent the email to about 60 people).
If you are here and reading this, please leave a comment to say so.
You don't have to sign up for anything to leave comments and they can be completely anonymous if you like. But I'd love to see who all stops by to take a peak.
I am reading a book right now called Imperial Woman by Pearl S. Buck. The book is about one of China's Empresses in the late 1800s. I am really enjoying the book and there are a few things that have made me laugh. It is intriguing to read about other cultures, especially when the other culture is over a century old.
Anyhow, the thing that caught my attention and that I wanted to share was one of the terms of endearment that the Emperor uses with his Empress. He has called her, "My heart and liver" a few times. This is hilarious to me. I know that different cultures place different values on different body organs and such, by why the liver? What is so lovely about a liver that is needs to be used to articulate how much you love someone? Maybe they know something we don't? I think I'm going to do an experiment and start saying things like, "I love you with all my liver!". Somehow I don't think it will be recieved too well, but if it can work for the Emperor of China, it oughta work for me, too.
So to all my readers, I love you guys with all my liver!
As you can see if you have ever visited my blog before, I have a new look. I have been wanting to redo the style for a couple of months and just haven't had the time. It all started with the hosting of this blog switching from one place to another. The hosting change caused my other custom skin to be lost somewhere, which was fine because I was bored with it anyhow and wanted to change some things. So I had to use one of the generic skins that comes with the b2Evolution software. Then when I had time to do some stuff, I found out that I didn't have access to change anything because I lost a password from the server that I needed. So after getting the password and changing one little thing, I have been sitting here on the couch for about four hours installing, customizing, graphic editing, and such getting this baby to look sweeter than I was hoping. There are still a few issues that I will be working on as I get time, namely the lack of a header graphic. Such things take time, but I love the direction that it has taken, and the current look is very much improved. Hope you like it.
Evening Sky at Jtree
I spent this past weekend camping in Joshua Tree National Park. I took three rolls of film and came out with about 10 photos that I like. I will try to get the good ones up for your enjoyment as soon as possible, however I will be very busy for the next week or so. 'Til then, here's a teaser...
This is a tree I found in JTNP (not a Joshua tree, though).
Here are four different views of the same tree.
(1) Edited: Removed color to create grayscale. Added signature and border.
(2) Edited: Performed Line Extraction. Added signature and border.
(3) Edited: None, All orginal photo w/color. Just added border and signature.
(4) Edited: Removed color, converted photo to alpha transparency, added bg color.
Which one do you like most? Lemme know.
Here is a link to an article I found where scientists in Taiwan have bred pigs that are green and glow vibrantly in the dark...
"The scientists...say that although the pigs glow, they are otherwise no different from any others."
So they glow? No biggie, there just pigs, whatever! HA
Here is a mudslide that I came across while trying to get to a waterfall hike. Didn't make it to the waterfall, but took some good pictures of the mudfall!
I have told numerous Californians about this little creature here, and I'm usually met in disbelief. So here it is, the Oregon Spotted Banana Slug. He's about five inches long and busy working his way up a glass door.
This is a view of the bars on an old town jail from Port Orford, Oregon, a small coastal fishing town along highway 101.
Dave Warnock points us to Ten Provocative Positions on Prayer by "Kim", to which I can only answer, "huh?" Perhaps they were provocative in Barth's day; I find them stale and purposefully vague . Number 6 was the sole exception.
Here are some questions on prayer that I find provocative:
- Does anyone in the Bible ever pray silently? If not, are we sure God can hear us if we pray silently?  Perhaps God created flesh as a barrier between our thoughts and his thoughts. If he cannot hear us, what would that do to the Church in the West (especially the USA, with its focus on the "personal walk")? What would it do to your "walk"?
- If you believe God has decided everything in advance, why does the Bible state that God sometimes changed his mind when people prayed?
- Do you believe God hears you as readily as he heard the patriarchs? You are not Moses--should you model your prayer after his?
- Do you pray with your eyes closed? Why? Is it fear of ridicule? Guilt? Tradition? Try praying in a group with your eyes open and see if your answer changes.
- If God already knows what you need, are your words important? Would meditation have the same effect? Or is speech fundamental to thought and our recognition of the Other?
- Do you pray too often? Has the "spiritual discipline" robbed your prayer of its meaning? Would your spontaneous prayer be better if you didn't pray corporately and ritualistically so often?
- Have you made your life so comfortable that you no longer have anything to pray about? Do you care about anyone else enough to pray for them?
- When Jesus was asked "how we should pray", his example was short and to the point. Are your prayers short and to the point? Why or why not?
- Are your prayers different from "normal" speech (in any way other than inserting "Jesus" or "Father God" instead of "uhhhh...")? Should they be? How and why?
- Do you pray to a Person or to an impersonal Force? Does he answer you as to a son or daughter, or a servant, or not at all personally?
 Okay, okay, I find most theological writings stale and purposefully vague.
 I recently spoke with a friend who went to the Ukraine and met with a deaf Christian community. They believed they could not pray to God since they could not vocalize, only sign (my friend's group took the time to teach them otherwise).
Adam Green recently wrote about "Web 2.0":
If it takes an essay or more than 5 or 6 bullet points to explain something, it is poorly defined.
I'll disagree with a counter-statement:
If it takes less than 5 or 6 bullet points to explain something, it's because the audience already knows what it is.
Recently, it seems like everyone's been focused upon creating The One Framework -- the Ruby on Rails of Python. In fact, I'm almost as guilty as everyone else. We have failed in this regard, and we will continue to fail. We've been struggling to find the best practices and combination of tools to create Joe User's average database-backed dynamic web site and application, and not only can't we agree on how to do it, no actual end-users care when polished solutions like Rails and ASP.NET are in town. Not only that, by many accounts Ruby seems to be overtaking Python in its rate of growth. Personally, I'd rather write Python.
But oh, how quick are we to forget Python's smashing successes in the Web world. We've got Plone, probably the most popular and comprehensive CMS out there. We've got the platform its built on, Zope, which is (from what I hear) fairly popular, too. We've had PyBloxsom, which until WordPress came along was a very widespread blogging system. Let's also not forget MoinMoin and Mailman, some of the most widespread Wiki and mailing list applications on the Web today. And hell, we've got Python's "killer" web app, Trac, which just about everyone is using these days. And oh, BitTorrent. I know it's not a Web application in the traditional server-side sense, but it just shows how capable Python truly is.
What do all of these applications have in common? They certainly don't share a web framework; most of them are developed specific to that application and tailored to various deployment platforms (CGI, FastCGI, custom server, mod_python). Python appears to be falling behind in the world of custom-made Web applications, but in the world of generic, reusable Web applications, Python is doing great.
And let's not forget about the great achievement of Web-SIG: WSGI. Now, we have a system that lets us write an application once and deploy it upon any WSGI-compliant server or gateway (to name a few, ISAPI, mod_python, CGI, FastCGI, SCGI, custom HTTP server).
Here's what I propose: screw Web frameworks for now. We won't win in the Rails generation. Perhaps when some ingenious Python programming comes up with that next-generation Web framework (Seaside + ZODB + LINQ + ASP.NET + PyMeld + LivePage + CrackAJAX, anyone?), we can give the Web framework wars another shot.
For today, let's work on making generic Python products. Let's make a kick-ass community forums system, an incredible blogging system, a news script, a CPanel/Webmin clone that people will use because of their features, not their programming language. Commentary is a great example of what I'm talking about. Let's not forget to make sure Trac, Plone, and all of our applications run seamlessly on WSGI, and let's make our WSGI gateways ironclad and diverse.
And, most importantly, let's all get behind what I believe is the most pressing and important concept in the Python web development world today: Paste Deploy. What Python needs more than anything is a brainless, quick-and-easy way of connecting applications to gateways. I want to drop a CGI file on to a Web server, point its config file to (the fictional) pyBB-1.0.0.egg, chmod it, and have it Just Work. I want to do the same thing for FastCGI. In fact, what I would love more than anything would be a portable mod_wsgi across Apache, LightTPD, and IIS: a module that would let me drop a .egg file into a directory and have it automatically pick up and install the WSGI application from the archive. Once we've got this, a standard, portable way of easily installing ANY Python web app, we'll be getting somewhere.