Project List
This is a short form list of the many projects I've delved into over the years. It is not entirely chronological, and I am working on a better presentation of each project (though some of the projects have a slightly higher priority, than the presentation of them).
Some of these projects require access to the database stored on a computer I presently do not have regular access to, thus screenshots are "pending" for many of these. For this I apologize, but it will be corrected at a later date. There's no peticular chronological order in this list, though for the most part it goes from the ones I started last, to those I've started first. But it is not entirely accurate in that aspect, though I believe it is fairly complete.

Blogster
Project: Blogging application
Application type: Web application
Development stage: design
Languages used: PHP, SQL (MySQL), HTML, CSS

Description:
Sometime during 2006-2007 I started looking into the growing industry of blog sites. Though they varied (and still do) greatly in usability and practicality, it gave me some ideas for how I could possibly make my own blog application for my website. That was also around the time I started working on Wikipedia, and I found that a derivative of the fairly simply formatting language the MediaWiki software uses, would make it possible to make my blog application, including several formatting options that I wanted to include in the design. Studying the MediaWiki also taught me some CSS methods that I didn't know existed.

Note that this is not intended to be something like blogger, but merely a simply blogging application for my own use.


Bookmark storage database
Project: Internet bookmark storage system
Application type: Web-application
Development stage: Alpha
Languages used: PHP, HTML, SQL (MySQL), CSS

Description:
After loosing my bookmarks when Firefox corrupted the bookmark file after an upgrade, I decided to make a way to store these bookmarks elsewhere. Using a combination of the category tree from MB Shop, and the categorization system from Weblinks 5, I came up with a simple system that allows storing Internet bookmarks pretty much the same way the browsers do. Using an unlimited amount of subfolder levels, bookmarks can be easily organized in whatever way one feels comfortable using.
Not yet implemented is a way to move parts of branches from one location to another within the tree, or make a subfolder a new branch of the root.

This application is in its current design not intended for online use.

Features:
  • Fully user-designable folder tree-structure for indexing
  • Allows bookmarking any form of URL, although system defaults to http protocol
  • Bookmarks and folders easily relocatable within the folder tree
  • Maintains counts on number of times a bookmark has been clicked, and when it was last clicked
  • Displays the 10 most clicked, and the 10 last clicked, for easy access to most popular bookmarks
  • 100% server-side design allows multiple users to use the same bookmark database to easily share bookmarks

SAIMS (Sales and Inventory Management System) (formerly known as MB Shop)
Project: Shop catalog/shopping cart system. Inventory management.
Application type: Web-application
Development stage: Code design
Languages used: PHP, HTML, SQL (MySQL)

Description:
I started doing this pretty much just to figure out how to do it ... As I don't really have any need for any shop functionality at the moment, it's not a project I'm putting a lot of effort into. Only code that's made to work sofar is a test-version of the category system.

During the work on the shopping cart, I also started designing an inventory management system. This was when we were doing inventory at work, and my wife and I were talking about making our own business online. It never got past the "talking about it" stage, and as I therefor didn't have a need for anything in this project, it got put aside until such time I would need it.

Planned features:
  • Possible multi-categorization of shop items
  • Hierarchical category tree with automatic showing of sub-categories for active categories only
  • Multiple view-options of shop items
  • Instant feedback shopping cart
  • Userdata/session persistence
  • Option for multiple shopping carts per customer, allows customers to split up orders over multiple days if they like
  • Detail pages for all shop items

The Weblinks Project v5
Project: Internet link directory
Application type: Web-application
Development stage: testing technologies
Languages used: PHP, HTML, SQL (MySQL), CSS

Description:
The Weblinks Project ver. 5 is a database-driven, userbased version of the original Weblinks Project, that I designed and maintained from 1997 to 2001 (see below for version history). Taking what I've learned about PHP and databases, this version will, when finished, probably be the most complex project I have yet undertaken. Though I started working on this in the end of 2003, what I want to do with this project is so substantial that I've had to investigate methods of achieving the functionality and easy of use that I demand, without compromising on security and the complexity of the whole thing. Basically this project has taken me into dark territory, where I unfortunaly got stuck as MLE (Major Life Events) forced me to take some time off my programming projects.

