General Archive

Ideas of March

Posted 3/20/2011 By Jason

One of the things I love about Twitter is it enables me to stay in contact with the PHP community, and in particular the group of speaker I have come to know through PHP conferences. My friend Chris Shiflett tweeted about the “Ideas of March” calling for a revival of the blog as a form of communication for our community.

I am not sure I was ever a good contributor in this form. Jeff Moore always said his aggregator listed me as a “dinosaur” from the frequency of my posts. I stayed at home with my kids this week for spring break, and one thing I accomplished during this time was the migration of my home web and email servers to Rackspace and upgrading the software for this blog to something not as security ridden as what it had been.

As far as Twitter killing the Blogosphere, probably the story of it’s demise is greatly exaggerated. My personal blog revival will not be noticed in a sea of noise, but none the less, hopefully you can stay tuned for more updates with a bit more thought put into them than a tweet or a facebook status update in the future.

Seven Things

Posted 1/4/2009 By Jason

Thanks to Brian Deshong I have been tagged with the “Seven Things” meme.

  1. I was born about 5 miles (and one state over) from where I now live, but I moved to Colorado Springs when I was one year old and I consider myself “from” Colorado.
  2. I first learned to program in BASIC, so I could figure out how to cheat on games we loaded from cassette tape on Apple II computers.
  3. My father was once featured in a magazine ad for Apple. He was a junion high school teacher, paid for 1/2 of the first Apple computer purchased in the school district, and they took the picture for the ad in his classroom. They touched up his teeth in the photo, he always claimed that was the cheapest and least painful dental work he ever had.
  4. My mother noticed both of my children are “eve” babies. Caleb was born on Christmas Eve, and Madeline was born on Ground Hogs Day Eve.
  5. I normally do about 8 to 10 hours or martial arts for exercise each week, including Taekwondo, Hapkido, Brazilian Jiu-Jitsu and Kickboxing. I practice Taekwondo with Grand Master Chung E. Kim, and I practice Jiu-Jitsu with Rodrigo Uzeda at Miletich Fighting Systems in Bettendorf.
  6. Don’t tell any PHP zelots, but I actually like the Ruby syntax. Have not done anything substancial with Rails though, more small cgi and shell scripting projects with Ruby.
  7. When I was in college, I was in a group called the Society for Creative Anachronism which recreated the middle ages. There I was know as Lord Karl Wolfgerson, and I was the first Protector of the Barony of Unserhaven.

I would like to tag:

Travis Swicegood,
Jacob Taylor,
Dana Coffey,
Marcus Baker,
Harry Fuecks,
Jeff Moore, and
Dr. Horrible

Oh, and the rules: Mention the person who tagged you, post seven things people might not know about you, then tag seven more people and let them know via post to their blog or mention on twitter.

Changes Afoot

Posted 1/2/2009 By Jason

This morning I turned in my resignation as the “Manager of eBusiness and Commercial Systems” for Alcoa after nine and a half years with the company. Starting January 20th, I will be the “Manager of Implementation and Continuous Improvement” for the World Wide Logistics division of a large agricultural equipment manufacturer headquartered here in Moline Illinois.

My time with Alcoa has been filled with good opportunities, experiences and people. My first big project at Alcoa was the deployment of a Siebel Customer Relationship Management system, and for the rest of my career there, I have been involved in with the IT systems for the Commercial Organization. I was able to put into place a number of other systems, including Linux web servers for PHP based intranet applications, and we put into place a governance process to help ensure the projects we were working on were the most valuable to the organization. I met a number of good people along the way, and build a unique work environment for my immediate work group. I will miss working with everyone as I move on to my new opportunity.

I am really looking forward to my new direction. My immediate work will focus on working with a database of logistics data. There is quite a bit of dimensionality to this data, as it comes from all of the divisions, both inbound and outbound transportation, and import and exports, and various logistics providers as data sources. My team will also work on business process improvement projects in addition to the data related work. I believe my technical background will be very valuable to move these projects along quickly and bring significant value to John Deere in the short term.

Longer term, I am excited about the demographics as well. I will be working at the world headquarters, so there will likely be significant possibilities for advancement without requiring relocation. So far I have been impressed by the leadership and strategy I have been exposed to thus far.

Probably the biggest open question for me on the technical side will be how PHP fits into my new role. For the past year I have been doing some side consulting work for one of the third party logistics providers, creating a dashboard from a subset of the logistics data I will now be responsible for. They are very pleased with the result, but we need to determine how this might fit into the environment and longer term directions overall. Continuing this work as consulting would be a conflict of interest, fortunately I have located a very good person to turn this work over to. On the other hand, after I become acclimated to my new work, I will probably have to start the search for a good replacement for this consulting work. I suspect this role will be even less technical than my current role, so I may come to depend more on the consulting work to keep my technical skills exercised.

