More engaging surveys with ADX Studio

ADXStudio is an open-source Integrated Development Environment (IDE) for people who want to create Askia Design Controls or Askia Design Pages easier and faster. This application supports AskiaScript / JavaScript / HTML / CSS and more.

ADX Studio app icon

We designed this application in order to provide a dedicated tool for survey authors who want to take their surveys one step further: interactive survey controls (Geo Maps, touch-friendly drag and drop, …) or custom layout (mobile first survey design). It therefore allows you to easily set the parameters for your survey controls or layouts, use script (AskiaScript and JavaScript) to push the boundaries of your assets and a preview in order to provide real-time feedback.

ADXStudio user interface

You can download ADX Studio or even contribute!

ADX Studio was built with Electron and is based on NodeJS. Furthermore, we have included CodeMirror (already used in DesignVista) in order to provide a complete text editor with syntax highlighting and code completion.

If you want to learn more about ADX Studio, we added two articles in our Help Centre:

Fresh articles from our knowledge base

Our tech support team has been hard at work lately on providing you with many new articles designed to help you better benefit from our software suite: could it be survey design, fieldwork management or data analysis.

Here are some of the most noteworthy articles from our help centre:

Randomise or rotate a code list with groups & headers

It’s often required to show a code list with several group headers and responses within these groups. In most cases it’s necessary to randomise the responses within the groups and / or the groups themselves. This article shows how this can be done using the Change response order routing action providing and example .qex and syntax. This functionality is often referred to as Block randomisation.

List of response items with response headers

By combining the use of a special character and of the Change response order routing to identify the response headers, you can easily setup your block randomisation as seen below:

Block randomisation

Take a look at the article for more information.

HTML table around screen elements

It can sometimes be hard to layout elements exactly as you want on a web screen if there are many elements or loops in play. This article will step through neatly storing several elements of a loop on a merged screen in a HTML table.

HTML tables may seem outdated but they are still the best way to semantically layout tabular data on web pages. Such layouts as the one below are nearly always best designed using the HTML table element:

4 question loop with a table layout

Check out the help centre article for more details and access to an example survey.

Using Google’s reCAPTCHA in AskiaDesign

The main purpose of integrating a reCAPTCHA in an askiadesign survey is to protect your survey from spam, abuse or bots while letting your respondents pass through with ease.

The only requirement is that you register your domain with Google’s reCAPTCHA in order to obtain a private key and add the appropriate JavaScript snippet to your survey.

You can play with this on our demo survey now or head straight to the KB article!

Statistics on mailing

This short article provides a description of each category located in the Statistics on mails tab in askiafield’s Supervisor.

Statistics on emails

Read the full article here for more information.

Expanding our dev team!

Askia is expanding its development team in our Paris office and we have two open positions for you to join our dev team!

Full Stack engineer

We are currently looking for a full-stack C# / JavaScript developer for our Paris office.

Requirements
  • Proficiency with C#
  • Proficiency with Javascript (vanilla)
  • Experience designing web-services with C# and ASP.NET
  • Good knowledge of SQL Server
  • Good knowledge of IIS
  • Good oral and written communication in English
Preferred skills
  • Experience with ExtJS, NodeJS
  • Experience with C++
  • Experience with statistics
Description

The main role will be to integrate a development team to work with us on our range of survey software applications. You will develop and maintain C# web-services, implement web interfaces in JavaScript (currently using the ExtJS framework).
Even though this position is for our Paris office, our dev team is located in several of our offices (Paris, London, Brussels and Colombo); therefore, good oral and written English is required.
This is a full-time permanent position based in Paris. Compensation for this position is 45K€ (depending on experience); some of the perks you will enjoy: integration of your mobile phone in our fleet, restaurant tickets, competitive company savings plan, …

Contact mamadou@askia.com


Development project manager

We are currently looking for a project/team manager with strong development knowledge for our Paris office.

Requirements
  • Proficiency with C# and Javascript
  • Experience managing a development team
  • Fluent English and French
Preferred skills
  • Experience with Agile / SCRUM methodologies
  • Good oral and written communication skills
