Monday, November 28, 2011
PHP jobs and IBM i
I was reading a newsletter from another IBM i pundit who was disparaging the future of the IBM i & for RPG programmers using a statistical grid from the job trends section of Indeed.com. Indeed.com is a site that tracks IT job opportunities and has a nifty graph that lays them in so you can make comparisons. The best part is that it is very easy to use. The author of the newsletter was trying to diminish RPG as a language with little future because Indeed.com had very few hits. I was not happy with his assessment and posted a response. Unfortunately he is moderating his postings and chose to not allow mine through, as of this writing. So here is what his graphic looks like as he put it forth:
As you can see from this image, the future for the typical RPG programmer looks pretty bleak. That was what the author was trying to portray. But these graphs can be interpreted in many ways. First of all, the entire RPG job market is not very big to begin with. Also, I had gotten my last 3 RPG opportunities via recruiters and they do not post openings via boards like this. As this graphics is display Percentage of opportunities over all, then yes I would agree that there are not nearly as many job opportunities for RPG developers as there are for Java developers, etc. But I could hardly put this on RPG or the IBM i. Another thing to point out is that some of those Java jobs might be on IBM i. That skews the whole equation. What I did when I read the piece and followed the authors link is I added one more language to the chart. This language is called PHP and look at the graphic it created:
In this graphic we can see that the market for PHP developers is on a steep incline. Are any of these opportunities on IBM i? I am not sure. But I have heard of a few IBM i shops leveraging their significant investment in RPG and COBOL while opening up to the open source continuum with PHP. One can also infer fro the above graphic that PHP job growth is far more explosive than many other contemporary languages and that since PHP runs natively on IBM i there might be a future! I believe there is a future to IBM i and that future is made up of many technologies and third party solutions. All should be evaluated and considered when the traditional green screen shop starts looking to go to a GUI solution. And then in the spirit of the season, you select PHP.
The truth, as many of you already know is that statistics can be manipulated to support or defend nearly any idea or agenda. Please read as much as you can about a certain topic but do NOT accept any one persons view as the truth without first evaluating it creditability with at least a little Googling.
Happy Holiday's!
Mike
Monday, October 24, 2011
To OO or not to OO, that is the question...
I grew up with procedural programming. What does that mean? To me it means I have spent a MAJORITY of my business career delivering value to companies by developing programs that have subroutines and possibly functions and sub procedures. I like to think I have added tremendous value but at the same time I also realize that some of my code has been superseded by newer programs and alternate methods.
But everyone tells me that OO (Object Oriented programming) is where I should be! The “industry” is/has moved to the OO model of development thanks to such powerful languages like Java and C++. Even PHP has an OO model to let me feel like I am playing along. So what should I do? Well, here is my tale on the OO paradigm and I hope this makes some sense to all of you!
As a procedural programmer in the 90’s I heard the “good news” of Java from IBM. I struggled with Java at first and then had some VERY marginal success. I found it cumbersome to try and learn, not because Java was necessarily hard, but because I was trying to absorb too much at one time. Many challenges plagued this old RPG dog like a new language, syntax, structure, environment, etc. I’m not the only one who struggles, even Carnegie Melon dropped OO from their freshman curricula because students were coming up with not nearly enough experience in developing algorithms.
Enter in PHP and the opportunity to learn something new. PHP becomes the ideal language for education and more since it can start you at your level. Think of the PHP landscape as a major expressway with different lanes for more or less experienced drivers. Folks who come to PHP with no programming experience can start with very simple inline code. For those of us who hail from the procedural world we can pick up with functions. And for those who are flying in and out of traffic with a Java or C++ background there is a fully support Object Oriented model to work with.
I have been recommending PHP to many educational institutions and have it on good rumor that the curricula I have been teaching at Moraine Valley Community College will become permanent courses called MIS126 and MIS226. These courses start at procedural PHP and then work up to and through the Object Oriented realm. This is great news as we can now add more PHP developers to the world and demonstrate that PHP is not just a hobbyist language by delivering classes in true academia!
For those who cannot wait, the educational path at Zend offers PHP 1 Foundations for IBM i Programmers and PHP Foundations 2: Higher Structures. The first class takes an RPG programmer from zero to sixty with a full immersion in the functional world of PHP while the second class starts off at functions and whips you up into the object oriented realm.
Even more educational opportunities exist at places like SystemiNetwork where we are about to begin a whole new online sequence for PHP training.
No excuses, get out there and play!
Monday, September 19, 2011
Zend DBi to the rescue!
A few years ago I was at in a CAAC meeting with some really good customers and some really good IBM’ers. IBM’s Software Chief Architect at the time or maybe someone nearly as powerful said “Hey, how about we bring MySQL to IBM i?” As PHP has started to gain popularity via the Zend distribution at this point I chimed in and said “Why? I’ve got DB2…”. Well, in the spirit of Ken Olson I too am capable of a really bad prediction question when it comes to hindsight.
Until that point I had really thought PHP on IBM i would only be used for accessing DB2 data and RPG programs. Sure there would be the odd COBOL programmer out there, but I was an RPG guy and very narrow minded. I saw lots of opportunities to web enable DB2 data, make green bar reports disappear and replace them with HTML tables generated by bunches of PHP scripts running 100% on IBM i.
Then we started to discuss the opportunity. Thousands of open source and commercial applications in the PHP world are essentially written to the LAMP stack: Linux, Apache, MySQL and PHP. What we had done to that point was create the iADP stack: IBM i, Apache, DB2 and PHP. With several thousand PHP applications looking for MySQL there was a perfect fit about to be created. By implementing MySQL on IBM i, customers could then install nearly ANY open source application natively on the machine and reap the benefits of some really good technology without having to deploy YAFS (Yet-Another-Friendly-Server).
So now customers could write PHP applications and web services, implement database agnostic PHP applications via Zend Framework and PDO and now implement MySQL based applications. OK, I was sold. Then IBM went one better and created the DB2 Storage Engine for MySQL. MySQL is constructed in such a way where the database storage engine is abstracted from the SQL interface layer. This creates a VERY powerful equation in that your PHP applications can think it is reading and writing to MySQL yet all the time and under the covers it is really storing and retrieving from DB2!
Then the folks at Oracle said NO MORE MYSQL FOR YOU to the entire IBM Power Systems family! The distributions of MySQL were relegated to the archive site and IBM i customers were confused and looking for answers. IBM immediately set out to find a new suitor for MySQL on IBM i. There was too much at stake to let it languish in obscurity and after all it was just another open source project. So, looking to the company that successfully landed PHP on the platform made a LOT of sense. Now Zend and IBM have one more thing to brag about, Zend DBi! Zend DBi is essentially a drop-in replacement for the MySQL distribution that customers have been leveraging. Zend will provide, as part of the Zend Server Download, or alone, a current distribution of MySQL under the name Zend DBi.
Some of the details are still solidifying, but the excitement is building and more information can be gathered either from my webcast from last week or in a periodical near you.
Thursday, August 4, 2011
ZendCon for Mere Mortals
As we ramp up our plans for ZendCon, the annual PHP conference run by Zend, I have been asked time and again what would attract the IBM i crowd to our annual conference. If you have any suggestions please feel free to share as I am always open to leverage other people's IP just like most of the PHP community. But seriously, we have all the right things planned for IBM folks like good technical content surrounding the new open source toolkit. Tony Cairns will emerge from the depths of the Rochester labs to share a little of the new toolkit's plumbing. Alan Seiden will be on hand with the best-of-the-best practices and a capstone session that will blow the lid off of anything you have seen lately that will include announcements, success stories and much more. So what else would the IBM i faithful want? How about good PHP content?
You see, this is what is so AWESOME about PHP. Nearly EVERY session at ZendCon applies to the IBM i customer as well as the Linux/windows crew. Sure there will be the odd session on Cluster Management which we do not need to be concerned with as IBM has taken good care of us from a scalability and up time perspective. But BUNCHES of other sessions like…
Zend Framework! See what is new and exciting about ZF and maybe a sneak preview of ZF2. This is the nice thing about PHP on IBM i; it support Zend Framework completely. Anything you see regarding ZF at ZendCon can apply to IBM i as well.
SOA and Web Services seem to work well in the IBM i community. I have spoken to several customers leveraging Web Services within their infrastructure. One of my customers is using it as glue in a cross-platform environment! So if you have disparate systems or even want a better way to explore program-to-program communication some of these session on REST or SOA might do the trick.
Web 3.0 anyone? I have no idea if that is a real term, but figured I’d coin it before Steve Jobs does. What do I mean? Simply that we are about to turn the corner on the next generation of the Web using HTML 5, CSS 3 and Flash/Flex, regardless of what Calacanis says!. Also concepts like context-sensitive applications side by side with mobile are part of this new REQUIREMENT. Yes, all these will be quite well represented at ZendCon. But wait, you say, these technologies have nothing to do directly with PHP. And to that I would say "yes" and "no". We all know the entire purpose of PHP as a server centric language is to produce something the browser can digest. These technologies are fair game and very digestible by today’s browsers. If you are still dependent upon IE6 then I would say you NEED these sessions!
All this and more like certification testing, demos in the expo area, simply the best sponsors in the community, killer nightlife and the uncon will make the ZendCon value proposition not only attractive to the PHP faithful, but especially to the IBM i PHP faithful. Oh, and did I mention the annual IBM i evening event? I think my good buddy the elePHPant will be stopping by too. Yes, lots of good things for IBM i PHP developers, managers and analysts than just the awesome IBM i sessions. Check it out for yourself!
Friday, July 15, 2011
Is Ajax a spice or an entree?
A recent trip to visit a customer site had me thinking about food. No, it wasn’t the great big burrito I had for lunch. It was the use of technology in the application. We were invited to this customer site to examine a PHP application that was not performing well. This is not unusual for IBM i, Linux or Windows based PHP applications as no one is immune from challenges with coding practices and I for one can write bad code in more than 10 languages! Frequently, customers ask us a couple of standard questions like “where is the problem”. In many cases there isn’t just one problem but a handful of poor practices or as in this case some really good practices, poorly applied.
Now it is not unusual for PHP to “take it on the chin” for the sins of poorly applied technologies like Dojo, ExtJS and others. Frequently, we at Zend are in the trenches of a “This PHP application performs like $@#%” war and have to explain that the PHP is perfectly fine. In many cases the lack of indexes on SQL calls, tuning of the FastCGI or overuse of ajax can contribute to poor application performance. This is why the Application Audit from Zend becomes EXTREMELY valuable. Forgive me as I am not trying to turn this into an advertisement for our canned services as much as relating a recent experience.
After we finished the application audit, our auditor creates a summary. Sometimes in as few as 20 pages and others have shot well past 100. The length of the document really depends on what we find and the overall size and complexity of the application. Once the summary is completed we schedule a conference call with the auditor, customer and maybe a couple of carefully selected folks from Zend. For example, it would not be unusual to have someone from the ZF team join the call for a customer who is using ZF and needs direction on how best to optimize it. We went into the call for this customer with our punch list and I got to drive the discussion.
Like many of my discussions, I tend to think on the fly. The combination of ADD, diverse cultural experience and IT training gives me a unique ability pull analogies out of thin air. Some at Zend have referred to this as the “Pavlakian Response”. I was honored when they named it…I think. Regardless, I got on a bit of a roll with this customer as I started down a food analogy. Everybody can relate to food! We all have to eat, we’ve all had good meals and we’ve all had meals that left us a little less impressed. In this case, I chose to attack the application issues using the spicing analogy.
The meat and potatoes of most PHP applications are typically made up of the PHP code, HTML and database access. In most transaction based applications THIS IS ALL YOU NEED. Now stop with the torches and pitchforks regarding ZF, CSS, JavaScript, etc. I’m not saying those technologies are not valuable; in fact it is quite the contrary. I think JavaScript is EXTREMELY valuable and would encourage everyone to get educated. But just like with food, a balanced approach can make for an ideal experience. Different applications require different solutions much like food may differ based upon the environment. You simply cannot compare a buffet at a conference to a seven course meal at a fine steak house, yet I have enjoyed the experience of both.
Clearly this application was using JavaScript more like an entrée than as a spice and was causing significant problems with latency and unnecessary page rebuilds. For example, somewhere along the line they forgot that the A in ajax stands for asynchronous. Instead they were building everything serially, every time the page was built! This is nice for graphical applications or high level summaries where the data may not change very often. But in transaction processing you do not want to make the data entry folks wait for a summary element to be built before they can continue keying. As IBM i programmers we know this. As web designers become transaction based application developers, a little time in the kitchen working on how to make a balanced meal is in order!
These analogies come in handy because sometimes you never quite know who you are talking to on the phone. The audience for this call was very diverse as everyone on the phone understood what the application was supposed to do but each person possesses a very different level of technical expertise. While opening up the code might work for the developers in the room the business analysts and executives who may not have seen code in a few years might not appreciate the level of detail and potentially tune out. The food analogy helped all of the people in the room relate the fundamental issue and communicate at a common level. While nothing communicates value like a shared understanding we all can relate to a really good meal!
So, I ask you, are you using Ajax or other technologies as a spice or as an entrée?
Thursday, June 16, 2011
Global Services means GLOBAL SERVICES...
When they say Global Services, they really mean Global Services…
Some of you may be aware that I used to report to the manager of the North American region. A few months ago I was moved to Global Services which is an awesome reaction to some of the work I have done at Zend. As a result I had a chance to visit the Zend folks in Europe including Paris, Cologne and Milan. The trip was well planned and orchestrated by the local team and I sure had my skates on! One thing that became crystal clear is that there is HUGE demand for application modernization using PHP in Europe!
First, in the West end of Paris I had a wonderful opportunity to meet one of the few remaining IBM i focused FTSS (Field Technical Sales Support) by the name of Philippe Beorgeois. Philippe hosted a two day event at the IBM offices near the West side of Paris on modernization and I had a chance to present an introductory breakout session on PHP for IBM i. With well over 170 attendees and about 35 people in my room the event was a HUGE success on every level.
Our team in Paris including Christophe, Christian, Clement and David were exceptional hosts. I did not have to worry about anything as they make sure I did not get lost. I would highly recommend the Metro system and anxiously await Scott Klement to review the rail someday. Speaking of rail, on Wednesday I took a bullet train (Thalys) from Paris to Cologne Germany where I met our local account manager Stefanie.
She introduced me to a wonderful customer called GroupMT where Dr. Rainer Schmitz is working magic with PHP on his IBM i. Here is the link to his webinar in German where he discusses some of his awesome achievements.
Two big discoveries as Cologne is the home of Kolsh style beer so I had to try some…
The Dome of Cologne which is a magnificent cathedral that is the final resting place of the Magi (three wise men from Christian history). As I emerged from the train station I got a great look at the cathedral. I received a call from Stefanie who asked where I was and I responded “I’m between the train station and this really dirty church…” she giggled and new exactly where I was. After checking with a few of the locals I discovered the dirt is from hundreds of years of train soot. There is a walking tour available inside the cathedral for the low price of a 1 euro donation. I highly recommend the investment.
When it was time to leave Cologne, Stefanie dropped me off at the station and when I saw my train come up on the board I saw a message. It was in German so out came the Blackberry and thanks to Google Translate I discovered the message read “fall from train”. Needless to say the last train was canceled so I headed back to the Four Points hotel for one more night and enjoyed a little more Kolsch.
I got to spend my Saturday off in Paris and see some of the sights. This was very cool. As I love to walk I took a Metro from my hotel in the opera district to the Eiffel Tower. I was beginning to feel like an expert Parisian on the Metro. I walked from the Eiffel Tower to the American Church, then to the Grand Palace, up the Tuileries to the Louvre and then to Notre Dame. After experiencing the Cathedral in Cologne I was not as impressed with the size of Notre Dame as I was with the relics. The museum tour is a little over priced, but I would not have missed it for the world as they have a relic that contains a sliver from the cross of Jesus and many other priceless artifacts. Feeling a bit tired I walked back to my hotel and grabbed a quick nap. Then off to meet some awesome friends for dinner, Anne and Kent, who just happened to be on vacation in Paris.
Sunday was the trip to Milan and began my visit to COMMON Europe. Dinner that night was in a little café in the Piazza el Duomo, a very famous cathedral.
The next day I went to COMMON and met with Angela and Elena, our Zend team in Italy. Along with Enrico who has recently been recruited to the ZF Core team from professional services, they do a great job taking care of our customers. It was an unbelievable experience because as I presented my session in English there were attendants who translated it into Italian for people who got headsets. It was a little unsettling when I told a joke because as the English speaking folks would giggle about 3 seconds later the folks with the headsets would giggle. But a great turn out and wonderful response for PHP on IBM i! several session by Zend and other companies regarding PHP!
The first night of COMMON we had a great dinner with some IBM’ers. Met up with Steve Will and his lovely wife, Sherry, Alison Butterill, Trevor Perry and some new friends.
The second night was the Gala event. This was truly special as we were shuttled out to the country to a farm with live entertainment. There was an Italian version of the renaissance fair where they conducted sword fights and dancing. After a wonderful dinner we were shuttled back to the hotel and I saw a little more of Milan.
Sessions at COMMON in Italy were VERY well attended. The Zend team was fully engaged starting with Christian Durel our General Manager of European Operations. Working with a couple of other partners he led a very popular round table on New Business Models, innovation, skills development and professional attitude as key factors to exit the current crisis. Many attendees found it to be VERY helpful as they move forward in this treacherous economy!
There were a few other PHP sessions that explored several different aspects of the technology. it impresses me how creative people become once they realize the chains of the 5250 interface have been released. Mobile, javascript, Flash and other technologies are both powerful and liberating. Seeing members of the IBM i community en bracing these technologies reinforces the fact that we are all on the right track.
Also on deck was Elena and Enrico who hosted a seminar on PHP on the last day. I hear it went very well! I could not stick around as I had to high-tail it home for my son's graduation. Another AWESOME event!
Without question this was an AWESOME trip. WE covered a lot of ground, did a lot of business and saw a lot of the area. Looking forward to my next trip across the pond which looks like it will be around November for an event in London!
Woohoo!
Friday, May 6, 2011
My Breakfast with Al
Certainly I had heard and seen of Al before that event. His many session presentations at COMMON and around the country at local user groups, his tireless efforts advocating and consulting on IBM i, and his passionate questions at the “sound off” session at each COMMON conference were well known. But I never thought I was worthy of breaking bread with the legend. What I learned at that meal was very helpful to me and I try to put some of what Al said into my daily living.
Al was very focused on two things: The IBM i community and his family. His passion for both was about equal and he loved to tell stories about his kids or his systems. It was difficult sometimes listening as I think even he struggled to separate them. But it was clear where his passions lie. I was inspired. It was after that breakfast that I decided to start submitting material for sessions at COMMON. Later at the conference, I considered myself fortunate to now be on a first name basis with the man.
A few years later, the community was shocked by the terrible tragedy that Al had passed away on the last night of the COMMON conference in Nashville. When I heard the news I was stunned. Thanks to such tools as email and web forums, details started to spill and so did the many gestures of respect and reflections of the man. We all discussed things like life and death and wondered what we could do. Many said they wanted to contribute this and that. With Midrange.com fielding most of the posts, David Gibbs decided that he wanted to contribute too. It was clear that Al had quite a long reach.
Not too long after, the COMMON Education Foundation decided to arrange a memorial scholarship in Al’s name. This scholarship is awarded once a year and is meant for only the people who best represented the commitment and caring qualities that Al had for the community. The award has been given two times before this conference: The first to Paul Rogers and the second to my good friend Larry “Dr. Franken” Bolhuis. As the third recipient of this prestigious award, I am lucky to share in some pretty awesome company.
Al had quite a reputation as a hell raiser with IBM and I am proud to be honored with a reward that sees a similar trait in me. While I am thrilled to win this award, I reflect upon my own life and how I have been running pretty hard myself these days. As i look at the clock on the wall I see it is 1:45 am and maybe it’s time to slow down a bit. Not too much, but just a little. Enough to stop and smell the roses, admire my five children at athletics & academia and spend a little more time with the woman who makes me whole. I challenge all of you to look into your own lifestyle and seek the balance that Al seemed to struggle with. But even if Al’s life was not completely balanced, it sure was full of passion and love. Godspeed, Al! As i reflect upon Al I am reminded of an old Japanese proverb: Vision without action is a daydream-Action without vision is a nightmare. Al had a good dose of both and I am proud to be considered worthy of his memorial.
Well, the COMMON Annual Conference is over and I know a lot of people who are heavily educated and a lot of other people who are completely exhausted. But both are happy for the experience. Working with any volunteer group can be a rewarding experience. I have found that my local user group Omni and the national user group COMMON can be very rewarding. If you ever thought of helping out a local user group please consider stepping forward. Consider folks like Al and the commitment and passion they brought to the platform. You too can make a huge difference with surprisingly little effort.
Saturday, April 16, 2011
Database or Bust!
That article caused a lot of commotion in the community. I like that. Stirring things up. That is part of what I do. I’m not nearly as provocative as some of the other players in the space, but I do my best to get my licks in. Chris Maxcer did a great job of capturing some of the passion and emotion of members of the community but enough is enough. SQL is here to stay and if you don’t believe me just look around.
I was speaking at the RPG & DB2 Summit conference last month and I happened upon a breakfast table where Skip Marchesani was chatting with a few folks. I had gotten to know Jon, Susan and Paul a bit over the years. But for some reason Skip and I never really crossed paths. Not sure why, though I am sure I attended a few of his sessions on database. Regardless, this was a great opportunity to see Skip in action so I politely asked if I could sit down and was graciously accepted to the circle.
Skip was embroiled in the age old discussion of “should I throw away my DDS and move to SQL?” Truly a religious war if I ever heard one. My initial reaction was “Hell Yeah!” but I wanted to hear more. Having been cornered in a religious war or two has made me a little more reserved in the timing of my responses. In this case I watched the master at work. Skip acknowledged each of the attendee’s concerns. Performance, scalability, RPG/SQL performance vs. record level access. I was happy to say that a lot of my own impressions were in line with what Skip was saying. Woohoo!
When the conversation died down I jumped in with a few comments of my own that Skip probably would have offered but timing may have given me an advantage. Things like cross platform ubiquity and the fact that school kids KNOW SQL and not record level access. Solutions like MySQL and Miscrosoft Access do a great job of weaning people onto SQL. Languages like Java, PHP and others use SQL as a primary data access mechanism and thus the programmers KNOW SQL.
It was a healthy discussion that ended somewhat awkwardly as some do. The attendee was the sole supporter of his software. He had no intention of rewriting the application any time soon. He had no need for a DDS to SQL migration. From that Skip and I were hard pressed to encourage him to move everything. “By golly” we said “leave it alone!”
But, from the perspective of keeping the skills up and learning something new the attendee did surprise us by saying he would take a piece of his application and give it a try. He would explore the opportunities of SQL vs. DDS and report back his experience. At that point I felt that we had achieved the goal.
One of the things I harp on in my sessions and I would bet Skip would agree, is that you should use the right hammer on the right nail. Frequently folks try to bait me into a religious war on Java vs. PHP. I’m sorry, that dog just doesn’t hunt. We could be here for days talking about the advantages of one over the other and it would only become a religious discussion. If you like Java and have a lot of Java and want to explore PHP? That’s OK. If you decide to stick with your Java, that’s OK too! Make an informed decision and move confidently in the direction you like. Same goes for this guy and DDS. If he were looking to turn his application into the next generation of the software and add in new features, etc. Skip and I would have beat him mercilessly about the head and shoulders with SQL. But it was clear he was leveraging the investment. That’s OK too. As long as you are willing to absorb the risks and the rewards, have at it!
So, in a nutshell, “DDS is dead!...Long live DDS!”