You have to start somewhere ...

    • parentnode.dk

Perfect is an illusion. We all have our own idea of perfect, reflecting our own priorities, needs and desires. More often than not we are forced to accept a level far below our own idea of perfection. To me that is deeply depressing and this is my compensation.

In my persuit of perfection I have built a full stack platform for web development. Always prioritizing frontend development and content accessibility, while keeping complexity low and flexibility high. With no compromises because I never had a deadline.

I am this stubborn because I love coding and hate restrictions. Everything is free, open source and forkable on GitHub. Try it out on your next project.

Latest news

  • SSL certificates with Let's Encrypt

      • parentnode.dk

    Let's Encrypt is free and easy SSL certificates for the almost- masses. Through a few simple commands, you'll have free valid SSL certificates for all the sites on your server, even without the need for additional IP-addresses.

    This approach assumes you already have a webserver with root or admin access. If you need a server as well, look at the server setup guide first.

    Getting started

    Go to: https://certbot.eff.org and select you software and server.

    Install the packages specified on the page. For Apache on Ubuntu 14, it looks like this:

    sudo apt-get update sudo apt-get install software-properties-common sudo add-apt-repository ppa:certbot/certbot
    sudo apt-get update sudo apt-get install python-certbot-apache

    You're new ready to start creating certificates.

    Create certificate:

    Run this command to create your first certificate:

    sudo certbot --apache certonly

    This will ask you which domains to include in the certificate. It will then generate and install the certificate on your server. When the process ends, certbot will tell you the exact location of your new certificate. You'll need this to enable the certificates in Apache.

    Note: the certificates expire after 90 day - remember to set up automatic renewal.

    Enable certificates in Apache

    If you created your new certificate successfully, you now have all the certificate files on your server, but you need to tell Apache to use these certificates when your sites are visited.

    This is done in the VirtualHost configuration for each site. If you already had an SSL certificate on your server, you just need to update two lines in your configuration:

    SSLCertificateFile /etc/letsencrypt/live/#your-cert-path#/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/#your-cert-path#/privkey.pem

    If you did not have an SSL certificate, you'll need to enable SSL for the individual VirtualHosts as well. You can do that by adding these lines:

    SSLEngine on SSLCertificateFile /etc/letsencrypt/live/#your-cert-path#/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/#your-cert-path#/privkey.pem SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
    SSLHonorCipherOrder on
    Header always add Strict-Transport-Security "max-age=15768000"

    Now restart Apache and you're ready to go https.

    To delete certificate:

    sudo certbot delete

    This will give you the option to choose which certificate to delete.

    To renew cetificates

    First test your setup by running this test command:

    sudo certbot renew --dry-run

    If it succeeds then you can add the automatic renewal command to your root crontab:

    certbot -q renew

    Certificates are only renewed if they are less than 30 days from expiry, so I recommend you run the cronjob once a week. Fx. to run the cronjob every Monday at 3AM:

    0 3 * * 1 certbot -q renew
  • Modulator is now Templator

      • parentnode.dk

    Oh my.

    Modulator has changed name to Templator to better signal what is is all about: Easy templating with copy/paste SEO HTML.

    This also marks to release of Version 2, including:

    • updated Schema properties
    • new content snippets
    • downloadable boilerplate including Manipulator-quickie
  • Release of Janitor v0.7.6

      • parentnode.dk

    Janitor just improved – again!It’s a minor update with major improvements. Our latest update include:

    • Token login
    • Detector-v3 integration
    • Global item comments
    • Global item read states
    • A brand new Zipper class
    • A TODO system
    • And much more ...

    Right – slowly but steadily we’re closing in on 0.8 :)

  • Release of Manipulator v0.9.1

      • parentnode.dk

    Manipulator has just been significantly improved! Version 0.9.1 updates the library to the new Detector v3 segmentation model. It also includes many bug-fixes and minor extensions of existing modules. Oh, and the template module is out of BETA. Other improvements include:

    • Enhanced drag-dropout functionality to avoid dropping smaller draggable elements
    • Redesigned History and Navigation object for more flexible implementation
    • Enhanced vender-prefix detection on attribute level
    • New u.e.hover method for applying "hover” events
    • Font-loader module in BETA
    • and lots more ...

    Have fun with the new features, and let us know if you’re urgently missing anything - it’s open source, but that doesn’t mean you need to compromise :)

Selected clients

  • Distortion
  • Danske Landskabsarkitekter
  • Torvehallerne
  • URBAN GREEN
  • Copenhagen Metro