I found the decision process regarding this change interesting. I was not being overly aggressive about searching for new employment; I do enjoy my job and the people I work with at Alcoa. I had contacts inside of John Deere with whom I have networks who encouraged me to apply for various positions, and they have a reasonably automated means of notifying you about new positions through their external career web site. Early this fall I was approached by a head hunter on a cold call about doing some CRM work at a director level in another industrial manufacturing company. This caused me to give thought to exactly what I would like to be doing and where I should be headed with my career. It actually prompted me to respond to some friend’s inquiry regarding a PHP position which led to one of the hardest decisions I have made in a long time: declining essentially my dream technical job. Unfortunately, I didn’t have the support of my wife and the economy had just took its’ big nosedive, and would have made it potentially very uncomfortable to relocate. I interviewed for this opportunity shortly after that, but it took several months to actually materialize.

Now onward and upwards! Big changes afoot and it will be exciting to see where they lead me. Happy new year to everyone, I hope your year is filled with excitement and changes as mine is.

I mentioned in the Part 2 about my wife Vicki and my daughter Madeline. On Christmas Eve, 2001, my son Caleb James Sweat was born.

Madeline is quite a little lady. She will be entering the sixth grade at Riverdale Heights Elementary. She will be taking her temporary Black Belt test on the day of the reunion (Aug 9th) and she is doing very well on the Pleasant Valley Stingrays Swim Team. I think it is interesting that her strengths and weaknesses in swimming stroke were the same as mine when I swam on the Coronado High School swim team. She does very well academically. She has taken the BESTS tests the past two years, which are an 8th grade level aptitude test in which she places above the 90th percentile. She also was selected as one of four students from the 5th grade to represent the school at the Ecomeet, in which Riverdale Heights won. Madeline volunteers at the local family museum and the library.

Caleb loves to follow in his big sisters footsteps. He is on both the swim team, and will be testing for his blue belt in Taekwondo on the ninth. He will be starting 1st grade at Riverdale Heights, and is big time into Super Heroes, video games and Webkinz.

Vicki stays home to take care of the kids, and during the school year is a volunteer in the classroom. She spends much of her time ferrying kids to various activities, and is a great cook.

Our family enjoys going on vacation together. Some of our best adventures have been in Acapulco Mexico, where we have purchased a vacation time share and have returned several times. We have also taken the kids to the Bahamas, Myrtle Beach, Orlando and the Wisconsin Dells over the past couple of years.

Last summer we did quite a bit of camping, but that has not seemed to fit into our packed schedule this summer. The weather has not treated us so well this summer either, we lost a rather large tree in our back yard due to the tremendous rain and wind storms we have been having. The flooding here in the Midwest has not affected us directly, other than our sump pump turned on for the first time this year.

Personally, I enjoy doing martial arts as my main “outside of work” activity. About two months before Caleb was born, I discovered an Aikido dojo here in the quad cities. I decide to do one night a week (not actually a popular decision at the time, if you can imagine). About three years later, the landlord was disappointed in not having been paid rent, and the dojo shut down. In August 2005, Vicki located a Taekwondo program through the YMCA which Madeline joined. I began to come and participate in class along with her. In March of 2006, Caleb decided he was old enough to join, but that was going to double our monthly payment to $60 per month. In her usual cost saving maneuver, Vicki located another Taekwondo Dojang, Chung Kim’s Blackbelt Academy which we could pay $75 per month for me and the kids on a family plan. I was especially attracted to this because they had three black belt instructors for a class of ~12-15 “little tigers” (class age 4-7) which would give Caleb a lot more individual instruction and attention. The overall classes focused more on discipline and proper form, which I liked better than the more “open” style we had been instructed in before, and they had a Hapkiye class (Hapkido but the “ye” means supplemental art instead of “do” meaning path, showing this was and additional art as part of our Taekwondo curriculum, not the main art we are studying). Hapkido is the Korean version of Aikido, and is a soft style martial art in contrast with the hard style of TKD itself. We usually do Monday and Wednesday evening TKD classes, and the kids do TKD when I do Hapkiye on Friday evening. I also do Hapkiye and the TKD Blackbelt classes on Saturday mornings.

I began to watch the UFC and various other Mixed Martial Arts shows on TV for entertainment. I noticed a trend where it seemed like every third or fourth fighter was announced as being from “Bettendorf, Iowa”. Well Bettendorf is a town of 20,000, so something was going on. It turns out that Pat Miletich, former UFC lightweight champion, runs a gym and training camp for MMA fighters here. Last summer I went to get a haircut and my barber had closed up shop temporarily. I remember that the gym was just a block away so I stopped in to visit. Pat was there and showed me around the facilities, and talked with me for 15 minutes or so. Later that evening, I met my boss at a local resturant for dinner. About half way through out meal, Pat walked in and sat down at the table next to us. His dinner guests never showed up, so we invited him over to our table and had a nice conversation. I decided to take a week trial and eventually signed up for a membership. I do the 5am Ultifit on Monday, Wednesday and Friday mornings. On Wednesday and Friday mornings, I stay at 6am and do basic kickboxing. On Monday and Wednesday evenings, I attend Rodrigo Uzeda’s Bazillion Ju-Jitsu classes. These classes are right after the advanced MMA classes, so it is kind of fun to walk in as see Pat Miletich, Jens Pulver, Tim Silvia, Cory Hill, Ben Rothwell and many others working out.

