ResponsiveLime – Making LimeSurvey responsive with Foundation

14. August 2014

LimeSurvey is a powerful tool that helps us to deliver questionnaires for User Experience evaluations or the survey for our annual akquinet Technology Radar. However, we were unhappy with the structure and styling of the survey, especially with the missing responsiveness for different screen sizes. LimeSurvey’s default templates build on a table layout and jQuery UI. Recently, we used the CSS framework Foundation and liked its fluid grid and the easy customization compared to Bootstrap. That is why, we chose Foundation to transform the template’s table structure into a responsive grid. For a detailed comparison of Bootstrap and Foundation that can help to make a choice based on the project’s requirements, see Gagan Naidu’s comparison of Bootstrap 3 vs Foundation 5.

Here you can see a preview of ResponsiveLime for desktop and mobile screens in comparison to the default template:

ResponsiveLime desktop preview

Figure 1. Preview of ResponsiveLime (left) and LimeSurvey’s default template (right) for a screen width of 1100px.

ResponsiveLime smartphone preview

Figure 2. Preview of ResponsiveLime (left) and LimeSurvey’s default template (right) for a screen width of 320px (e.g., iPhone 5S).

Our template is still in its childhood, but we want to share our effort with you and invite you to contribute:

https://github.com/akquinet/ResponsiveLime

 

If you have any questions or remarks, drop us a line: Martin Grund (martin.grund [at] akquinet.de)


From solution to problem – advising in project management

14. August 2014

Dieser Artikel auf Deutsch

One recurring pattern in software development plays out during the initial phase of the project: The client describes their requirements. So far, so good – everything is clear, and this is also how things are supposed to go. However, it becomes apparent at this stage that the requirements are formulated in such a way that they stipulate a specific approach to arriving at a solution. This method is already familiar, normal, and well rehearsed for the client in this form, so it is more or less viewed as the only way to reach the goal. The thinking behind this is that if only the solution is formulated in sufficient detail, the schedule and costs can be determined directly, and nothing else can go wrong during realization.

Is that really the case?

Read the rest of this entry »


Agile fixed price projects – risk or opportunity?

14. August 2014

Dieser Artikel auf Deutsch

At first glance, the term “agile fixed price project” sounds like a contradiction in terms. Fixed price projects feature exact specifications, offering both sides clarity as to the services to be performed, the schedule, and the parties’ cooperation obligations. The contractor bears the risk – for which the client pays a commensurate markup in turn in some cases.

The term “agility” means that something is flexible and mobile, so it encompasses change as a characteristic. Agility is becoming increasingly popular, especially in the context of agile software development: Less red tape and more iterative cycles lead to the result that is truly needed at the end of the project.

Changes at a fixed price – how could that possibly turn out well?

Read the rest of this entry »


Migrating Applications with Windup

12. August 2014

windup-logo

Windup is a tool that scans your application for migration relevant items and presents its findings within an html report. It finds a variety of items starting with standard and vendor specific deployment descriptors and ending with the detail of migration relevant method calls (like JNDI lookups or the use of native APIs).

Read the rest of this entry »


Secure JSF Application – why you should always define a servlet mapping

16. May 2014

If you deploy a JSF application in WildFly 8, you can omit to define the JSF serlvet mapping. In this case three default mappings will be active out of the box.

  • <context-root>/faces/*
  • <context-root>/*.jsf
  • <context-root>/*.faces

Tested on WildFly 8.0.0.CR1 and JBoss EAP 6.2.0.GA

This behavior is not mentioned in the JSF 2.1 spec. But it explicitly allows implementations to use proprietary means to invoke the JSF lifecycle.

In addition to FacesServlet, JSF implementations may support other ways to invoke the JavaServer Faces request processing lifecycle, but applications that rely on these mechanisms will not be portable.

This default mapping can be problematic as it provides several path to access resources within your web application. Especially if you use security constraints to protect parts of your application. For instance if you restrict access to <context-root>/secure/* using a security constraint in your web.xml, web resources can still be accessed via <context-root>/faces/.
Read the rest of this entry »


Upgrading and patching the Red Hat JBoss Enterprise Application Platform (JBoss EAP)

16. April 2014

One of the biggest advantages, besides the support for the Red Hat JBoss Enterprise Middleware are the access to continuous updates and bug fixes. In previous versions, minor patches could not be applied automatically, also updates or bug fixes had to be installed manually, by changing individual configuration files and replacing Java Archives.

Since version 6.2 the Command Line Interface of the JBoss Enterprise Application Platform (EAP) contains a command to apply minor updates and patches without changing individual files manually.

Read the rest of this entry »


Database migration projects with GuttenBase – Copying done right

15. April 2014

There are many tools to visualize or analyze databases. You will also find lots of programs to copy databases between different vendors. However, we experienced  these tools are not flexible enough for our migration projects. They fail because, e.g., they cannot map the various data types between different databases correctly, or because the amount of data becomes too big. The solution we suggest is to program sophisticated data migrations using an extensible framework instead of configuring some (limited) tool. We found that this approach gives us much more flexibility when performing data migrations. Migrating a database almost always requires a custom solution, since every system has its peculiarities. Another advantage of “programming” a migration is that your developers may freely combine plain copying code with computational parts. For example, it may be necessary  to contact a third-party system during a migration process in order to obtain some information. In one of our projects we had to contact a GIS (Geographic information system) server to relate the positional IDs stored in the database with those in the GIS database.

Read the rest of this entry »


PostgreSQL: Partitioning big tables (Part 2)

9. April 2014
Dieser Artikel auf Deutsch

Alongside various strategies for handling large amounts of data with indexes, PostgreSQL provides another feature: splitting the table with inheritance. This separation of a table’s data into different child tables is called “partitioning” in PostgreSQL.

In part one, we described the pro and cons of this method and its conditions of use. In this second part we describe the steps required to actually configure a partition for production. The proposed instructions are intended for use with a PostgreSQL version 9.2 database but may work on all versions from 8.4.
Read the rest of this entry »


PostgreSQL: Partitioning big tables (Part 1)

7. April 2014
Dieser Artikel auf Deutsch

Alongside various strategies for handling large amounts of data with indexes, PostgreSQL provides another feature: splitting the table with inheritance. This separation of a table’s data into different child tables is called “partitioning” in PostgreSQL. Because it does require a bit of effort to implement, and because there are also limitations in how it can be used, you need to take some points into consideration when creating a partition.

This first part of the article presents the pro and cons and what to consider when using partitioning to improve performance. In the second part we will describe the steps to create a production-ready partition.

Read the rest of this entry »


Interactive SVG with AngularJS – Part 2

26. February 2014

When developing mobile web applications with responsive design, SVG are a viable solution for flexible images.
AngularJS in turn enables the wrapping of complex UI logic into custom HTML directives, resulting in clean and maintainable modules.
The combination of these technologies provides a good basis for interactive control and status elements. It is suitable both for building highly complex custom controls, as well as covering simple use cases in a generic manner.

Part 1 of this article explores several methods of employing SVG as flexible images in a cross-browser compatible manner.

Part 2 describes the use of AngularJS to construct custom control and status elements by manipulating SVG images.
Read the rest of this entry »


Follow

Get every new post delivered to your Inbox.

Join 72 other followers