Accessing hardware from web applications

Web applications accessed with a browser are more powerful than ever, and in many cases they have already replaced desktop applications. For example, many of us have started to use GMail as the primary email client. However, there are still some areas where a browser-based solution does not work - hardware access.

Browsers use a technique called sandboxing to limit the API that the possibly unsecure code from internet can access. Sandbox limitations can often be overcome with trusted and signed code. Java applets used to be a common cross platform mechanism to achieve this, but as they are fading away, other alternatives are needed.

One of the alternatives is to use the low-level APIs provided by Google Chrome Platform. These APIs are accessible for signed Chrome Apps, but not for regular web pages or even for Chrome extensions. Otherwise you are using web app technologies to implement your application and you can embed a Vaadin based application in it and this way store the data from your hardware to the server.

I recently wrote a PoC and a tutorial for this kind of setup. The tutorial demonstrates how to write, run, and distribute an application which uses serial ports for collecting environmental data.

Read the complete accessing hardware tutorial

Community Spotlight - April 2016

For this month’s Community Spotlight, I interviewed Godfrey D. Beray.

Godfrey D. Beray is a Senior Development Consultant at Cubeworks Technology Consulting & Solutions and IT Consultant for the F&C Group of Companies and Society Agri-Venture Enterprise in the Philippines. He's also a co-founder and event head at Developers Connect (Iloilo Chapter), and Finance & Admin for Philippine Institute of Cyber Security Professionals (Panay Chapter). During his free time, he spends most of his time with his family, especially with his daughters, Yza and Gab.

Hi Godfrey, it’s great to have you with us for this interview. You have been doing a lot of web development with Vaadin. How did you come upon Vaadin and why did you decide to use it?

I started my career as a Java Developer way back in 2011, but since I'm not good in web design, I had difficulties in creating good Web-UIs for my project. I started searching for a good Web-UI framework and I happened to come across and read the blog For the Love of Vaadin: RIAs Done Right. It's like a light from the end of the tunnel as I have tried several java frameworks but designing the front-end with HTML + CSS + JavaScript has always been my weakness.
Vaadin comes with a decent default theme so I could focus more on coding and less on the styles. When I started with Vaadin, the default version of the unofficial plugin for Netbeans was v6.2. I started working on a prototype project and slowly moved up from one version to another.

For the Love of Vaadin! That was a pretty popular blog post. How have you seen the evolution of Vaadin since then, considering we are now deep into Vaadin 7 series?

There was no Grid component back then, you needed to work a lot with the Table component to get a nice functionality, and Calendar was just an add-on, not yet part of the Vaadin core. The reason why I have kept using Vaadin until now is because of the dedication that the Vaadin team has put into it. I can't think of any requirements that will force me not to use Vaadin in most of my projects.

What do you consider to be the top features of Vaadin?

Plain server-side Java coding is the top feature for me. You build up user interfaces just like you do with Swing, so you can focus more on your coding and worry less about the layout. I was able to build a simple employee directory just by trying some available components from the demo, and exploring and reading some documentation about the framework.

So, how does Vaadin work? Could you briefly explain it for anyone with no previous experience?

It just works out of the box without getting yourself into HTML/CSS/JavaScript. If you're a desktop developer, then Vaadin Framework is for you.

What other technologies or libraries are you often using in your Vaadin projects?

Since most of my projects are business applications, common libraries that can be found in my project dependencies are POI, JFreeChart and JasperReports.

What are the top features you’d like to see in the upcoming versions of Vaadin Framework?

As of now, I'm currently satisfied with the feature set Vaadin provides to finish all my projects, and there’s still a lot of room for me to explore and learn about Vaadin. I was just lucky enough that I was able to get a copy of the book Vaadin 7 UI Design By Example from Packt Publishing when I migrated from Vaadin v6 to v7. And with the introduction of the Valo theme in v7.3, the look and feel was brought to a new level (great work and good job!). 

Thanks Godfrey for sharing your thoughts about Vaadin and best wishes with your future projects!

We are Vaadin - Working at Vaadin

Vaadin is one of the Great Places to Work companies in Finland and working here gives you a unique opportunity to work with open source tools that affect hundreds of thousands of other people’s lives.

Jonni Nakari

Vaadin is growing at such a rapid pace that new opportunities for both professional and personal growth arise every day. Here’s the story of one.

Hello world, meet Jonni!

Jonni is a great climber and a Vaadin Expert. He's been working at Vaadin since 2012 as a developer and trainer. “I'm a sporty nerd who seeks new technologies. Earlier I worked in a smaller software company and studied IT in the university. A headhunter contacted me through LinkedIn and I got interested in developing my career at Vaadin.

During the first month I was in a training project, which served as a quick introduction to the tools. Since then I worked in one of our larger customer projects for a few years. Today I work as a software development consultant and a trainer. On the software development side, agile development really is the key to success. We use Scrum practices both in internal and external projects here at Vaadin.

In my work, I need versatile software knowledge, I have to learn what different browsers are capable of and how to create appealing user interfaces. I also need to understand the problems, think quickly and be eager to find solutions.

As a workplace Vaadin is open, skilled and constantly evolving. The best thing about working at Vaadin is the fact that whenever you get stuck with a problem, there is always resourceful colleagues you can ask for help and get unstuck. The work environment here is really good and in fact, Vaadin has been successful in many "Great places to work" listings. Another big reason for me to work here is the whole open source mentality.

Both my work and my most treasured hobby, climbing, offer interesting challenges. I have been climbing in Jordan, Iran and all over Europe. I find new energy at the mountaintops!”

Vaadin is experiencing rapid growth. Will you be the one to help us conquer the next mountain?

See the open positions