Sorry for too many emails


I’m writing this article to explain today’s email madness. My name is Ludek Vodicka and I’m chief developer of Skipper application.

As first, I would like to apologize to all of you who received about 20-50 emails with our newsletter today. Fortunately it was only small number of our users in compare with the whole email address list, but still we are really sorry for this inconvenience. 

The reason for this issue was simple. Migration from Mandrill emailing service to different one – SparkPost. We utilize Mandrill for several years and we were very satisfied with that. With their friendly pricing policy we used Mandrill for any of our projects as well as for all internal notifications (from Jenkins, license server,…).

Unfortunately 14 days ago, Mandrill and Mailchimp announced that they don’t want to offer transactional mailing server and want to focus to campaigns only. This together with drastic price increase had forced use (like thousands of other Mandrill users) to search and swap to another mailing server provider.

After a long search we decided for SparkPost. After a week of testing and migrations we decided to perform a final test on our newsletter (common transaction emails, trial emails, etc. were already tested and handled via SparkPost).

But although SparkPost guarantee of 20.000 emails/day, when counter reached 12.000 emails, SparkPost started to report “quota exceed” error. Our campaign server wasn’t prepared for this (because we had limit set to 20.000, which should be fully sufficient for this campaign).

When our server received this new type of error, it tried to deliver it again, so SparkPost again reported “quota exceed”. To problem was that although SparkPost returned this error, emails were still being delivered to you.

It took about 10 minutes to us to notice that something wrong is happening but during these 10 minutes some of you received all these emails. Now, we’re working on better mechanism to prevent such error again in the future. Also we reported this issue to SparkPost and waiting for their response.

As sorry for all of you who was impacted with this email flood I’m offering you 20% discount for your next purchase. Feel free to write me from impacted email to [email protected] and I will send you the discount coupon.

I hope that despite these troubles you will still like our software and be looking forward to next updates :-)

Thank you for your understanding

Ludek Vodicka

Skipper beta with Gedmo support available

After some weeks of hard work we are happy to announce that Skipper now supports also Gedmo extensions. New version with the support is so far available as beta, you can download it from a post about Gedmo extensions on our support forum.

Because Gedmo extensions support needed a lot of changes in the application, we are now looking for beta testers who will try it. So if you have a project with Gedmo extensions you are very welcomed to import them in your Skipper model and let us know, whether everything works as expected. We will be really glad for your help :-)

Gedmo extensions support is now available only for Doctrine 2 framework. But this is only temporary, as soon as the beta will be properly tested, also a support for MongoDB ODM will be added.

New namespace support in Skipper

Our latest release 3.2.0 brings to Skipper new way how namespaces are handled by our application.

Few words about history

Long time ago when the first version of our application was created (originally called ORM Designer), there hadn’t been things like namespaces in ORM frameworks. But as ORM frameworks have been developed in time, each framework came with some way how entity namespaces are being handled.

Because ORM Designer / Skipper needed to handle it too, we added support for namespaces in form of ORM attributes. This had been a functional and sufficient solution until Doctrine 2 has introduced new way how to handle namespaces and allowed several entities with the same name but in different namespaces.

For some time it wasn’t possible to create such models in Skipper because of internal limitations (each entity was represented by it’s local name only). But today with our latest release this limitation is over. We have reworked Skipper core and a way how unique names are handled and now it’s possible to create also these models.

New age of namespaces

Starting with version 3.2.0 each Module, Region, Entity and Collection can have defined its own namespace.

Skipper region namespace settings

Namespace of each object is calculated from all its parents:


Each of these objects can have defined own relative or absolute namespace. This means that in case of need sub-region can override namespace via absolute path. In such way, the final entity namespace will be:


The same thing is possible also for Entity. In case you need to define one of your entities in different namespace than the rest of entities in the module, simply define absolute namespace directly for the entity.

New namespace system in Skipper

All this features are available to all ORM frameworks which support namespace. Namespace support is available for all import and export scripts as same as for visual editing.

Project file changes

Because of these changes it was necessary to update Skipper project files a little. There are two most important changes which caused that projects from 3.2.0 aren’t fully backward compatible with older versions.

The first change of XML format are new attributes @local-name, @name, @local-namespace and @namespace. Attributes starting with @local-  are values defined on specified object. On the other hand attributes @name and @namespaces are calculated values depending on its parents.

The second change in XML format is deprecated <entity-ref> and <collection-ref> elements in project file. Instead of <ref> elements entities are stored in owner regions to keep the same hierarchy like in visual model.

