Wednesday, July 23, 2008

installing MediaWiki on Xampp

I am trying to install MediaWiki on Xampp which i thought would be a cinch but it's actually not.

UPDATE: Heres the solution DoKuWiki

Here is my account of where i am so far so that maybe we can make it easier for the next guy:

I downloaded XAMPP Windows 1.6.7 from http://www.apachefriends.org/en/xampp-windows.html#641
Install and startup goes fine

I downloaded MediaWiki 1.12 from http://www.mediawiki.org/wiki/Download and extract.

I created the wiki db.

I then pull up the wiki page on my localhost. My environment checks out. I proceed to fill out the install form. MediaWiki won't let me use a blank db pw.

I drop the wiki db and then create a new db user and have phpmyadmin create a db with the same name and give the new user full privileges on it.

MediaWiki install completes and tells me to move my config/LocalSettings.php to it's parent directory. I do that and then follow the link MediaWiki gives me and i get:

Warning: domdocument::domdocument() expects at least 1 parameter, 0 given in C:\xampp\htdocs\wiki\includes\Preprocessor_DOM.php on line 566

Fatal error: Call to undefined method domdocument::loadXML() in C:\xampp\htdocs\wiki\includes\Preprocessor_DOM.php on line 568

I Googled "MediaWiki Xampp domdocument" which leads me to a forum posting on apachefriends .org telling me to comment out extension=php_domxml.dll in my php.ini. I do only to recieve yet another error. ugh. more on this saga to come.

Friday, July 18, 2008

What I got out of the uPenn Web Symposium

This week I had the opportunity to attend the uPenn Higher Education Web Symposium.While the this conference was focused on IT Professionals working in Higher Education, there were world renowned experts in the fields of usability, user centered d3sign, CSS, AJAX and many others making it was extremely relevant to my work.

I attended a Full Day Workshop on Web Form Design best Practices by the esteemed Luke Wroblewski who currently works as a Principal Designer and Product Manager for Yahoo!.He also runs a design consultancy, LukeW, and a publication, Functioning Form.

Here are some web form best practices:
  • Put Labels above fields for increased readability and accessibility to screen readers and other languages
  • Don’t include non-required fields when possible.
  • If most fields are required provodie
  • If you are going to provide in-line validation, wait until the user has moved to the next field to validate
  • Make it conversational
  • “Keep, Cut, Postpone, or Explain.”
  • Less is more

These were culled from live to site analytics, usability testing, eye-tracking studies, and best practice surveys.

Thursday, July 3, 2008

Purchase Order System

In addition to my busy schedule of extra curriculars like Philly Ignite and Junto I have been busy at work with internal applications.

One such application is a Purchase Order System which allows for the generation of Purchase Order Documents in PDF. The system automatically notifies purchasing and accounts payable when a new PO is generated and when an existing PO is updated. It also includes search functionality to review existing POs. I used jQuery to do row striping and and highlighting. Here are a couple Screen Shots:

Wednesday, April 30, 2008

Philly PHPMeeup Presentation: TDD

Last night, I had the pleasure of attending a presentation about Test Driven Development (TDD), co-hosted by the The Philadelphia Area PHP Meetup Group and the Drexel Math and Computer Science Society.

The first presenter was Raymond Bokenkamp, Senior Programmer Analyst with the University of Pennsylvania School of Medicine. He gave a high level overview of TDD and the philosophy behind it which goes like this: programmers have to much to do and not enough time to do it (Stress). This leads programmers to not test as much they should or sometimes not at all. This leads to errors which leads to more stress.

As the name implies TDD lets the tests drive the development. This means that after an initial application concept, developers move immediately to listing possible tests for this applications. Tests are then programmed and run. Only then is code written to fulfill these tests. Once the test's are run, the code is re-factored appropriately and test are rerun until an error free program is produced.

Once again, the TDD work flow is as follows:
  1. List Tests
  2. Create tests
  3. Make tests work
  4. Re-factor
The key here is to write test which account for as many if not all possible use cases. This is a skill in and of itself which takes time to develop but is well worth the effort for the confidence, peace of mind, and of course low error code it produces.

The second presenter was Owen Winkler with Rock River Star, a Philadelphia-area web development shop specializing in PHP and Drupal development. Owen provided insight an into testing in general and a real world example of TDD utilizing SimpleTest, a popular PHP testing framework.

The presentations were very informative and reaffirmed my emphasis on thorough testing.

Tuesday, April 22, 2008

Working with DTS

I have been doing quite a bit of work with DTS, short for Data Transformation Services, a feature of M$ SQL, which facilitates getting data in and out of the db, among other things. One of the best features of DTS is the ability to set packages to run at regularly scheduled intervals. For instance, every night a csv file gets dropped in a networked folder. My package then ingests that file into our db for later use.

The easiest way to get started with DTS is to use the Data Transformation Services Import/Export Wizard and then save the package for later modification and use. This wizard is accessible by right clicking on a table and selecting from All Tasks Import or Export Data. I have found csv files to be much easier to work with than excel files.

A very useful DTS package i put together runs a query to pull the accounts that were added last the day before, dumps the data into a csv, emails the csv as an attachment and finally runs a query to update the records to show that they have been emailed.

Monday, March 3, 2008

Commas in Ext Currency Format

I'm using the fabulous Ext Javascript library through ColdFusion 8. It outputs a beautiful, full-featured grid complete with sorting and re-ordering of columns.

It has a US currency formatter called the usMoney Format Renderer but it lacks the all-too-useful comma separator when dealing with numbers greater than 999. Ext, did you think we were only small-time?

So i swapped out the current usmoney function in the util.js with this one. The math seems to work out but if you catch anything let me know.

Monday, February 11, 2008

Web Site Monitoring Service Business Case and Comparison

We currently have a need for external web site/application uptime and availability monitoring. In Order for a web application to effectively support business and client needs it must be available to its users. If it becomes unavailable the systems’ administrators must be notified promptly so that they can take appropriate actions. In addition, we have a responsibility to our customers and associates to ensure that the Service Level Agreements pertaining to availability provided by 3rd party vendors are being upheld.

This can be accomplished through the use of a Web Site Monitoring Service (webmonitor). Webmonitors test the availability of web sites from locations around the world at set intervals. Webmonitors can also perform transactions such as logins to help ensure that services are up and running as expected. If a web site becomes unavailable administrators can be notified by email or cell-phone via SMS. Webmonitors can also accumulate statistics for further analysis.

There are many webmoniter providers to choose from.

The "Best Buy" of the group has to be host-tracker, which has the most test nodes but is more bare bones in terms of functionality and reporting.

Next we have AlertBot, which has great support and is very easy to use but also lacks some of the more advanced test scripting and reporting features. What they lack in features they make up for in price and service.

AlertSite is the first that I would consider to be enterprise quality. They offer robust reporting I would feel comfortable handing off to upper management. The most interesting feature however, is a firefox extension called DejaClick, that records and then uploads and replays your actions at given intervals. This is a really great feature that allows you to do tests that you just can't with some of the competitors. Unfortunately, it does still have some bugs and is best used only in the hands of the advanced user.

Last but not least is WebMetrics which offers the most attractive and usable interface by far. The reporting is extremely robust and includes output to pdf. They also develop and maintain test scripts on behalf of clients at no charge. In addition, they offer other enterprise services like load balancing and RIA monitoring.

I'm in the process of getting proposals from these companies and will put together a comparison matrix including pricing when i get them.