Anyway, that is a brief summary of 20 years of my life. Even though I can’t attend the reunion, I hope I will run into some of my former classmates in cyberspace.

One day at Neural, I received a telephone call from a recruiter who asked me if I would be interested in leading a project to replace legacy systems at “A Fortune 500 Company within 45 minute commute of you”. I say “ok, who is it?” and she revealed it was Alcoa. I laughed and said I know a vice-president of Alcoa, to which I got a “sure you do” kind of response. After I hung up from her, I called Wendy Winge, who was the IT project manager I had worked with most closely at North Star Steel, who had followed Mike Coleman over to Alcoa. Mike had been the president of North Star Steel, and joined Alcoa to run the Ridged Packaging Division and was a VP of Alcoa as a whole. Mike called me back later that afternoon and said he was going to call John Collins, the president of the Mill Products division where I was looking at the job, and he was going to instruct him to “do whatever it took to get me on board”. The next day the recruiter called back and said “I don’t know what happened, but they are very eager to get your resume, you have to get it over to me right away”.

I joined Alcoa Mill Products in Bettendorf Iowa in July of 1999. I was a Project Leader, and my first job was the installation of a Customer Relationship Management system. When I joined, the business had already identified the need, and we were going through a vendor selection process. We ended up selecting Siebel, and we went live with our system in March 2000, delivering the project on time and $500,000 under budget.

My role continued to be associated with these commercial systems. I facilitated maintenance and enhancement of this CRM tool, as well as AlcoaDirect, our custom extranet solution for our customers, and various intranet applications. In January 2005, I moved to the commercial side of the business and became the Manager of eBusiness/Commercial Systems, which basically meant keep doing all of the IT work for these systems, but now be responsible for sponsoring and guiding strategy with them as well. In August 2007, my supervisor departed to join John Deere, and my role moved back into the IT department, though my title and responsibilities remain the same.

One significant thing which happened during this time frame was my introduction to the web development language PHP. During my tenure at Neural Application Corporation, I participated in an investment club called the Pentecrest Investment Club, and I continued to pursue my personal interest in Stock Options trading, and eventually formed a partnership with some members of my investment club, family, friends and work associates. This partnership was called “Sweat Equity Investments” and I managed the options trades for the group. I originally tracked the trades in an Access database, and used a report to generate static web pages which I published as the monthly accounting. I was familiar with Microsoft SQL server and ASP pages from work experience, but I did not want to pay for the license for a Windows server setup at home. I talked to my UNIX administrator, Charles Fisher, and he pointed me in the direction of the LAMP stack. LAMP stands for Linux, Apache, Mysql and PHP, though I initially used Sybase for the easy of transitioning from Microsoft SQL.

Once I had this capability, I rewrote our accounting software and made a secured website where each partner could log in, review their account, and get graphs of their account history. Since I was using all open source software which I did not have to pay for, I felt I owed something back to the community which had provided these tools, so I began to write articles about the work I was doing. Some of these were published on the Zend website, and in particular a tutorial on using JpGraph attracted the attention of a publisher named Wrox. They wanted to write a book on graphics in PHP, and I ended up writing two chapters on charting data. Two weeks after I received the two preliminary copies of the book, the parent company of Wrox went bankrupt and I never received a penny for the 1/3 of the PHP Graphics Handbook.

The cut out about half of the material I had written, so I was later able to tweak that material into a series of article for PHP Architect magazine. I began attending conferences and presenting on various PHP topics, and later wrote my second book PHP|Architect’s Guide to PHP Design Patterns.

At this point and time, PHP is a small fraction of my professional work at Alcoa, but I do some consulting work on the side to keep myself engaged (and I love it, it is fun for me).


My father, whom most people from Coronado in my class would remember as Mr. Sweat, the Media Specialist on the library staff, also sold grade book software for the computer. He took a support call from a teacher in Bluegrass Iowa, but it was actually that teacher future son-in-law, who was local computer technical support for her and in conversing with my dad, mention he was doing research on Artificial Neural Networks. My dad said “Hey, that is what my son is researching too” and on the winter break of my senior year, I arrange some time to visit their main research project at North Star Steel in Wilton Iowa, which was 30 miles down the road from my grandparent’s house in Silvis, Illinois. I found it fascinating, but at that time was intending to continue going to graduate school.

