Our articles are separated by topic. We have listed 6 topic sections. Others are available through the search engine.
Quick-Jump to Sections:
- Software Consultancy - Helping you build better software. We focus on speed, usability, and ease of maintenance.
- Our Software Products and Articles. We share what we learned, to make your learning curve less steep.
- Failure Notes - UI and UX Horrors. A hall of shame for damaging mistakes in webdesign and other UI/UX problems.
- Publizjr - Creates Web Pages. A PHP and file-based templating system. Open Source. Free.
- Musician and Conductor for Hire, Music Instruction and Compositions. Pricing and plans, samples and articles. Some free compositions available for download.
Helping you build better software.
Software Consultancy - Helping you build better software.
A.E.Veltstra's Résumé and (Web) Software Development Portfolio - Where I worked, for whom, and what jobs I performed.
Usability Consultancy - Helping you discover what makes your users tick.
Full-Stack Speed Improvements - Helping you optimise your web sites, web apps, games, databases, and integrated software solutions from front to back.
Project Management Portfolio - Who knows how to determine and adjust scope, estimate budgets, prioritise and assign work break-downs, who can deal with off-shore development teams? Who can follow your entire project through to completion, and then sets up aftercare? Me.
Testimonials - Praise from people that liked my services.
Our Software Products and Articles
We enjoy developing software, professionally as well as privately. Here we share what we learned and built for public use.
Software Portfolio - Projects by A.E.Veltstra.
Programming Knowledge Base - What we have learned privately over the years.
How to make Opera Mini show an Italic Font Face - Opera Mini can do straights, italics, bolds, and multiple fonts on the same page. Here is the CSS that web designers can use.
How to use Sound Sprites to Speed Up your HTML5 Web Games - Like image sprites, sound sprites collect several distinct sounds into a single file, which reduces network lag while downloading.
Process Flow Patterns (Data Flow, Interaction Flow, and User Experience Journeys) - How to recognise common patterns and set up new ones. Process flow defines what steps a user (or data) and software take to achieve a goal.
Image 404-documents in .htaccess speeds up websites - Speed up your website by providing a simple error response for images, video, audio, etc. This article looks at how to do so in htaccess.
Needs of programmers who work remotely - Requirements for software developers who work remotely to maintain a Sitecore-driven web site
IA Use Case - Setting out to code a Tic-tac-toe - An insight into the mind of one application developer
4 Tips to make effective slide shows - Booooring... people falling asleep, not paying attention, playing with their phones... Fix it! Here's 4 tips.
Why I am a Full-Stack Developer - Why a UI/UX designer would also be interested in middleware software development and back-office software integration.
Trezjr - an HTML5-version of the most popular video game ever.
Bigger screens and web browser memory - The size of a computer monitor and that of the windows it displays, affects a webbrowser's memory consumption. Research and conclusions.
Complexity Redux - or why I choose to code my software by hand - The way to battle bugs effectively, is to reduce the system complexity, and to train your programmers. If necessary, throw it out and start over. Be relentless.
Cross-Browser Client-Side Storage of User Data - In the old days, we used cookies. Then along came MS Internet Explorer 5, introducing the userData behavior. Now we have HTML5 with localStorage. Why should we use it? Why shouldn't we use it? And can it be used across browsers?
CSS 3 Media Queries - CSS 3 Media Queries can adjust CSS settings. For instance, one can make sections narrower or wider, or choose to hide them, depending on the window width and device type.
1/0 = Infinity - Normally, when dividing any number by 0 (zero), computer applications throw an error. After all, multiplying any number with 0 returns 0, thus the opposite does not compute.
Google Chrome Beta - Reviewed - Google Chrome is a new webbrowser built upon the same html rendering engine as Apple's Safari, namely WebKit. We reviewed its first public beta release. Here are our findings.
HTML5-Rendering by unsupporting browsers - Microsoft's flagship browser and Firefox 2 don't necessarily fail at HTML5... they simply fail at handling unrecognised doctypes altogether. How and why.
GTMetrix and JSPerf: avoid AddThis and GCSE for fast web pages - Implement your own Social Media buttons, and have Google CSE show its search results on a new page, to speed up the load times of your webpage.
Opera 11 Reviewed: Mostly Harmless - If your vision is good, and you wish to escape the clutches of The Man and Fanboys, and are looking for a complete one-stop communication center, Opera is the way to go.
Printing HTML5 canvas images with variable background colours - When the image you wish to print can be given different background colours, draw them using Canvas drawing techniques. Cause and solution for that and related problems.
CSS 2.0: ridiculously simple syndication - Adding RSS 2.0 to your web site is so bloody easy no web site should do without a news feed. A list of sources.
When Browser Feature Detection Fails - Feature detection determines what a browser can do. Why did MSIE 8 fail to fail the detection of the HTML5 canvas element?
Emotional Lead Magnets - Social Media Marketing using psychology to increase participation
Information Architecture - Our section on practices that work in IA, a service we've been providing professionally since 1998.
Preparation - The Process of Information Architecture, #1 - Avoid common pitfalls during product design and creation - learn from our own experience.
One example of applying IA: developing our own Publizjr. - An example for information architecture and functional design, based on our own PPS (Page Publication System), Publizjr.
Content Strategy - The IA Process #2 - Content Strategy combines what project stakeholders want to publish with what the public wants to know, and figures out the best way to present it. Read how.
Functional Design Patterns: Why? - Your software house needs a library of patterns too. Here's why.
Programming and Coding Guidelines - Focusing on Readable Formating, with practical application hints and explanations.
CSS Coding Guidelines - How to format CSS to make it easy to read and maintain
XSLT Coding Guidelines - How to format XSLT to make it easy to read and maintain
About Me - Who wrote these guidelines and what made him an expert?
7 Reasons to use ΩJr's Facet Engine - We use it. Should you? Decide for yourself.
How the European Privacy Law Sped Up my Web Pages - This "cookie" law was passed in May 2011. In preparation, we took some drastic measures. As a bonus, our web pages became a lot faster. Here's how.
Publizjr - Creating Webpages like ΩJr does.
Info on Bar Pull, 3D Maze Game - How to play, some technical details, and feedback options.
Bar Pull, 3D Maze Game - An example of the current status of 3D CSS styling of web pages, this game lets you move a ball through bars which can be pulled up to free more openings. Beware of gravity! Try and reach the golden cube. Webkit browsers like Google Chrome and Safari preferred at this moment.
Programming Algorithms - Examples of Programming Algorithms used by and for the ΩJr.Net.
Zjramble5 Deities - a Flash-Free version of Zynga Scramble, like Boggle, connected to Facebook.
Zjramble5 Deity Names - a Flash-Free word search game, like Boggle and Scramble, connected to Facebook.
Zjramble5 Web Mark-up - a Flash-Free word search game, like Boggle and Scramble, connected to Facebook, its dictionary filled with web mark-up terms.
Zjramble5 Music - a Flash-Free word search game, like Boggle and Scramble, connected to Facebook, its dictionary filled with music terms.
Zjramble5 Muziek - een Flash-vrij woordzoekspel, zoals Boggle en Scramble, verbonden met Facebook, met Nederlandse muziektermen.
Document.write() problematic with application/xhtml+xml - Why replacing document.write() with node.appendChild() is a good idea
Detecting the language preferred by your visitors - Why to use html_accept_language to detect which language your visitors language prefer
YASS (Yet Another Sudoku Solver) - Simulating the human thought process by programming Yet Another Sudoku Solver
Mysql_paramquery() - Allowing for unlimited numbers of parameters in safe MySQL statements in PHP
Scrolled paging - Scrolled paging, simple method. To prevent loading too much data into a web page, we split up the data into smaller sets called pages. This article provides one way of stepping through those pages.
Circular Navigation - Breaking free from those pesky rectangles and showing your navigation in a circle. No plug-ins, no images required.
Test case: Pure HTML Image repeats on cells - Using old-style html (without CSS) to have an image repeated along the height of a table cell
Test case: HTML Objects and Fallbacks - What is needed to show HTML objects in various browsers, test case to show what your current browser can and cannot.
VB.Net: Enumerating enumerations - How to list names and numbers for built-in and custom enumerations
VB.Net: Dynamic calls to COM Dlls - How to execute unmanaged methods inside non-Net COM Dlls from within VB.Net, using as much managed code as possible, in run-time when the Dll itself is unknown.
Portfolio - Overview of the web sites and applications we created and helped create.
Build your own Post-It Notes - Ever wanted to create your own Post-It notes with your own texts, but did not know where or how? Try this!
SVG Boxes - Variations as an antidote to all the rounded corners
Game: Sumbrero 7 Puzzle Solver - Helps solving Sumbrero 7 Puzzles. Tests whether your solution adds up.
Game: Sumbrero 6 x 3 Puzzle Solver - Helps solving Sumbrero 6 by 3 Puzzles. Tests whether your solution adds up.
Sumbrero Puzzle Solver Examples - Examples for the mathematical puzzles known as Sumbrero 7 and Sumbrero 6x3.
MSSQLServer: sql procedure to shrink all logfiles - Microsoft SQL Server: shrink those log files well with this stored procedure
Opera 9 mysteries - Opera 9 baffles some of us continuously. Some of the mysteries are outlined in this article.
Game: Surakarta - The Indonesian game of Surakarta is much like Chess with Pawns only. We present a Flash Game Board, a description, and an on-line game board to play the game yourself.
Network Username in MS Access VBA - Use this code to retrieve the identification of the MSAccess user logged into the network.
Decimal Separators in VB - Use this custom function to detect the client's system language, to prevent errors caused by translated decimal separators.
Test case: Padded iFrame Bug in Opera 7.x - A padded iFrame element incorrectly overlaps other parts of its container, in the Opera 7 browser.
CSS: Clipping regions - Now known as CSS Sprites: why clipping regions have drawbacks and how to overcome them using moving view-ports. In 2004, when I wrote that article, I only knew the term "sprite" from antique games and a soft drink.
GUI: Landscape theme - Simulating a 3-dimensional space in a web page, cross-browser, advanced CSS.
Pure CSS: Fly-out hierarchical menus for Web Pages - One method for creating pop-up menus meant for dynamic menu generating systems, using CSS only
Bug case: Opera Mac 6.03 front/back layering bug - The Opera browser for MacOS, version 6.03, had a rendering bug which showed itself when absolutely positioned elements and statically positioned elements were used on the same page.
Bug case: Table Rendering Bug - Most browsers have a rendering bug maming the width of table columns in case a width is set for a spanned column.
Image map on a background image - Proof of concept showing that it is possible to use a background image as an image map. This version uses pure css.
Image map on a background image - Proof of concept showing that it is possible to use a background image as an image map. This version uses a table.
Field data type in MS Access? - Automated recognition of the data type of a table field in MS Access
Scrolling web pages is useful - Why scrolling is useful, though many deem it a curse.
Pure CSS: Glass button - One method for imitating the Apple Glass Button design in a web page.
MS Access 97: Split and Join - The VBA behind MSAcc97 lacks some implementations that ease the life of a programmer. Two of these are Split and Join, which can be found in later versions. Here is a way to build them yourself.
GUI: Spatial Interface - (In Dutch.) Ever thought of making your web site look like a library? Here is one way of achieving just that. Usability experts loathe it!
MS Access / ASP: Dates - If you find yourself wrestling with the display and storage of dates in varying notational formats, forget about the date and only work with the double used by MS Access to store it.
MS Access 2000: binding a parameter query to a form - How to make Access remember which parameters you bound to a query in a form. It is not as easy as it may seem!
Ten commandments for computer software - Etiquette for how a well-behaved application should work.
The internet discriminates - (in Dutch) How automated code generators (Programming and Design Environments) lead to lazy developers and subsequently to the discrimation of improved methods and applications.
ASP: retrieving records from a database - How to retrieve a list of records from a database (in this case MS Access), have a web visitor choose from that list and show the selected record on the same web page.
Failure Notes - UI Horrors and UX Horrors
Hall of Shame for misbehaving applications, products, services, and their management. Showcase of damaging mistakes in web design, user interfaces, user experience, and usability.
All Failure Notes - Notes: multi-lingual overview of our articles
About the Author - Who is A.E.Veltstra and what makes him an authority?
Biggest Web Design Mistakes of 2014 - Based on daily usability problems and feedback from our fans.
LiveJournal E-mail Validation Requires Log-In - And it really should not. The link from a validation email should validate immediately, without requiring the additional action of a log-on.
Tweet Opens Twitter Card Under Finger - Potentially causing a crash of not only the Twitter Client, but also the Mobile Device.
Media Query Cut-Off Fails at ETS.org - Unfortunate CSS decisions forcing visitors to put in more effort to achieve simple tasks.
Review of and advice for the current and new web site design for TLC Ministries - 20 Years of building websites and a keen sense of usability allow us to improve the content quality and structure of most websites.
DigiD Log-in Troubles for Werk.NL - They force you to log in daily, and then make it impossible to log in, though device discrimination is banned by law.
Opera 10.61 Still Hates the Blind - 33% Of all men suffer colour blindness. Opera SA does nothing to alleviate their problems.
Windows Mobile 6 Lacks Unicode Support by Default - Because all languages in the world can be represented by US-ASCII?
Use My Browser - or go visit a different web site
Impossible to Edit Personal Profile using iPad on Google Plus - Conversion Failure and Device Bias at Google Plus leads to Profit Loss
No Birthday Card at Tele2.nl for iPad - Conversion Failure at Tele2.nl leads to Profit Loss
No Birthday Card without Flash at Bol.Com - Conversion Failure at Bol.com leads to Profit Loss
No Service via Essent's Service E-mail - Why bother sending an e-mail at all?
Category: Dead End, but we won't tell you - When the digital super highway suddenly comes to a full stop.
No photo upload at the MyOpera blog when using iPad - Ever heard of cross-load from a URL?
Gamma.com invisible advertisement brochure - Surely the brochure is unimportant on the dedicated brochure page...
Asus.com Non-Existent Product and Contact Info - What else are they hiding?
Sixty Symbols fails at navigation and movies - Education that fails to teach
Note-X Invisible Laptop Stand - This highway only open to Yugos
BabyPark Web Shop closed for Sundays - We do not work on Sundays, thus you do not get to spend your money
WAP Version of Nu.nl offers less articles - Limited functionality leads to profit loss
Register to download MS Windows 7 RC - To download MS Windows 7, MS wants us to register... but their registration center looks empty
The Actie.DeTelefoonGids.NL sub domain - A sub domain that looks nothing like its primary domain
Category: Your Money Isn't Good Enough - When web sites lose profit
Category: Plug-ins Required, but we won't tell you - When web sites fail to inform
Preferences for English translations - How you can read the articles in English
Voorkeuren voor Nederlandse vertalingen - Hoe je de artikelen kunt lezen in het Nederlands
Quick Start - Getting up to speed with zjrJS.
Task-Based Reference - For when you need to know which method to use for the task at hand.
API - Alphabetical method listing plus summaries.
Selling Points - What zjrJS can do for you.
About Me, zjrJS, and its documentation.
Atomic zjrJS - Minimize library size by omitting what you don't need.
MSIE Version Sniffing - A Best Practice to figure out whether a visitor is using Microsoft's attempt at a web browser, and if so, which one.
Retrieving Data - A Best Practice to load external data without AJAX.
2-Step Event Registration - A Best Practice to register your events... and dispose of them when done.
zjrJS.Debug.alert() - Each public zjrJS method has its own explanation, example, and use case. This is the starting point.
Test Case for Debug.alert(), Stable Channel - Each public zjrJS method has its own test case. This is the starting point using the latest stable version of zjrJS.
Test Case for Debug.alert(), Beta Channel - Each public zjrJS method has its own test case. This is the starting point using the latest beta version of zjrJS.
Publizjr - Creates Webpages
This PPS (Page Publication System) is what we use for most pages in our site. PHP and file-based, it allows for easy access and updating, atomicity, and speed.
Publizjr Quickstart - Get up to speed on the workings and expectations of this PHP-based webpage generator. This article is aimed at content authors.
Using BBCodes in Publizjr - Instruction for Content Editors.
Installing Publizjr - Instructions for Webmasters.
Download Publizjr - Release Notes and Source Archives.
Publizjr User License - How you may use Publizjr.
Publizjr Warranty and Disclaimer - What we do and don't promise.
Adding Audio to Publizjr - One proven method to include audio files in your web page.
Adding Extensibility to Publizjr - For dedicated functionality per web page.
Adding Translations to Publizjr - For language-awareness and global code snippets.
Adding Multi-Language Awareness - Because your site has international visitors and you wish to serve them with content in their own language.
Integrating Social Sharing via AddThis into Publizjr - For those webmasters that want other options than the built-in static social sharing buttons.
Integrating Visitor Statistics via Google Analytics into Publizjr - In case you like to keep track of your audience.
Integrating Page Comments via Disqus into Publizjr - Because you do not want to build a commenting functionality yourself.
Integrating JotForm Webforms into Publizjr - How to include webforms in your Publizjr Generator Templates by using the JotForm webforms service.
Twitter Card Support by Publizjr 2 - Choose how Twitter displays links to your web pages with built-in support for Twitter Cards in Publizjr, the web page publication system version 2.
Publizjr 2 Progress Report - Follow our efforts to make Publizjr easier to maintain and implement (for coders).
Publizjr Software Change Log - See a listing of every single change made to the Publizjr software since release 2.
Publizjr 2 API Doc - Read what functionality Publizjr 2 offers, and how to use it when programming or configuring Publizjr 2 Generator Templates.
Music by A.E.Veltstra: Education, Compositions, and Instrumentalist for Hire
Should you hire teacher, musician, director, and composer A.E.Veltstra? Find out.
Hoppin Thru Da Forest - A short children's song thought up by my daughter Imbri when she was 5.
ABC, the Alphabet Song - Original Jazz variation on the song used by millions of children to learn their alphabet.
Brand in Mokum - Original Jazz Tune deploring the burning of the town of Mokum
Calypso, Sheet Music, Free Download - The mesmerising John Denver original, arranged by A.E.Veltstra for brass trio and drums.
Merry Met! Original Concert March - Written to thank the Servatius Woodwind Band for 15 years of music and friendship.
Day of Heroes - (Dag der Helden). Original 3-voice theme to remember our heroes and veterans. Free to download, use, and distribute.
Rock Mi Hait Noch - Arr. of the German folk music by VoXXclub
Mother Earth - Arr. of the goth rock song by Within Temptation
Moeder de Gans Liedjes - Mother Goose Songs: old rhymes to new music.
Melodietjes voor Kinderliedjes - New Melodies for Children's Songs
Kus! Lipzetting voor koperblazers - Kiss! Lip Placement Instructions for Brass Players
Embouchure - realiteit versus mythe - A Myth Explored
Maak er muziek van - en hoe dan? Turn it into Music - a How-To
Mr. Scott Joplin's Ragtime Rag! - Dutch tranliteration
Maol Chinn Tire - Arr. of Mull of Kintyre by McCartney and Laine
Calypso March - Arr. of Calypso by John Denver.
Jeanne d'Arc - Arr. of Maid of Orleans by O.M.D.
Veeg je tranen weg! - Arr. of Sunday, Bloody Sunday by U2.
Hallo, die Laila - Easy listening by the Plain White T's, arranged for small pop group. (4.9MB, 3:28min)
Zij stond daar - Goth rock, for small pop group (3.5MB, 2:25min).
n Beetje Vreemd - Mad World, Donnie Darko version, arranged for small student band (4.1MB, 2:58min).
Hongaarse Dans #5 - Classic by Brahms, arranged for small student band (1.9MB, 2:02min).
Emotional Pendulum - Brass Band Setting (4.7MB, 3:26min, original).
Stille Nacht Traditional - Silent Night, Traditional, 1MB, 1:50min, arr. for 3-voice trio
Feliz, Stille Nacht - Combining Silent Night with Feliz Navidad (2MB, 2:41min), arr. for small student band.
Carol of the Gentlemen - Christmas, small student brass band with melodic percussion (1.4MB, 1:29min.).
Deck the Hall - Christmas, small student brass band with melodic percussion (1MB, 1:52min.).
Dierendag - Uncategorised (1MB, 1:20min.).
Sleepy Lion - Swing, arranged for student brass band (3.5MB, 2:20min.).
Bronsgroen Eikenhout - Traditional / Classical, arranged for student brass band (1MB, 1:20min.).
Flora Dance - Traditional / Big band style, arranged for woodwind band (1.1MB, 1:10min.).
The Wheel Keeps Turning - Pagan Rock (3.7MB, 3:06min.).
Sheet music available upon request.