Description

The main role will be to integrate and manage a development team (8 in-house developers and 3 external developers). The secondary role will be to take part in the development and maintenance of our survey software applications.
Even though this position is for our Paris office, our dev team is located in several of our offices (Paris, London, Brussels and Colombo); therefore, good oral and written English is required. You will also be regularly traveling to each of our development hubs (Paris, London, Brussels and Colombo).
This is a full-time permanent position based in Paris. Compensation for this position is 50K€ (depending on experience); some of the perks you will enjoy: integration of your mobile phone in our fleet, restaurant tickets, competitive company savings plan, …

Contact mamadou@askia.com

Askia at Printemps des Etudes

Askia will be at the Printemps des Etudes at the Palais Brongniart for the 6th edition, the April 20th & 21st 2017.

As a key player and innovative partner in the French research market, we couldn’t miss this opportunity to be once again at Printemps des Etudes to showcase our latest solutions as well as our vision:

A new edge, our new identity

We’ll be showcasing our brand new stand layout, reflecting Askia’s new identity and we will be happy to welcome you on our Stand 5 and have an introductory chat on these solutions or a demo with our team.

Here’s some info about the Printemps des Etudes.

Announcing a dashboard app partnership with E-Tabs

We’re thrilled to announce a new strategic partnership which sees two industry leaders combining their vast skills, experience and resources to develop a revolutionary dashboard designer application for market research.

The two companies have been empowering the Market Research industry for over 20 years with E-Tabs at the forefront of market research reporting and visualization, and Askia providing state-of-the-art software for surveys and analysis.

Askia and E-Tabs make a perfect match; our offerings complement each other”, says Jérôme Sopoçko, Askia founder. “Through this partnership we are effectively combining our expertise in analysis and reporting to create a very compelling proposition for the industry.

The web-based dashboard designer, available as a standalone tool or linked seamlessly with Askiavista analysis software, will be a genuine game-changer. Benjamin Rietti, President and founder of E-Tabs added, “The dashboard design market is crowded but spectacularly fails to address the specific needs of market research. This exciting new application will combine a cutting-edge user experience with a native understanding of market research data and functionality. The industry as a whole will gain significantly from this coming together of two of its leaders”.

Further information about the new software and this strategic partnership will be released later in the year so stay tuned!

About E-Tabs

E-Tabs has been providing cutting edge data visualization and reporting solutions to the market research industry for over 20 years. E-Tabs helps businesses all over the globe boost their productivity by making the process of producing their reports and visualizations quick, simple & cost effective.

AskiaField 5.4 is ready for you

We are thrilled to announce that Askia’s entire software suite is ready for deployment in version 5.4.

Among the list of features of this major version, we want to highlight the very reason that made us switch to a new version track.

Quota revamp

quota54

5.4 introduces a total revamp of the quota system. Among the main features are

  • Quotas can now be set up on multi-coded questions and numeric questions.
  • Minimum and maximum quota targets.
  • Easy crossed-quotas.
  • Quota definition, monitoring and quota breakdown by interviewing mode are now on one single view.
  • Copy-paste large quota structures from Excel.
  • New keywords to master least-filled setups with a single routing.

This means a lot more control during the crucial moments of the fieldwork : balancing the last interviews so that all quota targets are filled up together, neatly, and fast.

You can check all new quota specs in the Knowledge Base.

And for the curious crowd, here is a good read if you’re interested in discovering what’s behind the scene, from a previous blog post.

CAWI to CATI, back and forth

5.4 is our first fully bi-directional multimode version. You can now natively switch interviews from CAWI to CATI and vice versa.

multimode

Field API

5.4 lays the ground stones for extensibility with Field API, allowing you to build ambitious end-to-end automation systems. Upon checking an extra checkbox during the setup, AskiaField can now receive orders from the outside. This also leaves an open-end for various integrations (with CRMs, CMSs, productivity systems….you decide).

Here is our developer reference if you’re interested.

Getting started

Like what you see ? Check out our full KB section to start mastering your new toolbox, and contact our support team to schedule the installation

Askia is back at Insight Show

The Insight Show strikes back in 2017: new date – 8th & 9th March, new location – Olympia West, and a brand new event organisation. Askia couldn’t miss this opportunity to come back to this major event as an exhibitor once again.

The timing couldn’t be better as we have a wealth of new developments to share with visitors. For starters, we’ll be showcasing our brand new stand layout, reflecting Askia’s new identity; we will also bring our uber-cool Engager for a refreshingly interactive experience; our fantastic sales team will be on hand for live demos and to discuss Askia’s latest product releases and developments.

Here’s some info about Insight. Askia will be on stand ID 604 right at the entrance of the show. Get in touch now to schedule an introductory chat or a demo with our team.

askiavista 6.0.3.9

As the askiavista user base keeps growing, vista Administrators have asked if we could provide broader and more flexible usage statistics. Well, as we start this new year, we’re delivering a brand new Activity monitoring with vastly improved monitoring capabilities.

Available by default to askiavista Administrators, it will enable them to monitor: surveys, users, groups, companies, servers, errors, as well as the different actions and types of analyses that their end-users are running on the platform. Furthermore, for those who are administering multi-server askiavista instances, the ability to see statistics per server(s) will further improve your ability to manage performance with survey and user loads, as well as plan for maintenance or further server provisioning to scale up.

Check out the following screenshot to get an idea of the information you can expect to see on your server:

AskiaVista Activity monitor

And the good news doesn’t stop here… We decided to enable all these new Activity monitoring capabilities in the API, which means developers can include these Activity statistics in their web applications and dashboards!

For a full overview of the options available for the Activity monitoring please refer to the specifications; developers can refer to the updated API documentation.

Another area we’ve worked on in 6.0.3.9 is load-balancing for multi-server architectures. When an end-user logs in, askiavista can now “automagically” assign the user’s session’s analytical work to be handled by the “best” AVS-server available in the pool. Basically, askiavista monitors the work-load of the servers it has available, and will assign a user session’s analyses to the server which at that point in time happens to be the least solicited, and thereby significantly improve the response time for returning those analyses results to the user.

Finally, 6.0.3.9 brings many new features, and various bug fixes (see our version history for full details)

  • Added support for Nested Edges
  • Added support to pick-up a question’s Long caption when the Short caption is empty
  • Added support for dynamic Universe captions for ??U??
  • Added a select|deselect all button in the Create filter / response window
  • Added the option Appears like a stat calculation for Calculations by script
  • Added a place-holder page which is displayed when accessing deleted Portfolios
  • Added support to show Raw Data for Date variables
  • Added a new Activity page to monitor application usage statistics (accessible via the API)
  • Added support to set a Survey’s Properties’ default Level to: {Row level} or {Column level}
  • Added a warning message when switching from AskiaScript‘s Advanced mode to Assisted mode
  • Improved fail-over and load-balancing features for AVS farming
  • Improved Calculation by script to show a Column total for a variable outside the Level (Wave), ie. return the Interview Level Column total
  • Improved Number formatting, by ensuring it is not applied on Significance and Column Significativity
  • Improved support for Cleanup scriptssearch & replace functionality
  • Updated the URL-link from within askiavista to our online help documentation
  • Updated askia.config documentation
  • Upgraded LDAP SSO from v5 to v6

New in Askiaface for iOS

We’re pleased to announce that we have released a major update to askiaface for iOS on the App Store; version 3.3.0 is jam-packed with exciting new features and many dead bugs:

Askiafield 5.4 quota management

With askiafield 5.4, we have implemented four new Quota keywords which will dramatically simplify the setting of your surveys when you want balanced or least filled quota.

  1. AvailableQuota: returns the indexes of the responses of the TargetQuestion still available (to do > 0) and sorted from the max to do to the min to do using the count for the sort.
  2. AvailableBalancedQuotas:  returns the indexes of the responses of the TargetQuestion still available (to do > 0) and sorted from the max to the min using the following formula : (Target% - Observed%) / Target%
  3. QuotaList: returns the complete indexes of the responses of the TargetQuestion sorted from the max to do to the min to do using the count for the sort.
  4. BalancedQuotaList: returns the complete indexes of the responses of the TargetQuestion sorted from the max to the min using the following formula: (Target% - Observed%)