Mulling things over, I decided that perhaps it would be good to earn a bit of money for a year or two, pay off some student loans, and then go back to school after that (16 years later…never happened). During spring break I went back and did a second interview, and two days before graduation I received and acceptance letter from Milltech – HOH, a tiny engineering firm in Iowa of which I was the 12th employee. I moved back to Davenport Iowa, got an apartment, and we worked in a little office on top of a Chinese restaurant in Walnut Center. We were building process control systems for mini-mill in the steel industry.

The following year, the company changed its name to Neural Applications Corporation, and moved the University of Iowa’s Oakdale Research Campus, a business incubator for the university in Coralville Iowa. We spent a year or so in the basement of one of the campus buildings, and then eventually built our own building and moved into it.

I had purchased a condo in Iowa City, and lived next door to Laura Suppel, whose family ran La Casa, a Mexican restaurant in Iowa City. Her best friend was Vicki Casey, whom I met at a few parties at her house. We eventually began dating, and later sold both of our houses and moved in together into a split level house from the 70’s on the east side of Iowa City. He father passed away, and we had our daughter Madeline Moira Sweat, who was born on February 1st, 1997.

Vicki is a twin, her brother Brad is a school teacher, and a basketball coach and referee in Minneapolis, Minnesota. There is a younger set of twin brothers, Bret who lives in Ohio, and Bart who lives in Iowa City. Their youngest of 3 kids was Abe, born on March 1st, 1997 exactly one month after Madeline.

The work I performed was always in the steel industry. I changed from installing and configuring the control systems, to managing the research and development projects for new control systems on different pieces of equipment. There were several years where I was on the road 3-4 weeks a month, and it was actually quite amazing that I was able to meet my wife at all :) .

We were looking for additional ways to apply the technologies we were using. On aspect of them was they could learn to recognize patterns in large amounts of data. We were therefore looking for problems where there was lots of data and a poorly understood underlying process. The answer to this search was the stock market, and we began to use neural networks to assess performance of stocks. This lead the company to purchase a stock market oriented portal called, which was later acquired through a series of transactions and is now CBS Marketwatch. By the time I left, I was the 6th most tenured employee at a firm of 100 people.

Towards the end of my work at Neural, I was designing ASP pages which looked at data collected from PLCs (Programmable Logic Controllers) and stored in a SQL Server database. I really enjoyed this web work and it certainly has continued to play a role in my life.

Six weeks before I left, the metals portion of the company was acquired by a company called Systems Alternative, Inc. and the rest of Neural continued on in its financial sector focus. I heard the Neural acquired portion of the business was shut down one year later, so my decision to leave was on good footing for many reasons.


Life Since High School

Posted 8/3/2008 By Jason

This year is my 20th high school reunion. I was looking forward to this, and had been searching the internet for when it was going to happen all last fall and winter. Late this spring a postcard arrived with the date, which I looked at and to quote Han Solo “I’ve got a bad feeling about this”. The date was August 9th, and my kids head back to school on August 13th. To top it off, this was one of three black belt testing dates per year for our school, and I am ready to test, and my best friend from high school already had plans to see a Cubs game in Chicago on that date, and to stop here and visit afterwards. All in all, the stars seem to have aligned against me attending the reunion.

None the less, the spirit to reconnect is in me as it is with many others. Facebook has turned out to be a blessing in this way, allowing me to reconnect with some of those long lost souls by reaching out across the internet. If you have a facebook account, look me up.

These blog posts are a summary of twenty years of my life since high school, for anyone who cares. It may be mostly boring drivel that nobody is interested in reading, but that is what blogs on the internet are for, right 😉 This will of course be the “resume” version of my life, I won’t subject you to the real crappy parts you don’t want to read anyway, just the highlights to give you a flavor.

Part 1 of 4 – The College Years

After high school, I attended Colordao State University. I graduated in four years with a Bachelors of Science in Business Administration. I had concentrations in Finance & Real Estate, and Computer Information Systems, and I had a minor in Mathematics. I was in the University Honors Program, and I did a Senior Honors Thesis titled “The Application of Neural Networks to the Forecasting of Economic Time Series Data”.

I spent two years in the dorms at CSU, and two more years in apartments there. Some people from Coronado who attended CSU with me were Teresa Parker (lived in the same dorm I did the first two years), Lisa Bailey (married Allen Wagner), Mark Stallings (roommate with me my second year in the dorms and first year of apartments) and Jeff Whitt (my roommate the last year of college).

I did funded undergraduate research on the same topic as my honors thesis, and the professor I did research with was Dr. John Snyder. He has a cabin up on a lake in Montana on Swan Lake, near the town of Big Fork; about 45 minutes drive south of the west entrance to Glacier National Park. He spent summers there, eventually retiring to the cabin, and I went to visit him there several times.

