Categories
Business Tips

How to become a Video Game designer : Education & Training

In the first part of our series we looked at how to plan and get started for a career as a video game designer, taking a look at what a game designer actually does, who typically employs them and the potential for earning good money. In this second part we’re going to look more closely at education and training.

video game designer

If you have spent any time researching a career in game design, then you probably already know that the most current game design training is needed. This industry is growing; however, it remains extremely competitive. Therefore, it is essential to have expert knowledge of the entire game R&D process. If it is your goal to work for a game studio or to design your own games, you need training as a programmer and in graphic design or art.

Degree Programs for Game Design

Many universities offer courses in computer science. However, designers may need a bachelor’s degree if they are planning to work for large game studios. Although some colleges offer a degree in game design, aspiring game designers can get the necessary training from computer science, software engineering, or related degree programs.

Required Coursework

The required coursework for game design programs cover subjects like 2D, 3D and CAD modelling and animation. They also include level and interface design. Other courses needed are in storyboard rendering, drawing, and scripting.

Co-Curricular Activities

Many schools have a club for students who wish to work on game design and development outside of the classroom. If your school or program doesn’t offer a game design club, join their AV club instead.

Coding Bootcamps are a great way to learn a lot in a short period. These are often available free or low-cost through various schools or communities. There are also some free camps available online.

Extra-Curricular Activities of a Video Game Designer

It’s important, also, that you regularly play video games. As simple as that sounds, you need experience as a game player. It helps you become aware of the most modern trends in the industry. Understanding the most current advanced gaming technology can also be beneficial. Pay attention to how games are structured and begin to think of ways you would improve them. Make notes for when you begin to design your own game.

Some employers will require a bachelor’s in video game design or related computer science program, while for others A-levels will be the minimum requirement. To make up for insufficient formal education, you may need to have experience working within the computer science, or graphic arts industry. You will need to possess an understanding of programming languages, software design, and modelling programs.

Next week, we’ll take a close look at how to finally launch your career.

 

Categories
Languages

What is the best programming language for Machine Learning?

Q&A sites and data science forums are buzzing with the same questions over and over again: I’m new in data science, what language should I learn? What’s the best machine learning language?

machine-learning-programming-language

There’s an abundance of articles attempting to answer these questions, either based on personal experience or on job offer data. Τhere’s so much more activity in machine learning than job offers in the West can describe, however, and peer opinions are of course very valuable but often conflicting and as such may confuse the novices. We turned instead to our hard data from 2,000+ data scientists and machine learning developers who responded to our latest survey about which languages they use and what projects they’re working on – along with many other interesting things about their machine learning activities and training. Then, being data scientists ourselves, we couldn’t help but run a few models to see which are the most important factors that are correlated to language selection. We compared the top-5 languages and the results prove that there is no simple answer to the “which language?” question. It depends on what you’re trying to build, what your background is and why you got involved in machine learning in the first place.

Which machine learning language is the most popular overall?

First, let’s look at the overall popularity of machine learning languages. Python leads the pack, with 57% of data scientists and machine learning developers using it and 33% prioritising it for development. Little wonder, given all the evolution in the deep learning Python frameworks over the past 2 years, including the release of TensorFlow and a wide selection of other libraries. Python is often compared to R, but they are nowhere near comparable in terms of popularity: R comes fourth in overall usage (31%) and fifth in prioritisation (5%). R is in fact the language with the lowest prioritisation-to-usage ratio among the five, with only 17% of developers who use it prioritising it. This means that in most cases R is a complementary language, not a first choice. The same ratio for Python is at 58%, the highest by far among the five languages, a clear indication that the usage trends of Python are the exact opposite to those of R. Not only is Python the most widely used language, it is also the primary choice for the majority of its users. C/C++ is a distant second to Python, both in usage (44%) and prioritisation (19%). Java follows C/C++ very closely, while JavaScript comes fifth in usage, although with a slightly better prioritisation performance than R (7%). We asked our respondents about other languages used in machine learning, including the usual suspects of Julia, Scala, Ruby, Octave, MATLAB and SAS, but they all fall below the 5% mark of prioritisation and below 26% of usage. We therefore focused our attention on the top-5 languages.

Python is prioritised in applications where Java is not.

Our data reveals that the most decisive factor when selecting a language for machine learning is the type of project you’ll be working on – your application area. In our survey we asked developers about 17 different application areas while also providing our respondents with the opportunity to tell us that they’re still exploring options, not actively working on any area. Here we present the top and bottom three areas per language: the ones where developers prioritise each language the most and the least.

Machine learning scientists working on sentiment analysis prioritise Python (44%) and R (11%) more and JavaScript (2%) and Java (15%) less than developers working on other areas. In contrast, Java is prioritised more by those working on network security / cyber attacks and fraud detection, the two areas where Python is the least prioritised. Network security and fraud detection algorithms are built or consumed mostly in large organisations – and especially in financial institutions – where Java is a favourite of most internal development teams. In areas that are less enterprise-focused, such as natural language processing (NLP) and sentiment analysis, developers opt for Python which offers an easier and faster way to build highly performing algorithms, due to the extensive collection of specialised libraries that come with it.

Artificial Intelligence (AI) in games (29%) and robot locomotion (27%) are the two areas where C/C++ is favoured the most, given the level of control, high performance and efficiency required. Here a lower level programming language such as C/C++ that comes with highly sophisticated AI libraries is a natural choice, while R, designed for statistical analysis and visualisations, is deemed mostly irrelevant. AI in games (3%) and robot locomotion(1%)  are the two areas where R is prioritised the least, followed by speech recognition where the case is similar.

Other than in sentiment analysis, R is also relatively highly prioritised – as compared to other application areas – in bioengineering and bioinformatics (11%), an area where both Java and JavaScript are not favoured. Given the long-standing use of R in biomedical statistics, both inside and outside academia, it’s no surprise that it’s one of the areas where it’s used the most. Finally, our data shows that developers new to data science and machine learning who are still exploring options prioritise JavaScript more than others (11%) and Java less than others (13%). These are in many cases developers who are experimenting with machine learning through the use of a 3rd-party machine learning API in a web application.

