PHP on IBM i (and me) at ZendCon 2009

This year’s ZendCon (Oct. 20-22, 2009, in San Jose, Calif.), the premier PHP conference, features several presentations about developing with PHP on the IBM i, including one by me!

Come hear me speak about “Zend Framework for Enterprise PHP on IBM i” on Tuesday, Oct. 20, 2009, at 4pm.

For details, go to http://www.zendcon.com.

Speaker: Zend/PHP Conference 2009

Our Zend Framework-based Site Honored by IBM/COMMON

UPDATE: As of 2020, we recommend using Seiden PHP on IBM i and LINUX for reliability, speed, and ease of maintenance.


We won! IBM has recognized my use of PHP and Zend Framework, and our entire team’s RPG/DB2 and design work, by naming our web solution the IBM i’s most innovative of 2009.

At IBM’s 2009 COMMON conference, IBM awarded the Power Systems Innovation Award for Best Web Solution for eBiz@ABG. The site, developed with my colleagues at  Strategic Business Systems, Inc., was created for New Jersey’s largest wine and spirits wholesaler, Allied Beverage Group.

The system offers product ordering, live inventory levels and pricing, and a full-text search of Allied’s large product catalog. The application was built with Zend Framework (the leading PHP framework) and runs entirely on Allied’s IBM i, leveraging Allied’s db2 database and time-tested RPG logic.

The site is password-protected, so unfortunately I can’t link to it here.

eBiz@ABG is one of the first sites to be built with Zend Framework on IBM i (System i, i5, iSeries, AS/400). It was a true collaboration with Allied, made easier because we all spoke the language of “i.” What’s more, by using large chunks of Allied’s existing RPG code that already handled the complex business logic, we saved time and avoided reinventing the wheel.

Zend Framework worked so well that I committed to mastering it and teaching the community about it. (ZF has a learning curve, but after that curve is mastered, ZF speeds development and offers easy maintenance and growth.) I earned my Zend Framework certification in August 2008, becoming one of the first 50 worldwide to do so and the first ZF-certified “i” professional. Since then, I’ve gone on to be a ZF/i mentor for other development teams, and have become a public speaker, sharing my PHP/ZF/i roadmap at conferences.

Thanks to Allied for the opportunity to collaborate on a great project; thanks to Strategic Business Systems for the support; and thanks to IBM for the award.

Presentations, Handouts & Upcoming Talks

We’d love to meet you at one of our upcoming events or speaking engagements.

EVENT ORGANIZERS can find our current list of sessions/labs here.

Below you’ll find a sampling of handouts and links to other resources.

PHP

PHP BRIEFING:
Preparing for PHP 7.3 End of Life on IBM i

Both PHP 7.3 and Zend Server Basic enter end of life in 2021. Jesse Gorzinski and Alan Seiden brief us on how recent changes to PHP have improved the PHP experience and greatly simplified PHP upgrades, as well as how the new upgrade process works.

SQL db2, ibmi

Where to Find DB2 for i Documentation

It’s not always easy to locate the official documentation for all features of DB2 for IBM i. Google Search often returns irrelevant results from other varieties of DB2 or from older versions. Yet complete reference manuals are available for almost every aspect of DB2 on i. Here are links to some of my favorites.

PHP Toolkit

Bring RPG/COBOL Business Logic to the Web with the PHP Toolkit

PHP developers have an easy way to access IBM i resources such as RPG and COBOL programs, system commands, data areas, and more, using a free, flexible, open source toolkit.

Speed Up Your Web Site

If your web application runs slowly, your reputation and business could suffer. You need “Web Performance First Aid.” Discussed are free tools that help diagnose performance bottlenecks, tips for configuring a speedy Apache web server, and how to make best use of the unique characteristics of IBM i.

PHP training

At ease! Relax your neck-back-shoulders at the keyboard

Tips to help computer workers avoid repetitive strain injury and stay poised at work. Includes how to arrange your computer workstation and learn healthy postural habits. A personal approach that blends my years of work as a software developer with my training as a Feldenkrais® teacher.

web mobile ibm i

Browser Tools that Make Web Development Easier

A departure from my usual PHP talks, I discuss browser-based tools that help with client-side tasks such as performance diagnostics, page analysis, HTTP flow analysis, the ability to step through JavaScript, and much more. Learn how to become a better web developer with free downloadable browser tools.

Contact

We look forward to hearing from you via the form below or by:

Phone:  201.447.2437    |   Email:  alan@seidengroup.com

Contact Us

  • This field is for validation purposes and should be left unchanged.

International Partners

Seiden Group is honored to work with select partners to deliver native-language services and support.

Japan

Chubu System Co., Ltd.

Yoshiki Ushida
Contact by email
Phone:  +81 054 268 1618
Website:  cscweb.jp

France

CFD Innovation

Gautier DUMAS
Contact by email
Phone: +33 06 07 52 54 16
Website:  cfd-innovation.fr

About Alan Seiden

Alan SeidenIBM Champion web badge

Alan helps organizations enrich their IBM i applications with APIs, open source technologies, Db2 for i, and RPG business logic. He and his team provide large and small IT teams with strategic advice, hands-on development, and support.

Recognized as an IBM Champion, Alan cultivates a strong, resilient IBM i community by fostering new talent for IBM i as well as new open source options.

He mentors the next generation in extending the capabilities of the IBM i platform with their open source skills. He has also led the adoption of modern PHP with Seiden’s PHP+ and Smart Support; co-developed the popular PHP Toolkit with IBM; and was the first to offer full-stack support for PHP, Python, and Node.js on IBM i.

An award-winning speaker, Alan has been called “the performance guru of PHP on IBM i.” He shares his expertise regularly through his blog as well as at conferences and user groups such as COMMON PowerUp, MAGiC, the Northeast User Groups Conference, OCEAN, WMCPA, and COMMON Europe.

In his spare time, Alan plays the trombone and practices the Feldenkrais Method® of Somatic Education.

Skype: aseiden

Noteable Milestones

2005: Alan started working with PHP on the IBM i in 2005 (even before Zend Core!)

2006: Alan wrote the first article detailing PHP’s coming to the i5, interviewing Zend co-founder Andi Gutmans.

Award from IBM COMMON for best web application 2009 2008: Zend Framework certification. Alan received the first in the “i” community, and his was among the first 50 worldwide on all platforms combined.