In addition to class work, I participated in numerous extracurricular activities. Besides the usual bar hopping, I was in a group called the Society for Creative Anachronism which did recreation of the medieval times including fighting, dancing and feasting. Four all four years at CSU, I was in the CSU Ki – Aikido Club, studying the Japanese martial art of Aikido. I liked this, and took both levels of introduction to Self-Defense courses offered as PE credits as well. I joined Alpha Kappa Psi, a co-ed professional business fraternity.


What is Ultifit

Posted 7/31/2008 By Jason

I keep mentioning my Ultifit classes on twitter. If anybody cares, here is a more detailed description of what Ulitfit is.

Ultifit is part of the Miletich Fighting Systems conditioning program. Googling only came up with one description.

Edit 2008-08-05: Stumbled back over the description I was looking for – MFS Ulti-fit, our Ultifit class is the Ulti-Endurance listed here.

Here at Champions in Bettendorf, Ultifit classes take place at 5am, 7am and 12pm on Mondays, Wednesdays and Fridays, and at 8:30 on Saturdays. I usually go to the 5am MWF classes. The room is setup in stations, you start at one and work your way around all of the stations. The first round is one minute at each station with 15 seconds to move between stations. We get a drink of water for a two minute rest, then we go through the entire set of stations again for 30 seconds on each with 10 seconds to get between stations. When we finish the second circuit, we then “pick you favorites” (by which he means the stations which challenge you the most) doing 2 more stations for 1 minute each.

The trainer rotates stations in and out of the mix periodically, but here is a sample of the current stations in the workout:

Center Jumps
Heavy bag on the floor, pick up a 15 lbs medicine ball. Squat with a leg on either side of the heavy bag then jump with both legs and land on the heavy bag. Jump back down to strading the bag and squat. Holding the medicine ball in front of you the whole time.

Upper Cuts
Pick up weights and do uppercuts alternating arms.

Like pushups, but your feet are on a 55cm stability ball, when you push up, you bring you knees up to your chest. Straighten out your legs and lower yourself in the pushup position.

Shoulder Rotation
Pick up a 30 lbs plate and rotate it in a circle in front of you at waist level, then behind your head and back down. Change direction of rotation half way through the exercise.

Squatting J Row
Elastic bands on the wall. Pull to tension. Squat, stand up, pull hands back to shoulders and imagine pinching a pencil between your shoulder blades. Basically the opposing muscle groups to the pop-ups.

Split Rail Jump
Like the Center Jump exercise, but keep one leg on the heavy bag and the other on the floor, then switch which leg is on the bag and on the floor while holding a medicine ball in front of you.

Renegade Row
Dumbbells in front of you, butt up in the air. Resting your hand on one of the dumbbells, lift the other up to your hip while lowering the other knee slightly, reset and repeat on the other side.

Balance Ball
One of my favorites, a 65cm stability ball. Get up on top of it and balance. Beginners start balancing on their knees, those who master that start shadow boxing or the like to introduce some instability, but that is not what the really good people do, they stand on the ball. I can actually do about 6 squats after getting up standing during the 60 minute first round.

Jack Knife
Lay down flat with medicine ball in hands. Raise up your legs strait in the air and raise your arms and the ball up to touch your legs. I do it with an 8 lbs medicine ball between my legs and the 15 lbs in my hands.

Turkish Getups
Hold a dumbbell in one arm. Lay flat on the ground. Push the dumbbell straight up in the air and rise to a standing position (without rocking, it is harder than it sounds). Change the dumbbell to the other hand in the air, then lay down and repeat.

Flip It
Take a heavy bag off of the ground from one end, lift it up and flip it over to the other side. Run to the other side and repeat back in the first direction.

Alternating Punches
Pick up hand weights and shadow box.

Giant Swing
Pick up a 45 lbs kettle bell (basically a cannonball with a handle welded on it) and swing it up in the air in front of you, change hands holding the kettle bell while it is at about eye level, then let it swing down into a squat, swing it back up in the air and repeat.

Zipper Hop
Noodle (like swimming floatie) laying on the floor, hand weights. Hop back and forth on either side of the noodle.

Stability Chop
Elastic band, lay back on 65cm stability ball, hold elastic band and chop away from the wall like the tin woodsman. Change sides half way through the exercise.

Ulti Plank
Like a normal plank, but you raise up on one arm like a push up, then bring the other arm into a full push up position, then put one elbow back down on the ground, then the other. Repeat.

Lay flat on the floor and lift dumbbells from your chest straight up in the air.

Hamstring Curls
Eliptical shapped stability ball. Lay down on the ground and put your legs up on the ball, Curl you ancles back down towards your butt, straighten back out, but don’t let your butt or lower back touch the ground.