Askiafield 5.3.5 quota management

We’ve finally added support  for manual quota management! You can now design your mobile Askia surveys while leveraging the usefulness of such keywords as QuotaToDo, MaxQuotaToDo and other IsQuotaFullFor in order to better apply your quota methodology within your questionnaires!

Added Crashlytics support

We have integrated the Crashlytics engine in order to improve our error logging. Crashlytics allows us to able to locate, down to the exact line of code, any issue that causes application instabilities. This will greatly improve our response time and efficiency when dealing with pesky bugs!

New 5.4 AskiaScript

We have added support for askiadesign’s 5.4 AskiaScript! You can now make use of many new goodies such as:

  • Run Askia Script: with this action, it is now possible to run a script to complete multiple actions in one go. These are the new methods for question objects.
  • HasParentChapter: Check whether the question has a parent chapter
  • ParentChapter: Will return a string containing name of the Parent chapter
  • AgentID: Identifier of the interviewing Agent
  • AgentName: Name of the interviewing Agent
  • EndTime: Indicates the finished date/time of the current interview
  • StartTime: Indicates the started date/time of the current interview
  • Language: Returns the current respondent language
  • Scenario: Returns the current respondent scenario
  • and many more!

Improved memory management

The application has been completely transitioned to Automatic Reference Counting (ARC) in order to better memory management. Simply put, this allows askiaface for iOS to improve the way it allocates and deallocates objects automatically without obliging our developers from manually releasing unused or obsolete objects from memory.

For you, this will translate in a smoother and snappier experience! Win :)

Miscellaneous fixes

We have also took the time to fix some issues some of our users were experiencing:

  • Fixed various issues with routings
  • Fixed issue with ADCs not rendering
  • Fixed issue when syncing interviews with quota data
  • Fixed an issue with AWS resource upload
  • Fixed a memory leak when syncing interviews with AWS resources
  • Fixed an issue where interview description was no longer displayed in Modify interviews
  • Fixed missing interview date in Modify interviews
  • Fixed an issue that would prevent the interview file name to be displayed when Askiaface Description was missing

You can download askiaface for iOS now or update directly from your iPhone or iPad!

Of Askia Scripts and Functions

Introduction: What are Askia Scripts for? Or should I say what are their function?

AskiaScripts were designed to evaluate conditions within a survey – at first to branch the survey and then to set values to (often dummy) questions. They needed to be easy to write (and re-read!) and the user should know at creation time if the script was going to succeed or not.

The needs to improve AskiaScripts came as our clients’ surveys became incredibly complex – and that we used our language to produce our ADC.

Lately, AskiaScripts have been used to run very complex routings – like the post-codification of open-ended responses. We had a request to optimise a routing which had hundreds of lines…

AskiaScripts are also used in Tools to verify the quality of data at the end of collection. It’s here that the demand of functions came loudest where there is a need to norm the way straight-lining is evaluated for grid questions for instance. Here again we have seen scripts which have thousands of lines.

Finally, AskiaScripts are also used in Analyse to achieve increasingly complex calculations on the fly – and aggregating data while being at interview level.

From the feedback we received, we believe 2.0 is a success although the in-take has been slow (even internally).

I believe AskiaScripts will be used for weird custom adaptive conjoint, very complex calculations at run-time (segmentation) – I think it will also be used in defining and running super portfolios at a later stage.

Let’s summarise what the core values of AskiaScripts are – knowing they could be antonymic:

  • Simplicity
  • Adapted to survey research
  • Reliable: minimise the likelihood of runtime errors
  • Powerful: the competition often uses JavaScript (which does not have the 3 previous points)
  • And finally extensible – by Askia and by users

Functions: extending Askia Scripts

Rather than us adding functions whenever they are needed (which will still happen), we have decided to let users create their own functions. Teach a man to fish and you have saved yourself a fish.

A function is a piece of code that you can call with different parameters.

