May 2007


Development and PHP16 May 2007 04:55 pm

So for the two-five people that read my blog know, I have joined the PHP documentation team and I have full CVS karma. My original involvement was looking at bug#41108 in PHP’s documentation. I just closed the bug report on it today as I felt that the solution was correct.

Yay me, first bug report fixed. More to come :)

Opinion16 May 2007 04:01 pm

Remember the paragraph:

Aoccdrnig to a rscheearch at Cmabrigde Uinervtisy, it deosn’t mttaer in waht oredr the ltteers in a wrod are, the olny iprmoetnt tihng is taht the frist and lsat ltteer be at the rghit pclae. The rset can be a toatl mses and you can sitll raed it wouthit porbelm. Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe.

Well, according to Matt Davis, much of the paragraph is wrong. He has a page that explains the myth and why it is not always true.

When testing the theory, I went to msn.com and put in paragraphs from an article about habits that aren’t as healthy as the image they have.

I already knew what they were talking about with the anti-bacterial soap, but it was good to see my primary way of sitting in a chair is not bad on my back and that drinking 8 glasses of water is TOO MUCH!

Development and EPICS and Howto and Opinion14 May 2007 07:39 pm

I have been working with SVN for the better part of around two years, and let me say, it is wonderful! When I first started to learn about version control, I tried to learn with THE standard, CVS. Well, a new player had made its way into the hearts of many developers, and Dan turned me onto it. What was it? It was Subversion. I won’t go into many of the details that made CVS different from SVN, but let me say that it allowed me to understand version control much better than I did with CVS.

If you are familiar with what a tag and what a branch is, you can skip the next couple of paragraphs. If not, read on for my explanation of what they are.

A tag is basically a snapshot of your code at a specific point in place. You don’t make any updates to a tag, you really only use it as reference. Why would you want to do something like this? Well, mostly it is for historical reasons. Whenever you release a new version of your code, you want to tag it so that you can always check out that version w/o having to remember the version number. In SVN a tag is basically just a label for a specific version of the repository, but labeling things is important.

Branches on the other hand are a bit more involved. The standard way of explaining tags is saying that it is parallel development of your code. What exactly does this mean though? Well, you can imagine that you want to release your code at some point in the future (if not, then reread this sentence until it is a true statement). You have features X, Y and Z that are being developed and you want version 1.0 to contain these features. Well, what happens if there is feature Q that is slated to be in 2.0, but you want to start developing it now? Well, what is normally done is that you can make a branch. Usually, new development is done in the trunk, so you would branch off the 1.0 code. At this point, you will now have two developments of your code. You will have your 1.0 branch to contain X, Y, and Z, and you will have the trunk (2.0) to contain Q, X, Y, and Z. You do all development in your trunk (i.e. 2.0), and anything that you want to release into 1.0, you merge from the trunk, into the 1.0 branch.

When you begin the development of your application, tags and branches will not be necessary. Every part of development will belong in the trunk and will most likely stay there until you have some initial release of the code. From that initial release will all of this complexity start to make sense. Believe me, it took me the better part of 6 months to finally understand the whole need for tags and branches beyond the standard examples given to you from Alice and Bob.

Ok, got the idea of tags and branches? Good!

In MyEPICS, we are just now getting ready to upload the code onto SourceForge. One of the topics that came up (or I brought up) was how to mange the version numbers of the code. I want the actual version number to mean something. When developing this idea, I had borrowed quite a bit from PHP. They have X.Y.Z, where X=Major, Y=Minor and Z=Release. I would think that MyEPICS can borrow from this idea to also have a X.Y[.Z] where Z is optional. X is the major release. The decision to bump up the major release would be done through decisions of what features will be implemented. As of right now, I cannot see anything that is slated would have a major number increase (mainly because of the differences between 1.0 and 2.0, which were pretty vast).

A minor release can contain such things as the addition of one or many modules and any features that aren’t too intense of a change.

As I see it, all bug fixes that are released will go into a “Release” release. I think it would be good to call it a bug release.

As this gets more set in stone I will keep all of this updated.

Whirlpool14 May 2007 11:39 am

So I have started my internship at Whirlpool, and it has been extremely busy. I am working in the GIS (Global Information Systems) Finance group, taking a role in creating a new expense reporting system. SAP provides a Travel Management module that we are going to use, and I am going to take a role in configuring it and creating a web interface to it.

