This long page displays (nearly) all the contents of this site as of 05/28/20. This is particularly useful for those interested in printing the site or interested in reading it all without having to move through the standard navigation bar.
|Webcenter / Aqualogic Interaction / Plumtree Consultant||Section: index |
Welcome Archaeologists and Historians. Please note:
- Since 2001 this site has been essentially unchanged.
- To find details of my recent work, visit my blog.
- Recruiters, I seek no new opportunities, so please do not contact me.
In 2001 I created this site to promote my services as a Plumtree consultant and web developer. After successful independent consulting, Plumtree invited me to join its team in 2003. BEA bought Plumtree in 2005, and the latter's product was rebranded Aqualogic User Interaction. Oracle bought BEA in 2008, and the product was rebranded Webcenter Interaction. Oracle wasn't the type of company I would join deliberately, and in 2011 I moved to Boeing's portal team.
My resume is years out of date, updated in 2005.
Enjoy your visit.
|Plumtree Portal||Section: latest |
A trend has been for companies to use enterprise portals to manage their diverse IT content. Portals present users with personalized information and bring content from multiple backend systems into a single interface. Plumtree is arguably the premiere portal vendor, and it is on Plumtree's software that have been working since September of 2000.
I am currently responsible for creating SPL Worldgroup's portal. I built a demo portal to gain senior management's buy-in, then I built the production portal, including customized integration with Lotus Notes and Siebel. Read the overview of this project that began in September 2002 and continues to the present (March 2003).
I worked with Arthur J. Gallagher & Co, a $3 billion insurance company, as its Plumtree specialist as the company designed and implemented its portal. You can read more information about this project in which I assisted the development team work most efficiently with Plumtree. This project was from March 2002 to July 2002.
I was responsible for all aspects of installing, deploying, and maintaining scheduling.com's Plumtree portal, SCIview. You read the overview of that work that began in September 2000 and continued full-time until October 2001.
|SPL Worldgroup Overview||Section: latest |
SPL Worldgroup is a software vendor with a dozen offices around the world. It wanted a portal to make information more visible to employees across offices. SPL's Enterprise Applications group selected Plumtree as its portal framework, but it needed to convince senior management to support its vision.
I was selected by SPL as its Plumtree specialist and lead developer for the project. I was brought in at the end of September 2002 to put a demonstration portal together in a two week timeframe. The demo was populated with the gadgets, publications, and communities envisioned for the production environment. Senior management was excited by what it saw.
SPL then gave me two months as lead developer to create a pilot portal to rollout to offices in the US and Australia. Again, the company was excited by the results, and it rolled out the portal to additional offices ahead of schedule. In the subsequent months I continued to assist in decisions about the system and to meet more business needs through portal development. My accomplishments included the following:
- Created a gadget building system allowing non-technical community managers to create gadgets with highly customized appearance, links, and behaviors. Documented system and trained users in its use.
- Created a news publishing and archiving system for non-technical users.
- Modify Plumtree's Lotus Notes integration to allow access through Plumtree's document security model to Notes content from servers otherwise inaccessible to users.
- Initiated redesign of SPL's Plumtree server configuration to improve reliability and make better use of Equalizer load balancer.
- Led the design of a system to allow previously unrelated IT systems to access user information from each other.
- Integrated Siebel CRM system information into portal, accessing Siebel's own security through the gadget to identify what information the gadget should display on a user by user basis.
- Selected and customized an open source helpdesk system to meet SPL business needs and integrate with Plumtree's user database. SPL had asked me to build a system from scratch, but I recommended this, thereby saving weeks of development time.
- Created administration tools to audit security and configuration of portal objects such as gadgets, crawlers, and folders.
- Trained a second developer to build Plumtree gadgets.
|Portal for Insurance Broker||Section: latest |
Arthur J. Gallagher & Co, one of the worlds largest insurance brokers and on track to have $1 billion in revenues this year (2002), has decided to address the communication needs of its employees and customers through a portal.
For the months of March through July, I consulted with AJG to help its team of developers efficiently excel in its portal development. After helping the other developers become familiar with the Plumtree environment, I focused on building a suite of Plumtree gadgets for web content management and content publishing. This system included:
- support for multiple authors
- an article approval process
- email alerts for approvers
- article versioning and rollbacks
- a template system
- and of course, more
Major elements of the AJG deployment include:
- Reworking the structure and functionality of the Plumtree user interface, for example, extending the gadget registration to customize features and rendering of gadgets.
- Creating a security framework that greatly extends Plumtree's built-in features to allow more granularity of user rights while reducing user administration
- Creating web-based content editing and approval processes
- Creating collaborative workspace for employees and clients to more easily and quickly move through the forms and information tied to the insurance industry
|scheduling.com Overview||Section: latest |
|Web Application Development||Section: latest |
|Process Improvement||Section: latest |
|One Stop Content Maintenance||Section: latest |
scheduling.com continued to use the same content with its portal that it had previously used for its intranet static .html pages. The portal was bring that content into various gadgets and communities. For several reasons, we did not want to elimiate the intranet access to the page, but the formatting required for the two access paths was different.
It would have been infeasible maintain the same content in two different formats. The strategy we used to deal with the situation was to first convert the intranet pages to .asp (required for the Plumtree's hosted display mode anyway), then to move the page content onto .txt files such that the .asp pages contained the intranet formatting and include calls. The portal gadget then would reference only the .txt files. This avoided stylesheet collision, made formatting a non-issue, and let us format only a single .txt file to update both locations.
A problem that arose with the old intranet being accessible was that some users continued to use bookmarks to intranet pages without using the portal. We wanted users to use the portal to gain its ancillary benefits. The solution was to include code in appropriate intranet pages to force users into the portal. I culled the intranet log files for a list of pages frequently hit outside the portal, then into those I inserted this code that would detect whether the user was in the portal, and if not, it would convert their url into one that passed through the portal's gateway space in hosted display mode.
|Robert Stephen Consulting Overview||Section: latest |
Beginning in late 2001, I have contracted for Robert Stephen Consulting. RSC provides products and services to companies that use
the Archibus CAFM application.
Perl is the programming language I have used longer than any other, although not with the same consistent intensity that I have given to VB/ASP. This site is built all on Perl, though I prefer PHP for database-driven pages.
Most of the work I have done with Perl has had more to do with text. For example, I have for more than two years been slowly improving on and expanding tools for posting and editing successive updates to a site that stores its information in text files. One of these is made available to the public through my site FakeTP.com. The script is due for a rewrite because it has in it many vestiges of my earlier days of Perl, but from a functionality standpoint it is quite strong.
A useful tool I made for scheduling.com went to a virus alerts web site, then using Perl copied the site to our server, used regular expressions to extract the portion of the page that we were interested in, then formatted that content for matching presentation on the SCIview portal. Perl makes it easy.
Another useful tool I made in Perl solved a problem I had with a client whose website I host. This person had more than 700 images stored on the server, hundreds of which were unused and left over from news articles long since deleted. There was no practical way for her to review all these images and delete those no longer used in the many dozens of pages on her site. I used Perl to review her log files to make a list of images actually being used, to compare that list to the files stored on the server, then to delete the files that were no longer in use.
My introductions to Perl came from sites like cgi-resources.com (which now includes several tools of mine, including Poster. That site provides hundreds of scripts for download and use by those who wish it. With that introduction to Perl, I have placed an emphasis with many Perl scripts I have written to make the code very simple for others to configure and use.
|VB/ASP/.NET||Section: languages |
The Plumtree portal implementations I have worked on have used VB/ASP as the medium between the user and the portal database in almost every situation. A digestable example of some ASP functions I wrote to format on a web page phone numbers with Siebel's masking. The numbers arrive from the database looking like this: +61414623689~0 0000 0000 and get formatted by my code to look like this: +61.4.1462.3689
Some useful ASP.NET code of mine is a Plumtree portlet delivering XML RSS newsfeeds as standard HTML to users. My experience with ASP.NET is limited.
All the formatting is done by the script, which means that I can change formatting throughout the site by modifying only one function. Thanks to Louis Gray for complaining that this site initially did the full screen images on their own pages instead of in popups.
I think it is in fact worth saying that I really am proficient with HTML. Some tech folks have disregard for HTML because it is merely a markup language, and maybe because it isn't arcane enough for them. The world has an awful lot of Geocities sites, after all. HTML is essential though, because no matter how intellectually stimulating the code on my server may be, your browser is waiting to render its HTML output. I am very conversant in working with HTML and in avoiding cross-platform difficulties. The very front-end of web development that is HTML can be a very nice respite too when a developer wants to switch from using the analytical part of the brain to the aesthetic design area.
|French & Spanish||Section: languages |
I have spent several years living abroad. The two years I spent in France and Belgium allowed me to master the French language. Later I worked for four months on an Internet infrastructure project for CODETEL, the Dominican Republic's primary telco. That gave me a great chance to build on the Spanish I had learned in college, although my skills at that language were most fortified the following year when for a short season I worked in a Salvadorian restaurant. I have also traveled in Mexico and Peru, which helped quite a bit.
PHP has quickly become a favorite language. There is no Plumtree GDK for PHP, but I explain how I can still use PHP in Plumtree gadgets. I like PHP for the ease with which it allows developers to access variables from web sessions and the quick access it allows to databases. I'm also a sucker for procedural as opposed to object-oriented programming, and PHP has got functions galore. It is also marvelously well documented at PHP.net, which makes it very easy to succeed quickly in PHP projects.
A site made uses PHP for its administrative interface and to manage its monthly updates.
I have created a fairly feature-rich content management/site-builder application in PHP that I have rolled out to non-profit groups needing easier control of their web content.
A friend once told me that in two job interviews people didn't
bother asking him about whether he knew SQL. He said in both cases they simple asked, "Do you know
how to do joins?" According to him, that's what people want to know. Okay, I'll show you some useful
Security rights for objects (like gadgets, communities, and folders) in the Plumtree Corporate Portal
are stored in its database. The only way Plumtree provides to view security rights is to go into the
administrative wizard for the individual objects. The Plumtree wizards work well when an
administrator is interested in examining or modifying any or all properties of an individual object
such as a press release gadget. The wizards are very cumbersome though if you are trying to audit
security across mulitple objects.
When bringing SPL Worldgroup's portal
into production, I had assigned security rights throughout the portal, and I wanted to be sure I had
not made errors. I wanted to have one report showing security assignments for each object type. I
created these desired reports using SQL queries like the one below for each object type. I execute them in Query Analyzer.
Additionally, it's easy to change the final WHERE clause to get customized reports. Reports might
show all gadgets a user has rights to or might show all users with read/write access to a certain
community. This has become a great tool for me and other portal administrators.
SELECT left(PTGADGETS.OBJECTID,4) AS GID,
left(PTGADGETS.name,30) as 'Gadget Name',
where PTUSERGROUPS.OBJECTID = PTGADGETSECURITY.GROUPID)
) as 'User/Group',
) as 'U/G ID',
left outer join PTGADGETSECURITY ON
PTGADGETS.OBJECTID = PTGADGETSECURITY.OBJECTID
left outer JOIN PTUSERS ON
PTGADGETSECURITY.GROUPID * - 1 = PTUSERS.OBJECTID
WHERE (PTGADGETSECURITY.GROUPID < 0)
or PTGADGETSECURITY.GROUPID > 99
ORDER BY 'Gadget Name'
Through mostly informal means, I have learned a lot about TCP/IP (which I know is a protocol rather than a language as here classified. My experience with TCP/IP routing has come from configuring several small networks to use incoming broadband connections. I have worked with routers from Linksys, Netgear, Netopia, and Efficient Networks. I do not bill myself as an expert in routing, but I am able to manage the basics of routing tables, NAT, DHCP, configuring PCs, and so forth.
|Java / JSP||Section: languages |
As a contractor on the AJG's portal project, I was responsible for implementing Plumtree's Collaboration Server product according to the company's business requirements. Collaboration Server is a Java/JSP product running on BEA's WebLogic server.
This was my first major involvement with Java. Over the course of my customizations, I created several web applications within the product that make available different feature sets of the product. From the portal side, I register gadgets (snap-in components) to render their content and links from the appropriate .war file and then once users click through the gadget into Collaboration Server, they are only given the features of the product relevant to our business needs.
I am much more limited with Java than I am with the other languages discussed on this platform, but certainly with the combination of a programming background, a Wrox book, being immersed in a Java product, and time to work within it, I'll continue to quickly move toward a more complete skill level.
I am comfortable working with both Unix and Windows servers. This web site is one of a dozen or so that I host for myself and others on a BSDi server running Apache. All the Plumtree implementations I've worked on have been on Windows NT or 2000 servers. I am comfortable establishing new web sites on these machines, configuring existing ones, and so forth. Windows servers are nice because forgotten functions and commands appear on the screen regardless of your human memory. Unix machines are great because they allow so much flexibility with how settings are managed.
At SPL Worldgroup, I worked frequently with an Equalizer load balancer from Coyote Point. I worked with the server clusters in Equalizer--the load balancer's own configuration preceded my involvement.
Java Web Servers
My experience with Java web servers has mostly revolved around my use of applications built on them. Most importantly, I have deployed and customized Plumtree Collaboration Server on BEA WebLogic. I have also used WebLogic with divine Content Server. My development environment runs Apache Tomcat.
I manage the DNS records for several sites I host. The place where I've gotten most involved with DNS, though, has been with clients of my previous employer, Utopia Communication. Our service required clients to assign an MX record (for mail) and a CNAME (for the web server) for their domain to IP addresses we control. We then offered e-mail and more to the site's users. I worked with Utopia's network engineer to decide the best way to host these services, and I instructed ISPs on modifying DNS records. When possible I started by using named-xfer to retrieve their DNS record, then showed them the changes required. Take a look at the documentation I gave a client for this.
On the hardware side of servers, I was involved extensively in collocation and global networking issues while working on the CODETEL NAP project in the Dominican Republic. I was also responsible for negotiating collocation with Globix, Utopia Communication's provider. While in these planning stages, I did extensive research and learning about voice-over-IP providers, systems, and business models. Buy some stock in a sector and tell me if you can easily avoid learning about the niche.
I have done enough work and research into the streaming of media files to be comfortable with common creation and distribution features of the RealMedia products RealProducer and RealServer.
|Databases||Section: software |
The power of web development is in databases. The databases I'm comfortable working with are:
Most of the work that I talk about on this site (the contents of which is on MySQL) relates to one of these databases.
- MS SQL Server
- MS Access
|Development Applications||Section: software |
The applications I like to use when developing include:
|Other Tools||Section: software |
Applications I've worked with include:
- Plumtree Corporate Portal
- Plumtree Collaboration Server
- Plumtree Studio Server
- Web Trends Log Analyzer
- Adobe Acrobat
- MSOffice Suite
|Desktop Publishing||Section: software |
|Business Background||Section: extra |
Prior to turning to the tech side, I worked in the strategy/business development team at an aspiring dot-com that has since disappeared. I believe that every person can increase their perspicacity as they are more familiar with a broad range of considerations and issues. My understanding of marketing and the tides of business helps me be more able to create technical products that correctly address needs.
Take a look at a sample of my writing in which I put forth a business case for a product at a previous company.
|Web Marketing||Section: extra |
My experience with web marketing is fairly broad. I've read the text books, I've subscribed to the e-newsletters, I've poured over the Industry Standard, and I've put it into practice professionally. Web marketing methods that I'm experienced with include:
- Establishing affiliate programs
Evaluated CommissionJunction; Joined ClickTrade
- Establishing sales of web advertising space
Initiated banner sales through FlyCast network; Arranged
for audio sales through MessagePath network
- Buying print and interactive advertising
- Search engine optimization
My previous web development site was among the top ten sites
on AOLNetfind, Hotbot, and the Yahoo/Inktomi search engine
- Link trading
Managed FreeForum.com's promotions with GetMessage.com
|Communication Skills||Section: extra |
My academic background is a degree in public relations from the communications department of Brigham Young University. My studies focused on how messages move through society, how to communicate with large audiences, and how to plan strategically. An example of the structured business communications (here applied to designing a web presence) with which I am comfortable is here.
The most direct benefit this background gives me when I'm doing web development is that I'm able to create better user documentation for my work.
|Excellent Team Member||Section: extra |
One of the most likely points of feedback my former employer at scheduling.com will give of my work was that I was an excellent team member. scheduling.com is interesting in that none of its office locations has the majority of its staff. I had the chance to build positive working relationships not only with those at my location, but also with other employees who in many cases I never met face to face. I was successful in these relationships to the point that my employer allowed me to work remotely for many months, all the while being pleased with my team participation.
|Gadgets Without a GDK||Section: code |
Note: The below was written for the Plumtree 4.x portal. Since then, Plumtree released its 5.0 portal that makes the described approach optional but not necessary. In 5.0, Plumtree gateway transformation tags make all the below features available without regard to programming language in a much easier way.
Plumtree gadgets can display content from any system that can output HTML over HTTP. This is very open and nice. However, Plumtree only provides GDKs for ASP, ASP.NET, JSP, Perl, and ColdFusion (and these last two are not officially supported).
If you have a very simple gadget, one that has no real interactivity and displays only a single page, then you do not have any problems. You can register your code as a gadget, and display it in a MyPage or a Community Page. When your gadget is only slightly more sophisticated, however, you run into trouble if you don't have a GDK.
Let's say your gadget is written in PHP, and when it displays on the MyPage, it shows a list of links to other PHP files. Without a GDK, when you click on the links, you lose the portal's navigation scheme, colors, etc. Were the GDK available to you, you would have it send an HTTP header to the portal along with the page request that stated that you wanted to use hosted display mode. What do you do without the GDK?
Most programming languages let you insert extra HTTP headers. PHP is no different. If you simply put the following at the top of your PHP files, then if you send them through Plumtree's portal, you'll see the file in hosted display mode under Plumtree's banner:
Great, so now you have gotten your page to appear under Plumtree's banner. Let's take it a step further. You may want to access Plumtree settings such as the PT-Return-URI or the PT-User-ID. This information is sent from Plumtree to your PHP server. Simply ask for it:
// use hosted display mode
You now have in the string $systemSettings all the information that you would get through the GDKs dSystemSettings. You can install this example code on your PHP server to see this in action. Simply link to this file from a gadget on your Plumtree portal that specifies your PHP server in the Gateway URL Prefixes box of the Gadget Editor.
This example admittedly only gets you started. It does not show you how to access any portal settings or how to set those settings. Read Plumtree's The Gadget Book to understand the CSP and these settings. You can then get started with tcpTrace to modify this PHP code to have PHP gadgets that are equally interactive as those written in a language that has a supported GDK.
|Sample Code for PHP Gadgets||Section: code |
|Bill Benac :: Resume||Section: index |
4049 47th Ave SW
Seattle, WA 98116
Not Seeking New Opportunities (through 2009)
Seek challenging environments and bright teams in which I can continue to make measurable positive results while capitalizing on my rich experience with technology.
||4/2003 - Present (9/2005)
||San Francisco, CA
||Product Specialist (Technical Consultant)
Plumtree provides enterprise portal, collaboration, search, document management, and content publishing software. As a Product Specialist in the Plumtree Consulting Services organization, I was called on to be the expert in essentially anything with which our customers sought vendor assistance. I also developed a reputation as a resource for others within Plumtree facing technical challenges.
- Enterprise Scale: Worked on-site to solve the most complicated technical problems of many of Plumtree's largest customers' including: Boeing, Department of Defense (DFAS), Weyerhaeuser, Dex Media, Amgen, Veterans Administration, and American Medical Response.
- Diverse Technologies: Performed and guided teams through system installations, customizations, and upgrades for clients using combinations of the SQL Server or Oracle DB, .NET or Java user interface, and IIS, WebLogic, Tomcat, Apache, or WebSphere web servers on Windows, RedHat or Solaris OS.
- Application Development: Created user apps, admin utilities, and integrations in .NET, ASP, and Java.
- System Design: Designed architectures balancing client interest in highly available, load balanced and redundant systems with client's organizational ability to support the complexities of such systems.
- Teaching: Taught multi-day workshops in  developing custom extensions and integrations to Plumtree with its APIs and in  using its customizable template-driven content publishing system.
- Mentored web developers at client sites in general best practices and Plumtree-specific techniques.
- Recognized Excellence: Based on successes with clients, was given Plumtree's Employee Excellence award in the third quarter of 2004.
- Enterprise Software Release: Led successful customer beta program for Plumtree's 6.0 release as special assignment at HQ. Selected participants, arranged Plumtree product experts to assist weeklong betas, addressed resulting feedback. Collected customer databases and customizations, upgraded them internally, then worked with engineering to correct bugs and improve upgrade process.
||11/2001 - 4/2003
||Texas, California, Oklahoma
||Web Developer and Plumtree Expert
SPL WorldGroup (9/2002 - 3/2003)
As lead web developer and Plumtree expert for intranet portal deployed worldwide to nine offices:
- Built demo portal in two weeks for senior management's buy-in, then built production portal in ten weeks for pilot rollout so successful that full rollout to all offices occurred ahead of schedule.
- Wrote content publishing system in ASP; also applications integrating with Siebel and Lotus Notes.
- Initiated redesign of server architecture to improve reliability and make maintenance easier.
- Led design of system to let previously unrelated IT systems access each other's user information.
- Trained other roles in company such as content managers and web developers.
Arthur J. Gallagher (3/2002 - 7/2002)
As Plumtree Software expert and member of web development team:
- Built content publishing system in ASP featuring multiple authors, approval workflow, versioning, rollbacks, template system, etc. to serve as the content engine for self-service insurance web site.
- Trained developers in Plumtree API; helped project manager maximize available portal benefits.
Robert Steven Consulting (12/2001 - 3/2002)
SCI Solutions (11/2001 - 2/2002)
Helped company transfer technical ownership of portal, upgraded system, enhanced applications.
||9/2000 - 10/2001
||Los Gatos, CA
||Webmaster & Plumtree Corporate Portal Manager
- For this healthcare software provider, was responsible for all aspects of migrating old intranet to portal, managing system, writing new applications, supporting users. Also managed public website.
||7/2000 - Present
||Palo Alto, CA
- Founding member of group providing site design, brand consulting, and custom applications to humanitarian organizations. Wrote PHP/Perl website publishing system.
||6/1999 - 9/2000
||GetMessage.com / Utopia Communication, Inc
||Business Development Manager
- Developed concept, method and business strategy for core product, a private labeled version of company's end-user-focused voice, fax, and e-mail "unified messaging" product.
- Initiated and led ad buying, ad selling, customer support, and affiliate programs.
- Negotiated then managed contracts for PSTN telephone service and server collocation
- Consulted and coded with development team to create appropriate user interface and functionality.
- Refined technological and business proposals by senior management for viability, appropriateness.
||9/1998 - 12/1998
||Grameen Foundation USA
||Intern to Director of Development
- Designed database of donors and mailing list. Orchestrated and gave presentation in donor community.
- Worked on structure and editing of several successful grant proposals.
- Laid out and coordinated printing and distribution of mailing generating substantial contributions.
||5/1997 - 8/1997
||Santo Domingo, Dominican Republic
Service Sales Coordinator and Representative
- For this subsidiary of Verizon, wrote Internet Network Access Point promotional information and service documentation. Presented service to potential clients on three Caribbean islands.
- Negotiated partnership with Netscape to mirror its software--a first for a commercial site.
- Designed sales approaches and methods to reach new customer segments, trained colleagues.
||Brigham Young University
||BA in Public Relations -- GPA in major: 3.90; GPA overall: 3.80.
Graduated cum laude and with University Honors
Minors: English, International Development.
- Phi Kappa Phi Honor Society member, Golden Key Honor Society member, Dean's list.
- Recipient of several academic scholarships and of scholarship for humanitarian project in India.
- Jerusalem Center Study Abroad program - studied in Israel, Jordan, and Egypt.
||Windows, Solaris, RHEL, BSDi and Fedora Linux
||IIS, WebLogic, Tomcat, Apache, WebSphere
||SQl Server, Oracle, MySQL, Sybase
|CONFERENCES, ASSOCIATIONS & PUBLICATION
- Panelist for the session "Online Business: A Whole New Ballgame" at the International Chamber of Commerce's (ICC) World Congress in Morocco, June, 2004.
- Participated through the ICC in the United Nations' World Summit on the Information Society (WSIS) in Switzerland, December, 2003.
- Published article entitled "Improving WSIS Success by Increasing Business Participation" in the journal Information Technologies and International Development, a project of MIT and Harvard.
- For the technical track at Plumtree's 2004 employee conference, presented case studies from my successes solving customer business needs through custom code extensions to Plumtree products.
- At Plumtree's 2005 conference for consultants, presented and coordinated other presentations for new product training.
||Eagle Scout. Two-years as full-time volunteer representative in Europe for church. Fluent French, moderate Spanish. A decade of volunteer involvement with humanitarian organizations in India. Widely-traveled.
|Contact Information||Section: index |
The essentials for contacting me:
- Telephone: 214.773.6440