By default, the parameters of a function will be passed by value for our basic atomic types: numbers, strings, and dates. The arrays (and all complex objects) will be passed by reference.

Script Value Reference screenshot

If we want to change the way the parameters work, we can use the keyword ByVal or ByRef to force passing the parameter by value or by reference respectively.

Script By Val By Ref screenshot

Let’s talk about scope, baby

Scopes of variables screenshot

A scope defines where a variable is available.

Variable1 is available throughout your script. Referring to Variable2 will generate an error if it’s after the Else statement.

AskiaScript hit the same problem that most scripting languages have had (JavaScript, old VBA, … ). Every variable created is global – unless it’s within a For or an If – or a function.

This might not be a problem when you write a routing condition. It will be if you write an Adaptive Conjoint or a full-on survey analyser. You will need to remember which variables you have already used and name them differently and it will make it very hard to re-use code (the holy grail of any programmer). It also makes IntelliSense (automatic code completion) absolutely unusable.

Every language came up with a different solution to that problem. The original 1960 languages had global variables. Then functions were invented (with parameters passed by value or by address). Then classes and name spaces were invented. JavaScript went another way – it used nested functions to make sure that variables (and sub-functions) were not visible everywhere.

To be or not to be typed, that is the question…

Any variable or method in Askia is strongly typed – this means that at compilation time, we already know the type of the variable. This allows us to know if you can use a method or not for every object.

For questions, this means that we we know that Gender.Value is a number (1, 2 or DK) and that FavouriteNewspapers.Value is an array of numbers.

But if we have a function that takes a question as a parameter, we do not know the type of its value: it could be a number, an array of numbers, a string or a date…

Script Typed Question screenshot

Within the function, we say that the question is anonymous. And we have defined its Value to be a Variant. A variant is an object whose type we only know at run-time. For this, you have a few properties that you can use to convert a Variant into something more useful.

A variant has the property InnerType which indicates what it holds. You can convert any Variant into something else with the following methods: ToNumber(), ToString(), ToDate(), ToNumberArray().

Script Variant To String screenshot

Mods rule!

After a lot of internal discussion, we have decided to define Modules – or name spaces. You will be able to put together a set of variables and functions together. By default – and unless you specify it – these variables and functions will not be accessible from outside of the modules – in Object-Oriented Programming, this is called encapsulation.

You will be able to make some of the variables and functions available from outside the module – they will need to be prefixed by the keyword Export.

To clarify everything, let’s have some sample code:

Script Module screenshot

Inside the module, you can refer to the variables MaxAnswers and Pi from every-where. And you can call any function defined in there.

Outside the module, you will have to write SampleModule1::DoTheCalculation or SampleModule1::MaxAnswers to access the public members.

The default way to create a module is with Module XX / EndModule. You can either include the definition of your module in your condition script OR write it in a file that you add as a resource. These files must have a .asx extension (Askia Script eXtension). To use a module in a routing, you need to call Import + name of the module.

Script Import Module screenshot

Note that a call to SampleModule::PI or SampleModule::DoTheCalculation would return an error.

When Import SampleModule1 is called, all the code which is outside of the function will be run – that is everything in Initialisation a) and Initialisation b) in the example above.

AskiaScripts evolve all the time… and we might create a function which conflicts with a user defined one. The user defined one should still work (and be called) once the new version is released – back compatibility is important.

One side effect of what we have decided to do with modules is that variable declared in the main scope will be global in a whole script if modules are not used. We are hoping we won’t regret this in the future but the aim of AskiaScripts is not to build full on applications… yet!

Conclusion

Functions and modules will be available in 5.4.5 – released in askiafield in February 2017. We will – at a later stage – introduce newer concepts – true OOP, lambda functions. Imagine two instantiated similar modules, it’s pretty much like two objects! We might have something like Dim myObject As Module1 somewhere down the line.

I also believe that we will like to add methods to Askia objects: example Array.RemoveDuplicates().

Script Remove Duplicates screenshot

Note the possible keywords Extends and This (should we call it This or Self?)

But in the meantime, what we have added should make most advanced users happier. We’d love to hear what you think and you suggest what we do next.