Category Archives: Technology

WordPress to ImpressCMS – Cleaning up the source content

A first step in any migration is to clean up your entry data. That doesn’t change when moving from WordPress to ImpressCMS.

Cleaning up your content can be done in several ways : removing old or no longer relevant posts (news items get old soon, and Google doesnt like stale news items), looking into content types that perhaps no longer need to be on the new site, and cleanng up your tags and menu structures.

It depends mainly on your content, so it is difficult to automate this step. However, if done correctly at the beginning of a migration, this step can make the difference between success and failure in the end.

Migrating WordPress to ImpressCMS

migrate wordpress to impresscmsOne of the big sayings in open source is to ‘eat your own dogfood’, meaning that you need to use the tools you develop also yourself on a daily basis.

It’s the only way you can get a good idea of the strengths and weaknesses of your solution, by putting you in the position of the end-user.

I have been a sinner in that regard, by using WordPress for my personal blog instead of my own project ImpressCMS. That is something I intend to set straight in the near future by migrating from WordPress to ImpressCMS, and documenting the process step by step.

Setup PHPUnit on Windows with Composer

Setting up PHPUnit using Composer is an option that is available since composer 3.7.5. Older 3.7 versions aren’t considered stable to use this way. I needed to have PHPUnit to run tests in my PHPStorm environment, and I didn’t want to do it by hand or struggle with PEAR on my local server. Composer is a good and easy alternative.

I assume you have installed Composer using the Windows installer found here

Just run the following command to get composer to install PHPUnit globally, for all the projects, and not just this one:

composer global require “phpunit/phpunit=3.7.*”

After that, go to your environment variables, and append the Composer folder to the end of the ‘PATH’ variable :


Substitute <username> with the user name that installed composer.

And you’re ready to go!

OPML Export in Feedly Cloud

Opml-iconThe demise of Google Reader has been a good thing. First of all, it got RSS readers back into the limelight. Second, Google Reader being backed by Google, most people didn’t see it viable to try and develop competition against a Google service. In economics, that’s called a monopoly, and everyone agrees that monopolies stink.

To combat a monopoly, or the dreaded ‘vendor lock-in’ as it is called as well, you need standard data structures to export the relevant info from one service to another. OPML is the format that most RSS feed readers use to store your subscriptions.

Getting your OPML data from Feedly is not hard, but it’s not intuitive where to find the link to click. I had to look for it, so I thought I’d mention it here to save someone else the trouble. Continue reading OPML Export in Feedly Cloud

using scp to upload to sourceforge to a path with spaces

The titles says it mostly, if you want to upload a file from a linux machine to the FRS on sourceforge, but you have spaces in your paths:

scp (file_to_upload) (my_user)”/home/frs/project/(project_name)/Path\ with\ spaces/”

Easy, really, if you know all the details to watch out for:

  • enclose the path (everything behind the column) in double quotes (“)
  • Escape each space in that path with a backslash (\)

If you don’t enclose the path with double quotes, you’ll get the following error message :

scp: ambiguous target

The following variables are used in the example:

  • (file_to_upload): the name and path of the file (if you’re not uploading from the folder the file is stored in) of the originating machine
  • (my_user) : your username
  • (project_name) : the path for your project. On sourceforge, sometimes you may need to add a few folders in front with the first and the first two letters of your project name : /p/pr/project

multiple folders in one zip file under linux

I keep forgetting the syntax for adding multiple folders under one zip file under linux.A small reminder to myself, and maybe it can help others as well (although it’s easy to find on the net).

The command to do that is quite straightforward/easy though :

zip -9 -r <zip file> <folder name>

the ‘-9’ tells zip to use the best compression, while the -r indicates you want to have zip do a recursive operation on all subfolders below the folder you mention.

Using Editors in a CMS – the ImpressCMS editor conundrum

When attending a lunch seminar yesterday there was a very interesting short discussion about thhe use of WYSIWYG editors in CMS-powered websites. The whole discussion was about the amount of options and functionalities you can allow your site editors, keeping into account that your layout nowadays has to adapt itself to a multitude of different screen sizes and orientations.

This is a discussion we need to have in ImpressCMS, as we currently allow as much as possible to the editor. By doing that, we risk breaking the layout of the theme simply by entering content, and that shouldn’t be allowed. Read the blog, and add your comments at the ImpressCMS Community site.

PHPUnit installeren op XAMPP onder Windows

Ik gebruik de laatste tijd meer en meer PHPStorm, doordat we bij ImpressCMS een Open Source licentie hebben kunnen bemachtigen bij Jetbrains. PHPStorm biedt ondersteuning voor PHPUnit, waardoor ik die wilde installeren op mijn huidige Windows systeem. Dat loopt niet altijd van een leien dakje

PEAR Installatie

PHPUnit maakt gebruik van PEAR, maar die installatie heeft wat zorg nodig. Bij installatie van PHPUnit 3.6.10 onder XAMPP kreeg ik constand de melding:

No releases available for package

Continue reading PHPUnit installeren op XAMPP onder Windows

Migrating subversion repositories

The ImpressCMS project had migrated to when we got fed up with the low availability of the cvsdude (now codesion) service. We had had a very good experience at the beginning, but all of a sudden, major migration were done unscheduled, and because we were an open source project, we could only get mail-based support, and low-availability servers.

It turned out later that CVSDude was in the process of being bought, so in hindsight we could have seen it coming.

To be honest, the trac instance provided by sourceforge has never worked really well.

login to sourceforge shell

make a clone of your repository

create the dump file: svnadmin dump /svnroot/PROJECT/ > svndump



Managing your SVN repos with adminrepo :

loggin on to the shell: