Mautic – Open Source Marketing Automation

Mautic is an Open Source marketing automation solution.  It features contact management, social media marketing, email marketing, forms, campaigns, reports, and pretty much everything else you’d expect from a tool like this.

If you are lost between a gadzillion online tools available for marketing automation, and/or don’t trust third-party providers and want to have a system of your own, give it a try.

SSH vs OpenVPN for Tunneling

I have never particularly liked Virtual Private Networking (VPN).  From the old days, when there were a gadzillion of proprietary implementations, each being super slow, resource hungry, and requiring a mess of versions specific requirements, like Java and Firefox.  Secure Shell (SSH) has always been my choice for remote connections and tunneling.

Today I came across this article, which also shows that SSH tunnels are much faster than OpenVPN (if one has to use VPN, OpenVPN is probably the best choice around).  Needless to say they are also much easier to setup, both manually and automatically.

This adds yet another argument to my SSH vs VPN toolbox.

hack {cyprus} summit 2017

Last week I’ve attended the first ever hack {cyprus } summit.  hack {cyprus} is well known among techies in Cyprus for organizing other events, mostly hackatons.  They are good at that.  And this time it was something new.

The event itself was excellent!  It had all the usual things you’d expect from such a gathering – a bunch of bearded guys in dark t-shirts and jeans (each one secretly wishing that there were more women in tech), gadgets, coffee, snacks, and so on and so on.  And there were talks and workshops with lots of chatter in between.

Being a big fan and a frequent attendee of technical conferences all over Europe, I knew there was no chance I’d miss this one in Cyprus.  Even if I have to drive from Limassol to Nicosia.  In fact, I decided I’ll get even more value of it – practice my public speaking and presentation skills at the expense of the crowd.  So when the call for talks was announced, I submitted a couple of talks and one was picked.

There was a little hickup where I didn’t know the time slot of the talk (how long it would be), so I submitted two talks – one for 30 minutes or so, and one for 60 minutes.  The 60 minute one got chosen, and then I learned that the time I have is 20 minutes for the talk and 10 minutes for the Q&A.  Oopsy.   But, never the less, challenge accepted.  It took a lot of cutting and trimming but I think I sort of managed to get the essence of it into about 20 slides.  My talk wasn’t the first one of the day, so I observed other speakers.  I think most of them went slightly over 20 minutes and cut into the Q&A time, but on the other hand, there weren’t enough questions for most of the talks to fill all that time.  So in the end, it all worked out pretty well.  If I remember correctly, I managed to squeeze my talk into about 25 minutes altogether.   I’d love to see the video of that – there’s plenty of mistakes to learn from there, but for now, there are only the slides.

I would like to say huge thank you to everybody involved – organizers, sponsors, speakers, and attendees.  It was a blast and I hope to attend many more.


Querying CSV with SQL

Excel is not the only tool available when it comes working with CSV files.  I have previously mentioned TextQL (here).  Yesterday, I tried another tool, called “q”.  But since searching for “q” is not very effective, it’s also known “q text as data“.

For those using Fedora, you can install it by simply running “dnf install q-text-as-data“.   Here’s an example of how it works:

$ q-text-as-data -H -d ',' "SELECT COUNT(DISTINCT(Project)) FROM deploy.csv"

In the above example, I’m querying the deploy.csv file, which is in the current folder. q supports both command and tab separated values, so I’m helping it out with the “-d ‘,’” parameter, saying that this particular one is a CSV. “-H” tells q that the first row in this file is used for headers. CSV files with headers are more convenient, as you can use headers as column names, instead of numerical indexes.

RRULE will make you hate calendars

Calendars are not the simplest applications by far.  There are many different features, lots of different implementations, multitude of standards (just a few being RFC 2445, which was obsoleted by RFC 5545, which was updated by RFC 5546, RFC 6868, RFC 7529, RFC 7953, RFC 7986) , and plenty of other complexities.