machine-learning-programming-languages

Professional background is pivotal in selecting a machine learning language.

Second to the application area, the professional background is also pivotal in selecting a machine learning language: the developers prioritising  the top-five languages more than others come from five different backgrounds. Python is prioritised the most by those for whom data science is the first profession or field of study (38%). This indicates that Python has by now become an integral part of data science – it has evolved into the native language of data scientists. The same can not be said for R, which is mostly prioritised by data analysts and statisticians (14%), as the language was initially created for them, replacing S.

Front-end web developers extend their use of JavaScript to machine learning, 16% prioritising it for that purpose, while staying clear of the cumbersome C/C++ (8%). At the exact opposite stand embedded computing hardware / electronics engineers who go for C/C++ more than others, while avoiding JavaScript, Java and R more than others. Given their investment in mastering C/C++ in their engineering life, it would make no sense to settle for a language that would compromise their level of control over their application. Embedded computing hardware engineers are also the most likely to be working on near-the-hardware machine learning projects, such as IoT edge analytics projects, where hardware may force their language selection. Our data confirms that their involvement is significantly above average in industrial maintenance, image classification and robot locomotion projects among others.

For Java, it’s the front-end desktop application developers who prioritise it more than others (21%), which is also inline with its use mostly in enterprise-focused applications as noted earlier. Enterprise developers tend to use Java in all projects, including machine learning. The company directive in this case is also evident from the third factor that is strongly correlated to language prioritisation – the reason to get into machine learning. Java is prioritised the most (27%) by developers who got into machine learning because their boss or company asked them to. It is the least preferred (14%) by those who got into the field just because they were curious to see what all the fuss was about – Java is not a language that you normally learn just for fun! It is Python that the curious prioritise more than others (38%), another indication that Python is recognised as the main language that one needs to experiment with to find out what machine learning is all about.

It seems that some universities teaching data science courses still need to catch up with this notion though. Developers who say that they got into machine learning because data science is/was part of their university degree are the least likely to prioritise Python (26%) and the most likely to prioritise R (7%) as compared to others. There is evidently still a favourable bias towards R within statistics circles in academia – where it was born – but as data science and machine learning gravitate more towards computing, the trend is fading away. Those with university training in data science may favour it more than others, but in absolute terms it’s still only a small fraction of that group too that will go for R first.

C/C++ is prioritised more by those who want to enhance their existing apps/projects with machine learning (20%) and less by those who hope to build new highly competitive apps based on machine learning (14%). This pattern points again to C/C++ being mostly used in engineering projects and IoT or AR/VR apps, most likely already written in C/C++, to which ML-supported functionality is being added. When building a new app from scratch – especially one using NLP for chatbots – there’s no particular reason to use C/C++, while there are plenty of reasons to opt for languages that offer highly-specialised libraries, such as Python. These languages can more quickly and easily yield highly-performing algorithms that may offer a competitive advantage in new ML-centric apps.

Finally, contractors who got into machine learning to increase their chances of securing highly-profitable projects prioritise JavaScript more than others (8%). These are probably JavaScript developers building web applications to which they are adding a machine learning API. An example would be visualising the results of a machine learning algorithm on a web-based dashboard.

There is no such thing as a ‘best language for machine learning’.

Our data shows that popularity is not a good yardstick to use when selecting a programming language for machine learning and data science. There is no such thing as a ‘best language for machine learning’ and it all depends on what you want to build, where you’re coming from and why you got involved in machine learning. In most cases developers port the language they were already using into machine learning, especially if they are to use it in projects adjacent to their previous work – such as engineering projects for C/C++ developers or web visualisations for JavaScript developers.

If your first ever contact with programming is through machine learning, then your peers in our survey point to Python as the best option, given its wealth of libraries and ease of use. If, on the other hand, you’re dreaming of a job in an enterprise environment, be prepared to use Java. Whatever the case, these are exciting times for machine learning and the journey is guaranteed to be a mind-blowing one, irrespective of the language you opt for. Enjoy the ride!

Categories
Business

How to Break into Game Design (Part 1): What They Do and How to Get Started.

Developers in game design work alone or as a team to develop and design video games. The video game sector is a £41 billion industry in the United Kingdom. This number is expected to grow as more and more people play video games on their smartphones, according to Reuters.

game-designer-how-to-developereconomics

What Does a Game Designer Do?

Game designers work with developers to coordinate the complex task of building games from the framework out. Designers have duties that include:

  •     Designing characters – backstories, storylines, and story arcs
  •     Creating and defining levels
  •     Creating puzzles and mini games
  •     Contributing to the art and animation

While most developers create the code, a designer may also write code. Various programming languages are utilised for gaming. Depending on the studio a designer might have the duties of project management and testing.

What is the Economic Outlook for a Game Design Career?

According to new research conducted by IBISWorld, the software development industry is rapidly expanding. The latest statistics from Reed show that software developers make an average wage of £54,079 in the UK.

Who Employs Game Designers?

Most game designers work for game studios. There is a robust freelance market, however, for experienced game designers.

Skills Needed to Become a Game Designer

It is helpful that you have a natural ability, talent, or interest in acquiring artistic skills. However, people lacking these abilities can often compensate by having other technical computer skills. In fact, tech abilities may be preferred by some studios. Some specific skills game designers should have, include:

  •     Computer programming or knowledge of certain programming languages
  •     Coding
  •     CAD or 3D modelling
  •     Knowledge of AV equipment
  •     Critical thinking and problem solving
  •     Written and verbal communication

How to Get Started in Game Design

Because of the growing need, there are more colleges and universities offering degree programs in video game design. Besides, there are technical degree and certification programs offered at various schools. Some communities and online services even offer free beginner coding courses to get you started. These courses are usually offered in connection with a computer science or media department of a local community college.

Game design is an exciting career with enormous earning potential. There are many facets of the job that include managerial and administrative duties, so it is important to have excellent communication skills in addition to computer and artistic abilities. It is true that most video game designers have a bachelor’s degree in some type of computers science. This doesn’t mean that it is required, as many studios consider experience in lieu of education.