Elastic band and 65cm stability ball, stretch bands to tension, lay down with chest on the stability ball, then pull back the bands. Ends up looking like you are doing the butterfly stroke from swimming.

Amazing Spiderman
Hands and feet on the ground, butt up in the air. Bring knee up outside and in front of the elbow, back to starting position, bring other knee up in front of other elbow.

Dumbell Press
Standing with dumbbells in close in front of your chest, raise to straight up in the air.

Big Jump
12 2″ wrestling mats in a stack. Standing jump up on them, and then back down. Repeat. I do this one backwards during the second round.

Open Ups
Feet spread out a bit wider than shoulder width behind you, resting on one hand straight below you. Keep spine basically level and raise dumbbell in 180 degree arc from ground to straight up in the air, follow it with your head looking at the dumbbell, repeat, switch sides half way through the exercise.

Absolutely Hilarious

Posted 6/30/2008 By Jason

Thanks to Sebastian via Twitter in this tweet.

PHP Oracle Web Development

Posted 11/21/2007 By Jason

I was recently given the opportunity to review a new book on the subject of PHP and Oracle databases. We use Oracle databases nearly exclusively at work, so this seemed like a good opportunity to me.

cover imagePHP Oracle Web Development” itself resembles many other technical references available for PHP, soft cover, approximately 375 pages, from Packt Publishing. The author is Yuli Vasiliev who has written several articles for the Oracle Technical Network. A quick look over the table of contents revealed a reasonable plan of attack: Why use Oracle with PHP, how to get things setup, how to connect and use the connection. Then it proceeded into some more detailed specific topics: transactions, security, caching, XML, web services and AJAX.

The “Why use Oracle” section covered the technical capabilities and advantages of the Oracle database well, but it also highlighted the complexity of setting up an Oracle database, which is probably one of the primary stumbling blocks for anyone who was already familiar with PHP/MySQL to try transitioning to using Oracle for a database. The book touched on the Zend Core for Oracle in this chapter, and a bit more in the appendices, but this just provides the Apache/PHP/PHP Oracle Client libraries, the user still has to get an instance of Oracle up and running, which can be a somewhat daunting challenge. So, while the chapter was not an Oracle sell job, you will get a reasonably accurate picture of what the setup will involve from reading it.

The next chapter covered PHP and Oracle Connection, covers your fundamental “How do I talk to the database?” questions. This chapter (and the rest of the book) uses the PHP native OCI8 functions, though the chapter does touch on database access and abstraction libraries like PEAR DB, ADOdb and PDO. Having written a book before, I can sympathize with the decisions an author is faced with, in this case either having completely portable code which will work “cut and paste” from every example, or by introducing some kind of a database access library to eliminate some of the more tedious and repetitive code, but introduce a new dependency for the subsequent example (either the selected code library, or a custom library written for the book). Coming from a production environment, I fall down on the side of putting a database access library in place which enhances developer productivity. On the other hand, it may just be a personal pet peeve of mine, as the examples in the book remind me of code from my database administrator who insists on using native OCI functions rather than the standard access library we use throughout the rest of our code base.

The chapter on Data Processing introduces the readers to concepts like stored procedures and triggers, certainly beneficial and potentially unfamiliar concepts for anyone migrating from a PHP/MySQL background to this RDBMS. The chapter on OOP presented some initial material on refactoring, some discussion of errors and exceptions, and an introduction to some standard libraries like PEAR.

Chapter 6 covered security, and introduced using the PEAR::Auth class in combination with some custom packages. Clearly any sort of a user based authentication is going to have to be persisted somewhere, and where better than your database? This chapter did a nice job of showing how to integrate third party code like PEAR::Auth into your application while storing the underlying details in Oracle. Sometimes the same word is used for different meanings in different technical domains, and this was highlighted for me in this chapter when the author discussed both database sessions (as they related to package state) and PHP sessions. There is an impedance mismatch between these two concepts, and sometimes you had to pause a bit to decided which context of these two “sessions” is being used.

Honestly, I have not personally “drank the XML kool-aid”, and I was therefore a bit dubious when I approached the chapter on XML. I was pleasantly surprised, the author covered significant Oracle functionality in the area of XML processing which I did not have experience with (including XSLT processing and using XMLType and XQuery to fetch the stored XML data). These promise to be powerful techniques if XML is a standard you are working with.

The chapter on AJAX was another one I approached with a bit of skepticism. It would seem to be just the kind of thing being included in order to be “100% buzz-word compliant”, after all what does client side JavaScript calls have to do with the database PHP happens to be accessing? The author did a good job of both showing relevant usage (parent-child relationship management, an area AJAX certainly can help with) and also integrated some useful Oracle code to build on the XML chapter and use XSLT to return pre-formatted HTML for use in your AJAX application. Overall this chapter was a good introduction to AJAX techniques.