The concept is to provide a link repository, rather than a search engine that often will require persuasion to cough up the right information. TWP is not intended to replace search engines, rather it is more like a phone book; a categorized index of the most popular and relevant websites for different, albeit very specific, subjects. The goal with version 5 is to contain all the links in a database, rather than the HTML flat files like the old versions, and allow for user submission of new links, right on the site. It will also allow users to rate the various links, and maintain a personal list of the most favorite links. Also included in the project is a statistical system that provides an optional generated list of the most popular links in the database.

Version history:
  • Ver. 1, 1997: It started with a Word document, where I wrote down link mentionings in magazines. At some point it'd grown so big I got the idea that it should be put online. I knew nothing about how websites were made then, or anything about how the Internet worked. Using Microsoft Publisher, I turned the Word document into an index with categories, with several sub-pages, and the whole thing was saved in crude HTML. I mentioned its existence on ACCMAIL, and got a few requests for a copy. At this point, I still did not have Internet access of my own, and thus this was all done through company email.
  • Ver. 2, June 1998: Studying the code from ver. 1, and a copy of "HTML for Dummies", taught me basic HTML. In order to easily update the files, I removed all the Publisher generated code, and started rewriting most the HTML in the project, by hand, using Notepad and some other obscure editors I don't recall the name of. That's when I longed for a better way to do it, and came across Sausage Software's HotDog. That program came as a blessing, and with a large amount of additional links added to the weblinks project, it now had reverse links to the index, colours, and navigation links between categories (these would later prove to be a pita when adding new categories). The new version was announced on ACCMAIL as well, and I got a few hundred requests for it. That's when I decided I had to put it on a website, as mailing it to so many people by hand became time consuming. Thus my website was born, and the whole weblinks project was put available as a Zip file.
  • Ver. 2.10, June 1998: 2.10 was essentially just an online version of the same thing. It was created, literally, a week after 2.0. Some adjustments had to made to the pages to make them work online - I did those so I would be able to reuse the files for the offline version, and additional links were added. 2.10 also saw the use of gif files to indicate new links added since the last version, and which had been updated.
  • Ver. 2.2, August 1998: A couple more categories, and several user suggested links, and removal of some dead links, was all that went into 2.2. It was however enough to get it noticed and the offline version of 2.2 was downloaded approx. 2000 times.
  • Ver. 3.0, November 1998: I continued working on ways to make improvements, and the result was 3.0. Using HTML forms to make dropdown menus of the category index, and JavaScript to make them work for navigation, 3.0 was a big improvement in terms of ease of use. With version 2-2.2, I used a lot graphics (company logos in form of buttons, banners, etc) with the links. This made the offline version almost 600 KB, which back then was still a pretty decent size considering it was basically just a bunch of text files. With 3.0, all these graphics were removed. This brought the whole thing down to 110 KB. 3.0 also saw the optional addition of an "adult links" collection that could be added on to the offline version. These links were never included with the online version. I never got many requests for these though, so it was never updated. 3.0 was downloaded a total of almost 4500 times. This was also the last version to be made available as an offline version. This offline version got included on the cover CD of the Danish magazine Alt om Data, and was thus distributed to the magazine's 190,000 monthly readers.
  • Ver. 3.01, September 1999: After almost a year underways, 3.01 meant almost a doubling of the links included, and several new categories. Other than that, not much else changed, except an offline version of this revision was never made.
  • Ver. 4, January 2001 (unfinished): Not much got done to the weblinks project since 3.01. I started working on other things, and learned a few things about CSS in the process. Around the end of 2000 I came up with the idea of making a revised version of the weblinks project, for the 21st century. This meant updating the design using CSS, changing the overall look for a more professional appearance, and several other changes I never got around to. As the whole thing was still merely a set of HTML files, updating it was very time consuming and annoying. The dropdown quickjump feature had to be updated on every single page, every time I added, removed, or renamed a category. At this point I was in school, and the methods required to updating the whole project meant I didn't have time to actually do it. In the summer of 2001 I moved my website from GeoCities to my ISP provider, and the weblinks project didn't come along.