If all this has sparked your interest, stay tuned as over the next few weeks we’ll be publishing the next in our series on breaking into Game Designing as a career. Part 2 of our series will explain the educational and training requirements needed to get into the industry.

Categories
Tools

[Infographic] The latest trends on developer tools, skills and salaries.

We recently announced the  State of the Developer Nation Q1 2017 report which is based on the 12th edition Developer Economics survey, which took a 360° on developer tools, skills and salaries. The report sheds light on current developer trends based on responses from over 21,200 developers globally, across multiple research areas including Cloud, Mobile, IoT, Desktop, Web, Augmented & Virtual Reality, and Machine Learning.

For the first time in the history of Developer Economics, VisionMobile asked developers how much they earn in salaries and contractor fees, to explore what projects and types of development are more lucrative around different locations. What’s more, the report uncovers how technology battles continue on the web front with Angular vs React Javascript, Amazon Web Services is in a price war with their public cloud competitors, the IoT market is underdeveloped and highly fragmented, and Machine Learning developers are striving to identify what is the ideal programming language to use.

Check out our infographic on some of the many interesting  insights from  the State of the Developer Nation Q1 2017 report.

Developer trends 2017- Infographic

VisionMobile is very lucky to be supported by the entire developer community: from the largest Internet and software companies to the smallest local Meetups. Partnering  with these organisations, big and small, ensures that there is a representative sample across all developers so that something valuable is delivered  back to the community. The following are the top contributing communities for  the State of the Developer Nation Q1 2017: Amazon, SitePoint, Outsystems, 51CTO, Microsoft, Intel, The Linux Foundation, Android Weekly, InMobi, SellMyApp and Ubuntu.

The full report with more insights and graphs is available for download here.

We are currently running our new survey and it is sci-fi themed! Would you like to contribute ? Take the survey 

Categories
Community

The State of the Developer Nation Survey – Winners

Welcome to the full rundown of the State of the Developer Nation Survey (November-December 2016) prize draw winners. Below you’ll find a table comprised of both the email addresses and countries of all the people that won (the emails are obfuscated for security reasons).

Winners have already been notified by email – if you recognise the email fragment as yours and we haven’t contacted you, please drop us an email at survey@visionmobile.com.

Please note that the list only includes prize-draw winners and not runner-ups. If the prize draw winners do not claim their prizes within the timeframe mentioned in the respective e-mail they received, then runner-ups will be asked to claim them instead.

General Prize Draw Winners