For example, this means following. This is how looked original project file with entity in one region like:

<module name="module">
  <region caption="test">
     <entity-ref name="e1"/>
  <entity name="e1"/>

And this is how project file looks like now:

<module name="module">
  <region caption="test">
     <entity name="e1"/>


Although it might not be visible on the first sight, new namespace support was a very complex task. Because of that we had this feature for more than month in beta mode before releasing it to public. Thanks to all our testers we successfully localized and fixed several bugs caused by this new feature.

Now, when no more issues are reported we decided to publish it for all our users. We will be glad for any feedback.

Let us know how you like it!

Support for MongoDB ODM finally here!

Last few months we have been working hard on support for a new framework. It wasn’t an easy task, because MongoDB ODM has some specific features, for which we need to adjust graphic part of the application and also add quite a lot of logic inside. But we succeeded and new version 3.0.2 is now out!

New features for MongoDB ODM

New tools are available in application toolbar. They allows to create objects specific for MongoDB framework. It is Collection and Embedded.



Collection has its own visual element in a model for its simple identification. It is represented by rounded rectangle and it is connected with entities belonging to it with special dotted line.

If you want to add new entity to collection, you can add it in collection editor or you can use CollectionEntity tool from the application menu and click on chosen entity and collection.



Embedded is a special type of association specific for MongoDB ODM framework. It has also its own visual representation, so in a model you can recognize it by double full line as displayed in the image.


Other changes in new version

Besides the MongoDB support contains also a lot of bugfixes and some small enhancements based on request of Skipper users. Here is the short summary of the most important changes:

  • Implementation of Universal objects (feature for expert usage)
  • New ORM properties for Doctrine 2 framework
  • Enhanced skipper configuration options
  • Fixes for occasional crashes of the application

Visit the version changelog and check all changes for V3.0.2.

Changes in Skipper Documentation and Support site

This year in summer we have been working on new brand and new Skipper website. We are quite satisfied with the result of our work, however, we knew that Skipper Documentation and Support site would deserve the same re-design. In last few weeks we made also these changes and even more than that. Keep reading to get know what else has been changed.

Skipper Documentation

New documentation visual style

New documentation visual style

The Documentation has get new visual style corresponding with the main Skipper website. In our opinion, now it looks much more better than it was.

Besides that, we added new articles to Expert Usage section. (And many new articles will also arrive with prepared MongoDB support.)

Last but not least, basic topics in How to Use section were extended by new explaining video tutorials which, as we hope, help newcomers to start using the application simply and quickly.

Skipper Support Site

New Skipper Support Site appearance

New Skipper Support Site appearance

Skipper Support Site has also get a new visage. We used similar visual elements to link the Support Site with the Documentation. As it is strongly utilized by its users, the functionality remains unchanged.

So what do you think? Do you like our new Documentation and Support Site appearance?

The latest review by Miguel Montes: Skipper + Symfony + Doctrine, great combination

Today we bring you the latest review about Skipper translated from Spanish. Original version of the review is available at MIMOPO blog written by Miguel Montes (you can follow him also on Twitter). We would like to thank Miguel for his kind words about Skipper and now the review itself:

Skipper + Symfony + Doctrine, great combination

Skipper is the best tool I’ve seen so far to design data models and export them to Doctrine 2. Using a tool like this makes it much more easier and prevents us from possible mistakes we could make while manually typing classes.

Multiplatform and very configurable

There are two things for which I love Skipper. The first is its multiplatform support and the second is that it is highly configurable. Although through its interface it is not possible to control as many options as I would like, the  configuration using XML files is a very powerful system ideal for versioning by the code bundle or application we are developing. For projects with Symfony + Doctrine I created configuration that you can see in this gist. Skipper uses XML project files, which means that we can also manually change the project files itself. Useful, for example, when we change the name of a class and want to do the same with all foreign keys that point to it, we open it in a text editor and perform an operation strings replacement. Skipper export supports PHP Doctrine classes with annotations, YML or XML. In my case I chose PHP with annotations. While the export works perfectly and respects the content of existing classes, it is a good practice to make sure we use correctly versioning system to be able to go back in case of any anomaly. After exporting the classes we can run our project Symfony app / console doctrine: generate: entities and we will write only validators and do some tinkering. At the moment it is not possible to define validators or defaults in Doctrine 2 projects. In my opinion this feature would prevent a lot of work and it would be quite appreciated. However, it is possible to contact the development team through the support forum, where new suggestions for new features or improvements are accepted.

Your Price