Family tree
Project type: Genealogical Database
Application type: web-based database application
Development stage: running application
Language used: PHP, HTML, SQL (MySQL), CSS

Description:
After losing a few close relatives, my sister and I grew an interest for preserving our family history (properly called geneaology). A method was required to properly store this data, and we tried out a couple different software programs, as well as maintained each our lists of the same data. When I moved to Canada in 2004, I felt the need to be able to make a version of our genealogy database that allowed us to share information, while she was still in Denmark.

The result became my family tree application. At this point in time, 2004-2005, this type of application was fairly easy for me to make, and the fully functional program was put online at the end of 2005. A few modifications, bugfixes, and optimizations had to be made as the database grew to contain over 400 persons. Due to privacy concerns, I implemented a newly designed login system in 2006, which meant that things like birthdays, deaths, anniversaries, etc, were not visible unless the visitor was logged in. However, a disagreement with my wife's family in 2008, about the risk of identity theft by having such data available online, caused me to remove the application from my website. At present, it is still running on my private webserver - not accessable from the Internet, and is my main means of keeping track of my family history.

The current version of the application allows storing information about most critical events in a person's life, such as christenings, burials, weddings, engagements, and other life events, using a category system that is easily expanded to cover more types of events as needed. This is in extension to regular person data, such as names, birthdays, death dates, marriages, children, and so on.

The database uses a fairly simple table to store a person's basic data, and for each person the only family relation stored is the parents, with a seperate table storing information about spouses. The PHP code then uses this information to generate a visual representation of a person, with links to parents, siblings, spouses, and children.


Helios Community System
Project type: Complete Internet Community System
Application type: Web-application
Development status: prototype
Languages used: PHP, HTML, SQL (MySQL), CSS, JavaScript

Description:
Helios builds upon the experiences and knowledge I gained making the Heather Forum System. Where the forums provide the basic means of communication through discussion and private messages, Helios adds to this by having several tools meant for people to easily meet, make, and maintain friends and friendships. This is achieved by allowing for largely extended user profiles, with extensive personal data (all of which optional entries), complex search tools that allows searching through user profiles and contact information, as well as tools for keeping personal address books of the friends that are also members of Helios.

To help members/users protect their personal data and contact information as much as possible, Helios includes extensive privacy options for controlling which parts of the profile is viewable by others. The privacy tool allows users to set default privacy settings that are applied to all users, and allows for overriding these settings individually for each other user, making it possible to grant some users more insight into one's user profile than others. Because Helios is intended to be used as a place where people can come and make any kind of relationship they wish, or just come to participate in discussions, the privacy tool is a major key element. It is possible to have every intricant detail about oneself stored in one's user profile, without anyone actually being able to see them, until one grants specific users those rights.

The My Friends list is a unique tool that allows users to maintain a list of their friends that are also in the system. Although it technically allows anyone to add anyone to those lists, the privacy system remains in effect, and whether one person is listed on a My Friends list or not, does not change the privacy settings for those users. It is simply a way for people to keep bookmarked those they know, in a user list that could in theory count millions of users. When Person A adds Person B to his My Friends list; Person A is added to Person B's privacy setting override list, and Person B is added to Person A's similar list. Even if Person A grants Person B rights to see all of his personal information, it is still up to Person B to decide which parts of his profile he wishes to let Person A see.

The ability to control ones privacy this way and on this level is a key feature in Helios, and as such requires quite a bit of code that have been thoroughly tested again and again to ensure that this part works 100%. Helios includes several tools to control ones profile and privacy settings, as well as the very complex search tools.

Note that Helios today represents some 40,000 lines of code, and has taken a significant amount of time to create, and yet it is not finished, as I've been working on other projects in parallel, that I found the solution to while working on Helios. Midways while working on Helios, I found that to do some of things I wanted included, in a fairly simple way, I had to change the whole thing to being mostly object oriented. This required a major rewrite of everything, and especially due to the complex security and privacy tools, it took a bit of trial and error to get everything I had done to work again after the rewrite. Thus Helios became Helios 2 before being finisged, At present, the communication and privacy tools are working, but the majority of the management system to administrate the system when it gets put online, is not complete, and as such I cannot have the project online, as it would not be entirely secure.