In summary, this book targets the niche of Oracle used in conjunction with PHP. This combination is certain to increase with the addition of PHP to the standard Oracle application stack. The book was written with no assumption on the skill level of the reader with regards to PHP. It would clearly be an asset at an organization which already has Oracle deployed, and is now starting to dip into PHP. On the other hand, the bookshelves at book stores are loaded with introductory texts for PHP, and while this book serves an outstanding role Oracle specific resource, it is probably not the best introductory source for PHP overall. The two audiences I believe would benefit the most from this book are locations which have Oracle deployed and want to start using PHP, and programmers who are not familiar with the capabilities of Oracle who would like a well written introduction to the capabilities of the Oracle database.

So I wanted to get a little more storage space on an MP3 player, and comes along and sends me a deal on a 4Gb RCA Lyra RD2762. I pick one up, get it Friday, load it up with 1.7Gb or so of MP3 files, and played a few tunes on it. My main system at home runs Gentoo Linux, and it was trivial to plug it into the USB port and mount /dev/hda for copying the files. I was fairly happy with my purchase at this point.

On Monday, I took it into work with me, tried to copy off some of the files onto another thumb drive I have there, and ended up with a “File System Corrupted” error.

That was it, the thing was dead in the water, you turn it on, it clicked and whirred for a while, displayed the “RCA” logo, and then the “File System Corrupted!” error :( . I figure maybe I can just reset the thing and it would reformat itself, the back says hold the power button off for 10 seconds to perform a reset. No dice. I Googled for some results, and get a bunch of tales of woe about sending the thing back to the manufacture for more than I paid for it in the first place. I was starting to think I should have been Googling this model before I bought it instead of now.

As a determined geek, I figured I could fix this thing by myself. I downloaded the manual, and found an interesting fact. If you hold down the Joystick control button while you plug in the USB cable, it automatically shifts to mass storage class (MSC) mode. Now I don’t actually have a clue what this means, but I suspected that was the mode which allowed me to format the drive. I did this, did an fdisk and set a single partition to type b (Win95 FAT32) (not sure if this step was actually required). I had to emerge dosfstools to get mkfs.vfat, then I did mkfs -t vfat -I /dev/sda, which formatted the drive. After this it fired back up as a blank drive, and I copied my 1.7Gb of MP3 files right back on to it. :)

Probably not a good solution for people not running Linux to begin with, but I would guess any self respecting distribution Live trial CD would probably have USB enabled and mkfs.vfat required to fix things up.

UPDATE 2007-12-04

I was out jogging when the screen on my Lyra froze. I was unable to recover it with any combination of efforts, and finally decided just to buy a replacement. I decided to switch to a flash based model, and after a bit of research selected the 8Gb Sansa player from Sandisk, which I have been pretty happy with overall. Good luck to everyone who still owns a RCA Lyra.

Farewell, buy why did you go?

Posted 7/29/2006 By Jason

First of all a warning, this is not a PHP post, but instead purely an opinion piece. I am using my God given right as an owner of a blog to spout off about any situation, no matter how little I know about it.

Recently, Jani Taskinen publicly decided to disassociate himself from the PHP project. An individual is certainly able to choose how they allocate their time, particularly when it is a volunteer effort, I and respect his decision as much as I respect and value the efforts he has put into PHP over the years.

I have never met Mr. Taskinen in person, nor have I communicated directly with him via email. Where I have seen him most is from his tireless efforts on the site (and his efforts to “bogus” as many bugs as possible 😉 ). I have no direct knowledge of why he quit and can only speculate from this post by Andrei.

The situation presented is tragic. I read a rumor that not only has Jani performed the same UN Peacekeeper job, but knew some of the people killed in the bombing. If this is the case, certainly my condolences go out to Jani Taskinen, and to all the families of the UN Peace Keepers affected. For that matter, to the Israelis and the Hezbollah who have died in this conflict as well. The world would be a much better place if we could all figure out how to resolve our differences without resorting to killing each other.

What I don’t understand is the logic which motivates a person to take retribution on individuals or groups where there is no clear association to the source of the incident causing this frustration. In this case the retribution is withholding valuable time and efforts from a project, which is influenced by individuals at a company, which reside in a country, whose military is the source of the incident (ignoring further analysis of why the military is acting at that point). Again, I don’t know the details or personal issues in this matter, but from my perspective this seems a pretty tenuous connection. To take the hyperbole to the furthest extent is this not the same logic which terrorists use to rationalize attacks on civilian populations in retribution for actions of a government they dislike? Or even furthers, should we all not go and live in isolated cave, because members of the human race are capable of acts of brutality?

This logic also seem to typify the fallacy of Zend == PHP. Usually I see this kind of an assumption on message boards or mailing lists, but I assumed it usually will only annoy an internals developer. To be sure Zend has significant influence on PHP, but they are not PHP in and of themselves.