2009: IBM/COMMON honored Alan with the Power Systems Innovation Award for “Best Web Application” for Allied Beverage Group’s e-commerce site, developed with the team at Strategic Business Systems using PHP and Zend Framework on IBM i.

2009: Alan co-founded the first Zend Framework user group with Zend’s Ed Kietlinski in New York City.

2011: Alan took on the roles of product manager and co-developer of the PHP Toolkit for IBM i.

2011: Alan’s blog named a “Top 10 IBM i Blog” by IT Jungle.

2012: Alan launched Alan Seiden Consulting.

2015: Alan founded Club Seiden, the online PHP Community Forum.

2016: Alan was honored with COMMON’s Al Barsa Memorial Scholarship.

2016: Alan Seiden Consulting grows into Seiden Group.

2017: Seiden Group hosts their first CIO Summit in Manhattan.

2018: IBM names Alan an IBM Champion for IBM Power Systems

2019: Three Seiden Group consultants earn IBM Champion status for IBM Power Systems: Alan, Stephanie Rabbani, and Josh Hall.

2019: Liam Allan, also an IBM Champion, joins Seiden Group in April 2019.

2020: Seiden Group announces migration and support services for PHP.

2020: IBM i Fresh Face Calvin Buckley joins Seiden Group.

2020: Seiden Group partners with Chubu System Co., Ltd to enhance PHP’s ibm_db2 module to support double byte character sets and to provide PHP support services in Japan.

2020: Seiden Group releases license-free CommunityPlus+ PHP.

2021: IBM recognizes Seiden Group as the source of IBM i support for PHP’s ibm_db2 and PDO_IBM modules.

Skype: aseiden

Testimonials

  • “Great work!!! It isn’t often that my expectations are met — even less exceeded — from sources outside our company. You took an idea that I had and made it reality. This module will revolutionize the way we utilize our system. Thank you!!”
    — Bob Arnold, MIS Manager, H-P Products
  • “You’re a freakin genius. Can’t thank you enough!”
    —Jeb Bouchard, Systems Analyst, Waitsfield and Champlain Valley Telecom (WCVT)

.
From the Fashion Institute of Design and Merchandising (FIDM), where Alan mentored the team in PHP and ZF on IBM i

  • “Your work was excellent. You obviously have command of the topic, coupled with that all-important but rarely found ability to explain. I would recommend your services to anyone.”
    —Jim O’Neill, veteran IBM i programmer
  • “What we achieved with you in three days we couldn’t have done by ourselves in three months!”
    —Ealon Wallace, web developer
  • “One tip from your Zend Framework talk about ‘DB2 metadata caching’ paid for the whole conference!”
    —a Zend Certified Engineer who uses ZF on IBM i, after attending Zendcon
  • “Following some challenging experiences with a third-party developer, Alan provided our in-house IT team with the knowledge and support to take over the project and get it back on track to meet our expected deadlines.  Alan brought us some peace of mind.”
    —M. Paige Raski, President, Millville Mutual Insurance Company
  • “Alan is an outstanding Zend Framework mentor and advocate. Not only is his knowledge base in the framework extensive, but he also possesses great patience in debugging and a tenacious eye for detail. Alan is a pleasure to work with, and I am grateful he has taken the time to start the ZF User Group to fill the NYC community need for information about this great product.”
    —Shari Halter, Assistant Director of Web Communications, NYU Tisch School of the Arts
  • “I met Alan at the Northeast iSeries User Group Conference in April 2009, where he presented a PHP topic. My customers who attended Alan’s session recommended him highly, so when I put together a day-long technical conference for Vermont and New Hampshire iSeries customers in June I included Alan on the agenda as one of 4 primary speakers. His PHP presentation was excellent and the feedback was positive. In addition, as a conference organizer I really appreciated Alan’s professionalism as we prepared for the event. He is responsive and flexible and a pleasure to work with.”
    —Dan Rothman, Power System Specialist, IBM
  • “I have heard Alan speak two times now on PHP development in an i series shop. As a business owner, I appreciate his ability to keep his talk at a high level without too much digression into arcane detail. He clearly knows his stuff, is a good listener, and can handle the most difficult questions, but his talks are not about him or his abilities. Instead, they are directed to us the listeners, with an upbeat message about what we can accomplish. It’s a most refreshing approach and I look forward to working with Alan in the future. I’ll save the arcane questions til then.
    “Top qualities: Personable, Expert, High Integrity”
    —Stephen Alden, President at Trylon Data Management, Inc., Hanover, New Hampshire
  • “I met Alan at an IBM iSeries user group meeting. We had just started with PHP on our system. Alan’s seminar was excellent. It gave me a good perspective of how powerful PHP can be in conjunction with the iSeries. Alan’s knowledge of how to make PHP work with legacy systems is invaluable. He has a real good handle on business and is able to make creative solutions. That is not a combination that is readily found. His willingness to share his knowledge with us is greatly appreciated. I am looking forward to working more often with Alan in the future.”
    —Lori Polep, VP and CIO, J. Polep Distribution Services
  • “I worked with Alan from 1994 to 2000. He has an exceptionally quick mind and is a visionary developer. He has been a tremendous help to me both during my time at Strategic and since then in referring people for project work and helping with programming problems. He’s smart, personable, and reliable. I highly recommend him as an asset to any organization.”
    —Jill Cozzi, EDC Developer at Bayer HealthCare (worked directly with Alan at Strategic Business Systems, Inc.)
  • “Alan and I worked together on getting Mantis Bug Tracker and ADODB to work on IBM’s System i (i5/OS and DB2). Alan played a critical role in aggregating the knowledge of the team in Mantis, ADODB, System i and DB2 and using that to troubleshoot and fix the issues. Alan’s persistence, responsiveness and clear thinking were major factors in the project’s success.”
    —Victor Boctor, Senior Software Design Engineer, Microsoft Corporation
