Asko Soukka

Open source “history plugin” for Camunda Cockpit

January 03, 2021

Year 2020 was a good year to learn business process automation possibilities with BPMN and Camunda – an open-source workflow and decision…

Setting up Camunda Run and connecting with Robocloud

July 12, 2020

In my previous post I wrote an overview, how to implement a semi-automated business process involving both humans and robot with just…

Connecting the dots – Automated business process with Robocloud and Camunda BPM

July 10, 2020

Robocorp’s RPA suite is now open for everyone. Why does it matter? Because their “Robotic Process Automation” solution is based on Robot…

Automated subtitles – destructuring a successful Plone CMS integration

June 22, 2020

Never underestimate the importance of being able to make changes to your software – especially when they are critical to your business…

Static is fast, but CMS still required – a JAMstack story

June 12, 2020

An another iteration of our university’s new study guide web site has been completed. The project that started more than a year ago as a…

Vasara – an open source mashup for business process digitalization

May 17, 2020

In the beginning of this year, we met to discuss the options for making more of our existing business processes more automatic, more…

Refreshing CMS, in a theme, with Plone

April 13, 2020

“How hard can it be? It is just a theme…” Of course, it was. Unless it was a collection of configurable interactive components. With…

Creating Plone content with Transmogrifier on Python 3

February 25, 2020

TL;DR; This blog post ends with minimal example of creating Plone 5.2 content with Python 3 compatible Transmogrifier pipeline with command…

Introducing RobotLab

September 21, 2019

Say hello to RobotLab! JupyterLab powered interactive Robot Framework test suite and RPA task suite authoring platform for Windows, MacOS…

Digital Signage management with Plone and GatsbyJS

September 01, 2019

Sometimes complex problems have simple solutions, and this was one of those times. At work, we are piloting a new digital signage solution…

RoboCon 2018 and Robot Framework Jupyter support

January 27, 2018

It’s already over a week since I got back home from the first Robot Framework conference ever — RoboCon 2018. It was a pleasure to be there…

Plone Conference Barcelona 2017

November 03, 2017

It was awesome to be back at Plone Conference this year. Finally! We have had participation in Plone conferences in 2009, 2011–2012 and 201…

Building instant features with advanced Plone themes

October 23, 2017

Plone, ”The Ultimate Enterprise CMS”, ships with built-in batteries for building sophisticated content management solutions without writing…

Tile based layouts and ESI on Plone

February 26, 2017

Plone’s Blocks: Grid based layouts is an old manifest (originally dated back to 2008 or 2009) about simplifying Plone’s (ME)TAL-macros…

On building fat themes for Plone

October 04, 2016

Could fat themes become the common ground between filesystem Plone developers and through-the-web integrators? Plone ships with a lot of…

Plone Barcelona Sprint 2016 Report

May 22, 2016

For the last week, I was lucky enough to be allowed to participate Plone community sprint at Barcelona. The print was about polishing the…

Evolution of a Makefile for building projects with Docker

April 30, 2016

It’s hard to move to GitLab and resist the temptation of its integrated GitLab CI. And with GitLab CI, it’s just natural to run all CI jobs…

Building Plone widget with React + Redux

April 11, 2016

As much I love the new through-the-web resource registries in Plone 5 (I really do), for the current Plone 5 sites in development or already…

Building Plone theme with Webpack

February 15, 2016

I just fixed my old post on customizing Plone 5 default theme on the fly to work with the final Plone 5.0 release. But if you could not care…

Nix in Docker – Best of Both Worlds

November 16, 2015

I’m using Nix mostly on a mac as a development tool, and every now and then I get blocked by some packages not working on OS X. For those…

Creating Jupyter Docker-containers with Nix

November 13, 2015

Jupyter is the new name and brand for an awesome interactive data science programming scratchpad previously known as iPython Notebook. While…

Nix for Python developers

October 28, 2015

About a week ago, I had the pleasure of giving a presentation about my Nix experiences at PyCon Finland 2015. This is an executive…

Generating Plone theming mockups with Chameleon

September 06, 2015

Some days ago there was a question at the Plone IRC-channel, whether the Plone theming tool supports template inheritance [sic]. The answer…

Building Docker containers from scratch using Nix

July 09, 2015

