Ok, here is my bullet list in a random order
At the Community team we create, maintain and troubleshoot a lot of widgets. Widgets that are in our support category (Extended Support) and if there is time, also the ones that we do not officially support (Community Support). While doing so, I needed some tools to speed up the workflow.
---- Widgets ----
This one uses Yeoman to scaffold a new widget, or add Grunt to an existing widget. Using Grunt, you can for example work on a widget and copy it to your project folder (by changing the project folder in package.json)
This tool was primarly used to get our widgets ready for the MX6 release late in 2015. It runs through an .mpk file (or several at once) and tells you whether or not the widget is using deprecations that will render it useless in MX6. If there is going to be a new release of the Modeler, I am upgrading the checker with deprecations for that as well. It outputs the deprecations to your console, or an Excel file
I am a Linux fan, so i use the terminal a lot (for Grunt, widget generator). I wanted to find a way to open my mendix project using the command-line. Meet mx-modeler. If you run 'mx-modeler -l' it will give you a list of all the installed versions. 'mx-modeler -v x.x.x Project.mpr' opens it with this specific version. 'mx-modeler -c Project.mpr' will tell you in what Modeler version the project is made.
---- Troubleshooting ----
Running "Check widgets" in your Modeler and it fails, but you don't see any output in your logs to pinpoint the problem? Use this 'hack' to get verbose output.
---- Theming ----
For UX people I created a way to leverage Gulp/Grunt (Gulp is preferred because it is way faster) in doing theming. There is one nifty little trick there: If you run 'gulp dev' (and have configured it properly) it will open your browser and runs the project through browsersync. If you make changes to you SASS/CSS files in the theme folder, it will automatically be injected in your browser (without you having to reload the browser).
This is still work in progress and will eventually be available under the Mendix Github organisation.
Using an XSD schema to import large Excel files:
Definitely Ctrl + G and Ctrl + Enter, use those a lot.
Bookmark deploy tab
I go to the Overview tab of my project and right click -> copy the url for the Deploy button. Then I make a bookmark for this link, so I can easily get my builds to T/A/P. Same can be done for any other the other links at the top of course.
Use PersistentSessions = true in your local configuration to keep your login when you make changes and rerun your application
Back with Ctrl+Tab
This is probably such a no-brainer that most of you consider it common knowledge, but I'm always surprised by how few Mendix devs know that Ctrl+Tab while in a modeler tab will return you to the previous tab you were on, much like a back button. This won't move you a tab left or right (like it would in your browser) but actually keeps track of your history and move you to the tab you were on last.
Mouse with thumb buttons - custom key mapping/binding
Set one to 'Maximize screen'. This will help during XPath input and modelling in general. I've also mapped mouse wheel click left to '$'. Try it! You'll use it more than you'd think.
Use Anonymous browsing sessions
To combine up to 6 logged in users (IE + FF + Chrome + anonymous browsing sessions per browser). Useful for admin/superuser + specific usergroup testing.
We use fakeSMTP to run a local SMTP server for the same use as Ronald.
EyeLeo for some scheduled breaks I don't know about you guys, but I tend to sit way too long at my desk without standing up. Therefore I use a tool called EyeLeo to remind me to have regular breaks. Apart from it being healthier, it also is a nice moment to reflect on the work I've done in the past half hour and decide how I'm going to spend my next half hour.
Ditto for CTRL+C history I never want to work without Ditto again. This tool was recommended to me by a colleague. It remembers all of your copied text, and with a simple shortcut you can select on of your previous copies as your next CTRL+V. Real time (and frustration) saver!
f.lux to remove some blue light from your monitor A sidenote to this tool is that it's only useful if you're not doing design work, since the colors on your screen will look different. Apart from that, f.lux has saved me a lot of headaches. Working in low-light areas, or early in the morning/late at night, this tool will recreate the lighting in your room on your monitor.
Together with our mendix app comes an API bases on SOAP web services. We created automated tests in soapUI to make sure the API works properly. Once automated tests have been developed, this can be a great timesaver. This articld describes how to add automated tests in soapUI: https://world.mendix.com/display/howto50/Testing%20web%20services%20using%20SoapUI
Use SMTP4Dev (https://smtp4dev.codeplex.com/) so you can also test the mail traffic local and do not have to wait a couple of seconds for the mail to fail before continuing the rest of the process.
CSS source map
I always turn on the Source map feature on each file in Koala, I'm sure other SASS precompilers have the same thing. Chrome picks up the generated map file.
This allows you to directly inspect and work on the .scss rather than the generated .css. It also makes the standard theme classes way easier to find and override for your needs.
Microflow action captions.
Take the time to put in some meaningful text in your microflow actions. Makes the microflow easier to read. And when something breaks, quite often the log has the action text
Here’s what I use most of the time :
Find – CTRL + F
Advanced find – CTRL+ Shift + F
Suggestions/ IntelliSense – CTRL + Space
OK/Complete Actions – CTRL + Enter
Close all tabs – CTRL + W
SASS compiling (Auto-compile) – Scout (Koala is also an option)
Email capture locally – Papercut
I always build and push to the server while asking for any approvals, this saves you the extra 3-4 minutes the code is being moved in between. You can then even navigate off and leave the new version to be deployed with a restart later.
If you need to roll-back just push the previous version to the environment and you should be back to the original position.