Perhaps there are many other facts I am aware of in this situation. Perhaps Zeev and Andi are not geek programmers, but are instead using that as a cover for their true positions as top secret operatives of Mossad, and indeed they both selected the target and pushed the button to launch this attack. I don’t see this as realistic, so I guess I have to fall back to my earlier analysis.

Again, this is not any sort of an attack on Mr. Taskinen, I thank him for his contributions and many efforts to help PHP over the years, and I wish him luck in all his future endeavors. This is just questioning some reasoning which does not seem to be logical to me, and has been turning over in my head for the past few days. Perhaps in the end it was not a logical decision but an emotional one, which seems perhaps probably given the tragedy of the situation.

Nerd Score

Posted 11/8/2005 By Jason

Okay, so I am in the middle of an hour and a half long database repository migration, and so I have a few minutes to catch up on blogs. I stumble across this post which leads me to this test. I thought I would come out on the reasonably high end, but I had no idea I would end up with a designation of “Supreme Nerd. Apply for a professorship at MIT now!!!”

I am nerdier than 93% of all people. Are you nerdier? Click here to find out!

So who out there can out Nerd me?! And who is manly enough to admit it 😉

Hacker Logo

Posted 8/14/2005 By Jason

An interesting idea to promote the hacker, not cracker, community as a whole. Associate it with the glider pattern from the game of life as a logo.
hacker emblem

I found this here via the Ruby general mailing list.

I am a Statistic

Posted 6/25/2005 By Jason

I followed up on a post from Ben Ramsey on a MIT survey of bloggers, and did my part to contribute to science 😉

Take the MIT Weblog Survey

A New SitePoint Mentor

Posted 6/22/2005 By Jason

As stated in this thread, SitePoint has a new Mentor… me :) This means I get this shiny orange badge Mentor Badge above my avatar. In order to maintain this honor, I have to continue to be adicted to the SitePoint forums (in particular, my favorite the PHP Application Design forum), and I have to continue to behave myself.

Hopefully this will in some small way give back some to the community which has given me the opportunity to get to know several people whom I now consider good friends: Marcus, Harry, and Jeff.

New Job

Posted 1/4/2005 By Jason

Today the announcement came out at work regarding my promotion. I am now the eBusiness Manager for Alcoa Mill Products. My friend Robert Yoerger, was promoted from eBusiness Manager to Director / Customer Service, Demand Planning and eCommerce for AMP North America, and I am officially departing my IT role of Senior Project Leader to fill his vacated position as well as report to him.

This role is a gentle change from an IT role to a business role. I have always “over functioned” a bit in my IT role to assist in defining business process. Now my role explicitly demands this. I essentially have become my own customer. I still have two contractors reporting to me with strong SQL and Siebel skills (as well as developing PHP/web skills), and in addition, the eBusiness Marketing Staff Assisting will also report to me.

The biggest tasks on my plate this year are the need to upgrade our current version of Siebel CRM, and to maintain all of our existing commercial systems while we deploy a new Oracle order management solution at our largest facility. In the meanwhile, I also need to make sure our newly deployed Gentoo Linux intranet web server meets our internal audit standards and is SOX compliant.

Merry Seasonal Holliday

Posted 12/25/2004 By Jason

Twas the Night Before the Lawyers 😉

Yummy, Yummy,

Posted 12/22/2004 By Jason

I can’t believe it has taken me this long to play with My page is here. For anyone who is as slow and behind the times as me, is a public bookmark storage mechanism. As you bookmark pages, you can catagorize them into as many sections as you wish, and then can easily lookup those groups of links in your own list…or see what other people have bookmark in the same catagory on their lists.

To me, this seems to lead to a much more directed exploration than random browsing from google hits. The central idea is these are links that someone else has already felt there is enough merit to save and come back to again later.

In addition, I have re-discovered some old friends via common links. I found my friend Boots who had a facinating page on Quantum Mechanics. This is an interesting bit of seredipity, as I had recently asked one of my friends who is a Physics major for just such a summary, as I wanted to use some Quantum Chromodynamics Rules as the basis for “business logic” in a PHP article I was writing.

Tan, Rested and Ready

Posted 12/7/2004 By Jason

Back from a weeks vacation in Acapulco…

Acapulco sunset ride with the kids
Family at the Mexican Fiesta!

and there is a lot on the table to look at…

  • The usual catch-up at work
  • Continued writing on my in-progress book (actually managed to finish a chapter on vacation!)
  • Marcus released some interesting object persistence code here to the public domain.
  • WACT had release 0.2a!!!
  • Marco has something new and warm in the works…
  • It looks like someone hacked my WordPress instance…need to figure out what is up with that :(

A week without the Internet is good for the soul, but bad for keeping current :)