Form validation in Aurelia is actually pretty nice.
You can configure the validation rules in a chainable api and add multiple rules to single fields.
However there is a problem if you want to trigger the validation of an input when another input is filled. A good example are two inputs (a start value and an end value). Of course you want to validate that the start-value is less than the end-value. But if you add the rule to both fields only the edited field will show (and reset) the error message.
Ok… This explaination might be a bit confusing… Let’s consider the following example:
You have two inputs, ‘Start’ and ‘End’. End has to be greater than start. You type ’20’ as start and ’30’ as end. It gonna look something like this:
But suddenly you realize, the start should really be 50. Of course the validation will fail, and the start will be marked as invalid.
If you now change the value of end to 100, the start-input will still be marked as invalid, because only the input you are editing is validated and you haven’t told the validation that the inputs are dependent.
This is only an example of many other use cases. I’m sure you can think of other examples like two dates (I will show this in another blogpost, where I’ll tell you about some problems I had with the Aurelia materialize datepicker), or two inputs where only one should be filled and the other be empty.
Everything results in one problem: Validation of dependent inputs.
This article explains why the error java.lang.StringIndexOutOfBoundsException: String index out of range: -1 in the class ServerSideStateHelper in the method getState (313) might be someone trying to hack your application server. It is getting quite technical in here… but bear with me… it’s really interesting. I also break down the actual attack to demonstrate what the attacker was trying to do.
We have decided now to publish our free Software package on Maven Central under the namespace “com.illucit“. This way the packages can be used by everyone without having to declare a separate repository in Maven or SBT.
This software packages also contain the software displayed in out Showcases:
Recently one of our customers faced the challenge of fixing a production error in his desktop client application. Using SVN this may be a time consuming and error-prone task. So I held a workshop about Git and GitFlow.
Our customer’s application is deployed in different versions. It may also be deployed to different customers. With a different set of features. This scenario seems quite common nowadays. However a lot of software companies are not ready to tackle this problem.
Git – a distributed Version Control System
The easiest and most effective way to support this scenario is to implement a workflow based on Git. Therefore I held a workshop about Git and GitFlow.
Project Lombok provides annotations which reduce boilerplate code in Java applications (see Listing 1). The Netbeans IDE supports it almost out-of-the-box. You just have to enable the option “Project Properties > Build > Compiling > Enable Annotation Processing”. However the current version 1.16.8 is not working using Netbeans 8.1 and Maven.
Automatic Deployment Package Version Number Assignment
This plugin for the build tool Atlassian Bamboo provides 2 new types of tasks to extract variables from text or XML files. These extracted information can then be used later in the process e.g. by using the extracted variable to automatically set the version number for a deployment package. Without this plugin you always have to copy and paste the version number.
In the past weeks we had the problem, that some of our emails sent from our company SMTP server were flagged as Spam by Gmail (and some servers that use a spam filter from google), although we didn’t use any language we considered typical for spam.
After some investigation and fiddling with the server settings, I noticed we were using IPv6 to connect to the Gmail SMTP server. I found someotherposts indicating that Gmail has problems finding the reverse DNS entry if you connect via IPv6, thus flagging your emails as spam.
There seem to se some workarounds for this:
If you don’t use IPv6, you can simply disable IPv6 in your MTA (Mail Transfer Agent), so only IPv4 is used (where Gmail can resolve the reverse DNS entry). For postfix you can do this with:
As a software developer, it is important to keep up with current technologies, stay in touch with fellow developers and look out for interesting projects.
Especially Open Source Software (OSS) has a lot to offer for the whole community of developers and techies, so platforms like Github and Bitbucket have become bigger and more important over the last years.
The key word is “Social Coding”, a concept in which software development is not pursued in small, isolated teams, but inside the whole community. The main aspect is to make OSS projects public very early to profit from the many suggestions, add-ons and help from the community. Also finished software projects can be put on social coding platform to distribute them to a larger audience and to allow others to build derived works upon existing software.
Github basically invented the “pull requests”, an idea where people who want to make contributions to an OSS project can simply fork the current process of the software into their own account, implement some changes, and present the changes to the maintainer of the original software. This practice encourages the maintainers to get code improvements and new features from the community without giving away the control over the project.
As we really like this idea of social coding, we created accounts on the platforms Github and Bitbucket for illucIT, too. I hope we will find some interesting projects to contribute to and we also plan to release some OSS projects there by ourselves in the future.
illucIT is a software development company with focus on Java Enterprise Applications. We implement tailor-made software solutions that suit the business requirements of our customers. For that reason we employ state of the art technologies for web, desktop and mobile platforms. To provide our customers with a full service, illucIT covers all parts of software development from agile project management to actual programming including UX and design.