Welcome to ter.dk - the playground for Peter Brodersen.
The following projects are mainly simple test setups, utilities and proof-of-concept showcases. As a rule, all projects have been cooked together using LAMP (Linux, Apache, MySQL, PHP).
Don't expect to find any pretty graphics or nice web design. Furthermore, most sites are in Danish.
Using data from the www.OpenStreetMap.org (OSM) project this page contains a couple of search tools. It is possible to search for Danish street names and latest contributions by different users.
Every night the page is updated with a fresh database dump and runs thorugh some standard quality assurance tests for new data such as checking that all street names begin with capital letters and streets are not connected thorugh the same point multiple times in an unnecessary fashion.
Containing a Wikipedia scanner and a Six Degrees style connections (slow and experimental) between articles in the Danish edition of Wikipedia. The scanner has been combined with data from RIPE for better searches. Furthermore a template content aggregator is available to fetch structured data from several articles containing the same template.
Database of Danish authors and revenue from the National Library Authority (Biblioteksstyrelsen). Contains data of about 30,000 Danes, combined with articles from the Danish Wikipedia.
Not entirely under .ter.dk, but nonetheless an updated edition of map.ter.dk. Support for direct URLs:
Link free to locations at Findvej without getting sued:
Hints and further Findvej-shortcuts:
An online application for basic PDF handling. Pretty handy! Can merge and split PDF files. Currently very beta.
map.ter.dk is a combination of Google Maps and Geocoding information for almost all street addresses in Denmark.
Map controls and markers have been created using Google Maps API. Geocoding information has been retrieved from BBR ("Bygnings- og Boligregistret") and converted from UTM32 to latitude/longitude using the Geo::Coordinates::UTM perl module. Currently 2,149,065 locations are stored in the database.
DNS based project where all .dk domains are checked on a regular basis for A-, NS- and MX-records.
Personal info. Just the basic facts.
Simple "View IP address" service. Takes regard of proxies and RFC1918 addresses. Performs a guess of more specific geographic location for Danish visitors.
Yet Another Shorten Your URLs Webservice.
PHP class - send mails with attachments.
Should you have your lights on? Currently the time of switch is based on the average sunrise/sunset time in five locations in Denmark. I might use date_sunrise() and date_sunset() in the future. Furthermore, when Asterisk is running, a phone service is also available.
Phone in a message and listen to it online. Simple test of Asterisk PBX.
A couple of old bookmarklets for use in Firefox and Internet Explorer.
IDN test site. *.idn.ter.dk is set up in DNS and in Apache to point to same site.
Apache Document Root pointed at a file instead of a folder. The file handles all requests.
Test handler for all requests for website. An ugly way of doing the same as above docroot example.
Simple "fetch usenet article from article id" interface.
PHP based webmail client. With preview of PDF and Word documents.
Simple string manipulation utility using a couple of different, useful PHP functions (and some custom made).
Stockpile for simple few-liner-scripts and small notes. Some of the more permanent pages and scripts include (mainly in Danish):
Hunter is a simple hostname-to-location-parser with an index of hostname formats and abbreviations. Usage could be commercial targeting, localized content, default settings/values, visitor statistics. I might revive and update this project at one time - or at least perform an update. At least ip.ter.dk uses the index.
Database of Danish authors and revenue from public libraries. The data is old and outdated but the point is still relevant; from the DKK 10.000.000-pool, authors have retrieved amounts of DKK 50.000 to DKK 150.000 meaning that money are not spread amongst the new coming-up-authors, the pool was meant for.
This project has been now resurrected as www.bibliotekspenge.dk.
My old "I'm working at an ISP, but I don't represent them" disclaimer.
An old Flash based Hollywood e-mail client (with sounds, semitransparent interface, rotating icons for attachments and other useless movie-like stuff, aka MovieOS). One of my favourite projects that I really would like to renew - just for the fun of it.
List of domains owned by different Danish ISPs. The list was retrieved on a daily basis and could provide clues for new business plans. The method might be directed at other companies as well.
Analysis and instructions for removal of Loveletter Worm. It gave me 15 minutes of mini-fame in 1999 (my instructions were originally located at www.loveletter.trc.dk)
Site you could provide with an URL, and a remote Firefox would visit the site and take a screenshot. The solution was based on Xvfb and ImageMagick-based import utility. Firefox currently segfaults when Apache executes command to firefox, but not when manually run as the apache user in a shell... the mind boggles on this one.
ICQ robot. Currently not active. Worked a bit like an IRC bot.
Simple CPR validation algorithm. Source available. Old, ugly code.
Dynamic generated Flash file using Ming. Today I would have the Flash file and the content separated for better caching, faster loading and easier, independent changes.
Simple Ethernet/IP packet analyzer aimed at zyxel users where they could simply cut'n'paste the packet that triggered the last call.
A couple of sites have been lent to friends and family.
Surprise Premiere history site for Imperial - and a few comments. Mostly for internal use.
Company website for Kirk Detekt, a fictitious investigation firm.
Old wedding website for my brother and sister-in-law.
Website for dancer and choreographer Louise Seloy. Created by Martin Stub.
My brother's storage site.
Simon Sonic Peter says ...
Reload, reload, reload...
Suggestions for better or funnier content at the silly sites are welcome.
Last update: November 8, 2016