Prize Draw Winners Country Prize
han**sa*op**@outlook.com India a Surface Pro 3!
ch**r**ha*mi29@yahoo.fr Tunisia a Surface Pro 3!
ma**@be*****wman.net United States an Oculus Rift Headset!
def**ct@si**rap.net United States an Apple Watch!
Jc*eal*1@gmail.com United States a Pixel Phone!
geza.**nk*+*****y@gmail.com Hungary $300 Digital Ocean credit!
g**o*n*sha**h@gmail.com India a BlackBerry DTEK50!
d*nc*nn*la**@gmail.com Zimbabwe a Meccano Meccanoid G15 K5!
i*i*.k**@p**om***ersolu***ns.co.uk United Kingdom a Unity Plus one year subscription!
datt*tri***0@yahoo.com India a FrontEnd Masters Yearly license!
gu**arah*l12*@hotmail.com India a Data Science: Data to Insights MIT
course!
4*16*0*3*@qq.com China a Windows IoT RP2 Kit!
Hall**@gmail.com United States a Windows IoT RP2 Kit!
j**aidg**arha***i@gmail.com Pakistan an Intel Joule 570X dev kit!
m*er*er33@gmail.com United States a Windows IoT RP2 Kit!
kiy**e**e**loper_su**e*@gmail.com United States an Annual SitePoint Premium
membership!
kajal***h**ha@gmail.com India an Annual SitePoint Premium
membership!
c*dr***gue*i*@hotmail.com France an Annual SitePoint Premium
membership!
b**g*a*i.*ed*@gmail.com Morocco a FrontEnd Masters Yearly license!
i*ons*@gmail.com Slovakia a FrontEnd Masters Yearly license!
js***er@fa***ail.com United States a Windows IoT RP2 Kit!
g****fo*k**@ge***netics.com United Kingdom a Machine Learning Mastery ebook
super bundle!
a*ra*he*9*@gmail.com Bulgaria a Udemy course(s) up to $80 USD.
Please visit Udemy and choose the course or courses up to that value and
complete the “comments section” in the form.
cserb***@gmail.com Romania a Udemy course(s) up to $80 USD.
Please visit Udemy and choose the course or courses up to that value and
complete the “comments section” in the form.
G*n**G**es@gmail.com Ukraine a Udemy course(s) up to $80 USD.
Please visit Udemy and choose the course or courses up to that value and
complete the “comments section” in the form.
m*x***vi*t*@yahoo.com United States a Udemy course(s) up to $80 USD.
Please visit Udemy and choose the course or courses up to that value and
complete the “comments section” in the form.
ka***tc@gmail.com Ukraine a Udemy course(s) up to $80 USD.
Please visit Udemy and choose the course or courses up to that value and
complete the “comments section” in the form.
lc**4*u**wa*92@gmail.com India a Raspberry PI 3 & PI-Blox Lego
compatible case
a*j**dk*r*@gmail.com India a Raspberry PI 3 & PI-Blox Lego
compatible case
m**ko.****la@gmail.com Denmark a Raspberry PI 3 & PI-Blox Lego
compatible case
car*@s***ers.com United States a Raspberry PI 3 & PI-Blox Lego
compatible case
ejc***@gmail.com United States a Raspberry PI 3 & PI-Blox Lego
compatible case
k*ar***to@gmail.com Ukraine a Raspberry PI 3 & PI-Blox Lego
compatible case
aa**ty*Y*0*9@gmail.com India a Raspberry PI 3 & PI-Blox Lego
compatible case
C***b*t*@hotmail.com Netherlands a Raspberry PI 3 & PI-Blox Lego
compatible case
94**9024*@qq.com China a Raspberry PI 3 & PI-Blox Lego
compatible case
jaspe*.*a***mal*e@gmail.com Belgium a Raspberry PI 3 & PI-Blox Lego
compatible case
m*s***das*3*.**@gmail.com United States an Es6.Io Beginners Course Master
Package or alternatively, you can select the ReactForBeginners.com Master
Package. Please let us know the one you prefer in the “comments
section” in the form.
biola***@gmail.com Nigeria a Cloudacademy Professional three months subscription!
e****ara*@gmail.com United States a Codeplace Professional 12 months
subscription!
k*rt***.ve*k**.*@hotmail.com United States a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
d*ve*o**r*con**ic*.com@ve***ir.com United Kingdom a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
b*tbe**@gmail.com Vietnam a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
m*gye*o*i@gmail.com Ghana a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
l*iam**d@ld***ond.com United States a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
kri**ja**j@gmail.com Iceland a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
ciud***nob*rr***@gmail.com Spain a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
ledu**o*n*9*t*@gmail.com Vietnam a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
frui*y**uon***@gmail.com Australia a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
ant**@cs.b**.hu Hungary a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
c***l*s**al**ce@hotmail.co.uk United Kingdom a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
er*c**a***ne@v*-cr**is.com France a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
21*357***@qq.com China a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
d*r*kh**@gmail.com Vietnam a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
c*lsufo*****@hotmail.com United Kingdom a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
a*e*k***as@gmail.com Greece a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
dphdp*d@gmail.com Hungary a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
maxim*h***z*no*@gmail.com Bulgaria a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
m**e@en***m.com United States a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
b*o**ar*@*a.ru Russia a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
e*ic.a*ex****aris*@gmail.com Argentina a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
jon***0**@gmail.com United States a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
jac*m**ns**@googlemail.com United Kingdom a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
develo*ere********@de***rk.us United States a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
e**s*y**va@gmail.com Russia a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
abd**_b**it**@hotmail.co.id Indonesia a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
e*a****a*i*g@gmail.com Mexico a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
cai*an***i**h@gmail.com India a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
eli*ra***o**t*@gmail.com Israel a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
dip*s*u*le.**anlu**@hotmail.it Italy a Dev Sticker (up to medium size)
from https://devstickers.com/. Please choose the sticker you’d like and let us
know your choice (url and size required) in the “comments section”
in the form.
f**lin*@gmail.com United States an Iot Evolution Expo – Iot
Certification Series Pass. The conference is 7 – 10 February 2017 in Fort
Lauderdale, Florida, USA. Please do let us know if you’re able to attend.
There is a comment box in the form.
ba*t*o*0*@gmail.com Vietnam an AnDevCon Conference Pass. The
conference is July 17-19, Washington DC, USA (https://www.andevcon.com/).
1*5*1*26*5@qq.com China an InterDrone Conference Pass. The
conference is September 6-8, Las Vegas, USA (https://www.interdrone.com/).
e**ard***er*d*a@gmail.com Mexico an Scaling Organizations,
Microservices, And Containers – Online Conference Pass
(https://www.oreilly.com/live-training/online-conference-scaling.html). We’re
currently awaiting confirmation of the new date for this conference.

===
Panel Prize Draw Winners

Email Prize Country
c**ao*9@gmail.com Apple MacBook Pro 13-inch Laptop United States
al*o**gu*i****z@gmail.com Lego Mindstorm
EV3
Philippines
byr**l***5@gmail.com Lego Mindstorm
EV3
Dominican Republic
ch****36@gmail.com Asus Zenpad S
8.0 tablet
Vietnam
r**ercom@gmail.com Asus Zenpad S
8.0 tablet
Ukraine
s*t**a*.**y@gmail.com FICO T-Shirt India
vbal*g**@hotmail.com FICO T-Shirt United States
fis***ofm*n**@yahoo.com FICO T-Shirt United States
fa*i*b***e*ir@outlook.com FICO T-Shirt Turkey
m*ott*n@gmail.com FICO T-Shirt United States
pil*z**@gmail.com FICO T-Shirt Netherlands
a*g*l*.anol**@gmail.com FICO T-Shirt Canada
raf**lfa****o@gmail.com FICO T-Shirt Brazil
d**ek@fri***eworld.com FICO T-Shirt Australia
h***gtua**t2@gmail.com FICO T-Shirt Vietnam
t*n.*ab***j@gmail.com FICO T-Shirt Slovenia
p****1@nyu.edu FICO T-Shirt United States
ne*us*8@inbox.com FICO T-Shirt United States
rei*e.***sey@gmail.com FICO T-Shirt United Kingdom
ku*t**@gmail.com FICO T-Shirt United States
k**.*od*a*@gmail.com FICO T-Shirt Canada
j****nche*ey@outlook.com FICO T-Shirt United States
an***am1*9**4@aol.com FICO T-Shirt United States
m*ts.**n**od*d**2@googlemail.com FICO T-Shirt Japan
ep**@pro***mou.eu FICO T-Shirt Cyprus

 

Categories
Platforms Tools

[ Infographic ] The State of the Developer Nation Survey – Tools & Technologies featured

The State of the Developer Nation Survey (H2 2016) was by far the largest in participation. The best way to illustrate this is by an infographic, highlighting important facts and figures. Further down you  will be able to find out the total number of respondents and the countries of their origin as well as all the development areas covered and the  number of tools featured per development area.

Clicking  on the Infographic will redirect you to the full list of tools falling under 7 different development areas namely: Desktop, Mobile, Web, IoT, Cloud, AR/VR and Machine Learning. In total there are 21 categories under all development areas which amount to a total of 226 tools.

top-tools-technologies-developer-survey-VisionMobile

 

Categories
Platforms Tools

A New Dimension for UI: Using Unity for Virtual Reality

virtual reality unity ui

The advent of virtual reality solutions, ranging from gaming to trainings and simulations, is raising new questions about previously standard industry practices. User interfaces (UI), in particular, require a complete re-thinking of function, layout, and implementation. Traditionally, user interfaces have been divided into diegetic (part of the game world), non-diegetic (separate from the game world), spatial and meta components. Most successful games use a combination of them to provide a balanced experience. In this, we break down each category, its advantages/disadvantages for virtual reality, and how to implement them in Unity. Meta UI components are rare in general and largely disregarded in VR programming. For that reason, they are not considered in this analysis.

Non-Diegetic UI

Historically, non-diegetic user interfaces have been the most common in the gaming industry. The key defining feature of them is that the components of the UI exist on a completely different plane than the actual 3D game space. Imagine here a heads-up display (HUD) as they are likely the most ubiquitous examples of non-diegetic user interfaces. A health bar, for example, does not exist within the 3D space that the game supposes nor can characters in-game interact with it. It is outside both the game’s narrative and space.

Pros/Cons

This modality offers the user a very clear display of relevant information and allows for quick navigation. The fear, however, is that the distinct separation of the game world from the structures that manipulate it results in a lack of immersion.

Use in Virtual Reality With Unity

For virtual reality, non-diegetic user interfaces can be very difficult to successfully implement. The largest obstacle is the fact that a HUD a la traditional gaming can be too close to the user’s face, resulting in highly uncomfortable eye strain. In Unity, the typical way to design a non-diegetic HUD is through the Screen Space – Overlay or Screen Space – Camera functions. It is unsupported, however, in Unity VR due to discomfort-related concerns. A developer can, however, fix a model to the user’s vector of vision. This, in effect, serves the purpose of a HUD. Once again, though, it can prove awkward. It would be like walking all day with a phone directly in front of you. In order to focus on it, you would need to re-focus your view from the rest of the world. Additionally, its presence when focusing on other tasks would be distracting. In short, stay away from strictly non-diegetic UIs when developing solutions for virtual reality.

Diegetic UI

This model of user interface holistically embeds all of the information typically represented in a HUD into the game’s 3D space. An example of this in a game would be if instead of a mini-map in the corner of the screen, the avatar/user would pull out and look at a map that exists within in the game world. Thus, the user interface is part of the game’s narrative and exists within the game space. From a player perspective, the Deadspace video game franchise is generally regarded as having implemented one of the best diegetic UIs to date.

Pros/Cons

The advantage of this style is the belief that it increases the realism of the gaming experience and thereby results in deeper immersion. The drawback, however, is it requires developers to seek ingenious ways of representing typical information, such as health, items in inventory, etc. These, in turn, must be intuitive and effective, otherwise, they will frustrate the user and result in a loss of immersion.

Use in Virtual Reality With Unity

In many ways, the goal of virtual reality is to provide a level of engagement and immersion that mimics real-life. With this in mind, diegesis seems like the logical, and even necessary, method of crafting user interfaces. The logic seems to go, if real-life is without menus and speech bubbles shouldn’t virtual real-life be so too? In lieu of this, there are several ways to create more diegetic experiences using Unity in new innovative ways. One way is to use the Raycast function to initiate interaction. Let’s imagine, for example, that in an RPG the user wishes to interact with an NPC. Instead of clicking and using a menu, the user could simply stare at them for an appropriate amount of time, which mirrors how we use eye contact in real-life to initiate conversation.

Spatial UI

A spatial UI lies half between traditional diegetic and non-diegetic models by offering elements that exist within the 3D game space but are not part of the game’s narrative. Perhaps the simplest iteration of this would be if you were to select a unit in a real-time strategy. Around the unit would appear some sort of circle or symbol to represent that the unit has been selected. In a first-person shooter, a way-marker for an objective is another example of spatial UI. The way-marker exists in the game space but if you were to live inside your character’s head, you wouldn’t see it.

Pros/Cons

In many ways, the advantages and disadvantages of spatial UIs mimic those of diegetic models. The key upside is it provides a lot of clarity to the user; all the relevant information for a user can be tagged to the relevant models. This, however, is offset by the fear that the presence of meta-information could break the immersive dimension of the game.

Use in Virtual Reality With Unity

When it comes virtual reality, spatial UI is the simplest and most effective option. When programming with Unity this means selecting World Space as the render mode for the Canvas. This allows components of the UI to be placed anywhere in the game space. In order for the best results and most comfortable experience for the user, set the text at a comfortable distance (3-5 meters) away and make sure it is clear, large, and readable.

In order to reduce clutter on the screen and keep immersion-levels high, it is often advisable not to permanently tag UI information to a model. It can appear unrealistic and unnecessary. Instead, allow notifications and status updates to flow in and out of the game as organically as possible. For example, don’t always have a health bar floating above a character’s head but instead have an aura appear around the character or have a health bar flash in the game space near the character. Unity also allows the implementation of arrows to help direct users if they’re looking in the wrong the direction. The easiest way to add this to a game is GUIArrows and customising which vector should be prioritized can be done with the Show Angle function.

An effective use of spatial user interfaces that is subtle but clear is overwhelmingly the simplest and most effective model. It provides the necessary instruction without — if done tastefully — shattering the user’s level of immersion.

Conclusion

The key consideration, whether choosing to pursue non-diegetic, diegetic or spatial components, is to strike a balance between immersion and usability. The greatest strength of virtual reality is that it’s 360° of 3D space naturally induces a degree of engagement that far surpasses even the most advanced screen-based solutions. The fear for some developers is that immersion could be broken by clunky interfaces that divorce the user from the actual experience. With this in mind, it’s important to remember that many games featuring non-diegetic/spatial features still boast impressive levels of immersion. MMOs that allow highly customizable HUDS immediately come to mind. They may clutter the screen but they also allow the user to feel at home in the experience, which in turn induces immersion.

In short, according to our experience at Program-Ace when designing an interface for virtual reality, pay careful attention to making sure the experience remains intuitive and comfortable while also trying at every moment to submerge components into the game space and game narrative.

Categories
Business Platforms

What is the right CMS for your business?

 

choosing-CMS

“I don’t care about the platform, let’s just create our website on something popular and cheap and get on with it”.

Dear IT decision maker, this is wrong. On an infinite number of levels.

This article is going to show you why. It’s not going to promote one technology or CMS platform over another,(well, at least not much, taking the author’s unavoidable personal bias under account). Instead, it’s going to address the issues that usually arise long after the CMS platform has been selected and paid for.

For the purposes of this article, we have picked interesting details about a number of popular and emerging CMS platforms like WordPress, Joomla, Drupal, Typo3, DNN and Umbraco , and we have also included references to Concrete5, Contentful and Rooftop, as well as Wix (a web site builder  that is provided exclusively in SAAS form). Although WordPress is currently by far the most popular CMS out there, this post is not a “Wordpress VS the world” one.

“A lot of people are using it, what could go wrong?”

Let’s take WordPress. It’s got over 24 million installations (an estimate from a relevant article on Quora, but we can’t know for sure what percentage of them regards installations of business websites as opposed to personal sites, blogs, or small business like hairdresser salons, neighbourhood groceries and auto repair shops (that are usually just a couple of pages set up on a free or very cheap theme and that’s about it). Don’t get me wrong – there’s nothing wrong with this type of websites, but they’re not indicative of a CMS platform’s capabilities in any way.

For comparison, Typo3 says it has over 500,000 installations, Umbraco says it has over 380,000 installations, Concrete5 is just shy of 140,000 installations and Drupal has over 1,200,000 installations.

Although other CMS platforms feature a very smaller number of installations, a Fortune 500 company website will – probably –  outrank a local hairdresser’s website in complexity, features and quality.

So one number you should pay attention to is how many use cases are published out there, and for what type of clients. Do not base your choice solely on how many people are using the CMS, but introduce some quality criteria. How many companies in your business sector are using this CMS? What is their preferred choice and why?

“As long as it does its job”

Having been in the industry for about 20 years I’ve seen a lot, including “fake” CMS platforms. Many years ago, around 2001, I met with the owners of a small web development agency who believed in the doctrine that the client should be totally platform agnostic. They showed me the CMS they were using.

It was a glorified web file manager managing static HTML pages! This is what they knew how to do best – static HTML pages. But since clients were starting to demand “a CMS”, they gave them what they wanted.

When you choose your CMS, always make sure that it provides you with the editing functionality you really need. Chances are most of today’s CMS platforms will allow you to do several things (we’re not in 2000 any more), but how far you need them to go is up to you.

For example:

  • Does the website’s navigation system (menus, footer links etc.)  get updated automatically or based on a specific set of rules when you add new pages (provided that you can easily add new pages!) or do you have to do that by hand?
  • How are page URLs generated, are they SEO friendly, and what happens when you change a page’s URL with regards to SEO and links that may exist on your old URL?
  • Does it manage image resizing for you or do you have to resize images before uploading them unless you want your visitors’ bandwidth to choke over that 20 x 6MB image gallery?
  • Are you really protected from “breaking” the layout if you use the CMS’ WYSIWYG editor (assuming it has one!) to update content in an unorthodox way?

The above are just food for thought. There are actually dozens of tiny little things that you should consider in the same regard.

For some CMS platforms, the answer to almost every one of the questions above is “it depends on the developer”, which is actually a good thing since it means that the CMS can be properly customized and extended for your own needs as long as your specs are detailed and correct. Which leads us to our next point..

“I’ll hire somebody to extend it when I need to”

There are agencies out there that provide design and development services using their own proprietary CMS, claiming that it has been specifically developed to address your needs. While this may be true, you’re actually getting tied to a specific agency’s proprietary software, with little chances to find developers outside this agency willing to work on it in the future, even if the agency gives you the full source code of their CMS (which, in most cases, won’t happen anyway).

If you decide to go with a popular open source CMS, you should definitely take the “signal-to-noise” developer ratio under consideration. What I mean by that is that it’s easy to find developers for popular CMS platforms, but you should watch out for fakes or people with very limited knowledge. A rule of thumb is that the more popular the CMS platform is, the more chances you have to hire a person who just learned about it yesterday, or works solely with plugins/add-ons without having ever written a single line of code.

Although there are no known statistics for this, it is obvious that the easier a CMS is to set up and start with, the more possible a greater pool of inexperienced developers is. Open source CMS platforms suffer from this a lot – my experiences are limited to WordPress, Joomla and DNN Community – all three are very easy to set up and get going, but need a lot more when it comes to specific functionality. There are a lot of folks out there that claim to be “developers” using one of those platforms when in fact they just know how to set it up and configure it with a theme (usually a free one) and probably some plugins. Ask them to do something that isn’t covered by the core CMS functionality or the plugins they are familiar with and you’re suddenly open to a whole new world of expenses, bugs, and subsequently more expenses.

“I got it cheap, now it’s ready and I don’t have to pay anything more”

Maintenance costs, unless they are agreed upon from day one, are considered hidden costs and they often end up, in the long term, being higher than the actual cost of developing your web site with the CMS of your choice. If your CMS’ performance degrades over time or if your CMS is often vulnerable to exploits, then you *must* consider maintenance services. The alternative is far more expensive.

So what can you do? First, have in mind that the most widely used a CMS platform is the more “bad” people are going to target it and the more vulnerabilities will be discovered.

Exploit DB maintains a great database of exploits per platform. Let’s see how two of the most popular CMS platforms around today are doing there compared to other, less popular choices. WordPress had a whooping 982 total entries at the time of writing this article, Joomla (a similarly popular but notoriously insecure platform) had 1,152 entries while less popular platforms like, for example, Umbraco (the one I’m working with) had 1, Concrete5 had 16 and ModX had 15.

This does not make popular CMS platforms less valuable – it just indicates that, if left unmaintained, they will have higher chances of being exploited, hacked, defaced and lots of other terms generally meaning “more money to spend on repairs”.

The problem with updating a CMS in order to secure it often lies with third-party add-ons that may not follow your platform’s update path. It is common for popular CMS platforms to have a wide number of add-ons (called plugins or modules or packages or extensions, depending on the platform) made by third parties, and some of them break when the CMS is upgraded to a newer version, or even become the starting point  for exploits in the first place.

At the time of writing this post there were 47,956 WordPress “plugins”, 859 DNN “modules”, 7288 Joomla “extensions”, over 1500 Typo3 “extensions”, 36,031 Drupal “modules”, and over 1000 Umbraco “packages, just to get a feeling of the sizes we are talking about.

If you go with a popular platform, or one that is widely known to often be the target of hackers, you should ensure that your site is developed in a safe manner, its add-ons chosen very carefully, and that it is maintained correctly (either by your agency, your web host or a person you will hire for that). Alternatively, you can switch to PAAS or SAAS solutions, like for example wordpress.org hosting for WordPress or Umbraco Cloud hosting for Umbraco and leave site maintenance to the experts (at a cost). Even Wix is considered a SAAS solution (with restrictions mentioned elsewhere in the article).

“I spent a week doing data entry”

No matter how much you pay for your CMS and/or development, your content is what is most valuable to you and what you are going to be maintaining and expanding for years to come. You must be absolutely sure that you really own your content and that you can have it exported in a way that will allow you to reuse it with minimal cost if you need to.

Wix, for example, is a SAAS platform  that provides a very nice (and cheap) way to have a site up and running in virtually no time – but with a price. Your content is “tied” to their platform and cannot be exported or transferred elsewhere.

 

“It’s OK, but we may need to have more in the future”

Let’s say that the only thing you want done today is have your website built as soon as possible. What about tomorrow?

Often a website needs to get expanded with functionality that was not predicted or planned from day 1. This may include importing data from third-party sources, integrating feedback forms with CRM applications, adding e-commerce capabilities etc. If you have only your website in mind today, you may choose a platform that is hard (or expensive, or both) to extend in the future.

For example, WordPress has an abundance of plugins that make it integrate with third-party systems, and it’s relatively easy to have developers write some additional code to do so. But, if your long-term goal is to use the same platform for your intranet and include SSO capabilities for Windows Domains, then DNN is probably the way to go.

Let’s also not forget that a CMS today is not what a CMS was 10 years ago. A website on a desktop PC or laptop is only one way of presenting information. Your site must be ready for mobile (tablets, phones), and your data should be ready to be accessed by native applications. Well, most CMSs today solve the mobile problem by either letting you implement the responsive/grid layout of your choice or already using one for you (although how they allow you to form your content using WYSIWYG editors and how they provide decent previewing varies greatly). How you can expose data to be consumed (and updated) to native apps, though, is another issue.

If you are primarily interested in having your data consumed by third-party apps / native mobile apps, then a different set of priorities need to be introduced:

Does the CMS of your choice feature an API that is easy to use?

Although almost every CMS today is advertising an API, not all APIs are equally mature. CMS platforms with a rich add-on ecosystem usually feature the more mature APIs since those facilitate add-on development. A generic API may not be always useful for exposing your data to other apps, but it’s a first step towards that.

Does the CMS of your choice provide a REST API?

Some CMS platforms allow you to easily create your own REST APIs where others provide them out of the box (and allow you to extend them). If you need to make your data available anywhere outside the confines of the CMS, your best choice would be a platform with a mature REST API. Thankfully, all popular platforms provide that in a way or another. WordPress, for example, has multiple plugins that provide REST API functionality. Umbraco has a REST API developed internally. Joomla features a REST API in the form of an extension.

The factor that you should pay attention to, however, is how complete the REST API is. The less you need to extend it yourself the better.

For CMS platforms with an add-on ecosystem, a critical factor for your decision is how many of the add-ons you are probably going to use will work well with the existing REST API.

For example, Gravity Forms , a very popular WordPress plugin, is not implementing the WordPress API in a standard way and, instead, provides its very own API, which can lead to a lot of work if you need to seamlessly work with WordPress and Gravity Forms in a unified, RESTful way.

Should you consider an API-first CMS instead of a page-oriented one?

This is the toughest question that you may have to answer. If your primary goal is providing your data to third-party apps, then an API-first CMS like, for example, Contentful or Rooftop  (which, by the way, uses WordPress as its back-end and manages to solve the WP-Gravity Forms API integration problem we talked about above), is definitely the choice to go for.

What an API-first CMS offers as an advantage is the total separation of the data and presentation layers, meaning you have an “engine” that can manage your data regardless of where they are eventually consumed. This can be a blessing or a curse, since it’s up to you to decide which technology to use for a web front-end (which is treated like any other app that consumes its data), while you may have to deal with potential limitations imposed by the number of SDKs available.

“We work with Java, but what’s wrong with launching a PHP-based website?”

Let’s suppose your organization heavily depends on Azure, Office 365 and Active Directory. Why on earth would you select, for example, Django CMS as your platform? Although it is a fine CMS, its technologies will be far out of your organization’s scope and internal expertise and you would have to resort to third parties for every single issue introduced during the lifetime or your web site. You might do that anyway (see the next section), but you have no way to evaluate results if the technologies used are alien to you. Let alone integrate your web site with other things.

This is a highly subjective point of view and you may totally disagree, but my belief is that the CMS you will choose to power your web presence should be in harmony with other technologies already being used in your business, since this opens up a lot of options for its evolvement later. Unless, of course, you’re using an API-first, cloud-hosted CMS, around which you can build additional services.

“We’ll extend it internally”

So you’ve got a couple of IT people that are familiar with some Web technologies and you think that it would be cost effective if you selected a CMS platform that utilizes the technologies they already know so that you can maintain it and extend it internally.

I don’t even have to prove why this is fundamentally wrong, but let’s say that it is analogous to having your graphics designer paint your house.

Conclusion

Your decision on the CMS platform you should use for your site is not an easy one, and it should not be left in the hands of the agency you intend to hire  just because “that’s what they’re working with”. It’s easy to be impressed with the design and visuals and forget there’s an “engine” that powers your website behind the scenes, but that engine is the most important aspect of the whole construct since it’s the one that will restrict you or enable you to do more when that time comes.

You should have a long-term plan about how you want your web site to evolve, what you expect it to cost you in a specific period of time and how you are going to tackle challenges like security and extensibility. There is no globally right answer, it all depends on what your own main objectives are.  

Being conscious about the technology, the platform, its pros and cons and its features will only benefit you in the long term. If you feel you don’t have the technical knowledge or the time to make such a decision, you should hire an expert consultant who will take all parameters into account and suggest the best platform for your own needs. Whatever you do, though, for heaven’s sake don’t buy a website at the price you would buy a new pair of jeans just because “that’s all you need”. You’ll end up paying for a whole new wardrobe really fast.

 

Categories
Business Tips

[Infographic] How to design a growth strategy for your app.

Developers are makers. They solve pains, entertain, enlighten, and enhance productivity. Building an app can be an exhilarating experience and the joys of shipping can linger for… about ten seconds. Then comes the question: “I’ve built an app, now what?” Where do you start with your app growth strategy?

Building strategies for user acquisition and retention are the two major tasks for dev teams after they have built an app. Analytics helps understand exactly what is happening and how to keep building traction. From there, new possibilities can emerge that will help you grow your user community even stronger and help you identify novel ideas that may offer you a winning edge.

Check out our infographic based on our series of articles on User Acquisition , User Retention and Growth Analytics.

Built_an_app_Infographic (3)

Want more insights on app growth strategy?

Check out our State of the Developer Nation Reports, and make sure you understand Analytics for Growth.

Categories
APIs Platforms Tools

Do-it-yourself NLP versus wit, LUIS, or api.ai

 

NPL_bot_

 

Alex and I have been building bots for about 1.5 years and have talked to hundreds of bot devs through our BotsBerlin meetup, which now has over 1,000 members. Something we get asked a lot is whether it’s worth investing in building your own NLP engine, or whether it makes sense to use a third party service like wit.ai, LUIS, or api.ai.

What does a chatbot’s NLP engine do?

Let’s say you’re building a restaurant bot. These tools will help you take a sentence typed by a human, and turn them into structured data, for example:

 

NLP Module chatbots

 

Do you build yours or use third-party tools? Let us know in our DE Survey.

The structure on the right is something computers can actually work with, and you can pass this on to the business logic of your bot. For example, you would probably query the Foursquare API and fetch a list of restaurants. If there are some popular restaurants matching those constraints, you would probably suggest those to your user. If not, you might suggest a Chinese restaurant instead.

NLP-api-chatbots

Foursquare has already done the hard work of finding matching restaurants, so the trickiest part of building this MVP is finding a way to generate structured data from natural language. The great thing about tools like wit, LUIS, and api.ai is that they make this part so easy that you can build an MVP like the above in an afternoon. In our experience, 3rd party tools are an excellent way to build quick prototypes. You could just as quickly build a bot to find videos with the YouTube API, or products from Product Hunt.

Reasons to do it yourself

If your restaurant bot is a runaway success, you will inevitably want to become independent. We see that the more advanced bot teams are all developing their own NLP. Data from the Developer Economics surveys, which polled the opinions of thousands of developers interested in chatbots, are pointing towards a democratisation of chatbots through open source projects (there’s a live survey out now if you want to contribute to this knowledge pool).
Here are three real-life examples of why people switch.

API constraints

databot was a Slack app we built at the start of 2016. Databot would connect your data warehouse to your Slack, so you could ask

what was the ROI like for October’s facebook ads?

and databot would generate the corresponding SQL query and answer your question.

We started off using wit.ai, which would always default to guessing that October referred to the following October, not the previous one. So we had a lot of fun with our date library to build a workaround. Of course wit could add a feature to let you customise this default, but that’s missing the more general point. If you use an API you are have to live with someone else’s engineering decisions, and that friction tends to grow as your project matures.

Data ownership

We talked to a startup building a commerce bot, specifically one which let you look for presents for friends and family and find good deals, e.g. “my sister likes running and craft coffee and I want to spend around $30”. For them, gathering the data around people’s purchasing intentions is core to the value of their business, and they want to make sure it belongs to them. Moreover, for privacy sensitive verticals like insurance, health, and banking, sending every message to a 3rd party is not an option, users and businesses just aren’t comfortable with it.

Performance

Admithub is an education startup. This team actually has one of the most technically advanced NLP modules I’ve seen, it can recognise thousands of intents. Their bot helps university students by updating them about events and deadlines, and can answer questions ranging from “when are housing applications due?” to “can I have a salamander in my dorm room”.

AdmitHub found very quickly that third party tools weren’t up to this task (they tend to optimise for the small data use case, performing well even when a developer is getting started and there are only a few examples). Most also failed to handle misspelled words, which are common when chatting with teenagers. While simple bots are generalizable, sophisticated bots are all complicated in their own way. Every algorithm has trade-offs, and a one-size-fits-all approach can let you down when your use case becomes more advanced.

Bonus: Control your own fate

Ultimately, technological independence is compelling for many teams. It’s great to use free tools developed by big tech companies, but they may not stay free (Microsoft have started charging for LUIS) and they may disappear with little notice (like Parse did).

The rise of do-it-yourself NLP

{wit,LUIS,api}.ai are wonderful tools that make prototyping very quick. But from talking to dozens of bot teams, I’m convinced that everyone will eventually become independent. Early indications from the state of AI survey are that virtually all businesses are uncomfortable relying on APIs for their AI, and that doesn’t surprise me given the examples I’ve just talked about. The engineering case is that web APIs just aren’t the solution to every problem in programming. The business case is that you really want to own your data and be independent.

In 2017 we will see the bots that have traction moving away from 3rd party NLP services. The biggest drawback, until now, has been the engineering investment and machine learning talent required to build a custom NLP engine. It makes no sense every bot team to reinvent the same things, so at LASTMILE we decided to open source ours. You can find out more at rasa.ai

 

Are you involved in ML and/or AI? Take the Developer Economics Survey and shape the future of ML/AI development.