First Test
The GPL (GNU Public License) which is what most open source software is released under is about to be put to the first test in a court of law. I use GPLv2 for my open source projects. I may shift to GPLv3 for future releases. I’m still waiting for GNU’s release of a common-man’s explanation of what the GPLv3 really means and what changes before I make this decision.
Here is the story.
This greatly interests me because I’ve always been a huge proponent of free software. If software is not free, then I’ll pay for it if I need it, can afford it, and a decent open source alternative does not exist. I’m a member of the Free Software Foundation, and of the Electronic Frontier Foundation. I recently discovered the Software Freedom Law Center at OSCON, and I’ve been reading a bit about them. If I have some spare cash in the future, and it looks like they’re doing the right thing for free software, then I’ll donate some to them as well.
I’m going to keep an eye on SFLC’s RSS feed to monitor progress on this case (and others.) If it looks like I can somehow help out, I’ll see what I can do for them.
I hope that the GPL case actually goes to court, and that the judgment is in favor of the GPL. It would be a HUGE boon for open source and free software. It would prove that you cannot steal from others and make a profit from it. Just because someone gives you the source code, it does not mean that it is part of the public domain. There is a different between licensed free software, and public domain software, and most people don’t realize the difference. It’s time that people with money were taken to point to show them that they cannot just steal something and make even more money off of it.
SourceForge Community Awards
Here’s some video from the SourceForge Community Awards. After a full day of OSCON, this pretty much captures what my nights were like (except for Monday night.) Yeah… It was THAT MUCH FUN!!!
Here’s the link.
BTW: The guy that filmed all of this, Robin Miller, is a really cool guy. We hung out Friday afternoon while waiting for various things. I was waiting for time to head to the airport, and he was waiting for a ride. We hung out in a Starbucks for a while and talked about the conference. I hope to see him back there again next year.
Oh! Before I forget. You won’t see me in the video. When the two guys were showing off their Tux tattoos (about the 1:30 mark), I was standing off of the shoulder of Robin Miller admiring the tattoos. Kiara… That is the tattoo that I’ve wanted for ages. Yeah. I know. You’ll never let me get it.
OSCON — Day 5
I had set my alarm to go off at 9 since the day didn’t start until 10:45. I figured I would need that time to pack and get ready for the day. I was woken up a few minutes after 8 by a house keeper that had just walked in. Maybe she knocked? I don’t know. I didn’t hear it because I was asleep. She could have quietly left, and I would have never known. Instead she started saying very loudly in broken English, “So sorry, sir! Sorry! So sorry! Didn’t know you were here! Sorry! Go back to sleep. I leave now!” Yeah. Like I can go back to sleep after having a strange Asian woman wake me up like that.
After she was gone, I drug myself out of bed, took a shower, got dressed, and then started packing for the trip home. I brought a large army duffel bag that had a week of clothes in it, a book, and my toiletries. After packing, the bag was SO FULL OF STUFF that I broke one of the zippers closing it. Fortunately, it had another zipper, and I took more care to close it this time. I also had to use the OSCon shoulder bag to pack my dirty clothes in there. If I didn’t have that bag, I’m not sure I would have been able to get everything home.
I checked out of the hotel, and I asked them to hold on to my two bags of stuff because they were large and heavy. I didn’t want to lug them around all day. They gave me two claim tags, so I can get my bags later. Once I was done with that, I walked to the conference. I got there in time to hear a few keynotes, but none of them were worth remembering. It was just a talking head blathering on about the way they are adopting open source stuff. Yeah. Yeah. Whatever.
My first session of the day was entitled Updating Your Testing Toolbox. He had some good stuff in there, but it was all high level. Lots of good ideas for tools to use (most were Firefox plugins) and a few other side projects. I came away with a good list of stuff to test out once I get back to the office.
My second session was supposed to be Testing With Selenium, but that session was canceled at the last minute. I looked at the schedule for the other sessions at that same time, and not a single one interested me. I decided that it would be a good time to conserve my energy. I just hung out, checked email, browsed the web, and did lots of nothing for a while. There was a single session after that one called Open Source Hardware. Interesting idea, but I was tired, and I didn’t feel like sitting there for an hour listening to someone talk about something that really doesn’t affect me, and that I don’t have the skills to affect. I decided to just continue to hang out until 1:30 when the Closing Get-together came around.
I expected the closing to be a speech or two from some big-wigs, and hanging out. There were no speeches. It was just hanging out and talking with my fellow geeks. That was a good thing. I needed some time to just sit and veg.
After the closing there was a tour of Free Geek which is a local organization that repairs “obsolete” hardware that is donated, throws Linux onto the computers and gives them to low income families. I think it’s a great idea. The tour was at their facility about 2 miles away, and the plan was to walk. Like I’ve already said, it’s been a long, long, long week, and I just didn’t see myself making it there and back.
I skipped their tour, and headed to the hotel to get my bags. I got my bags from check-in, and sat there reading my book. I finished the book off, and reshuffled some stuff around my bags to get a fresh book out. I made sure to remember to pack away my Leatherman, so I didn’t try to get on the plane with it. After sitting there for a while, I decided that I needed a little food and drink to get some energy for the trip to the airport. I headed across the street to a Starbucks. I sat there for a while, and talked to one of the head honchos of SourceForge. I had about three hours before my flight, so I decided to head to the airport. I drug all of my crap the half block to the train station. I managed to get my ticket right as the train that I wanted showed up. I piled on, and talked to some locals while heading to the airport.
I got there, and managed to get one of those little carts that you can rent, so that I didn’t have to carry my stuff around the airport. That was a life saver. My main bag was just an old Army duffel bag. No wheels or shoulder strap, or anything like that. I hung out for a few minutes and talked to a guy from the University of Georgia named Michael that I had talked to several times during the conference. We swapped cards, and moved on. I got my boarding pass, and had my bags weighed. My big bag came in at 46 pounds. Oi! No wonder it was a pain to carry.
I got to my gate with about two hours to spare before my flight. I pulled out my fiction writer’s group stuff, and started going through it for the next day’s meeting. I always seem to do it at the last minute. I got through that, and went back to reading my book. About an hour before the flight was supposed to leave we were informed that a nasty storm in Denver had delayed our flight for an hour. Ah well. I was ok with an hour delay. A little later they bumped it to an hour-and-a-half delay. I was ok with that as well. Shortly after that, the time was changed to a two hour delay. That was going to hurt. This meant that I was going to be getting home around 4 AM after the flight, getting baggage, and driving home.
Yep. Sure enough, I didn’t get home until right at 4 in the morning. Kiara woke up when I got home, and we had missed each other quite a bit. We sat and talked for a while, and I didn’t manage to get to sleep until about 5:45 in the morning. I was exhausted, and I was asleep almost right away.
The trip was worth every penny, every bit of effort, the lost sleep, and the crazy schedule. I learned more than I ever thought I would. I met more people than I thought I would, and I got to learn about new companies, new products, and new ideas. I really hope to be able to return next year, but that’s a year off. We’ll see how it goes at that time.
Now it’s back to a normal schedule, normal life, and my everyday duties. That’s also a good time. I’m not sure I could have handled more than a week of going and blowing that hard. Now I have an entire year to save up my energy to head back for OSCon 2008.
OSCON — Day 4
NOTE: I wrote this during most of yesterday. As things happened, and I had time to write, I wrote this. However the Internet connection at my hotel sucks really hard, so I had to wait until I got to the conference this morning to post.
As I planned, I started my day a little late and skipped the keynotes. There was only one that I wanted to see, and it was Microsoft talking about how they’ve “embraced and extended” open source. Yeah right. I just wanted to heckle, and that’s not worth getting out of bed early.
I hit the conference about 10:00, and went right to the expo hall (sensing a theme here?) I had a few more stickers to get for the main door prize drawing, and there were a good chunk of booths that I hadn’t gotten to yet. I managed to work my way around to a few of them before my 10:45 session started.
My first session of the day was about Error Handling In Ajax but the speaker bailed out over a month ago, and no one at O’Reilly bothered to take note of his email. It was a packed room, and we were all disappointed. Ah well, that’s ok. I ran down the hall and around the corner, and sat in on a pretty entitled PostgreSQL Gems: Running Perl and Ruby Inside the Database. I was more interested in the Perl part of things, which is good. The speaker was a Perl guy, and had very very little Ruby stuff in his slides. He also couldn’t answer any of the Ruby questions that were asked. He knew his stuff, but he should have never thrown Ruby into the title of the session.
After that was more expo hall and lunch. I talked with even more people, shook some more hands, and learned a few more things. More good stuff. I also got the last of the stickers on my passport, and turned it in to enter the contest for the main door prizes of the conference. Part of my last trip through the expo hall was to talk to the EFF because I needed their sticker, and their booth was packed the day before. They had dropped their prices for membership some during the show, and I signed up to be a member. I got a really cool t-short from the deal, and I helped out an organization that I have morally supported for over a decade. It was a good thing.
While in the expo hall, I went back by the Apress booth to see what it took to write books for them. The guy was the head guy responsible for finding new book lines. He asked me what I had in mind, and I rambled off a few ideas for books that the community really needs. He agreed with me, and he asked me if I had the writing skills, technical skills, desire, and time to do a few of them. We talked for a bit about writing (which I’m pretty good at), technology (which I’m excellent with), and other things. He liked what I had to say, and he said that there was a great market for my book ideas. We exchanged cards, and I’ll get in touch with him in a week or two to start the process of seeing about getting a book or three or five written for him.
I got to my first afternoon session about five minutes before it started, but the doors were already closed, and the guard was blocking they way. He was really apologetic, but told me that the room was already over capacity. I was disappointed because I really wanted to attend Ajax and Web Services. Ah well. Such is life.
I managed to hang out for a bit and actually take a break, so it was a good thing that I got to sit and do nothing for a short bit. This allowed me to check email, chat with Kiara, and write on my blog. I’ve got to write up to this point before I had to shutdown and run off to my next session.
My next session was Security 2.0 which was also hosted by Chris Shiflett. He covered some of what he covered in his tutorial session a few days before, but he also briefly touched on the vulnerabilities of Ajax, Web 2.0, etc. It was obvious that he was a back-end/PHP guy, but he did have some knowledge of front-end interactions. It could have been better about the front-end stuff, but that’s ok. It was still a good talk. He also had some live examples of XSS/CSRF on his web site that he linked to that forced things like putting his book in your shopping cart on Amazon using CSRF using their 1-click system. He had reported the vulnerability to them over a year ago, and waited a year to make it public. It was a good thing to make it public because that is usually how things get fixed, but it was a bad thing that they never did anything about it.
After that came a short break. I hit the expo hall again even though I had completed my passport. I walked around, talked to a few more people, and generally relaxed for once. It was nice to walk around and not have a purpose. I found out that I hadn’t won the Wii that SnapLogic was handing out, but that’s ok. I’m sorry, Kiara, but I tried to win one for you. I really did.
After the short break, I haded to Prototype and Object.prototype. It could have been a really good 45 minutes about the JavaScript framework known as Prototype, but it wasn’t. There was some information covered, but the woman giving the presentation was like a bad stand-up comic with tourette’s syndrome. She wasted 20-30 seconds here and there trying to be funny and she wasn’t because it was hard to follow her internally humorous train of thought. Overall, she wasted a good 8 minutes of time trying to be funny instead of covering the topic. If it were a 3 hour tutorial it wouldn’t have been so bad, but in only 45 minutes, it was a waste of 17% if her time. At a 1-to-5 ratio of crap-to-information, it wasn’t all that good. I did get some insight into how things worked, and I took good notes. I have a little bit of research to do when I get back to the office on Prototype.
Immediately after this was a session on pl/php. It’s an implementation of PHP internally accessible in Postgres instead of using pl/sql or pl/perl or pl/pgsql or any one of the number of other things. There were some really cool features brought out during the talk, and I think I can make use of them in my day-to-day job. I think it’s really neat stuff. I need to do some benchmarking data before I take it to my boss to prove that it’s worthwhile. I think it will be. There is some power (e.g.: dangerous power. Like nuclear war power.) in the capabilities of pl/php, but they are really cool in a controlled environment.
As soon as I was done with this, I ran back to my hotel, dumped off my umjeen-million t-shirts and other stuff from the show, and then ran back to the conference center to get in line for the bus to the SourceForge community award show. There were snacks and tons of free drinks available at the award show, and I took advantage of all of them. While there two very cool things happened to me:
1) I got to spend about 10 minutes one-on-one with Rasmus Lerdorff. He’s the creator and head-guy of PHP. He’s also one of the head guys of development at Yahoo. We talked shop, and I got more insight into the development of PHP and Yahoo. It was a great 10 minutes. I really can’t remember a time where I’ve met someone that is famous. Sure, he’s not a rock star or anything, but in my world (the geek world) he’s really up there with Larry Wall, Tim O’Reilly, Marc Andreeson, and many others. If it wasn’t for Rasmus, I would not not be doing what I’m doing now, and my geek/professional life would not be as full as it is now. I did not “fan boy” all over him, and I think he appreciated that. He was open, honest, and direct with me about history, current, and future PHP stuff, as well as the challenges that he faces now with PHP. I really, really, really wish I had the C skills to step up to the plate to help him out. He really impressed me that much with being as open as he was with a total stranger. I hope to meet him again in the future after I’ve become a greater master of his creation, PHP. One thing that I am proud of is that I excused myself from the conversation when it was obviously at an end. I didn’t hang on and force Rasmus to make an uncomfortable exit (which I had seen him do during the night.) I’m glad that I showed that restraint.
2) The award show had a few side rooms with wall-to-wall chalkboards. I walked into one of the rooms, and it was covered in writing. I walked up to check it out, and I noticed that the guy that hosted the Nagios talk earlier was writing away. Him and another guy were discussing and entirely new architecture for a monitoring system. I assumed that they were working Nagios 3.0, but I’m really not sure. They were talking about some really cool stuff that could be easily expanded to a large enterprise, which is where Nagios fails. I had some ideas in line with what they were talking about, and we talked about it for quite a long time. They seemed happy to have my ideas, and I thought of a few things that they did not that I have experienced in the past. I swapped business cards with them, and I think I may be part of the future of Nagios. That’s kind of cool.
I took the free (SourceForge provided) shuttle bus back to the conference hall, and I got into a great conversation with three other guys (from South Africa, New Jersey, and Iowa) about the great and wonderful days of early dial-up, early Perl, and interesting networks that we worked with back in the early- and mid-90s. It was a good time talking with people as “old” as I am. Good stuff.
Once of the guys mentioned a Sun Microsystems part (yes, another one) at the conference center that may not be open. We decided to crash it, and we got in. We managed to get in a few free beers before the open bar closed. We continued to talk about Perl, PHP, web development, networking, dealing with customers on a free-lance basis, and other good stuff like that. It was a good time with good beer. We were finally chased out, and I headed back to my hotel room shortly after 11:00 PM.
I tried to log on to post this, but the hotel network was being uncooperative. I’ll post it in the morning like I have most of the week. Time to take a shower and head to bed. I can’t wait for tomorrow and wrap things up. It’s been a wonderful week, but I’m tired. My brain is also full, and I can only handle so much more education before I explode in a heap of 0′s and 1′s. I also miss Kiara a great deal. I can’t wait to get home tomorrow night to see how much her belly has grown with our son.
OSCON — Day 3
NOTE: This all happened yesterday, but I didn’t get a chance to write this until today.
I started the day a little late, so I missed the first keynote or two. I sat in on the rest, but they really weren’t all that great. The Q&A started about the time the expo hall opened up for the first day of the expo hall. I decided to skip the Q&A because I didn’t really care about it. I ran off to the expo hall, and started collecting brochures, flyers, business cards, t-shirts, pens, and tons of other stuff. I got a purple bag from Yahoo that I managed to fill to the brim.
It was great. It was so great that I got wrapped up in meeting new people that I missed my first two sessions. I missed Practical Design for Web Developers, and PHP Security: Fact and Fiction. I wish I had made it to the web design class, but I was talking to a guy later, and he said that there really wasn’t much to learn in there. He said that the O’Reilly Ajax Design Patterns covered it all. I have that book, so nothing lost. I also wish I had made it to the PHP Security: Fact and Ficion, so that I could meet Andi Gutmas. That didn’t happen though. I was complaining about this later that night at a Sun Microsystems party, and there was another guy there that had made it. He said that Rasmus covered it all, and covered it better in his PHP Bigger and Faster session. I made it to that session, so I didn’t miss anything.
We had lunch (free again!) and, I kept hitting the expo hall. More people, more stuff, some great ideas, and more fun. I ended up joining the Free Software Foundation while I was there. I’ve always wanted to support them, and I finally found a way. It was more expo hall stuff until 1:45 when I hit a Nagios session. I got a list of good configuration management applications, but I got nothing else out of it. I’ll make sure to give the list to Shinto when I get back to the office. Immediately after that I went to Rasmus’ PHP: Bigger and Faster. That was a great session! I learned a TON about profiling PHP applications, speeding up Apache, and doing some great things to make applications load faster. Like always, Rasmus was fun, and he really know his stuff. I had an hour to kill, so I just hung out and relaxed for a bit before heading back to the expo hall. More meeting people, getting stuff, swapping business cards, and learning about new features, products, organizations, and companies.
Later that afternoon were two sessions in the same room back-to-back that really tied together. One was High-performance JavaScript: Why Everything You’ve Been Taught is Wrong, and the other was High Performance Web Pages. There was some overlap between the two, but very little. They really reinforced each other, and I came away with some great notes about how to improve front-end performance on web delivery. A stat that I learned that I found surprising was that 80%-90% of all waiting time that the user experiences is from the front-end. I’ve always done my best to optimize my back-end thinking that I was doing something good. Sure, it was good, but if you cut the back-end in half, you’re cutting, at most, 10% of the time off.
The expo hall reception followed that. Yep. You guessed it. More people, stuff, ideas, and good talks. The expo hall was fun, but it was also very, very valuable. I’m glad I spent so much time there.
After that, there were two BoFs that I had planned to attend, but I was tired from walking around all day. There were two parties that I had been invited to that night, so I decided that it was time to relax without my backpack and purple Yahoo bag. I dropped them off at the hotel, stripped out of my sweaty t-shirt and threw on my brand new Mozilla Foundation t-shirt, and headed out to the Mozilla party. I got there after walking about 9 blocks. I thought it was closer, but that’s ok. I had a drink there, and listened to Menomana (yeah, like from the Muppets) for a few songs. They were good, but they were too mellow for me. The music was loud, and I wanted to talk to more people. That made me decide to bail after only one drink (plus the drinks were expensive, not free.) I ran into a couple of guys from Car Domain. They were staying in my hotel, and wanted to go to the Sun Microsystems party. I was headed that way too, and they had a car! They offered to give me a ride (I didn’t even have to ask) and I readily accepted. We drove back to the hotel, and then walked the four blocks to the Sun party. It was in the parking garage of a nearby hotel, and they had carpeted the floors. They were playing beer pong, Big Wheel races, and had an ok techno DJ playing music at a good level. They had a bar where the beer was free, but the mixed drinks were not. That’s ok. I like beer better. I hung out, talked to people, made a few more contacts, and drank some beer. I also got to talk to some Google people, and I gave them grief for buying our competitor instead of us. It was all in good fun, though. They actually told me that the public found out about the information before they did. Wow.
It was late when I got tired, so I headed the four blocks back to the hotel, set my alarms for 9 AM the next morning, and went to bed. I knew that I would be missing the keynotes, but they were so lame from the first morning’s keynotes that I didn’t figure that I would be missing much.
OSCON — Day 2
NOTE: I wrote this during the day yesterday, and finish it up last night just before midnight. However, the hotel network was so flooded, that I had to wait until I got to the conference this morning to post. I probably could have waited until after midnight like I did last time, but I needed my sleep.
I had stayed up pretty late last night (got to be a little after midnight,) so I really didn’t want to get up in the morning. I ignored my alarms until about 7:50, and then finally drug myself out of bed. I took my time getting ready, so I didn’t have time for the free breakfast. That was ok. I wasn’t in the mood to eat anything.
I managed to make it to my first tutorial of the day, Learning Ajax, with a few minutes to spare. The speaker was Alex Russell who is one of the main developers for the Dojo JavaScript Toolkit. Dojo is an Ajax, DHTML, XML, etc. toolkit that is similar to YUI, MochiKit, jQuery, and Prototype/script.aculo.us. Dojo is currently on version 0.4.3, but they have version 0.9.0 in the works, and it is almost ready for release. I’ve mainly been working with Prototype because that was the first Ajax/JavaScript library that I learned about. Now that I’ve learned so much more in the past two days, I’m going to download and play with most (if not all) of the ones that I’ve listed here to determine which one is the best to work with.
While Alex is mainly a Dojo guy, 90% of what he taught was about the core of Ajax, the principles behind the technology, when to use it, why to use it, when not to use it, and all of the pitfalls of the user-interface and security when using Ajax. It was a three hour class, but all of it was very high level detail. I came away from the class with 23 bookmarks thrown into a list of stuff to read. That seems to be a common theme for these classes. Learn a taste of what the technology is about, and then go home with a ton of homework to research later. I understand that the format requires this kind of thing, but I was hoping for a little more grit. That’s ok. I’m being pointed in the right direction, and being given enough information to read, understand, and know when something isn’t quite right. It’s all good stuff.
Lunch was another freebie. This time I avoided the chicken, and went with the turkey instead. It was a pretty good lunch, except the cookies today were chocolate cookies with chocolate chips. Ugh. I just don’t like chocolate enough for it to be the main flavor of my snack. I avoided the cookies, but the rest of the lunch was pretty good. There is a large bookstore here in Portland called Powell’s. They apparently have a large tech section, and they brought it with them to the conference. I walked around and looked at all of the books. There was a pretty good selection of book on a wide range of open source topics. The books are all 30% off at the conference. There were a few that caught my eye, but I ended up walking away empty-handed. I just decided that I already had enough books on the topics that I want to know about, and adding to that collection really wouldn’t help me out much. There was a nice book on Nagios, but I don’t think I’ll get it. I really don’t use Nagios enough to make use of the book. I thought about getting it for Shinto, but he already knows it inside and out. He wouldn’t get much from the book, I don’t think.
I thought about picking up some Ruby books, but one thing that I’ve learned in the past couple of days is that I know lots of different technologies, languages, ideas, etc., but I’m really not a master of any of them. I think it’s time for me to sit down and focus on a few key areas of exploration, and do my best to be the best in the world at them. However, my brain just doesn’t work like that. I see too many shiny things in the field of technology, and I just can’t bring myself to stare at only one shiny thing. I’ve got to have them all. I don’t want to stagnate on everything I know, so I may do my best to find focus on three to four things, and learn everything there is to know about them. The list that pops into my head right now is to master: PHP, JavaScript, Perl, and Ajax. Not necessarily in that order, though. I’ll probably work my way through all of them in parallel. Even though those four may be my focus, I’m not going to walk away from my skills in SQL, Linux, networking, system administration, etc. I do feel myself slipping further and further away from C, though. Maybe my C days are behind me? I don’t know. It’s just that most applications that I think of to write these days are all web-oriented, and with the advent and explosion of Ajax, that has just become more and more fun.
My second tutorial of the day was Essential PHP Security. The speaker was Chris Shiflett. Chris really knows his stuff, and he’s the author of Essential PHP Security (hey, I wonder how he named the tutorial session?) Halfway through the tutorial, we had a break, and I was impressed enough with his information that I went back to the Powell’s booth and picked up his book. I also saw two other Ajax books that had been blocked from my view earlier by a woman that insisted on reading a book right in front of the table. I got tired of waiting on her, and walked away. She was gone this time (I guess she had finished the book), so I was able to find two more gems that I flipped through (while standing away from the table so as to not block other people.) They were Securing Ajax Applications and Ajax In Practice. The Ajax In Practice book was full of code, examples, and sites that put Ajax to use. My other books are theory and teaching. This one is about how people use it in real life. Good stuff.
The second half of my second session of the second day was just as wonderful as the first half of my second session of the second day. (Follow that?) Actually, the entire Essential PHP Security was better than my first three tutorials put together. I learned way more than I thought I would about web security in general and PHP solutions to those problems than I ever thought possible in a mere three hours. After learning what I’ve learned, I’m actually in a horrible state right now. I’m embarrassed about my code. I want to delete everything that I’ve ever done that is associated with the web and write it all over from scratch. I think I’ll get over my my embarrassment before I get a chance to get home and run the infamous ‘sudo rm -rf /’. I have so much work to do when I get back to the office. I can only sum up what I’ve learned there, but it all relates to cross-site scripting (XSS), cross-site forced requests (CSRF), SQL injection, email injection, session fixation, session hijacking, HTTP response splitting, and remote code injection. What a wonderful tutorial. I even got the author to sign my copy of his book, and we exchanged cards because he said that I had asked some of the better questions that had been asked for the past four years that he had been giving the presentation.
After we were done, I headed down to Eduardo’s Mexican Grill for the Zend and MySQL party. There was a mini-buffet that I snacked on, and WAY TOO MANY PEOPLE. I was there for about an hour and a half and only managed to get two free beers out of the thing. I did have a good time talking to people about open source projects, work projects, and general geek stuff.
After the party, I headed back to the conference center for the O’Reilly/Google awards. When I had heard of these, I wondered what it took to get one of those. I had stars in my eyes and dreams in my head of receiving one of these someday. Yeah. Not likely. The inventor of Mozilla, Groklaw, bind, Subversion, and someone else that I didn’t catch were recipients of the awards. Paul Vixie, the head-honcho of bind, received the lifetime achievement award. Screw him. His software is the only reason that I’ve ever had a sever violated from remote…. well… violated period. I didn’t clap for that sorry bastard. Yeah. I’m bitter ever after over 7 years.
One neat thing about the award show was that they had a fairly large number of wicker baskets laid out at the entrance with buttons in them. Each basket had a different button, and there was a large sign that read, “What animal are you?” For those of you that don’t know, O’Reilly has always (until recently with a few select books) put an animal of some sort on their covers. The animals on the pins were associated with their books, and there were a little over a dozen baskets. I looked into the baskets and found many of them that fit me. I asked the woman that was guarding the table if we could take more than one. She told me that we could take as many as we wanted, but only if they applied to us. However, we were required to take at least one, and there was a blank one that we could write into. I ended up not taking a blank one because all of my technologies were covered by the other pins. I ended up taking 10 buttons total. They are (in no particular order): JavaScript, Apache, PHP, C, MySQL, RegEx, PostgreSQL, Linux, Perl, and Firefox. While at the award show, I saw people with quite a few buttons, but none more than me. Yeah. I’m that big of a geek. Yeah. I’m that proud of it.
The awards didn’t last nearly as long as I thought they would, so I was free to mingle with my fellow geeks. I hung out and got to talk Perl with some folks. I met Andy Lester, who is a head honcho with the Perl Foundation. It was nice to talk Perl after being surrounded by PHP for so long. I also got an invite to speak at a Perl session Thursday about my recent Perl work. I’ll probably speak about my most recent Perl creation that generates binomial distribution probabilities for a role playing game. I had other plans to attend a session regarding Prototype, but I’ll probably skip it for the Perl thing. I had forgotten how much I had loved Perl. I miss it.
We ended up talking about Perl stuff until security came through and gently prodded us out of the ballroom. They said that the workers needed to come through and reconfigure the room for the rest of the conference. We took the hint and walked away. I also got an invite to the next YAPC which is amazing cheap from what I hear. I’ll have to check it out.
I ended the night in the hotel bar with only one beer because it was so late. Tomorrow will be even more packed than today was, but it’s going to be lots of little things instead of two big things a few little things. This is where the conference gets fun. I can’t wait until tomorrow starts if any indication of the past two days is what things are like. It’s going to be fun. I also hear that there are a total of a little over 3,000 people for the conference for the rest of the week. That should prove interesting. Especially for the wireless network….
OSCON — Day 1
The day started at 7 this morning, which really wasn’t too bad considering that I was up until almost Midnight drinking with a few fellow geeks from Seattle, WA. I got up, and got ready for the first day of my first convention. I headed out the door at 7:30, and I walked into the convention about three minutes later. Yeah, my hotel is THAT close to the convention. Nice, huh?
There was a continental breakfast provided by the conference that wasn’t too bad. It was fruit, pastries, and coffee. I’m a light breakfast eater, so this was perfect. I munched on my breakfast, talked the evils of Java with a few people, and then headed into my first tutorial.
The first tutorial of the day started at 8:30, and was entitled, “You Got JavaScript in My PHP! And…” It was taught by two people: Rasmus Lerdorf, and Thomas Sha. Rasmus is the creator of PHP, and currently works for Yahoo! Thomas also works for Yahoo!, and is the lead JavaScript developer for them. The tutorial was split into two parts, but they were intermingled. Half of the time was spent talking about the Yahoo! User Interface (YUI), and the other half was spent talking about various web vulnerabilities like cross-site scripting (XSS) and cross-site reference forgery (XSRF). Rasmus really knew what he was talking about when it came to security, and he showed how to use PHP to help prevent these types of attacks. It was really eye-opening, and now I’m going to have to go back through my open source projects to clean things up. I’m sure that they are wide open to attack. Rasmus was also very personable, outgoing, quite humorous, and seemed like a genuinely good guy. Thomas, on the other hand, was a friggin’ robot. He was dry, focuses, precise, and never wrong. Everything that he said was insightful, educational, and eye-opening. However, he used the least amount of words necessary to convey the most amount of information. He did talk slowly, so during the few moments that I had to take to process what he was talking about, I didn’t get left behind. I have to say that the YUI is a VERY cool set of widgets. I should call them a combination of DHTML/Ajax tools because that is what they are, but Thomas could barely restrain his hatred of those terms when he said them. Out of respect for a man that is much smarter and more talented than me, I’ll use his term: widgets and low-level controls. Fortunately, the YUI is open source and released to the public. I have not checked out the licensing terms that come with it. I hope to be able to use it at work, but that may not be possible. I don’t know. If I can’t, then I’ll probably play around with it on my personal site. I’ve already got a great layout in mind for how I’m going to use it. I can’t wait to find the time to do it.
After the first tutorial, I hit lunch. I ate the free lunch fairly quickly, and I think there was spinach on the chicken sandwich because my mouth itched after I ate it. I’m allergic to spinach, and that is the first signs of a bad reaction in my mouth when I eat spinach. I quickly doused the itch with a dose of Mountain Dew, and I was fine. Either I caught it in time, or my allergy to spinach has gotten less severe over time, or both. After scarfing down lunch, I hustled down to the other end of the very large conference center to the Ubuntu Live! Expo Hall. I was hoping that there would be tons of vendors and cool stuff there. There were about 10 vendors. Thinking back on it, I’m not surprised. This is the first Ubuntu Live! conference, so the turnout is understandably small. I picked up a few flyers, an Ubuntu pen for Shinto, and a fresh Ubuntu 7.04 CD. I already had my own ISO, but I wanted a pressed copy that will last longer than a burn. I managed to talk to the OpenMoko guy, and I’ll probably sign up for his mailing list to see if I can help out with the open source development for a really cool phone. We’ll see if I have the time, skill, and inclination to do so. After about 20 minutes of talking to vendors, I headed back to my second tutorial of the day.
My second tutorial was “Pro PostgreSQL”, which was taught by Robert Treat. Robert has been doing PostgreSQL stuff for ages and ages. Much longer than I have. His tutorial ran a little long (by about 15 minutes) but almost everything in the tutorial was great to learn. I learned about upgrades, configuration, maintenance, performance tuning, weird queries, authentication, various “contrib” packages that for some reason (sometimes legal [e.g.: encryption and U.S. export laws]) have not made their way into the core code, backups, restores, high availability, logging, query performance tuning, schema investigation, schema tuning, tablespaces, partitions, and a few other things. Yeah, I know. That’s lots to cover in 3 1/2 hours. It was all very high level detail, but I have a printout of all of his slides, and I have some good notes jotted on them, and even more research points to do. I’m not a PostgreSQL DBA (which is what this tutorial was aimed at,) but I think I came away with a more extensive knowledge of how to deal with PostgreSQL. Robert is also the author of Beginning PHP and PostgreSQL 8, and he’s one of the main programmers of phpPgAdmin, which I use extensively at my work. BTW, Robert was very politically correct when it came to “other open source database systems.” In other words, he would throw out veiled insults to MySQL, but never came out and said it. Everyone knew what he was talking about, though.
I then had about 15 minutes to relax a little before heading to my first Birds of a Feather (BoF) meeting. It was about using open source in the education field. I’m not an educator (although, I hope to be one in the future), but I mainly went there to see if I could get ideas for how to convince my college to get more involved with open source programming, projects, and other ideas. I mainly sat there for most of the hour listening to two guys ramble on about nothing. One guy was explaining to everyone how a community college worked. Yeah. Almost everyone in there works for or teaches at a college. We know how they work. The other guy railed against the horrible fact that most popular open source projects have been leveraged by companies to gasp make money. Oh no! A company is making money. How horrible! What has this country come to? Ah well…. I finally got to speak near the end (as we were almost getting kicked out to make room for the next BoF), and I asked if anyone had any advice on how I can convince my college to add more open source programs. A guy from Oregon State University had done such a thing and it was a success. I got his email, the BoF organizer’s email, and some friendly advice (and some good education on the educational system) from a fellow that I didn’t get the name of. It was an OK BoF, but it could have been better had it not been monopolized by those two people. Ah well….
I had an hour break before my next BoF, so I ran down the block to Burgerville to snag some quick dinner. I ate real quick (good burgers too!!!) and ran back to the conference center.
The next BoF was for Perl Trainers. I’ve never taught anyone Perl. I have taught quite a few people HTML and JavaScript, and a few people C, and I’m helping teach a co-worker PHP right now. We’re looking at hiring a new guy at work that is good at math (which is half the job,) but not so hot with Perl (which is the other half.) It’s probably going to fall to me to teach him Perl, which I’m actually looking forward to. However, I’ve never approached this subject before as an educator, and I’ve been doing it for so long that I’ve forgotten how I learned what I know and what order I learned it all in. It was kind of haphazard when I was learning Perl despite the excellent O’Reilly books. There were only five of us in this BoF, and three of the five were published authors who made a living teaching people how to do Perl. The other guy was a Perl guru that was interested in taking up teaching Perl as his profession. I was the lone guy out. However, I explained to them my upcoming situation, and they gave me some wonderful advice on how to approach the subject and how to teach the guy. I came away with some great information. It was an hour well spent.
I sat in my room and vegged for a bit, talking to Kiara for a while, and then decided to hit the bar to find some geek people to talk shop with. I found the bar empty (except for the bar tender, of course.) I guess there was a geek party somewhere and I wasn’t invited. Even amongst the geeks, I’m a reject. However, the state of the wireless network in the hotel suggests that most of the geeks were probably in their hotel rooms desperately trying to play World of Warcraft, post a blog entry (like what I tried to do earlier), or checking their email. After a few beers and talking to a nice waitress (Jasmine: Yes, she was good looking (but not hot). No, I wouldn’t do her. No, I didn’t make out with her. No, we didn’t share a “special moment.”) I got back to my room just now to find that the wireless was mostly responsive. I managed to finish up my blog entry, and get it posted. It’s almost midnight, and I’ve been up since 7 AM. Time to take a shower, hit the bed, and try not to get annoyed by the tiny little pillows they put on my king-sized bed.
More news about tomorrow’s OSCON to follow…..
Religious Conversion
I got into Portland yesterday for OSCon, and I had about an hour to kill before registration started. I unpacked my bags, got things organized, and got settled in. It was about time to get registered, so I hit the conference building which was right across the street from my hotel (yay!) The lines were very short, and they were very organized, so I didn’t spend long getting my badge, books, bag, and starter freebie stuff.
I decided that it was time to eat since it was a little after 5:00, and I hadn’t eaten since 9:30 in the morning (these times are all PST.) I had seen signs in my hotel inviting OSCon guests to hit the Window View room (or something like that) in the top floor (6th floor, not very tall) of the hotel. I decided to hit that since I figured it was a restaurant or something of the kind. Nope. Turned out to be a bar, and I was the first person to show up. I had interrupted the bartender’s reading of the latest Harry Potter book, and I didn’t feel like an ass enough to walk away. I had a few drinks at the bar, and the alcohol started to hit me harder than it should because of the empty stomach. After the second drink, I decided to break off my genuinely engaging conversation with the bartender in search of food.
I hit a burger joint that was across the street, and while waiting for my food a fellow OSCon attendee (I could tell because he had the bag over his shoulder that all attendees were given) walked up and asked if he could join me. I figured that we would talk about geek things and have a good time while eating some burgers. I was never so wrong in my life!
The guy’s sole mission in life seemed to be the conversion of every living being on the planet to the Church of the Latter Day Saints. As most of you know, when I’m drunk (which I was right on the verge of being so) I talk too much. I ended up talking to this guy for about two hours, and he never let up on trying to convert me right there in the middle of the burger joint. Normally, this pisses me off to no end, but I was relaxed and happy and willing to give this guy the time that he wanted. We waxed philosophical about religion for a long while. Now, I can handle myself in most debates, but religion is one of my weak spots. However, I can take almost every religious tenant and boil it down to a philosophical standpoint. I’m pretty damn good at philosophy, so I held my own against this guy. In the end he didn’t want to give up, but was tired of the verbal fencing, so he changed the topic…..
….. to which editor I used: vi or emacs.
He stated up front that he thought that emacs was a superior product. I wasn’t listening closely, and I stated that I prefer vi to emacs. I explained to him that I did give emacs two weeks of solid us, and then vi two weeks of solid use when deciding between the two. I told him that I prefer vi (actually vim) over emacs as a “text editor.” He countered that emacs was a better product because it offered seamless remote mounting, built-in diff mode, lisp mode, a wrapper around the bash shell to capture output, etc.
My counter to that was that emacs may have all of those features, but I just want a text editor that is superior at editing text. If I wanted those other things, then I would get products that do those other things. He started talking about a variety of features that it has, and I countered with Perl for all of them. There is nothing that emacs can do that Perl can’t do better, faster, and with more flexibility. He stated that emacs can do all of these things and create new files with all of these new features. I explained to him that I have yet to find a Unix shell that can’t redirect the output of a command to a text file. As a matter of fact, I prefer the ability to use multiple pipes to get what I want before redirecting it to a text file… and then editing it in vi which has superior text editing capabilities.
In the end, he tired of being unable to convince me of either of his religions (LDS or emacs) and begged off saying that it was late. I was glad when he broke off our long conversation because I was getting tired of him (even though he was a really nice guy) and I really had to pee.
Oddly enough, the “conversion attempt” that upset me the most was not him trying to get me to join LDS, but his attempt to convince me that emacs was superior to vi. I guess that’s because my religious faith and his are rooted in the same principles (with, perhaps, some different execution), but emacs and vi are horrible different and never the twain shall meet.
Going to Portland!
The trip that I talked about here got approved Friday. I would have posted about it Friday, but I was too busy booking the conference, the hotel, and finding the cheapest non-stop flight from home to Portland. I managed to get all of that done before end of day Friday.
I can’t tell you how excited I am to be going. Work is paying for the full trip, and since it’s a “work sponsored event” I don’t even have to use my vacation time while I’m out of town. This is going to be great. I can’t wait until the end of July when I get to go to Portland to geek out with my fellow open source enthusiasts. I also hope that I get to meet a few notable people like Larry Wall (creator of Perl), and Rasmus Lerdorf (creator of PHP). I’m sure there are lots of other people that are going to be there that I would like to meet, but I really have no idea who they would be. I’d like to meet Richard Stallman, but I don’t think that he’s going to be there.
I’ll make sure to give you a full report on the trip when I get back from it in July. It’s 8 weeks away, and I’m going to be counting down every day of it!
OSCon
A couple of nights ago I got a flyer for O’Reilly’s OSCon. It’s their Open Source Convention that they hold annually. Normally, I don’t even bother looking at these because I always want to go, but I never seem to be able to afford to go.
My company has a training budget, but I’m not sure if I can get them to part with the necessary cash to allow me to go. The conference normally costs $1690.00 (for early registration,) but since I’m a full-time student, I get 65% off of the fees. That drops the price to $591.50. I wonder if I can convince them to part with the $600 for the convention.
Of course, there is hotel ($109 a night for 5 nights [$545.00]), and airfare (which I have not checked into yet) to consider. These extra costs may drive the price up to high for my company to pay for, or I may have to cover those costs myself, which may preclude me from going.
There are all sorts of activities during the week. There are tons of tutorials (half-day classes) and sessions (1-3 hour classes) during the week. I made a list of the ones that I would like to attend in hopes that it will show to the Powers That Be in my company that it will help make me a better programmer, and, thus, a better employee.
I’ve had one company in the past send me to training, and I had to sign a contract saying that I would not voluntarily leave the company for a year. I was OK with that, and I’d be willing to do that again especially since I have zero intention of leaving my currently employer for many years to come.
Some of the classes that I’m interested in are:
- PHP Extending/Embedding Tutorial
- You Got JavaScript in My PHP! And…
- Advanced VIM Scripting
- Pro PostgreSQL
- Learning AJAX
- PHP and MySQL Best Practices
- Technical Management of Software Development
- Essential PHP Security
- Making Programs Faster
- Simple Ways To Be A Better Programmer
- Practical Design for Web Developers
- Performance Whack-a-Mole
- The Future of Rich Internet Applications with PHP
- PHP Security: Fact and Fiction
- How I learned to stop worrying and love my database: MySQL to PostgreSQL.
- PHP – Bigger and Faster
- Network Monitoring with Nagios
- High-Performance JavaScript: Why Everything You’ve Been Taught is Wrong
- High Performance Web Pages
- Improving Performance by Profiling PHP Applications
- Windmill — Automated Testing of Your Ajax Web Applications
- VIM for PHP Programmers
- Error Handling in Ajax
- AJAX and Web Services
- PDO: PHP Data Objects
- Offline AJAX – Taking large browser based applications off-line
- Security 2.0
- Accessibility for Web 2.0
- Prototype & Object.prototype: JavaScript Power Tools
- Untangling the Web: Dealing with Legacy PHP Code
- Introduction to PL/PHP
- OSS Amateur Robotics
Many of these classes overlap, or are held at the same time. I’ve got a prioritized list in a spreadsheet on which ones I would like to attend. Many of you may think that I’m sick in the head, but I think this would be a totally fun way to spend a week. Learning, meeting people, seeing new technologies, learning new ideas, and hob-nobbing with my fellow OSS (open source software) geeks sounds like a total blast.
Keep your fingers crossed, and let’s hope that I get to go. I should know by tomorrow if it’s in the budget to send me to this thing.