You can try Skipper for free for 14 days. Although it is a payed tool, I think the price is more than reasonable when you consider the comfort that brings and the work that we can save. Also, if you do a review like this Atlantic18 team will offer a juicy 10% discount which is not bad;). If you only need to see the diagram of a project without modifying the model, you can always install the totally free application display mode.

A < img > is worth more than thousand words

Here are screenshots that I’ve taken during the import of existing Symfony project, the result obtained and its subsequent export.

Skipper project import

Skipper project import

Skipper project imported

Skipper project imported

Skipper project

Skipper project

Skipper project export

Skipper project export

Skipper project exported

Skipper project exported

The data model belongs to the “Coupon” application that appears in the book “Agile development with Symfony2” of Javier Eguiluz, 100% recommended for all those that you have interest in you start Symfony 2.

Editor’s note to defaults and validators:
Regarding the thoughts about defaults and validators, unfortunately default values aren’t support by Doctrine2 at all and it’s directly PHP thing. We know we can export it to PHP classes, but in this case we started with different behavior between Annotations and XML/YML where such behavior isn’t available. The same is true for validators, which aren’t Doctrine2 feature but Symfony one.

Change the way you see your model

One of the main strengths of former ORM Designer and now Skipper is the ability to display project visually in easy-to-orient and easy-to-read form. Although modules and regions help in this regards, with growing number of elements in the model it was sometimes challenging to know which association went where. And some people may prefer not to use the option to split the connectors of associations.

That’s why we added new feature aimed at improving the overall model clarity even further:

Colored entities

Entity EditorAttentive spectators surely noticed new tab named “Appearance” in entity editor. Here you can change  header entity color, as well as background color. In case you will want to you can also change them back to predefined default colors.

From now you can customize your model so it might look for example like this one.

Colored associations

Association EditorAs well as you can change the colors of entities, you can also change the color of associations. You can find the option for changing of colors as a second item in General Settings.

So in larger model you can distinguish your associations so you can simply follow connections between entities.

Auto-coloring on import

Skipper_-Import_betterColoring of the association might be useful also while importing existing project into Skipper.

To turn this option on just check the option to “Use colors for imported associations” in Import wizard. This will automatically color every association, so you can easily orient in your generated model and it saves you from the necessity to do it manually later.


Native look for OS X and Linux

Hi Everybody,

From time to time we got requests from some of our Mac and Linux users to implement native look for these operating systems. We would like to make happy as many of our users, as we can, so Skipper brings native OS X toolbar and menu look.

skipper_press_release2By default, Mac and Linux users have their GUI style set to Toolbar style, Windows users have Ribbon style. If you want to change it, open Preferences window and in GUI settings choose your favorite style as your Menu style. Appearance will change after application restart.

In new toolbar style, the most used functions are contained in Toolbar and each of them has its own icon for so it can be found easily. Everything else is in top application menu sorted into 5 bookmarks: File, Edit, Tools, View and Help.

Hopefully this new look will be pleasant for you, however, if you find anything which can be better, let us know!

Skipper: Back and Forth

Hello Everybody,

Today I want to introduce a very small feature, that can do really big things. It can actually be a lifesaver sometimes. Undo/Redo. While you still can’t replace proper versioning and backups, it will make your work significantly more comfortable.

ORM Designer was not ready for this function, but many of you requested it, so we reworked the way the changes in the visual model are handled, and we bring Undo/Redo to you together with Skipper. We have upgraded the inner databases of Skipper, split all operations to transactions and then we have reworked the transactions, so the Skipper can keep track of the changes. And then we tested, and tested, and tested. All of this to ensure you can always seamlessly get back to where you started, or refresh the reverted changes, and to easily fix any mistake before it can become serious.

So now you can finally use those familiar blue arrows to enjoy much more comfort when working with Skipper.

New promo video and video tutorials

Have you ever wanted to explain to somebody what Skipper is about but couldn’t find the right words?  If you did, despair no more. We have created short promo video that provides anyone with very accurate idea about working and usability of Skipper.

You can have a look at it here:

But that’s not all. For quite some time we have felt, that our documentation is really awesome place. However it was clearly aimed at providing only visual information. Now it is also audiovisual. We have put together 10 video tutorials that cover every major functionality in Skipper from creating new project to importing project from MySQL Workbench.

You can find the tutorials here, in the thematically matching entry in the documentation and in our new video section on Skipper websites.

Let us know which type of tutorial you like better (plain text or audiovisual) along with your tips on topic you would like to see “filmed” by our crew.