Having every bit of information defined at every aspect of application makes system actually finished.
Piotr Masełkowski, Maslosoft Founder

Gmail external account timeout issues resolved


After moving mail server to separate (virtual) machine and applying same configuration as on first Postfix+Dovecot and friends server, all went smooth without any downtime thanks to Dovecot replication. 

The problem has arisen a bit later when it turned out that Gmail does not import e-mails from accounts configured es external ones, ie "Check mail from other accounts" feature.

Operations from existing accounts and creating new ones resulted in cryptic message:

Server returned error: "Connection timed out: There may be a problem with the settings you added. Please contact your other email provider to verify the correct server name and port."

However receiving with mail client were working fine. After crawling interned for hours and tweaking with configuration, double checking everything, still no-go!

Codeception Acceptance: Visible - Invisible element


In one of projects, I have acceptance test for testing if user can be removed. The test was from some time failing. There is a helper method to select grid view action via xpath query. That was a first suspect, so that something in grid view has changed, so that the query was no longer valid. The query was a bit risky, so the new grid view component have added data-id attribute for each row for easier selection.

With new data-id  attribute it could as well be queried with CSS selectors. So I have tried selector with both jQuery and document.querySelectorAll. Both returning proper element. Resulting in selector more obvious then previous xpath one:

document.querySelectorAll('tr[data-id="59c16cd0a3d24b725b6171a8"] a[data-bind*="app.module.uac.user.trash"]')

Executing acceptance tests however yield element not visible error. And there the troubles started. Back to console for testing - works fine. However when executed from test runner - it failed.

Using GPG (GnuPG) with PHP on server

Use case presented here is for signing and verifying files, however by tweaking commands it is possible to encrypt and decrypt files too. Generally it's about GPG batch operations.

The idea with GPG (or PGP, which is compatible) is that keys are securely stored in user home dir. PHP comes with PECL extension for providing GPG operations, however it is using and approach where application manages the secret and public key. This could compromise security, as these keys would be probably stored in some PHP variables. The workaround for this could be set up an key pair for web server user.

Don't release of Friday!

The old story strikes back. Dozen years ago I used to work for local IT company. Even then we had work out a often release cycle, so that usually each month we had a new version of software. This is quite good attitude, as there are less changes between versions, and also team is getting used to release cycles.

Don't release on Friday!
Adam, DevOps admin

Reviewed an updated documentation for balin

The Maslosoft Balin Project had documentation migrated from old semi-static pages to be able to integrate into main Maslosoft website. Now all live documentation examples have been reviewed, cleaned up, in some cases fixed and also extended with more detailed descriptions.
The project itself is a set of more or less complex Knockout JS binding handlers. It is written in CoffeeScript for better clarity - and in fact writing this project in CoffeeScript made it possible to make it work.
  • Projects