One area in particular, which is cryptic and annoying is RRULE, or recurrence rule.  You know, those events that don’t just happen once, but repeat once in a while.  Starting with the most basic rules of repeating every day, and going into complete insanity of repeating every other Thursday, starting from next week and until the beginning of next year every other month, RRULEs can drive even the calmest of people completely insane.  Here’s a screenshot to give you an idea.

Here are a couple of tools that we found useful, when implementing and testing this functionality:

  • rrule.js – a JavaScript library for working with RRULEs.  See the demo here.
  • recurr – a PHP library for working with RRULEs.

nginx-module-vts – Nginx virtual host traffic status module

nginx-module-vts is a handy Nginx module for those who run complex Nginx configurations, with multiple servers, virtual hosts, caches, etc.  Here’s an example partial screenshot of the output.

GitHub : Security Alerts and Team Discussions

GitHub blog recently announced a couple of interesting new features.

Firstly, Security Alerts.   For now it only supports Ruby and JavaScript, but hopefully other languages are coming soon (PHP/Composer please!).  Security Alerts will notify repository owners if there are any known security issues in any of the packages that the repository is using.  Similar, I guess, to who SensioLabs Security Check works, but integrated with your GitHub.

Secondly, Team Discussions. This is yet another way place for the team to communicate.  There are Issues and Pull Requests already.  But those are more specific and more focused.  For anything that doesn’t have a single issue, or doesn’t have a PR yet, a Team Discussion might be a better place.

ninja-mutex – Mutex implementation for PHP

ninja-mutex is a simple to use mutex implementation for php. It supports different adapters (flock, memcache, mysql, redis, …) so you can setup it as you wish. All adapters (if set up properly) can be used in multi server environment – in other words lock is shared between web servers.

All 500 of the World’s Top 500 Supercomputers Are Running Linux

Slashdot shares the story:

Linux rules supercomputing. This day has been coming since 1998, when Linux first appeared on the TOP500 Supercomputer list. Today, it finally happened: All 500 of the world’s fastest supercomputers are running Linux. The last two non-Linux systems, a pair of Chinese IBM POWER computers running AIX, dropped off the November 2017 TOP500 Supercomputer list. When the first TOP500 supercomputer list was compiled in June 1993, Linux was barely more than a toy. It hadn’t even adopted Tux as its mascot yet. It didn’t take long for Linux to start its march on supercomputing.

From when it first appeared on the TOP500 in 1998, Linux was on its way to the top. Before Linux took the lead, Unix was supercomputing’s top operating system. Since 2003, the TOP500 was on its way to Linux domination. By 2004, Linux had taken the lead for good. This happened for two reasons: First, since most of the world’s top supercomputers are research machines built for specialized tasks, each machine is a standalone project with unique characteristics and optimization requirements. To save costs, no one wants to develop a custom operating system for each of these systems. With Linux, however, research teams can easily modify and optimize Linux’s open-source code to their one-off designs.


Fedora 27

Fedora 27Fedora 27, the latest and greatest version, has been released.  As always, a lot of work went into putting it all together.  But for personally, the new releases has stopped being exciting a long time ago.  My desktop needs have been satisfied for years.  All I need is MATE Desktop Environment (with i3 window manager), a browser, terminal emulator and Vim.  That’s pretty much it.  And it has been there forever.

So, is there anything interesting in this new version at all? Release Notes are rather thin, but let’s have a look.

  • New and improved Gnome 3.26.  I know a lot of people who use Gnome, so that’s probably exciting.
  • New LibreOffice 5.4.  Personally, I don’t know anyone who is using LibreOffice.  Google Docs is doing a pretty good job these days.
  • Security section looks like the largest area of changes.
  • Web Development section mentions Node.js 8.

If you want even more details on what has been done, why and how, have a look at the Fedora 27 changes page.

To me it looks like there is some internal restructuring and reorganization going on, with release process changes (no more Alpha releases), a lot of effort on modularity, and so on.

Hopefully, the next one will be a bit more exciting.