Aspaas Sykler is a bicycle sales & repair company in Larvik, Norway. During development I focused mainly on accessibility and usability, to be able to reach as many customers as possible, and then on flexibility in the content and design. The result:
After developing a few shell scripts for personal use, I’ve started to make them more generic and to publish them as they are built on my blog. Currently the following functionality is provided:
By deploying this package on a SharePoint server, a site administrator can apply the CERN specific settings. This includes changing some site properties and enabling a feature staple feature, which is a "meta-feature" to enable other features.
As responsible for reference data on several schemas on three databases, it’s useful for me to get quick reports about the status of environments. To this end, I’ve created scripts to do the following:
SELECT 1 FROM synonym WHERE ROWNUM = 1 on all synonyms to check that they are pointing to accessible objects. Returns user name, database, synonym name, error number, and error text for each error.All of the scripts are robust (checking that the correct input parameters and files are available before processing, reporting any SQL or SQL*Plus errors), fast (minimized complexity and amount of SQL*Plus executions), unintrusive (they don’t change the target environments, and don’t require extra grants), suitable for pipelining, and properly documented.
Some auxiliary scripts:
*No functional changes were done by the other developers.
One of the limitations of the MTF web interface was that objects could only be edited individually. Using the existing search facilities as an entry point, the MTF List Interface enables users to edit attributes or add documents to any or all objects. The programming included changing the existing editing functions to handle multiple objects, adding some new editing functions, adding a filtering feature after the search page, and creating the web interface.
For several years, Microsoft Excel templates have been used to import MTF data. This has been time consuming, mainly because typing errors are only detected on import, and the file will then have to be returned the user, corrected, and re–submitted. Data could also be imported via the web interface, one object at a time.
For the installation phase of the LHC project, there would be no Internet connection (making import using the web interface impossible), and the data sent at the end of the work day would have to be imported by the next morning (making the use of Excel templates increase the risk of work delay). To ameliorate this, I proposed using an XForms based client–side system where users would be notified if they attempted to enter invalid data. The resulting system is now used by external contracters at CERN working in the LHC tunnel, and has improved the quality of the submitted data.
Major features include:
The installation package includes:
*User statistics are not created, but last week (February 6–12, 2006) 21 requests were sent.
CERN has long had a web interface, EDH, where transport of physical objects can be requested. Some of the requests are created often, are triggered by known processes, follow specified rules for their contents, and are necessary for insurance matters up to 1 million Swiss francs (about $760,000). I did most of the programming of a system to automate this process, which has now been extended several times to handle other transport types. The development was done in collaboration with IT department personnel working on EDH.
Points 2 through 5 of the process which follows is handled by my code:
The original LHC Installation Dashboard in MTF shows individual functional positions (‘slots’), and the status of the work (‘jobs’) on each slot which have to be done to finish the installation. The resolution is on the individual jobs, and the information is shown in a table. Later, an interface was needed to show the aggregated status of slot installation for the whole LHC. Since the LHC tunnel runs in a circle, it would be appropriate to display information for the whole tunnel as a ring. I suggested using SVG for this, and developed a system which would generate a line for each of the slots, and then rotate them into place according to their position. The cryogenic distribution line (QRL) and magnet slots are separate, and are therefore displayed in two rings.
By introducing CSS and semantic markup as an alternative to table layouts and presentational markup, I have reduced the size and load time of all the MTF web pages. Measurable improvements include:
*Measured in bytes
†Measured in lines of code
Other improvements:
del.icio.us is an online bookmarking service which uses tags to order the bookmarks for later retrieval by filtering using the “AND” and “NOT” operators. After using this service for about a month, I found the filtering facilities on the site lacking, since no “OR” operator was available, and the “NOT” operator was not very practical.
Since all bookmarks could easily be downloaded using the API functions, I wrote a web interface where I could synchronize the bookmarks locally and filter them using the “AND”, “OR”, “XOR”, and “NOT” operators. Later, I expanded the functionality so that any del.icio.us user could use it, and so that the URL, description, or notes fields could also be used for filtering.
*Previous versions were made by other employees in earlier years.
Infoarket is a two page pamphlet with instructions for how to get a user name and password for the NTNU computer systems, and with an ad for a student PC offer on the verso page. It is distributed to new students by the faculties.
*Previous versions were made by other employees in earlier years.
The Computer Guide, “Dataguiden” in Norwegian, is an information leaflet with miscellaneous tips for students and faculty at NTNU, regarding the use of the computing facilities. The Computer Guide is maintained and distributed by NTNU’s central helpdesk, Orakeltjenesten. My changes included making the flow around images automatic, so it did not have to be controlled by adding whitespace manually, and updating the content.