Monday

Today was orientation day, and I spent most of the day learning about Whirlpool and what type of company they are. I got my ID badge and laptop, and also managed to lock myself out of my own system 5 minutes after getting it. It was interesting to see that Whirlpool does about 18 billion in gross revenue, but only about 700 million or so in profits.

Near the end of the day, I was talking with Steve, my supervisor, about the project that I will be working on, which is basically a new expense reporting system.

Tuesday

Today was a day filled with meetings. Whirlpool is asking for various banks to give proposals for implementing a One Card solution, and I sat in on U.S. Bank’s proposal. This gave me a lot of good information about how different departments have different needs from the banks.

Later, I got to talk with Paulo, another person in GIS (Global Information Systems) Finance group about a new system that they are looking at to document requirements.

Near the end of the day, I was able to talk with Steve and Angela (the project manager for the new expense reporting system) about goals and project deliverables.

Wednesday

Today I was with Angela as she got me up to speed on the different activities that an administrator for the old expense reporting system needs to go through. I received an overview of expense reporting in general and also reviewed documentation about what the new system is suppose to be doing.

After Lunch, I went over to the Box Factory, which is one of Whirlpool’s locations, and talked with John Kauffman about what is role in the project is going to be and what he can do for the project. He was elected to be the lead technical architect for the project, which means he makes high level decisions on technical implementations for the project.

I then got to speak with Randy Fife, a web developer and fellow Purdue Alumni about the portal and how to get set up with it. They said that I would be able to access the development side of the portal and play around with it once I am given access.

Thursday

Today was my meet and greet for the GIS Finance group. We all sat together and talked about what each person’s role is in the group and they got to know me a little bit better.

At around lunch time we had a conference call with Murat which we discussed various items with the Travel Management tool.

After lunch, I went to Whirlpool’s Hilltop facility and discussed how the we are going to get data from the credit card companies (probably Visa) and how the SAP tool is going to work with it.

At the end of the day I sat down with two of the expense report administrators and was walked through how they currently do their job. Extensity is one of the tools that Maytag had used and it was pretty slick. The tool that Whirlpool uses, REEP (or as I refer to it, The Reeper), needed a lot of paper work and a LOT of manual processes. I am right now looking into how to make these people’s lives easier.

Friday

On my last day of my first week, I read up on ALE’s, IDoc’s and EDI’s. These terms have been used a lot by the technical team and I wanted to know what they meant.

Later in the day I had a lunch meeting with the whole team to discuss where we are at, where we are going and who is doing what. It was the first meeting with everybody on the team and I felt it was a very good one.

Summary

At the end of it all, I believe that I am finally getting a good grasp on what the project is, what I am going to be doing for the summer, and how all the pieces fit together. I will be working on creating the part that everybody uses, so my role is very, very important to the success of the project. I look forward to the rest of my weeks here at Whirlpool.

PHP03 May 2007 01:30 pm

So after getting my CVS account, I have posted my first patch to the documentation! You should be able to browse to the PHP posix documentation and view many of the new functions I have documented!

PHP01 May 2007 03:35 pm

Over the past month, I have really wanted to help out with the PHP project. Because I don’t know the internals very well, and I am fairly familiar with XML/XSL, I decided to help out with their documentation team. I have been looking at their TODO list, and noticed they have about 802 undocumented functions. I went down the list and found several posix_* functions that were undocumented. I started to document a few of them, and sent a patch in for review, and if they thought it would be helpful, I could document the rest. Well, they really loved the first few and gave me a little bit of feedback on them. From there, I documented the rest of the posix_* functions, and added examples where appropriate. I sent this patch in about a week ago. A couple of days ago, Philip sent in a message to the internals group asking to get me a CVS account with full karma. Needless to say, I was pretty psyced about this!

Guess what? This morning, I received the following message:

Your CVS account (ljbuesch) was created.

You should be able to log into the CVS server within the hour, and
your ljbuesch[ at my new address ]php.net forward to [my school address] should
be active within the next 24 hours.

Welcome to the PHP development team! If you encounter any problems
with your CVS account, feel free to send us a note at group@php.net.

All I have to say is… WEWT!!!

I have been pretty busy with finals to help out much this weekend, but after Friday, I should be able to help out a lot more.