Nix makes it reasonable to build Docker containers from scratch. The resulting containers are still big (yet I heard there’s ongoing work to…

Creating Nix-expressions with buildout

July 08, 2015

The greatest blocker for using Nix or complex Python projects like Plone, I think, is the work needed to make all required Python-packages…

Stateless Nix environments revisited

July 07, 2015

It’s almost a year, since I tried to bend Nix package manager to fit my own workflows for the first time. I disliked the recommended way of…

Customize Plone 5 default theme on the fly

May 25, 2015

When I recently wrote about, how to reintroduce ploneCustom for Plone5 TTW (through the web) by yourself, I got some feedback that it was…

ploneCustom for Plone 5

May 12, 2015

No more custom skins folder with infamous ploneCustom in Plone 5, they said. Well, they can take away the skins folder, but they cannot take…

Transmogrifier, the Python migration pipeline, also for Python 3

November 19, 2014

TL;DR; I forked collective.transmogrifier into just transmogrifier (not yet released) to make its core usable without Plone dependencies…

Too many ways to do async tasks with Plone

October 23, 2014

Triggering asynchronous tasks from Plone is hard, we hear. And that’s actually quite surprising, given that, from its very beginning, Plone…

Nix expressions as executable commands

September 11, 2014

Updated 2015-07-07: Stateless Nix environment revisited Consider this entry deprecated. Updated 2014-09-24: I learned that in a mixed (OSX…

Asynchronous stream iterators and experimental promises for Plone

May 04, 2014

This post may contain traces of legacy Zope2 and Python 2.x. Some may think that Plone is bad in concurrency, because it’s not common to…

Cross-Browser Selenium testing with Robot Framework and Sauce Labs

March 20, 2014

How do you keep your Selenium tests up-to-date with your ever-changing user interface? Do you try to fix your existing tests, or do you just…

My week of Plone sprinting with friends and robots

February 19, 2014

I’m a bit late, but yes, I had a great time at last week’s Plone sprints. At first I flew to Amsterdam Stroopwafel Sprint for the weekend…

Review: Robot Framework Test Automation (Bisht 2013)

December 08, 2013

During the past year, I’ve been lucky to meet many people new to Robot Framework and help them to get started in writing acceptance tests…

Meet the Robot family (for Plone developers)

September 28, 2013

I only need to go two years back in time, and I had never really tried Selenium nor heard about Robot Framework before. Then I attended my…

Blogging examples of use with automated screenshots

September 23, 2013

But how much does it makes sense to write acceptance tests while creating screenshots for new blog posts presenting Plone add-ons? I have a…

Documentation – a plausible excuse for acceptance testing

September 20, 2013

Or how to use Sphinx to create user guides with screenshots, which are automatically generated, annotated and kept up-to-date using Robot…

Write testable documentation with Robot Framework

August 15, 2013

If you have background as a Python programmer, you must be familiar with doctests -- testable code examples embedded into documentation…

Stay accessible – Robot Framework library for WAVE-toolbar

May 26, 2013

WAVE Web Accessibility Tool is a popular service for detecting accessibility issues on your websites. WAVE Toolbar is an offline version of…

Test fixture driven development for Plone add-ons?

May 10, 2013

You may have already seen Maurizio Delmonte’s demo of collective.cover, the new Tiles based front-page product for Plone. It’s based on the…

Make your Robot tests go Phantom

April 27, 2013

A new version of robotframework-selenium2library has just been released, and it (>= 1.2.0) comes with full support for PhantomJS, the famous…

Generate annotated screenshots with plone.app.robotframework

April 09, 2013

Greetings from Sorrento, from Plone Open Garden 2013. The symposium/sprint was amazing, with the greatest possible venue, the nicest…

Cross-browser test your Plone add-on with Robot Framework, Travis-CI and Sauce Labs

March 12, 2013

Thanks to Rok Garbas, I became aware of Sauce Labs during the Plone testing sprint. Finally, I had some time to try it myself, and I managed…

Overview of the new Robot Framework goodies for Plone

February 11, 2013

Greetings from Plone testing sprint! I had never been in Barcelona before, and to be honest, I didn’t really see much of the city yet. The…

Create custom views for Dexterity-types TTW

January 31, 2013

Plone 4.3 will ship with Dexterity, the new content type framework of Plone. One of the many great features in Dexterity is the schema…

Embedding Robot Framework tests and keywords into Sphinx documentation

October 22, 2012

Robot Framework ships with decent tools for generating reference documentation out of your robot keywords and test data (see libdoc and…

Speed up your Plone add-on tests on Travis CI with the Unified Installer

September 09, 2012

Many thanks for Héctor Verlarde for encouraging us to try out Travis CI for testing our own Plone add-ons. Also, thanks for Godefroid…

Getting started with Robot Framework and plone.app.testing

September 01, 2012

Selenium testing Plone doesn’t need to be difficult. Actually, with the recent hard work done for robotframework-selenium2library it’s the…

Running Robot Framework tests with Google App Engine SDK

June 01, 2012

For a long time I thought that Selenium was hard to set up and tests for it were hard to write. Well, I couldn’t have been more wrong. With…