Skype: aseiden
[av_section min_height='' min_height_px='500px' padding='no-padding' shadow='no-border-styling' bottom_border='no-border-styling' bottom_border_diagonal_color='#333333' bottom_border_diagonal_direction='' bottom_border_style='' custom_margin='0px' custom_margin_sync='true' custom_arrow_bg='' id='' color='main_color' background='bg_color' custom_bg='#fcefd6' background_gradient_color1='' background_gradient_color2='' background_gradient_direction='vertical' src='' attachment='' attachment_size='' attach='scroll' position='top left' repeat='no-repeat' video='' video_ratio='16:9' overlay_opacity='0.5' overlay_color='' overlay_pattern='' overlay_custom_pattern='' av_element_hidden_in_editor='0' av_uid='av-juae7ak4'] [av_four_fifth first min_height='' vertical_alignment='' space='' row_boxshadow='' row_boxshadow_color='' row_boxshadow_width='10' custom_margin='' margin='0px' mobile_breaking='' border='' border_color='' radius='0px' padding='0px' column_boxshadow='' column_boxshadow_color='' column_boxshadow_width='10' background='bg_color' background_color='' background_gradient_color1='' background_gradient_color2='' background_gradient_direction='vertical' src='' background_position='top left' background_repeat='no-repeat' highlight='' highlight_size='' animation='' link='' linktarget='' link_hover='' title_attr='' alt_attr='' mobile_display='' id='' custom_class='' aria_label='' av_uid='av-my7l1l'] [av_textblock size='' font_color='' color='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' av_uid='av-jueggt30' admin_preview_bg='']

Meet the Team