Helios was started long before I heard of Facebook and Twitter and such. Helios is a much cleaner system, designed to provide privacy and respect that privacy, to share only what you want. It is not intended to sell your demographic data (like Facebook does), and is not based around a way to throw your personal life and conversations out for everyone to see. Helios will let you do things publicly as well, if you so desire, but its main focus is to provide a private environment where you can keep everything as secret as you want.


Heather Forum System
Project type: Forum system
Application type: Web-application
Development status: discontinued
Languages used: PHP, HTML, SQL (MySQL), CSS

Description:
Named after one of my absolutely best friends that has meant a great deal for confidence and faith in my abilities, the HFS started with a need for a project that could help me figure out how to work with relational databases using MySQL with PHP. As always tends to be the case, the HFS have grown above and beyond that, and basically nothing of the original remains in the current running version. Although the forums engine itself isn't as fancy as the more commercial systems, HFS is instead aimed at supplying better usability first, and then add the more fun functions later. This among other things means that HFS uses an improved version of a thread statistics system devised by my friend Xeratul. This system allows for the forum to accurately inform logged in users of which exact posts have been added since they last read each and every thread. My improvements simply enables the system to not break when guest users (not logged in) view or post, but count their thread views as well, plus maintaining a constant account of all page views.

The biggest part that HFS does different than the more commercial forums, and which is what actually makes it more advanced than most forums I've encountered, are the more extensive administration tools. HFS allows more control over forum permissions than any other system I've seen (and trust me, that's been a few by now), and includes more extensive tools and options for administrators to maintaining users. The system also includes a good part of automated maintenance functions that can be enabled/disabled easily, and in the case of the automated user promotion system, can be enabled/disabled individually for single users and/or levels as wished, as well as disabling the system entirely.

Based on the first online version of HFS (put online in 2004), I got inspired to create Helios, a more complete community system, than just a bunch of forums. Though i used the HFS engine to create the forums in Helios, the two projects have nothing else in common. While working on Helios however, I found numerous ways where the forum code could be optimized and improved, and a second version of HFS was put online in 2005, much smaller and leaner, and significantly faster.

Though while being online, and without having a lot of traffic to my site, meaning noone really used the forums, spammers started invading the forums (since I had left the ability for guest users to post turned on). Because of the spam problem I set about to create a way to make it hard to spam my forums, and in doing so I felt it was more relevant to merely work on the bigger project Helios, rather than attempting to maintain two systems all by myself. The end result was that HFS got taken offline (since they weren't used anyway), and instead I turned my attention to what it would take to make Helios ready for takeoff.


Complete CPU database
Project type: Reference tool/database
Application type: Web-application
Development status: under development/unfinished
Languages used: PHP, HTML, SQL (MySQL), CSS

Description:
Originally named The x86 CPU database, this collection of data is meant to make a one-stop reference for everything you would ever need and want to know about CPUs ... However as I've gotten older and have found other things that interest me than computers, finding the interest in finishing this tool and getting the data up to date is getting increasingly harder.

The latest revision of this includes an increased amount of search and sort options for the DB interface, however without the free-text search option as this had some serious performance problems.

The way this system is currently made, the only way for me to update and add additional data to the database, is by handediting the database using PHPMyAdmin. As the system uses several layers of tables, doing it this way is extremely excruciating and time concerns meant I just didn't have the time to update it. While going through some personal problems during 2006-2007, I decided to remove the application from the website, as it was easier than making the tools required to make the whole thing easy to maintain and up to date.

This is a decision I now regret, and I am presently working on restoring the application, and database, to the site, which isn't as simple as it sounds, as the database needs to be rebuilt.

Once back online, it is my intention to finish the application by making the necessary tools required to maintain it, and then start bringing is as up to date as possible. Also on the horizon is additional functionality, to allow more information about each CPU to be accessible.

Features:

  • Searchable technical reference information for several hundred CPUs.
  • Full-text search tool with pre-selectable customizable sort orders.
  • Additional information about each CPU by clicking in the result table.
  • Changeable sort orders by clicking column headers.