[/av_textblock] [/av_four_fifth][av_hr class='invisible' height='0' shadow='no-shadow' position='center' custom_border='av-border-thin' custom_width='50px' custom_border_color='' custom_margin_top='30px' custom_margin_bottom='30px' icon_select='yes' custom_icon_color='' icon='ue808' font='entypo-fontello' av_uid='av-jueietyg' admin_preview_bg=''] [av_one_fourth first min_height='' vertical_alignment='' space='' custom_margin='' margin='0px' row_boxshadow='' row_boxshadow_color='' row_boxshadow_width='10' link='' linktarget='' link_hover='' padding='0px' highlight='' highlight_size='' border='' border_color='' radius='0px' column_boxshadow='' column_boxshadow_color='' column_boxshadow_width='10' background='bg_color' background_color='' background_gradient_color1='' background_gradient_color2='' background_gradient_direction='vertical' src='' background_position='top left' background_repeat='no-repeat' animation='' mobile_breaking='' mobile_display='' av_uid='av-lsldu3'] [av_image src='https://www.seidengroup.com/wp-content/uploads/2019/04/AlanSeiden-web-2019-2.jpg' attachment='16649' attachment_size='full' copyright='' caption='' image_size='' styling='' align='center' font_size='' overlay_opacity='0.4' overlay_color='#000000' overlay_text_color='#ffffff' animation='no-animation' hover='' appearance='' link='page,2' target='' title_attr='' alt_attr='' img_scrset='' lazy_loading='disabled' id='' custom_class='' template_class='' av_element_hidden_in_editor='0' av_uid='av-20jx3nr' sc_version='1.0' admin_preview_bg=''][/av_image] [av_textblock fold_type='' fold_height='' fold_more='Read more' fold_less='Read less' fold_text_style='' fold_btn_align='' textblock_styling_align='' textblock_styling='' textblock_styling_gap='' textblock_styling_mobile='' size='' av-desktop-font-size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' fold_overlay_color='' fold_text_color='' fold_btn_color='theme-color' fold_btn_bg_color='' fold_btn_font_color='' size-btn-text='' av-desktop-font-size-btn-text='' av-medium-font-size-btn-text='' av-small-font-size-btn-text='' av-mini-font-size-btn-text='' fold_timer='' z_index_fold='' id='' custom_class='' template_class='' av_uid='av-1xppm8n' sc_version='1.0' admin_preview_bg='']
Alan Seiden

Specialties: PHP, IBM i, performance, strategy, integration, modernization READ BIO IBM Champion

[/av_textblock] [/av_one_fourth][av_one_fourth min_height='' vertical_alignment='' space='' custom_margin='' margin='0px' padding='0px' border='' border_color='' radius='0px' background_color='' src='' background_position='top left' background_repeat='no-repeat' animation='' av_uid='av-1rsqnfr'] [av_image src='https://www.seidengroup.com/wp-content/uploads/2022/08/JorgeDiaz.jpg' attachment='24711' attachment_size='full' copyright='' caption='' image_size='' styling='' align='center' font_size='' overlay_opacity='0.4' overlay_color='#000000' overlay_text_color='#ffffff' animation='no-animation' hover='' appearance='' link='manually,https://www.seidengroup.com/about-jorge-diaz/' target='' title_attr='' alt_attr='' img_scrset='' lazy_loading='disabled' id='' custom_class='' template_class='' av_element_hidden_in_editor='0' av_uid='av-1qfg69j' sc_version='1.0' admin_preview_bg=''][/av_image] [av_textblock textblock_styling_align='' textblock_styling='' textblock_styling_gap='' textblock_styling_mobile='' size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' id='' custom_class='' template_class='' av_uid='av-1nyo0jb' sc_version='1.0' admin_preview_bg='']
Jorge Diaz

Specialties: PHP, Node.js, SQL, Db2, IBM i, architecture, DevOps, APIs READ BIO

[/av_textblock] [/av_one_fourth][av_one_fourth min_height='' vertical_alignment='' space='' custom_margin='' margin='0px' padding='0px' border='' border_color='' radius='0px' background_color='' src='' background_position='top left' background_repeat='no-repeat' animation='' av_uid='av-1m817p3'] [av_image src='https://www.seidengroup.com/wp-content/uploads/2020/06/Calvin4-web-6.jpg' attachment='18325' attachment_size='full' copyright='' caption='' styling='' align='center' font_size='' overlay_opacity='0.4' overlay_color='#000000' overlay_text_color='#ffffff' animation='no-animation' hover='' appearance='' link='page,18278' target='' id='' custom_class='' av_element_hidden_in_editor='0' av_uid='av-5qmb53' admin_preview_bg=''][/av_image] [av_textblock size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' id='' custom_class='' template_class='' av_uid='av-1k2i5av' sc_version='1.0' admin_preview_bg='']
Calvin Buckley

Specialties:  Open Source, PASE, PHP extensions, porting open source tools to IBM i READ BIO IBM Champion

[/av_textblock] [/av_one_fourth][av_one_fourth min_height='' vertical_alignment='' space='' custom_margin='' margin='0px' padding='0px' border='' border_color='' radius='0px' background_color='' src='' background_position='top left' background_repeat='no-repeat' animation='' av_uid='av-36r92dl'] [av_image src='https://www.seidengroup.com/wp-content/uploads/2022/08/Kath-Hewitt-web-1.png' attachment='24712' attachment_size='full' copyright='' caption='' image_size='' styling='' align='center' font_size='' overlay_opacity='0.4' overlay_color='#000000' overlay_text_color='#ffffff' animation='no-animation' hover='' appearance='' link='page,23305' target='' title_attr='' alt_attr='' img_scrset='' lazy_loading='disabled' id='' custom_class='' template_class='' av_element_hidden_in_editor='0' av_uid='av-l0b9uelk' sc_version='1.0' admin_preview_bg=''][/av_image] [av_textblock textblock_styling_align='' textblock_styling='' textblock_styling_gap='' textblock_styling_mobile='' size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' id='' custom_class='' template_class='' av_uid='av-l0b9xgyt' sc_version='1.0' admin_preview_bg='']
Kathryn Hewitt

Specialties: Project management; databases and SQL READ BIO

[/av_textblock] [/av_one_fourth][av_hr class='invisible' icon_select='yes' icon='ue808' font='entypo-fontello' position='center' shadow='no-shadow' height='20' custom_border='av-border-thin' custom_width='30%' custom_margin_top='-15px' custom_margin_bottom='20px' custom_border_color='' custom_icon_color='' id='' custom_class='' av_uid='av-kc3ridbd' admin_preview_bg=''] [av_one_fourth first min_height='' vertical_alignment='' space='' custom_margin='' margin='0px' padding='0px' border='' border_color='' radius='0px' background_color='' src='' background_position='top left' background_repeat='no-repeat' animation='' av_uid='av-1vzwtnb'] [av_image src='https://www.seidengroup.com/wp-content/uploads/2022/06/HOLLY_LACHER_sm.jpg' attachment='24041' attachment_size='full' copyright='' caption='' image_size='' styling='' align='center' font_size='' overlay_opacity='0.4' overlay_color='#000000' overlay_text_color='#ffffff' animation='no-animation' hover='' appearance='' link='page,24012' target='' title_attr='' alt_attr='' img_scrset='' lazy_loading='disabled' id='' custom_class='' template_class='' av_element_hidden_in_editor='0' av_uid='av-1v612sn' sc_version='1.0' admin_preview_bg=''][/av_image] [av_textblock fold_type='' fold_height='' fold_more='Read more' fold_less='Read less' fold_text_style='' fold_btn_align='' textblock_styling_align='' textblock_styling='' textblock_styling_gap='' textblock_styling_mobile='' size='' av-desktop-font-size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' fold_overlay_color='' fold_text_color='' fold_btn_color='theme-color' fold_btn_bg_color='' fold_btn_font_color='' size-btn-text='' av-desktop-font-size-btn-text='' av-medium-font-size-btn-text='' av-small-font-size-btn-text='' av-mini-font-size-btn-text='' fold_timer='' z_index_fold='' id='' custom_class='' template_class='' av_uid='av-1t8j5cn' sc_version='1.0' admin_preview_bg='']
Holly Lacher

Specialties: Web apps, PHP, RPG, SQL, dashboards, CRM, databases READ BIO 2022 IBM Rising Star [/av_textblock] [/av_one_fourth][av_one_fourth min_height='' vertical_alignment='' space='' custom_margin='' margin='0px' padding='0px' border='' border_color='' radius='0px' background_color='' src='' background_position='top left' background_repeat='no-repeat' animation='' av_uid='av-1m817p3-15'] [av_image src='https://www.seidengroup.com/wp-content/uploads/2022/03/Dominick.jpg' attachment='23357' attachment_size='full' copyright='' caption='' image_size='' styling='' align='center' font_size='' overlay_opacity='0.4' overlay_color='#000000' overlay_text_color='#ffffff' animation='no-animation' hover='' appearance='' link='page,23338' target='' title_attr='' alt_attr='' img_scrset='' lazy_loading='disabled' id='' custom_class='' template_class='' av_element_hidden_in_editor='0' av_uid='av-5qmb53-14' sc_version='1.0' admin_preview_bg=''][/av_image] [av_textblock textblock_styling_align='' textblock_styling='' textblock_styling_gap='' textblock_styling_mobile='' size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' id='' custom_class='' template_class='' av_uid='av-1k2i5av-13' sc_version='1.0' admin_preview_bg='']

Dominick Pagnotta

Specialties:  IT strategy, IBM i modernization, APIs, Mulesoft and Salesforce integration, AWS, PHP, Node.js READ BIO

[/av_textblock] [/av_one_fourth][av_one_fourth min_height='' vertical_alignment='' space='' custom_margin='' margin='0px' padding='0px' border='' border_color='' radius='0px' background_color='' src='' background_position='top left' background_repeat='no-repeat' animation='' av_uid='av-p5gdnt'] [av_image src='https://www.seidengroup.com/wp-content/uploads/2022/07/Jack-Woehr-sm.png' attachment='24415' attachment_size='full' copyright='' caption='' image_size='' styling='' align='center' font_size='' overlay_opacity='0.4' overlay_color='#000000' overlay_text_color='#ffffff' animation='no-animation' hover='' appearance='' link='page,24413' target='' title_attr='' alt_attr='' img_scrset='' lazy_loading='disabled' id='' custom_class='' template_class='' av_element_hidden_in_editor='0' av_uid='av-l6cop6n2' sc_version='1.0' admin_preview_bg=''][/av_image] [av_textblock textblock_styling_align='' textblock_styling='' textblock_styling_gap='' textblock_styling_mobile='' size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' id='' custom_class='' template_class='' av_uid='av-l6coqzet' sc_version='1.0' admin_preview_bg='']
Jack Woehr

Specialties:  IBM i, APIs, modernization, Vue, PHP READ BIO IBM Champion [/av_textblock] [/av_one_fourth][av_one_fourth min_height='' vertical_alignment='' space='' custom_margin='' margin='0px' padding='0px' border='' border_color='' radius='0px' background_color='' src='' background_position='top left' background_repeat='no-repeat' animation='' av_uid='av-5g097t'] [av_image src='https://www.seidengroup.com/wp-content/uploads/2022/04/Dawn-May.jpg' attachment='23823' attachment_size='full' copyright='' caption='' image_size='' styling='' align='center' font_size='' overlay_opacity='0.4' overlay_color='#000000' overlay_text_color='#ffffff' animation='no-animation' hover='' appearance='' link='page,21890' target='' title_attr='' alt_attr='' img_scrset='' lazy_loading='disabled' id='' custom_class='' template_class='' av_element_hidden_in_editor='0' av_uid='av-1cq3nc9' sc_version='1.0' admin_preview_bg=''][/av_image] [av_textblock fold_type='' fold_height='' fold_more='Read more' fold_less='Read less' fold_text_style='' fold_btn_align='' textblock_styling_align='' textblock_styling='' textblock_styling_gap='' textblock_styling_mobile='' size='' av-desktop-font-size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' fold_overlay_color='' fold_text_color='' fold_btn_color='theme-color' fold_btn_bg_color='' fold_btn_font_color='' size-btn-text='' av-desktop-font-size-btn-text='' av-medium-font-size-btn-text='' av-small-font-size-btn-text='' av-mini-font-size-btn-text='' fold_timer='' z_index_fold='' id='' custom_class='' template_class='' av_uid='av-itwi95' sc_version='1.0' admin_preview_bg='']

Dawn May

Specialties:  IBM i work management, performance, systems management READ BIO IBM Champion

[/av_textblock] [/av_one_fourth][av_hr class='invisible' icon_select='yes' icon='ue808' font='entypo-fontello' position='center' shadow='no-shadow' height='20' custom_border='av-border-thin' custom_width='30%' custom_margin_top='-15px' custom_margin_bottom='20px' custom_border_color='' custom_icon_color='' id='' custom_class='' av_uid='av-2om09ft' admin_preview_bg=''] [av_one_fourth first min_height='' vertical_alignment='' space='' custom_margin='' margin='0px' padding='0px' border='' border_color='' radius='0px' background_color='' src='' background_position='top left' background_repeat='no-repeat' animation='' av_uid='av-1m817p3-6'] [av_image src='https://www.seidengroup.com/wp-content/uploads/2023/01/Patrick-Behr.jpg' attachment='25999' attachment_size='full' copyright='' caption='' image_size='' styling='' box_shadow='none' box_shadow_width='10' box_shadow_color='' align='center' font_size='' overlay_opacity='0.4' overlay_color='#000000' overlay_text_color='#ffffff' animation='no-animation' animation_duration='' animation_custom_bg_color='' animation_z_index_curtain='100' parallax_parallax='' parallax_parallax_speed='' av-desktop-parallax_parallax='' av-desktop-parallax_parallax_speed='' av-medium-parallax_parallax='' av-medium-parallax_parallax_speed='' av-small-parallax_parallax='' av-small-parallax_parallax_speed='' av-mini-parallax_parallax='' av-mini-parallax_parallax_speed='' hover='' blur_image='' grayscale_image='' fade_image='' appearance='' css_position='' css_position_location=',,,' css_position_z_index='' av-desktop-css_position='' av-desktop-css_position_location=',,,' av-desktop-css_position_z_index='' av-medium-css_position='' av-medium-css_position_location=',,,' av-medium-css_position_z_index='' av-small-css_position='' av-small-css_position_location=',,,' av-small-css_position_z_index='' av-mini-css_position='' av-mini-css_position_location=',,,' av-mini-css_position_z_index='' transform_perspective='' transform_rotation=',,,' transform_scale=',,' transform_skew=',' transform_translate=',,' av-desktop-transform_perspective='' av-desktop-transform_rotation=',,,' av-desktop-transform_scale=',,' av-desktop-transform_skew=',' av-desktop-transform_translate=',,' av-medium-transform_perspective='' av-medium-transform_rotation=',,,' av-medium-transform_scale=',,' av-medium-transform_skew=',' av-medium-transform_translate=',,' av-small-transform_perspective='' av-small-transform_rotation=',,,' av-small-transform_scale=',,' av-small-transform_skew=',' av-small-transform_translate=',,' av-mini-transform_perspective='' av-mini-transform_rotation=',,,' av-mini-transform_scale=',,' av-mini-transform_skew=',' av-mini-transform_translate=',,' mask_overlay='' mask_overlay_shape='blob' mask_overlay_size='contain' mask_overlay_scale='100%' mask_overlay_position='center center' mask_overlay_repeat='no-repeat' mask_overlay_rotate='' mask_overlay_rad_shape='circle' mask_overlay_rad_position='center center' mask_overlay_opacity1='0' mask_overlay_opacity2='1' mask_overlay_opacity3='' link='page,25997' target='' title_attr='' alt_attr='' img_scrset='' lazy_loading='disabled' id='' custom_class='' template_class='' av_element_hidden_in_editor='0' av_uid='av-5qmb53-5' sc_version='1.0' admin_preview_bg=''][/av_image] [av_textblock fold_type='' fold_height='' fold_more='Read more' fold_less='Read less' fold_text_style='' fold_btn_align='' textblock_styling_align='' textblock_styling='' textblock_styling_gap='' textblock_styling_mobile='' size='' av-desktop-font-size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' fold_overlay_color='' fold_text_color='' fold_btn_color='theme-color' fold_btn_bg_color='' fold_btn_font_color='' size-btn-text='' av-desktop-font-size-btn-text='' av-medium-font-size-btn-text='' av-small-font-size-btn-text='' av-mini-font-size-btn-text='' fold_timer='' z_index_fold='' id='' custom_class='' template_class='' av_uid='av-1k2i5av-4' sc_version='1.0' admin_preview_bg='']
Patrick Behr

Specialties: SQL, Db2, RPG, PHP, Node.js, APIs READ BIO IBM Champion

[/av_textblock] [/av_one_fourth][av_one_fourth min_height='' vertical_alignment='' space='' custom_margin='' margin='0px' padding='0px' border='' border_color='' radius='0px' background_color='' src='' background_position='top left' background_repeat='no-repeat' animation='' av_uid='av-26azjxl'] [av_image src='https://www.seidengroup.com/wp-content/uploads/2024/01/Jeff-Parrott-2-1.png' attachment='28370' attachment_size='full' copyright='' caption='' image_size='' styling='' box_shadow='none' box_shadow_width='10' box_shadow_color='' align='center' font_size='' overlay_opacity='0.4' overlay_color='#000000' overlay_text_color='#ffffff' link='page,28303' target='' animation='no-animation' animation_duration='' animation_custom_bg_color='' animation_z_index_curtain='100' parallax_parallax='' parallax_parallax_speed='' av-desktop-parallax_parallax='' av-desktop-parallax_parallax_speed='' av-medium-parallax_parallax='' av-medium-parallax_parallax_speed='' av-small-parallax_parallax='' av-small-parallax_parallax_speed='' av-mini-parallax_parallax='' av-mini-parallax_parallax_speed='' hover='' blur_image='' grayscale_image='' fade_image='' appearance='' css_position='' css_position_location=',,,' css_position_z_index='' av-desktop-css_position='' av-desktop-css_position_location=',,,' av-desktop-css_position_z_index='' av-medium-css_position='' av-medium-css_position_location=',,,' av-medium-css_position_z_index='' av-small-css_position='' av-small-css_position_location=',,,' av-small-css_position_z_index='' av-mini-css_position='' av-mini-css_position_location=',,,' av-mini-css_position_z_index='' transform_perspective='' transform_rotation=',,,' transform_scale=',,' transform_skew=',' transform_translate=',,' av-desktop-transform_perspective='' av-desktop-transform_rotation=',,,' av-desktop-transform_scale=',,' av-desktop-transform_skew=',' av-desktop-transform_translate=',,' av-medium-transform_perspective='' av-medium-transform_rotation=',,,' av-medium-transform_scale=',,' av-medium-transform_skew=',' av-medium-transform_translate=',,' av-small-transform_perspective='' av-small-transform_rotation=',,,' av-small-transform_scale=',,' av-small-transform_skew=',' av-small-transform_translate=',,' av-mini-transform_perspective='' av-mini-transform_rotation=',,,' av-mini-transform_scale=',,' av-mini-transform_skew=',' av-mini-transform_translate=',,' mask_overlay='' mask_overlay_shape='blob' mask_overlay_size='contain' mask_overlay_scale='100%' mask_overlay_position='center center' mask_overlay_repeat='no-repeat' mask_overlay_rotate='' mask_overlay_rad_shape='circle' mask_overlay_rad_position='center center' mask_overlay_opacity1='0' mask_overlay_opacity2='1' mask_overlay_opacity3='' title_attr='' alt_attr='' img_scrset='' lazy_loading='disabled' id='' custom_class='' template_class='' av_element_hidden_in_editor='0' av_uid='av-lsf6wcnf' sc_version='1.0' admin_preview_bg=''][/av_image] [av_textblock fold_type='' fold_height='' fold_more='Read more' fold_less='Read less' fold_text_style='' fold_btn_align='' textblock_styling_align='' textblock_styling='' textblock_styling_gap='' textblock_styling_mobile='' size='' av-desktop-font-size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' fold_overlay_color='' fold_text_color='' fold_btn_color='theme-color' fold_btn_bg_color='' fold_btn_font_color='' size-btn-text='' av-desktop-font-size-btn-text='' av-medium-font-size-btn-text='' av-small-font-size-btn-text='' av-mini-font-size-btn-text='' fold_timer='' z_index_fold='' id='' custom_class='' template_class='' av_uid='av-lsf6zh3s' sc_version='1.0' admin_preview_bg='']
Jeff Parrott

Specialties: RPG, Db2 for i, SQL, PHP Integrations, Systems Analysis READ BIO

[/av_textblock] [/av_one_fourth][av_one_fourth min_height='' vertical_alignment='' space='' custom_margin='' margin='0px' padding='0px' border='' border_color='' radius='0px' background_color='' src='' background_position='top left' background_repeat='no-repeat' animation='' av_uid='av-1vzwtnb-12'] [av_image src='https://www.seidengroup.com/wp-content/uploads/2023/05/Tara_Logan.jpg' attachment='26872' attachment_size='full' copyright='' caption='' image_size='' styling='' box_shadow='none' box_shadow_width='10' box_shadow_color='' align='center' font_size='' overlay_opacity='0.4' overlay_color='#000000' overlay_text_color='#ffffff' animation='no-animation' animation_duration='' animation_custom_bg_color='' animation_z_index_curtain='100' parallax_parallax='' parallax_parallax_speed='' av-desktop-parallax_parallax='' av-desktop-parallax_parallax_speed='' av-medium-parallax_parallax='' av-medium-parallax_parallax_speed='' av-small-parallax_parallax='' av-small-parallax_parallax_speed='' av-mini-parallax_parallax='' av-mini-parallax_parallax_speed='' hover='' blur_image='' grayscale_image='' fade_image='' appearance='' css_position='' css_position_location=',,,' css_position_z_index='' av-desktop-css_position='' av-desktop-css_position_location=',,,' av-desktop-css_position_z_index='' av-medium-css_position='' av-medium-css_position_location=',,,' av-medium-css_position_z_index='' av-small-css_position='' av-small-css_position_location=',,,' av-small-css_position_z_index='' av-mini-css_position='' av-mini-css_position_location=',,,' av-mini-css_position_z_index='' transform_perspective='' transform_rotation=',,,' transform_scale=',,' transform_skew=',' transform_translate=',,' av-desktop-transform_perspective='' av-desktop-transform_rotation=',,,' av-desktop-transform_scale=',,' av-desktop-transform_skew=',' av-desktop-transform_translate=',,' av-medium-transform_perspective='' av-medium-transform_rotation=',,,' av-medium-transform_scale=',,' av-medium-transform_skew=',' av-medium-transform_translate=',,' av-small-transform_perspective='' av-small-transform_rotation=',,,' av-small-transform_scale=',,' av-small-transform_skew=',' av-small-transform_translate=',,' av-mini-transform_perspective='' av-mini-transform_rotation=',,,' av-mini-transform_scale=',,' av-mini-transform_skew=',' av-mini-transform_translate=',,' mask_overlay='' mask_overlay_shape='blob' mask_overlay_size='contain' mask_overlay_scale='100%' mask_overlay_position='center center' mask_overlay_repeat='no-repeat' mask_overlay_rotate='' mask_overlay_rad_shape='circle' mask_overlay_rad_position='center center' mask_overlay_opacity1='0' mask_overlay_opacity2='1' mask_overlay_opacity3='' link='page,26874' target='' title_attr='' alt_attr='' img_scrset='' lazy_loading='disabled' id='' custom_class='' template_class='' av_element_hidden_in_editor='0' av_uid='av-1v612sn-11' sc_version='1.0' admin_preview_bg=''][/av_image] [av_textblock textblock_styling_align='' textblock_styling='' textblock_styling_gap='' textblock_styling_mobile='' size='' av-desktop-font-size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' id='' custom_class='' template_class='' av_uid='av-1t8j5cn-10' sc_version='1.0' admin_preview_bg='']
Tara Schultz

Specialties Build vs. Buy; Strategy/Roadmaps; ERP, EDI, TMS, WMS, implementations READ BIO

[/av_textblock] [/av_one_fourth][av_one_fourth min_height='' vertical_alignment='' space='' custom_margin='' margin='0px' padding='0px' border='' border_color='' radius='0px' background_color='' src='' background_position='top left' background_repeat='no-repeat' animation='' av_uid='av-ps2und'] [av_image src='https://www.seidengroup.com/wp-content/uploads/2024/04/David_Gillespie-2.jpg' attachment='28750' attachment_size='full' copyright='' caption='' image_size='' styling='' box_shadow='none' box_shadow_width='10' box_shadow_color='' align='center' font_size='' overlay_opacity='0.4' overlay_color='#000000' overlay_text_color='#ffffff' link='page,28725' target='' animation='no-animation' animation_duration='' animation_custom_bg_color='' animation_z_index_curtain='100' parallax_parallax='' parallax_parallax_speed='' av-desktop-parallax_parallax='' av-desktop-parallax_parallax_speed='' av-medium-parallax_parallax='' av-medium-parallax_parallax_speed='' av-small-parallax_parallax='' av-small-parallax_parallax_speed='' av-mini-parallax_parallax='' av-mini-parallax_parallax_speed='' hover='' blur_image='' grayscale_image='' fade_image='' appearance='' css_position='' css_position_location=',,,' css_position_z_index='' av-desktop-css_position='' av-desktop-css_position_location=',,,' av-desktop-css_position_z_index='' av-medium-css_position='' av-medium-css_position_location=',,,' av-medium-css_position_z_index='' av-small-css_position='' av-small-css_position_location=',,,' av-small-css_position_z_index='' av-mini-css_position='' av-mini-css_position_location=',,,' av-mini-css_position_z_index='' transform_perspective='' transform_rotation=',,,' transform_scale=',,' transform_skew=',' transform_translate=',,' av-desktop-transform_perspective='' av-desktop-transform_rotation=',,,' av-desktop-transform_scale=',,' av-desktop-transform_skew=',' av-desktop-transform_translate=',,' av-medium-transform_perspective='' av-medium-transform_rotation=',,,' av-medium-transform_scale=',,' av-medium-transform_skew=',' av-medium-transform_translate=',,' av-small-transform_perspective='' av-small-transform_rotation=',,,' av-small-transform_scale=',,' av-small-transform_skew=',' av-small-transform_translate=',,' av-mini-transform_perspective='' av-mini-transform_rotation=',,,' av-mini-transform_scale=',,' av-mini-transform_skew=',' av-mini-transform_translate=',,' mask_overlay='' mask_overlay_shape='blob' mask_overlay_size='contain' mask_overlay_scale='100%' mask_overlay_position='center center' mask_overlay_repeat='no-repeat' mask_overlay_rotate='' mask_overlay_rad_shape='circle' mask_overlay_rad_position='center center' mask_overlay_opacity1='0' mask_overlay_opacity2='1' mask_overlay_opacity3='' title_attr='' alt_attr='' img_scrset='' lazy_loading='disabled' id='' custom_class='' template_class='' av_element_hidden_in_editor='0' av_uid='av-lushx2ka' sc_version='1.0' admin_preview_bg=''][/av_image] [av_textblock fold_type='' fold_height='' fold_more='Read more' fold_less='Read less' fold_text_style='' fold_btn_align='' textblock_styling_align='' textblock_styling='' textblock_styling_gap='' textblock_styling_mobile='' size='' av-desktop-font-size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' fold_overlay_color='' fold_text_color='' fold_btn_color='theme-color' fold_btn_bg_color='' fold_btn_font_color='' size-btn-text='' av-desktop-font-size-btn-text='' av-medium-font-size-btn-text='' av-small-font-size-btn-text='' av-mini-font-size-btn-text='' fold_timer='' z_index_fold='' id='' custom_class='' template_class='' av_uid='av-lushyhru' sc_version='1.0' admin_preview_bg='']
David Gillespie

Specialties: RPG, PHP, Db2 for i, SQL, ERP, Integrations READ BIO

[/av_textblock] [/av_one_fourth][av_hr class='invisible' icon_select='yes' icon='ue808' font='entypo-fontello' position='center' shadow='no-shadow' height='20' custom_border='av-border-thin' custom_width='30%' custom_margin_top='-15px' custom_margin_bottom='20px' custom_border_color='' custom_icon_color='' id='' custom_class='' av_uid='av-1ls6rd5' admin_preview_bg=''] [av_one_fourth first min_height='' vertical_alignment='' space='' custom_margin='' margin='0px' padding='0px' border='' border_color='' radius='0px' background_color='' src='' background_position='top left' background_repeat='no-repeat' animation='' av_uid='av-1585pnt'] [/av_one_fourth][av_one_fourth min_height='' vertical_alignment='' space='' custom_margin='' margin='0px' padding='0px' border='' border_color='' radius='0px' background_color='' src='' background_position='top left' background_repeat='no-repeat' animation='' av_uid='av-1m817p3-9'] [av_image src='https://www.seidengroup.com/wp-content/uploads/2020/06/richard-schoen-1.jpg' attachment='18221' attachment_size='full' copyright='' caption='' styling='' align='center' font_size='' overlay_opacity='0.4' overlay_color='#000000' overlay_text_color='#ffffff' animation='no-animation' hover='' appearance='' link='page,18216' target='' id='' custom_class='' av_element_hidden_in_editor='0' av_uid='av-5qmb53-8' admin_preview_bg=''][/av_image] [av_textblock fold_type='' fold_height='' fold_more='Read more' fold_less='Read less' fold_text_style='' fold_btn_align='' textblock_styling_align='' textblock_styling='' textblock_styling_gap='' textblock_styling_mobile='' size='' av-desktop-font-size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' fold_overlay_color='' fold_text_color='' fold_btn_color='theme-color' fold_btn_bg_color='' fold_btn_font_color='' size-btn-text='' av-desktop-font-size-btn-text='' av-medium-font-size-btn-text='' av-small-font-size-btn-text='' av-mini-font-size-btn-text='' fold_timer='' z_index_fold='' id='' custom_class='' template_class='' av_uid='av-1k2i5av-7' sc_version='1.0' admin_preview_bg='']
Richard Schoen

Specialties:  Python, PHP, RPG, .Net (C#/VB), Db2, MariaDb, SQL Server READ BIO IBM Champion [/av_textblock] [/av_one_fourth][av_one_fourth min_height='' vertical_alignment='' space='' custom_margin='' margin='0px' padding='0px' border='' border_color='' radius='0px' background_color='' src='' background_position='top left' background_repeat='no-repeat' animation='' av_uid='av-1nfhj7t'] [av_image src='https://www.seidengroup.com/wp-content/uploads/2021/07/rob_allen.jpg' attachment='21886' attachment_size='full' copyright='' caption='' styling='' align='center' font_size='' overlay_opacity='0.4' overlay_color='#000000' overlay_text_color='#ffffff' animation='no-animation' hover='' appearance='' link='page,21884' target='' title_attr='' alt_attr='' lazy_loading='disabled' id='' custom_class='' av_element_hidden_in_editor='0' av_uid='av-1dkabpl' admin_preview_bg=''][/av_image] [av_textblock size='' av-medium-font-size='' av-small-font-size='' av-mini-font-size='' font_color='' color='' id='' custom_class='' av_uid='av-k7k23t' admin_preview_bg='']

Rob Allen

Specialties:  APIs, PHP, Python, Slim Framework, strategy READ BIO [/av_textblock] [/av_one_fourth][av_one_fourth min_height='' vertical_alignment='' space='' custom_margin='' margin='0px' padding='0px' border='' border_color='' radius='0px' background_color='' src='' background_position='top left' background_repeat='no-repeat' animation='' av_uid='av-r1mifd'] [/av_one_fourth][av_hr class='invisible' icon_select='yes' icon='ue808' font='entypo-fontello' position='center' shadow='no-shadow' height='20' custom_border='av-border-thin' custom_width='50px' custom_margin_top='30px' custom_margin_bottom='30px' custom_border_color='' custom_icon_color='' id='' custom_class='' av_uid='av-jueietyg-16' admin_preview_bg=''] [/av_section]

Find Broken Links Automatically

As dynamic web sites change, their links quickly become obsolete. Before users complain, or search engine indexes grow stale, professional webmasters use software to find those broken links. While free services such as W3 Validator are fine for occasional use, serious web sites require a service that does the following:

  • Runs automatically, at least once a week
  • Dives deep into your site to find all broken links
  • E-mails the errors to you immediately

LinkTiger broken link checker is the best service I’ve found. It graphically shows you exactly where your broken links are. A service such as this is great for dynamic websites, to ensure that search engines and users can see all your pages.
Linktiger.com - Broken links finding service

Why Use a PHP Framework?

At last night’s NY-PHP gathering, a fellow PHP’er and I discussed PHP frameworks. I told her I was developing an e-commerce site using Zend Framework. She replied that she’d been considering frameworks, especially Cake and Symfony, “but I’m not sure I need a framework at all. I write my own SQL; my apps work fine. What would a framework do for me?”

Setting aside the differences between PHP frameworks, I’m aware of at least 4 reasons to use them:

  1. Modular design: A home-grown application, with its ad hoc growth, can become a tangled mess that’s hard to change or enhance. Most mainstream frameworks provide a modular design that makes it easier to modify or add components.
  2. Flexible components: Sure, you can write your own authorization class in PHP, but why reinvent the wheel? The framework will provide an integrated component that handles not only your current needs, but requirements that you haven’t yet encountered (but that the framework’s community has). With a framework, chances are that you won’t have to redesign your authorization system when the users ask for something new.
  3. Best practices: As you use the framework, you’ll begin to absorb the practices and (we hope) good habits of the framework’s creators.
  4. New capabilities: Frameworks regularly add functionality to help developers implement new technology. These days, common enhancements involve AJAX and connections to the APIs of popular web service providers.

Developers may understandably wonder if mastering a framework is worth the learning curve. In my opinion, the effort to learn a framework will be repaid with applications that are well structured, flexible, and easily maintained.

My first open-source project: Mantis/400

Mantis/400 adds DB2 support to Mantis, the popular PHP-based bug tracking application. I programmed the upgrade with Ira Chandler of Curbstone Corporation, personnel from IBM and Zend, and Mantis’s Victor Boctor.

Mantis/400 runs on IBM System i (formerly AS/400), using Zend Core for i5.

Even before we got involved, Mantis supported several databases, thanks to the ADOdb Database Abstraction Library for PHP (and Python). ADOdb’s support of DB2 needed help, though, so we improved it, particularly for System i’s version of DB2.

I recommend the open-source process to anyone who enjoys learning a lot and meeting good people. Our team zestily shared knowledge and discoveries.

More information is available in Alex Woodie’s story in IT Jungle: Mantis Bug Tracker Ported to i5/OS.

PHP Security Links

These resources are a good start for anyone learning secure PHP programming practices.

  • Pro PHP Security (Chris Snyder and Michael Southwell) Comprehensive book, including secure hosting practices
  • Essential PHP Security (Chris Shiflett) Concise, clear explanation of web security concepts, teaching “filter input, escape output” clearly.
  • php|architect’s Guide to PHP Security (Ilia Alshanetsky) Contains detailed discussion of cross-site scripting (XSS) defenses
  • PHP Architect magazine’s monthly “security corner” column
  • Chris Shiflett’s PHP & Web Application Security Blog
  • PHP manual’s security page
  • Web Application Security Consortium mailing list
  • Protect Your Eyes Against Computer Vision Syndrome (CVS)

    Eye strain is a common complaint from computer users, but eyes aren’t the only part of the body that can hurt. Neck pain and backaches can also result from poor visual ergonomics.

    In my latest article, Protect Your Eyes Against Computer Vision Syndrome (CVS) (requires free registration after about May 18, 2007), I show several ways to keep your eyes comfortable at the computer.

    People who wear bifocals or trifocals should consider occupational progressive lenses, glasses that are made especially for daily computer use. These special glasses can resolve painful postural problems.

    Money-saving tip: if you need to buy special (occupational) glasses for computer use, you may not need to buy new frames. Your optician will be happy to use old frames that you might have saved from old prescriptions.